diff --git a/src/NadekoBot/Modules/Administration/Commands/LocalizationCommands.cs b/src/NadekoBot/Modules/Administration/Commands/LocalizationCommands.cs
index bc4a0952..707d2af4 100644
--- a/src/NadekoBot/Modules/Administration/Commands/LocalizationCommands.cs
+++ b/src/NadekoBot/Modules/Administration/Commands/LocalizationCommands.cs
@@ -24,11 +24,11 @@ namespace NadekoBot.Modules.Administration
{"nl-NL", "Dutch, Netherlands"},
{"en-US", "English, United States"},
{"fr-FR", "Français, France"},
- {"de-DE", "German, Germany"},
+ {"de-DE", "Deutsch, Deutschland"},
{"he-IL", "Hebrew, Israel" },
{"it-IT", "Italiano, Italia" },
//{"ja-JP", "Japanese, Japan"},
- {"ko-KR", "Korean, South Korea" },
+ {"ko-KR", "한국어, 대한민국" },
{"nb-NO", "Norwegian (bokmål), Norway"},
{"pl-PL", "Polski, Polska" },
{"pt-BR", "Português Brasileiro, Brasil"},
diff --git a/src/NadekoBot/Modules/Administration/Commands/UserPunishCommands.cs b/src/NadekoBot/Modules/Administration/Commands/UserPunishCommands.cs
index 0f54037f..53479589 100644
--- a/src/NadekoBot/Modules/Administration/Commands/UserPunishCommands.cs
+++ b/src/NadekoBot/Modules/Administration/Commands/UserPunishCommands.cs
@@ -290,6 +290,51 @@ namespace NadekoBot.Modules.Administration
.ConfigureAwait(false);
}
+ [NadekoCommand, Usage, Description, Aliases]
+ [RequireContext(ContextType.Guild)]
+ [RequireUserPermission(GuildPermission.BanMembers)]
+ [RequireBotPermission(GuildPermission.BanMembers)]
+ public async Task Unban([Remainder]string user)
+ {
+ var bans = await Context.Guild.GetBansAsync();
+
+ var bun = bans.FirstOrDefault(x => x.User.ToString().ToLowerInvariant() == user.ToLowerInvariant());
+
+ if (bun == null)
+ {
+ await ReplyErrorLocalized("user_not_found").ConfigureAwait(false);
+ return;
+ }
+
+ await UnbanInternal(bun.User).ConfigureAwait(false);
+ }
+
+ [NadekoCommand, Usage, Description, Aliases]
+ [RequireContext(ContextType.Guild)]
+ [RequireUserPermission(GuildPermission.BanMembers)]
+ [RequireBotPermission(GuildPermission.BanMembers)]
+ public async Task Unban(ulong userId)
+ {
+ var bans = await Context.Guild.GetBansAsync();
+
+ var bun = bans.FirstOrDefault(x => x.User.Id == userId);
+
+ if (bun == null)
+ {
+ await ReplyErrorLocalized("user_not_found").ConfigureAwait(false);
+ return;
+ }
+
+ await UnbanInternal(bun.User).ConfigureAwait(false);
+ }
+
+ private async Task UnbanInternal(IUser user)
+ {
+ await Context.Guild.RemoveBanAsync(user).ConfigureAwait(false);
+
+ await ReplyConfirmLocalized("unbanned_user", Format.Bold(user.ToString())).ConfigureAwait(false);
+ }
+
[NadekoCommand, Usage, Description, Aliases]
[RequireContext(ContextType.Guild)]
[RequireUserPermission(GuildPermission.KickMembers)]
diff --git a/src/NadekoBot/Resources/CommandStrings.Designer.cs b/src/NadekoBot/Resources/CommandStrings.Designer.cs
index bba6abe1..61163a92 100644
--- a/src/NadekoBot/Resources/CommandStrings.Designer.cs
+++ b/src/NadekoBot/Resources/CommandStrings.Designer.cs
@@ -8456,6 +8456,33 @@ namespace NadekoBot.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to unban.
+ ///
+ public static string unban_cmd {
+ get {
+ return ResourceManager.GetString("unban_cmd", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Unbans a user with the provided user#discrim or id..
+ ///
+ public static string unban_desc {
+ get {
+ return ResourceManager.GetString("unban_desc", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to `{0}unban kwoth#1234` or `{0}unban 123123123`.
+ ///
+ public static string unban_usage {
+ get {
+ return ResourceManager.GetString("unban_usage", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to unclaim ucall uc.
///
diff --git a/src/NadekoBot/Resources/CommandStrings.resx b/src/NadekoBot/Resources/CommandStrings.resx
index 1f236f0a..db8b3f50 100644
--- a/src/NadekoBot/Resources/CommandStrings.resx
+++ b/src/NadekoBot/Resources/CommandStrings.resx
@@ -3240,6 +3240,15 @@
`{0}warn @b1nzy`
+
+ unban
+
+
+ Unbans a user with the provided user#discrim or id.
+
+
+ `{0}unban kwoth#1234` or `{0}unban 123123123`
+
warnclear warnc
diff --git a/src/NadekoBot/Resources/ResponseStrings.Designer.cs b/src/NadekoBot/Resources/ResponseStrings.Designer.cs
index b440fe8a..a8e6ed17 100644
--- a/src/NadekoBot/Resources/ResponseStrings.Designer.cs
+++ b/src/NadekoBot/Resources/ResponseStrings.Designer.cs
@@ -1504,6 +1504,15 @@ namespace NadekoBot.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to User {0} has been unbanned..
+ ///
+ public static string administration_unbanned_user {
+ get {
+ return ResourceManager.GetString("administration_unbanned_user", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Undeafen successful..
///
@@ -1585,6 +1594,15 @@ namespace NadekoBot.Resources {
}
}
+ ///
+ /// Looks up a localized string similar to User not found..
+ ///
+ public static string administration_user_not_found {
+ get {
+ return ResourceManager.GetString("administration_user_not_found", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to User's role added.
///
diff --git a/src/NadekoBot/Resources/ResponseStrings.resx b/src/NadekoBot/Resources/ResponseStrings.resx
index f8523242..9ef50957 100644
--- a/src/NadekoBot/Resources/ResponseStrings.resx
+++ b/src/NadekoBot/Resources/ResponseStrings.resx
@@ -2287,6 +2287,12 @@ Owner ID: {2}
Reason
+
+ User {0} has been unbanned.
+
+
+ User not found.
+
User {0} has been warned.