public async Task SetTranslateWiki(CommandContext ctx, [Description("configuring-help-translatewiki-channel")] DiscordChannel channel, [Description("configuring-help-translatewiki-value"), RemainingText] string value) { string chanId = channel.Id.ToString(); string chanPrevId = Config.GetTWChannel(ctx.Guild.Id.ToString()); string chanPrevLang = Config.GetTWLang(ctx.Guild.Id.ToString()); string lang = Config.GetLang(ctx.Guild.Id.ToString()); await ctx.TriggerTypingAsync(); // Check for return to default if (value == "-") { chanId = "-"; value = "-"; } // Check for required parameters if (value.ToString() == "") { await ctx.RespondAsync(Locale.GetMessage("configuring-required-value", lang, ctx.Command.Name, Config.GetValue("prefix"))); return; } // Set language to lowercase value = value.ToLower(); // Check if it is a valid language if (value != "-" && !Locale.IsValidLanguage(value)) { await ctx.RespondAsync(Locale.GetMessage("configuring-badvalue-lang", lang)); return; } // Do action and respond int succeedsChan = Config.SetOverride(ctx.Guild.Id.ToString(), "translatewiki-channel", chanId); int succeedsLang = Config.SetOverride(ctx.Guild.Id.ToString(), "translatewiki-lang", value); if (succeedsChan == Config.RESULT_CHANGE && succeedsLang == Config.RESULT_CHANGE) { // Different channel and language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki", lang, channel.Mention, GetLanguageInfo(value))); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_CHANGE && succeedsLang == Config.RESULT_RESET) { // Different channel, default language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki-channel", lang, channel.Mention)); TranslateWiki.Remove(chanId, chanPrevLang); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_CHANGE && succeedsLang == Config.RESULT_SAME) { // Different channel, same language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki-channel", lang, channel.Mention)); TranslateWiki.Remove(chanPrevId, chanPrevLang); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_RESET && succeedsLang == Config.RESULT_CHANGE || ( succeedsChan == Config.RESULT_SAME && (succeedsLang == Config.RESULT_RESET || succeedsLang == Config.RESULT_CHANGE) ) ) { // Same or default channel, different language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki-lang", lang, GetLanguageInfo(value))); TranslateWiki.Remove(chanId, chanPrevLang); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_RESET && succeedsLang == Config.RESULT_RESET) { // Reset both channel and language with - await ctx.RespondAsync(Locale.GetMessage("configuring-changed-reset", lang)); TranslateWiki.Remove(channel.Id.ToString(), chanPrevLang); } if (succeedsChan == Config.RESULT_STRANGE || succeedsLang == Config.RESULT_STRANGE) { // Other strange errors await ctx.RespondAsync(Locale.GetMessage("configuring-error-strange", lang)); } }
public async Task SetTranslate(CommandContext ctx, [Description("configuring-help-tw-channel")] DiscordChannel channel, [Description("configuring-help-tw-value"), RemainingText] string value) { string chanId = channel.Id.ToString(); string chanPrevId = Config.GetTWChannel(ctx.Guild.Id.ToString()); string chanPrevLang = Config.GetTWLang(ctx.Guild.Id.ToString()); string lang = Config.GetLang(ctx.Guild.Id.ToString()); // Ensure that we are in private channel if (ctx.Channel.Name != "moderators") { await ctx.RespondAsync(Locale.GetMessage("denied", lang)); return; } ; await ctx.TriggerTypingAsync(); // Check for return to default if (value == "-") { chanId = Config.GetTWChannel(); value = Config.GetTWLang(); } // Check for required parameters if (channel == null) { await ctx.RespondAsync(Locale.GetMessage("configuring-required-channel", lang, "help guildTW", Config.GetValue("prefix"))); return; } if (value.ToString() == "") { await ctx.RespondAsync(Locale.GetMessage("configuring-required-value", lang, "help guildTW", Config.GetValue("prefix"))); return; } // Do action and respond int succeedsChan = Config.SetOverride(ctx.Guild.Id.ToString(), "translatewiki-channel", chanId); int succeedsLang = Config.SetOverride(ctx.Guild.Id.ToString(), "translatewiki-lang", value); if (succeedsChan == Config.RESULT_CHANGE && succeedsLang == Config.RESULT_CHANGE) { // Different channel and language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki", lang, channel.Mention, value.ToUpper())); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_CHANGE && succeedsLang == Config.RESULT_RESET) { // Different channel, default language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki-channel", lang, channel.Mention)); TranslateWiki.Remove(chanId, chanPrevLang); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_CHANGE && succeedsLang == Config.RESULT_SAME) { // Different channel, same language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki-channel", lang, channel.Mention)); TranslateWiki.Remove(chanPrevId, value); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_RESET && succeedsLang == Config.RESULT_CHANGE || ( succeedsChan == Config.RESULT_SAME && (succeedsLang == Config.RESULT_RESET || succeedsLang == Config.RESULT_CHANGE) ) ) { // Same or default channel, different language await ctx.RespondAsync(Locale.GetMessage("configuring-changed-translatewiki-lang", lang, value.ToUpper())); TranslateWiki.Remove(chanId, chanPrevLang); TranslateWiki.Init(chanId, value); } if (succeedsChan == Config.RESULT_RESET && succeedsLang == Config.RESULT_RESET) { // Reset both channel and language with - await ctx.RespondAsync(Locale.GetMessage("configuring-changed-reset", lang)); TranslateWiki.Remove(channel.Id.ToString(), value); } if (succeedsChan == Config.RESULT_STRANGE || succeedsLang == Config.RESULT_STRANGE) { // Other strange errors await ctx.RespondAsync(Locale.GetMessage("configuring-error-strange", lang)); } }