~ani, ~mang, and @nadekobot how are you are the only things that don't work now

This commit is contained in:
Master Kwoth
2016-03-03 07:43:50 +01:00
parent 81b27988d9
commit ffb63f9e81
18 changed files with 443 additions and 429 deletions

View File

@ -17,7 +17,7 @@ using NadekoBot.Commands;
namespace NadekoBot.Modules {
internal class Conversations : DiscordModule {
private string firestr = "🔥 ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้ 🔥";
public Conversations() {
public Conversations() {
commands.Add(new CopyCommand());
commands.Add(new RequestsCommand());
}
@ -221,7 +221,8 @@ namespace NadekoBot.Modules {
.Do(async e => {
var count = 1;
int.TryParse(e.Args[0], out count);
if (count == 0)
count = 1;
if (count < 1 || count > 12) {
await e.Channel.SendMessage("Number must be between 0 and 12");
return;
@ -257,8 +258,7 @@ namespace NadekoBot.Modules {
if (invite != null) {
try {
await invite.Accept();
}
catch {
} catch {
await e.Channel.SendMessage("Failed to accept invite.");
}
await e.Channel.SendMessage("I got in!");

View File

@ -13,10 +13,10 @@ using Timer = System.Timers.Timer;
namespace NadekoBot.Modules {
internal class Music : DiscordModule {
public static ConcurrentDictionary<Server, MusicPlayer> musicPlayers = new ConcurrentDictionary<Server, MusicPlayer>();
public static ConcurrentDictionary<ulong, float> defaultMusicVolumes = new ConcurrentDictionary<ulong, float>();
public static ConcurrentDictionary<Server, MusicPlayer> MusicPlayers = new ConcurrentDictionary<Server, MusicPlayer>();
public static ConcurrentDictionary<ulong, float> DefaultMusicVolumes = new ConcurrentDictionary<ulong, float>();
private Timer setgameTimer => new Timer();
private readonly Timer setgameTimer = new Timer();
private bool setgameEnabled = false;
@ -25,8 +25,8 @@ namespace NadekoBot.Modules {
setgameTimer.Interval = 20000;
setgameTimer.Elapsed += (s, e) => {
try {
int num = musicPlayers.Where(kvp => kvp.Value.CurrentSong != null).Count();
NadekoBot.Client.SetGame($"{num} songs".SnPl(num) + $", {musicPlayers.Sum(kvp => kvp.Value.Playlist.Count())} queued");
var num = MusicPlayers.Count(kvp => kvp.Value.CurrentSong != null);
NadekoBot.Client.SetGame($"{num} songs".SnPl(num) + $", {MusicPlayers.Sum(kvp => kvp.Value.Playlist.Count())} queued");
} catch { }
};
@ -46,7 +46,7 @@ namespace NadekoBot.Modules {
.Description("Goes to the next song in the queue.")
.Do(e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer)) return;
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) return;
musicPlayer.Next();
});
@ -55,7 +55,7 @@ namespace NadekoBot.Modules {
.Description("Completely stops the music, unbinds the bot from the channel, and cleans up files.")
.Do(async e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer)) return;
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) return;
musicPlayer.Stop();
var msg = await e.Channel.SendMessage("⚠Due to music issues, NadekoBot is unable to leave voice channels at this moment.\nIf this presents inconvenience, you can use `!m mv` command to make her join your current voice channel.");
await Task.Delay(5000);
@ -69,7 +69,7 @@ namespace NadekoBot.Modules {
.Description("Pauses or Unpauses the song.")
.Do(async e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer)) return;
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) return;
musicPlayer.TogglePause();
if (musicPlayer.Paused)
await e.Channel.SendMessage("🎵`Music musicPlayer paused.`");
@ -90,11 +90,11 @@ namespace NadekoBot.Modules {
.Description("Lists up to 15 currently queued songs.")
.Do(async e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer)) {
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) {
await e.Channel.SendMessage("🎵 No active music musicPlayer.");
return;
}
string toSend = "🎵 **" + musicPlayer.Playlist.Count + "** `videos currently queued.` ";
string toSend = "🎵 **" + musicPlayer.Playlist.Count + "** `tracks currently queued.` ";
if (musicPlayer.Playlist.Count >= MusicPlayer.MaximumPlaylistSize)
toSend += "**Song queue is full!**\n";
else
@ -108,7 +108,7 @@ namespace NadekoBot.Modules {
.Description("Shows the song currently playing.")
.Do(async e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer))
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer))
return;
await e.Channel.SendMessage($"🎵`Now Playing` {musicPlayer.CurrentSong.PrettyName}");
});
@ -118,7 +118,7 @@ namespace NadekoBot.Modules {
.Parameter("val", ParameterType.Required)
.Do(async e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer))
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer))
return;
var arg = e.GetArg("val");
int volume;
@ -141,7 +141,7 @@ namespace NadekoBot.Modules {
await e.Channel.SendMessage("Volume number invalid.");
return;
}
defaultMusicVolumes.AddOrUpdate(e.Server.Id, volume / 100, (key, newval) => volume / 100);
DefaultMusicVolumes.AddOrUpdate(e.Server.Id, volume / 100, (key, newval) => volume / 100);
await e.Channel.SendMessage($"🎵 `Default volume set to {volume}%`");
});
@ -149,7 +149,7 @@ namespace NadekoBot.Modules {
.Description("Sets the music volume to 0%")
.Do(e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer))
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer))
return;
musicPlayer.SetVolume(0);
});
@ -158,7 +158,7 @@ namespace NadekoBot.Modules {
.Description("Sets the music volume to 100% (real max is actually 150%).")
.Do(e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer))
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer))
return;
musicPlayer.SetVolume(100);
});
@ -167,7 +167,7 @@ namespace NadekoBot.Modules {
.Description("Sets the music volume to 50%.")
.Do(e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer))
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer))
return;
musicPlayer.SetVolume(50);
});
@ -176,7 +176,7 @@ namespace NadekoBot.Modules {
.Description("Shuffles the current playlist.")
.Do(async e => {
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer))
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer))
return;
if (musicPlayer.Playlist.Count < 2) {
await e.Channel.SendMessage("💢 Not enough songs in order to perform the shuffle.");
@ -266,7 +266,7 @@ namespace NadekoBot.Modules {
.Do(e => {
MusicPlayer musicPlayer;
var voiceChannel = e.User.VoiceChannel;
if (voiceChannel == null || voiceChannel.Server != e.Server || !musicPlayers.TryGetValue(e.Server, out musicPlayer))
if (voiceChannel == null || voiceChannel.Server != e.Server || !MusicPlayers.TryGetValue(e.Server, out musicPlayer))
return;
musicPlayer.MoveToVoiceChannel(voiceChannel);
});
@ -277,7 +277,7 @@ namespace NadekoBot.Modules {
.Do(async e => {
var arg = e.GetArg("num");
MusicPlayer musicPlayer;
if (!musicPlayers.TryGetValue(e.Server, out musicPlayer)) {
if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) {
return;
}
if (arg?.ToLower() == "all") {
@ -306,39 +306,40 @@ namespace NadekoBot.Modules {
});
}
private async Task QueueSong(Channel TextCh, Channel VoiceCh, string query, bool silent = false, MusicType musicType = MusicType.Normal) {
if (VoiceCh == null || VoiceCh.Server != TextCh.Server) {
private async Task QueueSong(Channel textCh, Channel voiceCh, string query, bool silent = false, MusicType musicType = MusicType.Normal) {
if (voiceCh == null || voiceCh.Server != textCh.Server) {
if (!silent)
await TextCh.SendMessage("💢 You need to be in a voice channel on this server.\n If you are already in a voice channel, try rejoining.");
throw new ArgumentNullException(nameof(VoiceCh));
await textCh.SendMessage("💢 You need to be in a voice channel on this server.\n If you are already in a voice channel, try rejoining.");
throw new ArgumentNullException(nameof(voiceCh));
}
if (string.IsNullOrWhiteSpace(query) || query.Length < 3)
throw new ArgumentException("💢 Invalid query for queue song.", nameof(query));
MusicPlayer musicPlayer = null;
if (!musicPlayers.TryGetValue(TextCh.Server, out musicPlayer)) {
if (!MusicPlayers.TryGetValue(textCh.Server, out musicPlayer)) {
float? vol = null;
float throwAway;
if (defaultMusicVolumes.TryGetValue(TextCh.Server.Id, out throwAway))
if (DefaultMusicVolumes.TryGetValue(textCh.Server.Id, out throwAway))
vol = throwAway;
musicPlayer = new MusicPlayer(VoiceCh, vol) {
OnCompleted = async (song) => {
musicPlayer = new MusicPlayer(voiceCh, vol) {
OnCompleted = async song => {
try {
await TextCh.SendMessage($"🎵`Finished`{song.PrettyName}");
} catch { }
await textCh.SendMessage($"🎵`Finished`{song.PrettyName}");
}
catch {}
},
OnStarted = async (song) => {
try {
var msgTxt = $"🎵`Playing`{song.PrettyName} `Vol: {(int)(musicPlayer.Volume * 100)}%`";
await TextCh.SendMessage(msgTxt);
await textCh.SendMessage(msgTxt);
} catch { }
},
};
musicPlayers.TryAdd(TextCh.Server, musicPlayer);
MusicPlayers.TryAdd(textCh.Server, musicPlayer);
}
var resolvedSong = await Song.ResolveSong(query, musicType);
resolvedSong.MusicPlayer = musicPlayer;
if (!silent)
await TextCh.Send($"🎵`Queued`{resolvedSong.PrettyName}");
await textCh.Send($"🎵`Queued`{resolvedSong.PrettyName}");
musicPlayer.AddSong(resolvedSong);
}
}

View File

@ -7,11 +7,7 @@ using NadekoBot.Classes;
namespace NadekoBot.Modules {
internal class NSFW : DiscordModule {
private Random _r = new Random();
public NSFW() {
}
private readonly Random rng = new Random();
public override void Install(ModuleManager manager) {
manager.CreateCommands("", cgb => {
@ -22,9 +18,7 @@ namespace NadekoBot.Modules {
.Description("Shows a random NSFW hentai image from gelbooru and danbooru with a given tag. Tag is optional but preffered. (multiple tags are appended with +)\n**Usage**: ~hentai yuri+kissing")
.Parameter("tag", ParameterType.Unparsed)
.Do(async e => {
string tag = e.GetArg("tag");
if (tag == null)
tag = "";
var tag = e.GetArg("tag")?.Trim() ?? "";
await e.Channel.SendMessage(":heart: Gelbooru: " + await SearchHelper.GetGelbooruImageLink(tag));
await e.Channel.SendMessage(":heart: Danbooru: " + await SearchHelper.GetDanbooruImageLink(tag));
});
@ -32,27 +26,21 @@ namespace NadekoBot.Modules {
.Description("Shows a random hentai image from danbooru with a given tag. Tag is optional but preffered. (multiple tags are appended with +)\n**Usage**: ~danbooru yuri+kissing")
.Parameter("tag", ParameterType.Unparsed)
.Do(async e => {
string tag = e.GetArg("tag");
if (tag == null)
tag = "";
var tag = e.GetArg("tag")?.Trim() ?? "";
await e.Channel.SendMessage(await SearchHelper.GetDanbooruImageLink(tag));
});
cgb.CreateCommand("~gelbooru")
.Description("Shows a random hentai image from gelbooru with a given tag. Tag is optional but preffered. (multiple tags are appended with +)\n**Usage**: ~gelbooru yuri+kissing")
.Parameter("tag", ParameterType.Unparsed)
.Do(async e => {
string tag = e.GetArg("tag");
if (tag == null)
tag = "";
var tag = e.GetArg("tag")?.Trim() ?? "";
await e.Channel.SendMessage(await SearchHelper.GetGelbooruImageLink(tag));
});
cgb.CreateCommand("~e621")
.Description("Shows a random hentai image from e621.net with a given tag. Tag is optional but preffered. Use spaces for multiple tags.\n**Usage**: ~e621 yuri+kissing")
.Parameter("tag", ParameterType.Unparsed)
.Do(async e => {
string tag = e.GetArg("tag");
if (tag == null)
tag = "";
var tag = e.GetArg("tag")?.Trim() ?? "";
await e.Channel.SendMessage(await SearchHelper.GetE621ImageLink(tag));
});
cgb.CreateCommand("~cp")
@ -65,12 +53,23 @@ namespace NadekoBot.Modules {
.Description("Real adult content.")
.Do(async e => {
try {
var obj = JArray.Parse(await SearchHelper.GetResponseStringAsync($"http://api.oboobs.ru/boobs/{_r.Next(0, 9304)}"))[0];
var obj = JArray.Parse(await SearchHelper.GetResponseStringAsync($"http://api.oboobs.ru/boobs/{rng.Next(0, 9380)}"))[0];
await e.Channel.SendMessage($"http://media.oboobs.ru/{ obj["preview"].ToString() }");
} catch (Exception ex) {
await e.Channel.SendMessage($"💢 {ex.Message}");
}
});
cgb.CreateCommand("~butts")
.Alias("~ass","~butt")
.Description("Real adult content.")
.Do(async e => {
try {
var obj = JArray.Parse(await SearchHelper.GetResponseStringAsync($"http://api.obutts.ru/butts/{rng.Next(0, 3373)}"))[0];
await e.Channel.SendMessage($"http://media.obutts.ru/{ obj["preview"].ToString() }");
} catch (Exception ex) {
await e.Channel.SendMessage($"💢 {ex.Message}");
}
});
});
}
}

View File

@ -12,7 +12,7 @@ namespace NadekoBot.Modules {
public PermissionModule() {
//Empty for now
}
//todo word filtering/invite bans (?:discord(?:\.gg|app\.com\/invite)\/(?<id>([\w]{16}|(?:[\w]+-?){3})))
public override void Install(ModuleManager manager) {
var client = NadekoBot.Client;
manager.CreateCommands("", cgb => {
@ -51,7 +51,7 @@ namespace NadekoBot.Modules {
.Parameter("arg", ParameterType.Required)
.Do(async e => {
var arg = e.GetArg("arg");
bool val = PermissionHelper.ValidateBool(arg);
var val = PermissionHelper.ValidateBool(arg);
PermsHandler.SetVerbosity(e.Server, val);
await e.Channel.SendMessage($"Verbosity set to {val}.");
});
@ -72,7 +72,7 @@ namespace NadekoBot.Modules {
.Parameter("role", ParameterType.Unparsed)
.Do(async e => {
var arg = e.GetArg("role");
Discord.Role role = e.Server.EveryoneRole;
var role = e.Server.EveryoneRole;
if (!string.IsNullOrWhiteSpace(arg))
try {
role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
@ -95,7 +95,7 @@ namespace NadekoBot.Modules {
.Parameter("channel", ParameterType.Unparsed)
.Do(async e => {
var arg = e.GetArg("channel");
Discord.Channel channel = e.Channel;
var channel = e.Channel;
if (!string.IsNullOrWhiteSpace(arg))
try {
channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
@ -117,7 +117,7 @@ namespace NadekoBot.Modules {
.Parameter("user", ParameterType.Unparsed)
.Do(async e => {
var arg = e.GetArg("user");
Discord.User user = e.User;
var user = e.User;
if (!string.IsNullOrWhiteSpace(e.GetArg("user")))
try {
user = PermissionHelper.ValidateUser(e.Server, e.GetArg("user"));
@ -139,8 +139,8 @@ namespace NadekoBot.Modules {
.Description("Sets a module's permission at the server level.\n**Usage**: ;sm [module_name] enable")
.Do(async e => {
try {
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var module = PermissionHelper.ValidateModule(e.GetArg("module"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
PermsHandler.SetServerModulePermission(e.Server, module, state);
await e.Channel.SendMessage($"Module **{module}** has been **{(state ? "enabled" : "disabled")}** on this server.");
@ -159,8 +159,8 @@ namespace NadekoBot.Modules {
.Description("Sets a command's permission at the server level.\n**Usage**: ;sc [command_name] disable")
.Do(async e => {
try {
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var command = PermissionHelper.ValidateCommand(e.GetArg("command"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
PermsHandler.SetServerCommandPermission(e.Server, command, state);
await e.Channel.SendMessage($"Command **{command}** has been **{(state ? "enabled" : "disabled")}** on this server.");
@ -180,8 +180,8 @@ namespace NadekoBot.Modules {
.Description("Sets a module's permission at the role level.\n**Usage**: ;rm [module_name] enable [role_name]")
.Do(async e => {
try {
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var module = PermissionHelper.ValidateModule(e.GetArg("module"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
if (e.GetArg("role")?.ToLower() == "all") {
foreach (var role in e.Server.Roles) {
@ -190,7 +190,7 @@ namespace NadekoBot.Modules {
await e.Channel.SendMessage($"Module **{module}** has been **{(state ? "enabled" : "disabled")}** for **ALL** roles.");
}
else {
Discord.Role role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
var role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
PermsHandler.SetRoleModulePermission(role, module, state);
await e.Channel.SendMessage($"Module **{module}** has been **{(state ? "enabled" : "disabled")}** for **{role.Name}** role.");
@ -211,8 +211,8 @@ namespace NadekoBot.Modules {
.Description("Sets a command's permission at the role level.\n**Usage**: ;rc [command_name] disable [role_name]")
.Do(async e => {
try {
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var command = PermissionHelper.ValidateCommand(e.GetArg("command"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
if (e.GetArg("role")?.ToLower() == "all") {
foreach (var role in e.Server.Roles) {
@ -221,7 +221,7 @@ namespace NadekoBot.Modules {
await e.Channel.SendMessage($"Command **{command}** has been **{(state ? "enabled" : "disabled")}** for **ALL** roles.");
}
else {
Discord.Role role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
var role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
PermsHandler.SetRoleCommandPermission(role, command, state);
await e.Channel.SendMessage($"Command **{command}** has been **{(state ? "enabled" : "disabled")}** for **{role.Name}** role.");
@ -242,8 +242,8 @@ namespace NadekoBot.Modules {
.Description("Sets a module's permission at the channel level.\n**Usage**: ;cm [module_name] enable [channel_name]")
.Do(async e => {
try {
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var module = PermissionHelper.ValidateModule(e.GetArg("module"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
if (e.GetArg("channel")?.ToLower() == "all") {
foreach (var channel in e.Server.TextChannels) {
@ -252,7 +252,7 @@ namespace NadekoBot.Modules {
await e.Channel.SendMessage($"Module **{module}** has been **{(state ? "enabled" : "disabled")}** on **ALL** channels.");
}
else {
Discord.Channel channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
var channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
PermsHandler.SetChannelModulePermission(channel, module, state);
await e.Channel.SendMessage($"Module **{module}** has been **{(state ? "enabled" : "disabled")}** for **{channel.Name}** channel.");
@ -273,8 +273,8 @@ namespace NadekoBot.Modules {
.Description("Sets a command's permission at the channel level.\n**Usage**: ;cc [command_name] enable [channel_name]")
.Do(async e => {
try {
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var command = PermissionHelper.ValidateCommand(e.GetArg("command"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
if (e.GetArg("channel")?.ToLower() == "all") {
foreach (var channel in e.Server.TextChannels) {
@ -283,7 +283,7 @@ namespace NadekoBot.Modules {
await e.Channel.SendMessage($"Command **{command}** has been **{(state ? "enabled" : "disabled")}** on **ALL** channels.");
}
else {
Discord.Channel channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
var channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
PermsHandler.SetChannelCommandPermission(channel, command, state);
await e.Channel.SendMessage($"Command **{command}** has been **{(state ? "enabled" : "disabled")}** for **{channel.Name}** channel.");
@ -304,9 +304,9 @@ namespace NadekoBot.Modules {
.Description("Sets a module's permission at the user level.\n**Usage**: ;um [module_name] enable [user_name]")
.Do(async e => {
try {
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
Discord.User user = PermissionHelper.ValidateUser(e.Server, e.GetArg("user"));
var module = PermissionHelper.ValidateModule(e.GetArg("module"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var user = PermissionHelper.ValidateUser(e.Server, e.GetArg("user"));
PermsHandler.SetUserModulePermission(user, module, state);
await e.Channel.SendMessage($"Module **{module}** has been **{(state ? "enabled" : "disabled")}** for user **{user.Name}**.");
@ -326,9 +326,9 @@ namespace NadekoBot.Modules {
.Description("Sets a command's permission at the user level.\n**Usage**: ;uc [command_name] enable [user_name]")
.Do(async e => {
try {
string command = PermissionHelper.ValidateCommand(e.GetArg("command"));
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
Discord.User user = PermissionHelper.ValidateUser(e.Server, e.GetArg("user"));
var command = PermissionHelper.ValidateCommand(e.GetArg("command"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var user = PermissionHelper.ValidateUser(e.Server, e.GetArg("user"));
PermsHandler.SetUserCommandPermission(user, command, state);
await e.Channel.SendMessage($"Command **{command}** has been **{(state ? "enabled" : "disabled")}** for user **{user.Name}**.");
@ -346,7 +346,7 @@ namespace NadekoBot.Modules {
.Description("Sets permissions for all modules at the server level.\n**Usage**: ;asm [enable/disable]")
.Do(async e => {
try {
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
foreach (var module in NadekoBot.Client.GetService<ModuleService>().Modules) {
PermsHandler.SetServerModulePermission(e.Server, module.Name, state);
@ -367,8 +367,8 @@ namespace NadekoBot.Modules {
.Description("Sets permissions for all commands from a certain module at the server level.\n**Usage**: ;asc [module_name] [enable/disable]")
.Do(async e => {
try {
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var module = PermissionHelper.ValidateModule(e.GetArg("module"));
foreach (var command in NadekoBot.Client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
PermsHandler.SetServerCommandPermission(e.Server, command.Text, state);
@ -389,8 +389,8 @@ namespace NadekoBot.Modules {
.Description("Sets permissions for all modules at the channel level.\n**Usage**: ;acm [enable/disable] [channel_name]")
.Do(async e => {
try {
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
Discord.Channel channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
foreach (var module in NadekoBot.Client.GetService<ModuleService>().Modules) {
PermsHandler.SetChannelModulePermission(channel, module.Name, state);
}
@ -412,9 +412,9 @@ namespace NadekoBot.Modules {
.Description("Sets permissions for all commands from a certain module at the channel level.\n**Usage**: ;acc [module_name] [enable/disable] [channel_name]")
.Do(async e => {
try {
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
Discord.Channel channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var module = PermissionHelper.ValidateModule(e.GetArg("module"));
var channel = PermissionHelper.ValidateChannel(e.Server, e.GetArg("channel"));
foreach (var command in NadekoBot.Client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
PermsHandler.SetChannelCommandPermission(channel, command.Text, state);
}
@ -434,8 +434,8 @@ namespace NadekoBot.Modules {
.Description("Sets permissions for all modules at the role level.\n**Usage**: ;arm [enable/disable] [role_name]")
.Do(async e => {
try {
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
Discord.Role role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var role = PermissionHelper.ValidateRole(e.Server, e.GetArg("role"));
foreach (var module in NadekoBot.Client.GetService<ModuleService>().Modules) {
PermsHandler.SetRoleModulePermission(role, module.Name, state);
}
@ -457,9 +457,9 @@ namespace NadekoBot.Modules {
.Description("Sets permissions for all commands from a certain module at the role level.\n**Usage**: ;arc [module_name] [enable/disable] [channel_name]")
.Do(async e => {
try {
bool state = PermissionHelper.ValidateBool(e.GetArg("bool"));
string module = PermissionHelper.ValidateModule(e.GetArg("module"));
Discord.Role role = PermissionHelper.ValidateRole(e.Server, e.GetArg("channel"));
var state = PermissionHelper.ValidateBool(e.GetArg("bool"));
var module = PermissionHelper.ValidateModule(e.GetArg("module"));
var role = PermissionHelper.ValidateRole(e.Server, e.GetArg("channel"));
foreach (var command in NadekoBot.Client.GetService<CommandService>().AllCommands.Where(c => c.Category == module)) {
PermsHandler.SetRoleCommandPermission(role, command.Text, state);
}