Merge remote-tracking branch 'Kwoth/dev' into dev
This commit is contained in:
commit
4dda0a24d7
@ -452,7 +452,6 @@ namespace NadekoBot.Modules.Administration
|
||||
{
|
||||
if (count < 1)
|
||||
return;
|
||||
count += 1;
|
||||
await Context.Message.DeleteAsync().ConfigureAwait(false);
|
||||
int limit = (count < 100) ? count : 100;
|
||||
var enumerable = (await Context.Channel.GetMessagesAsync(limit: limit).Flatten().ConfigureAwait(false));
|
||||
|
@ -18,8 +18,14 @@ namespace NadekoBot.Modules.Administration
|
||||
{
|
||||
private ImmutableDictionary<string, string> supportedLocales { get; } = new Dictionary<string, string>()
|
||||
{
|
||||
{"en-US", "English, United States" },
|
||||
{"sr-cyrl-rs", "Serbian, Cyrillic" }
|
||||
{"en-US", "English, United States"},
|
||||
{"fr-FR", "French, France"},
|
||||
{"ru-RU", "Russian, Russia"},
|
||||
{"de-DE", "German, Germany"},
|
||||
//{"nl-NL", "Dutch, Netherlands"},
|
||||
//{"ja-JP", "Japanese, Japan"},
|
||||
{"pt-BR", "Portuguese, Brazil"},
|
||||
//{"sr-Cyrl-RS", "Serbian, Serbia - Cyrillic"}
|
||||
}.ToImmutableDictionary();
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
@ -94,9 +100,10 @@ namespace NadekoBot.Modules.Administration
|
||||
[OwnerOnly]
|
||||
public async Task LanguagesList()
|
||||
{
|
||||
await ReplyConfirmLocalized("lang_list",
|
||||
string.Join("\n", supportedLocales.Select(x => $"{Format.Code(x.Key)} => {x.Value}")))
|
||||
.ConfigureAwait(false);
|
||||
await Context.Channel.EmbedAsync(new EmbedBuilder().WithOkColor()
|
||||
.WithTitle(GetText("lang_list", ""))
|
||||
.WithDescription(string.Join("\n",
|
||||
supportedLocales.Select(x => $"{Format.Code(x.Key), -10} => {x.Value}"))));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -529,7 +529,7 @@ namespace NadekoBot.Modules.Administration
|
||||
else if (afterVch == null)
|
||||
{
|
||||
str = "🎙" + Format.Code(prettyCurrentTime) + logChannel.Guild.GetLogText("user_vleft",
|
||||
"👤" + Format.Code(prettyCurrentTime), "👤" + Format.Bold(usr.Username + "#" + usr.Discriminator),
|
||||
"👤" + Format.Bold(usr.Username + "#" + usr.Discriminator),
|
||||
Format.Bold(beforeVch.Name ?? ""));
|
||||
}
|
||||
if (str != null)
|
||||
|
@ -11,15 +11,13 @@ using NadekoBot.Services.Database.Models;
|
||||
using System.Linq;
|
||||
using NadekoBot.Extensions;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
using NLog;
|
||||
|
||||
namespace NadekoBot.Modules.ClashOfClans
|
||||
{
|
||||
[NadekoModule("ClashOfClans", ",")]
|
||||
public class ClashOfClans : NadekoTopLevelModule
|
||||
{
|
||||
public static ConcurrentDictionary<ulong, List<ClashWar>> ClashWars { get; set; } = new ConcurrentDictionary<ulong, List<ClashWar>>();
|
||||
public static ConcurrentDictionary<ulong, List<ClashWar>> ClashWars { get; set; }
|
||||
|
||||
private static Timer checkWarTimer { get; }
|
||||
|
||||
@ -82,11 +80,9 @@ namespace NadekoBot.Modules.ClashOfClans
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
[RequireUserPermission(GuildPermission.ManageMessages)]
|
||||
public async Task CreateWar(int size, [Remainder] string enemyClan = null)
|
||||
{
|
||||
if (!(Context.User as IGuildUser).GuildPermissions.ManageChannels)
|
||||
return;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(enemyClan))
|
||||
return;
|
||||
|
||||
|
@ -110,7 +110,7 @@ namespace NadekoBot.Modules.Gambling
|
||||
{
|
||||
var toWin = (int)Math.Round(amount * NadekoBot.BotConfig.BetflipMultiplier);
|
||||
str = Context.User.Mention + " " + GetText("flip_guess", toWin + CurrencySign);
|
||||
await CurrencyHandler.AddCurrencyAsync(Context.User, GetText("betflip_gamble"), toWin, false).ConfigureAwait(false);
|
||||
await CurrencyHandler.AddCurrencyAsync(Context.User, "Betflip Gamble", toWin, false).ConfigureAwait(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -276,7 +276,7 @@ $@"--
|
||||
{
|
||||
if (!_votes.Any())
|
||||
{
|
||||
await _channel.SendErrorAsync(GetText("acrophobia"), GetText("no_votes_cast")).ConfigureAwait(false);
|
||||
await _channel.SendErrorAsync(GetText("acrophobia"), GetText("acro_no_votes_cast")).ConfigureAwait(false);
|
||||
return;
|
||||
}
|
||||
var table = _votes.OrderByDescending(v => v.Value);
|
||||
|
@ -201,7 +201,7 @@ namespace NadekoBot.Modules.Games.Trivia
|
||||
return;
|
||||
}
|
||||
await Channel.SendConfirmAsync(GetText("trivia_game"),
|
||||
GetText("guess", guildUser.Mention, Format.Bold(CurrentQuestion.Answer))).ConfigureAwait(false);
|
||||
GetText("trivia_guess", guildUser.Mention, Format.Bold(CurrentQuestion.Answer))).ConfigureAwait(false);
|
||||
|
||||
}
|
||||
catch (Exception ex) { _log.Warn(ex); }
|
||||
|
@ -270,11 +270,6 @@ namespace NadekoBot.Modules.Music.Classes
|
||||
//aidiakapi ftw
|
||||
public static unsafe byte[] AdjustVolume(byte[] audioSamples, float volume)
|
||||
{
|
||||
Contract.Requires(audioSamples != null);
|
||||
Contract.Requires(audioSamples.Length % 2 == 0);
|
||||
Contract.Requires(volume >= 0f && volume <= 1f);
|
||||
Contract.Assert(BitConverter.IsLittleEndian);
|
||||
|
||||
if (Math.Abs(volume - 1f) < 0.0001f) return audioSamples;
|
||||
|
||||
// 16-bit precision for the multiplication
|
||||
|
@ -301,7 +301,7 @@ namespace NadekoBot.Modules.Music
|
||||
uow.GuildConfigs.For(Context.Guild.Id, set => set).DefaultMusicVolume = val / 100.0f;
|
||||
uow.Complete();
|
||||
}
|
||||
await ReplyConfirmLocalized("defvol_set").ConfigureAwait(false);
|
||||
await ReplyConfirmLocalized("defvol_set", val).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
@ -592,7 +592,7 @@ namespace NadekoBot.Modules.Music
|
||||
if (seconds == 0)
|
||||
await ReplyConfirmLocalized("max_playtime_none").ConfigureAwait(false);
|
||||
else
|
||||
await ReplyConfirmLocalized("max_playtime_set").ConfigureAwait(false);
|
||||
await ReplyConfirmLocalized("max_playtime_set", seconds).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
@ -690,7 +690,7 @@ namespace NadekoBot.Modules.Music
|
||||
return;
|
||||
}
|
||||
IUserMessage msg = null;
|
||||
try { msg = await ReplyConfirmLocalized("attempting_to_queue", Format.Bold(mpl.Songs.Count.ToString())).ConfigureAwait(false); } catch (Exception ex) { _log.Warn(ex); }
|
||||
try { msg = await Context.Channel.SendMessageAsync(GetText("attempting_to_queue", Format.Bold(mpl.Songs.Count.ToString()))).ConfigureAwait(false); } catch (Exception ex) { _log.Warn(ex); }
|
||||
foreach (var item in mpl.Songs)
|
||||
{
|
||||
var usr = (IGuildUser)Context.User;
|
||||
@ -818,7 +818,7 @@ namespace NadekoBot.Modules.Music
|
||||
MusicPlayer musicPlayer;
|
||||
if (!MusicPlayers.TryGetValue(Context.Guild.Id, out musicPlayer))
|
||||
{
|
||||
await ReplyErrorLocalized("player_none").ConfigureAwait(false);
|
||||
await ReplyErrorLocalized("no_player").ConfigureAwait(false);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ namespace NadekoBot.Modules
|
||||
LogManager.GetCurrentClassLogger().Warn(lowerModuleTypeName + "_" + key + " key is missing from " + cultureInfo + " response strings. PLEASE REPORT THIS.");
|
||||
text = NadekoBot.ResponsesResourceManager.GetString(lowerModuleTypeName + "_" + key, _usCultureInfo) ?? $"Error: dkey {lowerModuleTypeName + "_" + key} not found!";
|
||||
if (string.IsNullOrWhiteSpace(text))
|
||||
return "I cant tell if you command is executed, because there was an error printing out the response. Key '" +
|
||||
return "I can't tell you is the command executed, because there was an error printing out the response. Key '" +
|
||||
lowerModuleTypeName + "_" + key + "' " + "is missing from resources. Please report this.";
|
||||
}
|
||||
return text;
|
||||
|
@ -30,17 +30,19 @@ namespace NadekoBot.Modules.Searches
|
||||
{
|
||||
try
|
||||
{
|
||||
var headers = new Dictionary<string, string> {
|
||||
{"grant_type", "client_credentials"},
|
||||
{"client_id", "kwoth-w0ki9"},
|
||||
{"client_secret", "Qd6j4FIAi1ZK6Pc7N7V4Z"},
|
||||
};
|
||||
var headers = new Dictionary<string, string>
|
||||
{
|
||||
{"grant_type", "client_credentials"},
|
||||
{"client_id", "kwoth-w0ki9"},
|
||||
{"client_secret", "Qd6j4FIAi1ZK6Pc7N7V4Z"},
|
||||
};
|
||||
|
||||
using (var http = new HttpClient())
|
||||
{
|
||||
http.AddFakeHeaders();
|
||||
//http.AddFakeHeaders();
|
||||
http.DefaultRequestHeaders.Clear();
|
||||
var formContent = new FormUrlEncodedContent(headers);
|
||||
var response = await http.PostAsync("http://anilist.co/api/auth/access_token", formContent).ConfigureAwait(false);
|
||||
var response = await http.PostAsync("https://anilist.co/api/auth/access_token", formContent).ConfigureAwait(false);
|
||||
var stringContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
|
||||
anilistToken = JObject.Parse(stringContent)["access_token"].ToString();
|
||||
}
|
||||
|
@ -9,11 +9,11 @@ using NadekoBot.Services.Database.Models;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Discord.WebSocket;
|
||||
|
||||
namespace NadekoBot.Modules.Utility
|
||||
{
|
||||
@ -34,24 +34,18 @@ namespace NadekoBot.Modules.Utility
|
||||
private CancellationTokenSource source { get; set; }
|
||||
private CancellationToken token { get; set; }
|
||||
public Repeater Repeater { get; }
|
||||
public ITextChannel Channel { get; }
|
||||
public SocketGuild Guild { get; }
|
||||
public ITextChannel Channel { get; private set; }
|
||||
|
||||
public RepeatRunner(Repeater repeater, ITextChannel channel = null)
|
||||
{
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
Repeater = repeater;
|
||||
//if (channel == null)
|
||||
//{
|
||||
// var guild = NadekoBot.Client.GetGuild(repeater.GuildId);
|
||||
// Channel = guild.GetTextChannel(repeater.ChannelId);
|
||||
//}
|
||||
//else
|
||||
// Channel = channel;
|
||||
Channel = channel;
|
||||
|
||||
Channel = channel ?? NadekoBot.Client.GetGuild(repeater.GuildId)?.GetTextChannel(repeater.ChannelId);
|
||||
if (Channel == null)
|
||||
return;
|
||||
Task.Run(Run);
|
||||
Guild = NadekoBot.Client.GetGuild(repeater.GuildId);
|
||||
if(Guild!=null)
|
||||
Task.Run(Run);
|
||||
}
|
||||
|
||||
|
||||
@ -72,10 +66,21 @@ namespace NadekoBot.Modules.Utility
|
||||
// continue;
|
||||
|
||||
if (oldMsg != null)
|
||||
try { await oldMsg.DeleteAsync(); } catch { }
|
||||
try
|
||||
{
|
||||
await oldMsg.DeleteAsync();
|
||||
}
|
||||
catch
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
try
|
||||
{
|
||||
oldMsg = await Channel.SendMessageAsync(toSend).ConfigureAwait(false);
|
||||
if (Channel == null)
|
||||
Channel = Guild.GetTextChannel(Repeater.ChannelId);
|
||||
|
||||
if (Channel != null)
|
||||
oldMsg = await Channel.SendMessageAsync(toSend).ConfigureAwait(false);
|
||||
}
|
||||
catch (HttpException ex) when (ex.HttpCode == System.Net.HttpStatusCode.Forbidden)
|
||||
{
|
||||
@ -93,7 +98,9 @@ namespace NadekoBot.Modules.Utility
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (OperationCanceledException) { }
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
@ -109,7 +116,8 @@ namespace NadekoBot.Modules.Utility
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"{Channel.Mention} | {(int)Repeater.Interval.TotalHours}:{Repeater.Interval:mm} | {Repeater.Message.TrimTo(33)}";
|
||||
return
|
||||
$"{Channel.Mention} | {(int) Repeater.Interval.TotalHours}:{Repeater.Interval:mm} | {Repeater.Message.TrimTo(33)}";
|
||||
}
|
||||
}
|
||||
|
||||
@ -120,8 +128,9 @@ namespace NadekoBot.Modules.Utility
|
||||
await Task.Delay(5000).ConfigureAwait(false);
|
||||
Repeaters = new ConcurrentDictionary<ulong, ConcurrentQueue<RepeatRunner>>(NadekoBot.AllGuildConfigs
|
||||
.ToDictionary(gc => gc.GuildId,
|
||||
gc => new ConcurrentQueue<RepeatRunner>(gc.GuildRepeaters.Select(gr => new RepeatRunner(gr))
|
||||
.Where(gr => gr.Channel != null))));
|
||||
gc => new ConcurrentQueue<RepeatRunner>(gc.GuildRepeaters
|
||||
.Select(gr => new RepeatRunner(gr))
|
||||
.Where(x => x.Guild != null))));
|
||||
_ready = true;
|
||||
});
|
||||
}
|
||||
@ -192,7 +201,7 @@ namespace NadekoBot.Modules.Utility
|
||||
|
||||
if (Repeaters.TryUpdate(Context.Guild.Id, new ConcurrentQueue<RepeatRunner>(repeaterList), rep))
|
||||
await Context.Channel.SendConfirmAsync(GetText("message_repeater"),
|
||||
GetText("repeater_stopped" , index + 1) + $"\n\n{repeater}").ConfigureAwait(false);
|
||||
GetText("repeater_stopped", index + 1) + $"\n\n{repeater}").ConfigureAwait(false);
|
||||
}
|
||||
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
@ -228,9 +237,9 @@ namespace NadekoBot.Modules.Utility
|
||||
await uow.CompleteAsync().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
var rep = new RepeatRunner(toAdd, (ITextChannel)Context.Channel);
|
||||
var rep = new RepeatRunner(toAdd, (ITextChannel) Context.Channel);
|
||||
|
||||
Repeaters.AddOrUpdate(Context.Guild.Id, new ConcurrentQueue<RepeatRunner>(new[] { rep }), (key, old) =>
|
||||
Repeaters.AddOrUpdate(Context.Guild.Id, new ConcurrentQueue<RepeatRunner>(new[] {rep}), (key, old) =>
|
||||
{
|
||||
old.Enqueue(rep);
|
||||
return old;
|
||||
|
@ -273,7 +273,7 @@ namespace NadekoBot.Modules.Utility
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
public async Task ChannelId()
|
||||
{
|
||||
await ReplyConfirmLocalized("channelidd", "🆔", Format.Code(Context.Channel.Id.ToString()))
|
||||
await ReplyConfirmLocalized("channelid", "🆔", Format.Code(Context.Channel.Id.ToString()))
|
||||
.ConfigureAwait(false);
|
||||
}
|
||||
|
||||
@ -439,7 +439,7 @@ namespace NadekoBot.Modules.Utility
|
||||
var result = string.Join("\n", tags.Select(m => GetText("showemojis", m, m.Url)));
|
||||
|
||||
if (string.IsNullOrWhiteSpace(result))
|
||||
await ReplyErrorLocalized("emojis_none").ConfigureAwait(false);
|
||||
await ReplyErrorLocalized("showemojis_none").ConfigureAwait(false);
|
||||
else
|
||||
await Context.Channel.SendMessageAsync(result).ConfigureAwait(false);
|
||||
}
|
||||
|
2171
src/NadekoBot/Resources/CommandStrings.ja-JP.resx
Normal file
2171
src/NadekoBot/Resources/CommandStrings.ja-JP.resx
Normal file
File diff suppressed because it is too large
Load Diff
2169
src/NadekoBot/Resources/CommandStrings.nl-NL.resx
Normal file
2169
src/NadekoBot/Resources/CommandStrings.nl-NL.resx
Normal file
File diff suppressed because it is too large
Load Diff
38
src/NadekoBot/Resources/ResponseStrings.Designer.cs
generated
38
src/NadekoBot/Resources/ResponseStrings.Designer.cs
generated
@ -594,7 +594,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Bot's language is set to {0} - {0}.
|
||||
/// Looks up a localized string similar to Bot's language is set to {0} - {1}.
|
||||
/// </summary>
|
||||
public static string administration_lang_set_bot_show {
|
||||
get {
|
||||
@ -612,7 +612,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to This server's language is set to {0} - {0}.
|
||||
/// Looks up a localized string similar to This server's language is set to {0} - {1}.
|
||||
/// </summary>
|
||||
public static string administration_lang_set_show {
|
||||
get {
|
||||
@ -1443,7 +1443,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Text Channel Destroyed .
|
||||
/// Looks up a localized string similar to Text Channel Created.
|
||||
/// </summary>
|
||||
public static string administration_text_chan_created {
|
||||
get {
|
||||
@ -1650,7 +1650,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Voice Channel Destroyed.
|
||||
/// Looks up a localized string similar to Voice Channel Created.
|
||||
/// </summary>
|
||||
public static string administration_voice_chan_created {
|
||||
get {
|
||||
@ -2180,15 +2180,6 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Betflip Gamble.
|
||||
/// </summary>
|
||||
public static string gambling_betflip_gamble {
|
||||
get {
|
||||
return ResourceManager.GetString("gambling_betflip_gamble", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Better luck next time ^_^.
|
||||
/// </summary>
|
||||
@ -2235,7 +2226,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Invalid number specified. You can roll up to {0}-{1} dice at a time..
|
||||
/// Looks up a localized string similar to Invalid number specified. You can roll {0}-{1} dice at once..
|
||||
/// </summary>
|
||||
public static string gambling_dice_invalid_number {
|
||||
get {
|
||||
@ -3604,15 +3595,6 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to No music player active..
|
||||
/// </summary>
|
||||
public static string music_player_none {
|
||||
get {
|
||||
return ResourceManager.GetString("music_player_none", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Player Queue - Page {0}/{1}.
|
||||
/// </summary>
|
||||
@ -4605,7 +4587,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Your auto-translate language has been set to {from}>{to}.
|
||||
/// Looks up a localized string similar to Your auto-translate language has been set to {0}>{1}.
|
||||
/// </summary>
|
||||
public static string searches_atl_set {
|
||||
get {
|
||||
@ -4884,7 +4866,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Joes not loaded..
|
||||
/// Looks up a localized string similar to Jokes not loaded..
|
||||
/// </summary>
|
||||
public static string searches_jokes_not_loaded {
|
||||
get {
|
||||
@ -4911,7 +4893,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Lsit of {0}place tags.
|
||||
/// Looks up a localized string similar to List of {0}place tags.
|
||||
/// </summary>
|
||||
public static string searches_list_of_place_tags {
|
||||
get {
|
||||
@ -5010,7 +4992,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Failed retreiving osu signature..
|
||||
/// Looks up a localized string similar to Failed retrieving osu! signature..
|
||||
/// </summary>
|
||||
public static string searches_osu_failed {
|
||||
get {
|
||||
@ -6004,7 +5986,7 @@ namespace NadekoBot.Resources {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Page #{0} of roels for {1}.
|
||||
/// Looks up a localized string similar to Page #{0} of roles for {1}.
|
||||
/// </summary>
|
||||
public static string utility_roles_page {
|
||||
get {
|
||||
|
2191
src/NadekoBot/Resources/ResponseStrings.de-DE.resx
Normal file
2191
src/NadekoBot/Resources/ResponseStrings.de-DE.resx
Normal file
File diff suppressed because it is too large
Load Diff
2203
src/NadekoBot/Resources/ResponseStrings.fr-FR.resx
Normal file
2203
src/NadekoBot/Resources/ResponseStrings.fr-FR.resx
Normal file
File diff suppressed because it is too large
Load Diff
2203
src/NadekoBot/Resources/ResponseStrings.fr-fr.resx
Normal file
2203
src/NadekoBot/Resources/ResponseStrings.fr-fr.resx
Normal file
File diff suppressed because it is too large
Load Diff
2191
src/NadekoBot/Resources/ResponseStrings.pt-BR.resx
Normal file
2191
src/NadekoBot/Resources/ResponseStrings.pt-BR.resx
Normal file
File diff suppressed because it is too large
Load Diff
@ -480,13 +480,13 @@ Reason: {1}</value>
|
||||
<value>Bot's default locale is now {0} - {1}</value>
|
||||
</data>
|
||||
<data name="administration_lang_set_bot_show" xml:space="preserve">
|
||||
<value>Bot's language is set to {0} - {0}</value>
|
||||
<value>Bot's language is set to {0} - {1}</value>
|
||||
</data>
|
||||
<data name="administration_lang_set_fail" xml:space="preserve">
|
||||
<value>Failed setting locale. Revisit this command's help.</value>
|
||||
</data>
|
||||
<data name="administration_lang_set_show" xml:space="preserve">
|
||||
<value>This server's language is set to {0} - {0}</value>
|
||||
<value>This server's language is set to {0} - {1}</value>
|
||||
</data>
|
||||
<data name="administration_left" xml:space="preserve">
|
||||
<value>{0} has left {1}</value>
|
||||
@ -755,7 +755,7 @@ Reason: {1}</value>
|
||||
__IgnoredChannels__: {2}</value>
|
||||
</data>
|
||||
<data name="administration_text_chan_created" xml:space="preserve">
|
||||
<value>Text Channel Destroyed </value>
|
||||
<value>Text Channel Created</value>
|
||||
</data>
|
||||
<data name="administration_text_chan_destroyed" xml:space="preserve">
|
||||
<value>Text Channel Destroyed </value>
|
||||
@ -822,7 +822,7 @@ Reason: {1}</value>
|
||||
<value>{0} has been **voice unmuted**.</value>
|
||||
</data>
|
||||
<data name="administration_voice_chan_created" xml:space="preserve">
|
||||
<value>Voice Channel Destroyed</value>
|
||||
<value>Voice Channel Created</value>
|
||||
</data>
|
||||
<data name="administration_voice_chan_destroyed" xml:space="preserve">
|
||||
<value>Voice Channel Destroyed</value>
|
||||
@ -873,9 +873,6 @@ Reason: {1}</value>
|
||||
<data name="gambling_awarded" xml:space="preserve">
|
||||
<value>has awarded {0} to {1}</value>
|
||||
</data>
|
||||
<data name="gambling_betflip_gamble" xml:space="preserve">
|
||||
<value>Betflip Gamble</value>
|
||||
</data>
|
||||
<data name="gambling_better_luck" xml:space="preserve">
|
||||
<value>Better luck next time ^_^</value>
|
||||
</data>
|
||||
@ -1074,7 +1071,7 @@ Don't forget to leave your discord name or id in the message.
|
||||
<value>{0} as {1} Won the race and {2}!</value>
|
||||
</data>
|
||||
<data name="gambling_dice_invalid_number" xml:space="preserve">
|
||||
<value>Invalid number specified. You can roll up to {0}-{1} dice at a time.</value>
|
||||
<value>Invalid number specified. You can roll {0}-{1} dice at once.</value>
|
||||
</data>
|
||||
<data name="gambling_dice_rolled" xml:space="preserve">
|
||||
<value>rolled {0}</value>
|
||||
@ -1401,9 +1398,6 @@ Don't forget to leave your discord name or id in the message.
|
||||
<data name="music_paused" xml:space="preserve">
|
||||
<value>Music playback paused.</value>
|
||||
</data>
|
||||
<data name="music_player_none" xml:space="preserve">
|
||||
<value>No music player active.</value>
|
||||
</data>
|
||||
<data name="music_player_queue" xml:space="preserve">
|
||||
<value>Player Queue - Page {0}/{1}</value>
|
||||
</data>
|
||||
@ -1664,7 +1658,7 @@ Don't forget to leave your discord name or id in the message.
|
||||
<value>your auto-translate language has been removed.</value>
|
||||
</data>
|
||||
<data name="searches_atl_set" xml:space="preserve">
|
||||
<value>Your auto-translate language has been set to {from}>{to}</value>
|
||||
<value>Your auto-translate language has been set to {0}>{1}</value>
|
||||
</data>
|
||||
<data name="searches_atl_started" xml:space="preserve">
|
||||
<value>Started automatic translation of messages on this channel.</value>
|
||||
@ -1757,7 +1751,7 @@ Don't forget to leave your discord name or id in the message.
|
||||
<value>Invalid source or target language.</value>
|
||||
</data>
|
||||
<data name="searches_jokes_not_loaded" xml:space="preserve">
|
||||
<value>Joes not loaded.</value>
|
||||
<value>Jokes not loaded.</value>
|
||||
</data>
|
||||
<data name="searches_latlong" xml:space="preserve">
|
||||
<value>Lat/Long</value>
|
||||
@ -1766,7 +1760,7 @@ Don't forget to leave your discord name or id in the message.
|
||||
<value>Level</value>
|
||||
</data>
|
||||
<data name="searches_list_of_place_tags" xml:space="preserve">
|
||||
<value>Lsit of {0}place tags</value>
|
||||
<value>List of {0}place tags</value>
|
||||
<comment>Don't translate {0}place</comment>
|
||||
</data>
|
||||
<data name="searches_location" xml:space="preserve">
|
||||
@ -1800,7 +1794,7 @@ Don't forget to leave your discord name or id in the message.
|
||||
<value>An osu! API key is required.</value>
|
||||
</data>
|
||||
<data name="searches_osu_failed" xml:space="preserve">
|
||||
<value>Failed retreiving osu signature.</value>
|
||||
<value>Failed retrieving osu! signature.</value>
|
||||
</data>
|
||||
<data name="searches_over_x" xml:space="preserve">
|
||||
<value>Found over {0} images. Showing random {0}.</value>
|
||||
@ -2137,7 +2131,7 @@ OwnerID: {2}</value>
|
||||
<value>Page #{0} of all roles on this server:</value>
|
||||
</data>
|
||||
<data name="utility_roles_page" xml:space="preserve">
|
||||
<value>Page #{0} of roels for {1}</value>
|
||||
<value>Page #{0} of roles for {1}</value>
|
||||
</data>
|
||||
<data name="utility_rrc_no_colors" xml:space="preserve">
|
||||
<value>No colors are in the correct format. Use `#00ff00` for example.</value>
|
||||
|
2189
src/NadekoBot/Resources/ResponseStrings.ru-RU.resx
Normal file
2189
src/NadekoBot/Resources/ResponseStrings.ru-RU.resx
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -5,9 +5,7 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Discord;
|
||||
using NLog;
|
||||
using System.Diagnostics;
|
||||
using Discord.Commands;
|
||||
using NadekoBot.Services.Database.Models;
|
||||
using NadekoBot.Modules.Permissions;
|
||||
using Discord.Net;
|
||||
using NadekoBot.Extensions;
|
||||
@ -22,7 +20,7 @@ using NadekoBot.DataStructures;
|
||||
|
||||
namespace NadekoBot.Services
|
||||
{
|
||||
public class IGuildUserComparer : IEqualityComparer<IGuildUser>
|
||||
public class GuildUserComparer : IEqualityComparer<IGuildUser>
|
||||
{
|
||||
public bool Equals(IGuildUser x, IGuildUser y) => x.Id == y.Id;
|
||||
|
||||
@ -48,7 +46,7 @@ namespace NadekoBot.Services
|
||||
public ConcurrentDictionary<ulong, uint> UserMessagesSent { get; } = new ConcurrentDictionary<ulong, uint>();
|
||||
|
||||
public ConcurrentHashSet<ulong> UsersOnShortCooldown { get; } = new ConcurrentHashSet<ulong>();
|
||||
private Timer clearUsersOnShortCooldown { get; }
|
||||
private readonly Timer _clearUsersOnShortCooldown;
|
||||
|
||||
public CommandHandler(DiscordShardedClient client, CommandService commandService)
|
||||
{
|
||||
@ -56,7 +54,7 @@ namespace NadekoBot.Services
|
||||
_commandService = commandService;
|
||||
_log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
clearUsersOnShortCooldown = new Timer((_) =>
|
||||
_clearUsersOnShortCooldown = new Timer(_ =>
|
||||
{
|
||||
UsersOnShortCooldown.Clear();
|
||||
}, null, GlobalCommandsCooldown, GlobalCommandsCooldown);
|
||||
@ -68,7 +66,7 @@ namespace NadekoBot.Services
|
||||
await Task.Delay(5000).ConfigureAwait(false);
|
||||
ownerChannels = (await Task.WhenAll(_client.GetGuilds().SelectMany(g => g.Users)
|
||||
.Where(u => NadekoBot.Credentials.OwnerIds.Contains(u.Id))
|
||||
.Distinct(new IGuildUserComparer())
|
||||
.Distinct(new GuildUserComparer())
|
||||
.Select(async u =>
|
||||
{
|
||||
try
|
||||
@ -141,7 +139,7 @@ namespace NadekoBot.Services
|
||||
BlacklistCommands.BlacklistedChannels.Contains(usrMsg.Channel.Id) ||
|
||||
BlacklistCommands.BlacklistedUsers.Contains(usrMsg.Author.Id);
|
||||
|
||||
const float oneThousandth = 1.0f / 1000;
|
||||
private const float _oneThousandth = 1.0f / 1000;
|
||||
private Task LogSuccessfulExecution(SocketUserMessage usrMsg, ExecuteCommandResult exec, SocketTextChannel channel, int exec1, int exec2, int exec3, int total)
|
||||
{
|
||||
_log.Info("Command Executed after {4}/{5}/{6}/{7}s\n\t" +
|
||||
@ -153,10 +151,10 @@ namespace NadekoBot.Services
|
||||
(channel == null ? "PRIVATE" : channel.Guild.Name + " [" + channel.Guild.Id + "]"), // {1}
|
||||
(channel == null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]"), // {2}
|
||||
usrMsg.Content, // {3}
|
||||
exec1 * oneThousandth, // {4}
|
||||
exec2 * oneThousandth, // {5}
|
||||
exec3 * oneThousandth, // {6}
|
||||
total * oneThousandth // {7}
|
||||
exec1 * _oneThousandth, // {4}
|
||||
exec2 * _oneThousandth, // {5}
|
||||
exec3 * _oneThousandth, // {6}
|
||||
total * _oneThousandth // {7}
|
||||
);
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
@ -174,10 +172,10 @@ namespace NadekoBot.Services
|
||||
(channel == null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]"), // {2}
|
||||
usrMsg.Content,// {3}
|
||||
exec.Result.ErrorReason, // {4}
|
||||
exec1 * oneThousandth, // {5}
|
||||
exec2 * oneThousandth, // {6}
|
||||
exec3 * oneThousandth, // {7}
|
||||
total * oneThousandth // {8}
|
||||
exec1 * _oneThousandth, // {5}
|
||||
exec2 * _oneThousandth, // {6}
|
||||
exec3 * _oneThousandth, // {7}
|
||||
total * _oneThousandth // {8}
|
||||
);
|
||||
}
|
||||
|
||||
@ -429,10 +427,10 @@ namespace NadekoBot.Services
|
||||
// Bot will ignore commands which are ran more often than what specified by
|
||||
// GlobalCommandsCooldown constant (miliseconds)
|
||||
if (!UsersOnShortCooldown.Add(context.Message.Author.Id))
|
||||
return new ExecuteCommandResult(cmd, null, SearchResult.FromError(CommandError.Exception, $"You are on a global cooldown."));
|
||||
return new ExecuteCommandResult(cmd, null, SearchResult.FromError(CommandError.Exception, "You are on a global cooldown."));
|
||||
|
||||
if (CmdCdsCommands.HasCooldown(cmd, context.Guild, context.User))
|
||||
return new ExecuteCommandResult(cmd, null, SearchResult.FromError(CommandError.Exception, $"That command is on a cooldown for you."));
|
||||
return new ExecuteCommandResult(cmd, null, SearchResult.FromError(CommandError.Exception, "That command is on a cooldown for you."));
|
||||
|
||||
return new ExecuteCommandResult(cmd, null, await commands[i].ExecuteAsync(context, parseResult, dependencyMap));
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ namespace NadekoBot.Services.Impl
|
||||
private readonly DiscordShardedClient _client;
|
||||
private readonly DateTime _started;
|
||||
|
||||
public const string BotVersion = "1.2-beta";
|
||||
public const string BotVersion = "1.2";
|
||||
|
||||
public string Author => "Kwoth#2560";
|
||||
public string Library => "Discord.Net";
|
||||
|
@ -23,12 +23,12 @@
|
||||
"Google.Apis.Urlshortener.v1": "1.19.0.138",
|
||||
"Google.Apis.YouTube.v3": "1.20.0.701",
|
||||
"Google.Apis.Customsearch.v1": "1.20.0.466",
|
||||
"ImageSharp": "1.0.0-alpha2-00090",
|
||||
"ImageSharp.Processing": "1.0.0-alpha2-00078",
|
||||
"ImageSharp.Formats.Png": "1.0.0-alpha2-00086",
|
||||
"ImageSharp.Drawing": "1.0.0-alpha2-00090",
|
||||
"ImageSharp.Drawing.Paths": "1.0.0-alpha2-00040",
|
||||
//"ImageSharp.Formats.Jpeg": "1.0.0-alpha2-00090",
|
||||
"ImageSharp": "1.0.0-alpha2-*",
|
||||
"ImageSharp.Processing": "1.0.0-alpha2-*",
|
||||
"ImageSharp.Formats.Png": "1.0.0-alpha2-*",
|
||||
"ImageSharp.Formats.Jpeg": "1.0.0-alpha2-*",
|
||||
"ImageSharp.Drawing": "1.0.0-alpha2-*",
|
||||
"ImageSharp.Drawing.Paths": "1.0.0-alpha2-*",
|
||||
"Microsoft.EntityFrameworkCore": "1.1.0",
|
||||
"Microsoft.EntityFrameworkCore.Design": "1.1.0",
|
||||
"Microsoft.EntityFrameworkCore.Sqlite": "1.1.0",
|
||||
@ -44,7 +44,6 @@
|
||||
},
|
||||
"Newtonsoft.Json": "9.0.2-beta1",
|
||||
"NLog": "5.0.0-beta03",
|
||||
"System.Diagnostics.Contracts": "4.3.0",
|
||||
"System.Xml.XPath": "4.3.0",
|
||||
"Discord.Net.Commands": {
|
||||
"target": "project",
|
||||
|
Loading…
Reference in New Issue
Block a user