a few fixes due to discord.net breaking changes /s

This commit is contained in:
Kwoth 2016-08-28 04:33:09 +02:00
parent 2c7282dab1
commit 4b6ae56f5a
49 changed files with 600 additions and 586 deletions

View File

@ -1,12 +1,11 @@
using System.Threading.Tasks; //using System.Threading.Tasks;
using Discord.Commands; //using Discord.Commands;
using Discord; //using Discord;
namespace NadekoBot.Attributes { //namespace NadekoBot.Attributes {
public class OwnerOnlyAttribute : PreconditionAttribute // public class OwnerOnlyAttribute : PreconditionAttribute
{ // {
// public override Task<PreconditionResult> CheckPermissions(IUserMessage context, Command executingCommand, object moduleInstance) =>
public override Task<PreconditionResult> CheckPermissions(IMessage context, Command executingCommand, object moduleInstance) => // Task.FromResult((NadekoBot.Credentials.IsOwner(context.Author) ? PreconditionResult.FromSuccess() : PreconditionResult.FromError("Not owner")));
Task.FromResult((NadekoBot.Credentials.IsOwner(context.Author) ? PreconditionResult.FromSuccess() : PreconditionResult.FromError("Not owner"))); // }
} //}
}

View File

@ -27,9 +27,9 @@ namespace NadekoBot.Modules.Administration
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Restart(IMessage imsg) //public async Task Restart(IUserMessage umsg)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// await channel.SendMessageAsync("`Restarting in 2 seconds...`"); // await channel.SendMessageAsync("`Restarting in 2 seconds...`");
// await Task.Delay(2000); // await Task.Delay(2000);
@ -40,9 +40,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.Administrator)] [RequirePermission(GuildPermission.Administrator)]
public async Task Delmsgoncmd(IMessage imsg) public async Task Delmsgoncmd(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
{ {
@ -60,9 +60,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task Setrole(IMessage imsg, IGuildUser usr, [Remainder] IRole role) public async Task Setrole(IUserMessage umsg, IGuildUser usr, [Remainder] IRole role)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {
await usr.AddRolesAsync(role).ConfigureAwait(false); await usr.AddRolesAsync(role).ConfigureAwait(false);
@ -78,9 +78,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task Removerole(IMessage imsg, IGuildUser usr, [Remainder] IRole role) public async Task Removerole(IUserMessage umsg, IGuildUser usr, [Remainder] IRole role)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {
await usr.RemoveRolesAsync(role).ConfigureAwait(false); await usr.RemoveRolesAsync(role).ConfigureAwait(false);
@ -95,9 +95,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task RenameRole(IMessage imsg, IRole roleToEdit, string newname) public async Task RenameRole(IUserMessage umsg, IRole roleToEdit, string newname)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {
if (roleToEdit.Position > (await channel.Guild.GetCurrentUserAsync().ConfigureAwait(false)).Roles.Max(r => r.Position)) if (roleToEdit.Position > (await channel.Guild.GetCurrentUserAsync().ConfigureAwait(false)).Roles.Max(r => r.Position))
@ -117,9 +117,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task RemoveAllRoles(IMessage imsg, [Remainder] IGuildUser user) public async Task RemoveAllRoles(IUserMessage umsg, [Remainder] IGuildUser user)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {
@ -135,9 +135,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task CreateRole(IMessage imsg, [Remainder] string roleName = null) public async Task CreateRole(IUserMessage umsg, [Remainder] string roleName = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(roleName)) if (string.IsNullOrWhiteSpace(roleName))
@ -156,9 +156,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task RoleColor(IMessage imsg, params string[] args) public async Task RoleColor(IUserMessage umsg, params string[] args)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (args.Count() != 2 && args.Count() != 4) if (args.Count() != 2 && args.Count() != 4)
{ {
@ -194,9 +194,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.BanMembers)] [RequirePermission(GuildPermission.BanMembers)]
public async Task Ban(IMessage imsg, IGuildUser user) public async Task Ban(IUserMessage umsg, IGuildUser user)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var msg = ""; var msg = "";
@ -221,9 +221,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.BanMembers)] [RequirePermission(GuildPermission.BanMembers)]
public async Task Softban(IMessage imsg, IGuildUser user, [Remainder] string msg = null) public async Task Softban(IUserMessage umsg, IGuildUser user, [Remainder] string msg = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!string.IsNullOrWhiteSpace(msg)) if (!string.IsNullOrWhiteSpace(msg))
{ {
@ -246,9 +246,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Kick(IMessage imsg, IGuildUser user, [Remainder] string msg = null) public async Task Kick(IUserMessage umsg, IGuildUser user, [Remainder] string msg = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (user == null) if (user == null)
{ {
@ -275,9 +275,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.MuteMembers)] [RequirePermission(GuildPermission.MuteMembers)]
public async Task Mute(IMessage imsg, params IGuildUser[] users) public async Task Mute(IUserMessage umsg, params IGuildUser[] users)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!users.Any()) if (!users.Any())
return; return;
@ -298,9 +298,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.MuteMembers)] [RequirePermission(GuildPermission.MuteMembers)]
public async Task Unmute(IMessage imsg, params IGuildUser[] users) public async Task Unmute(IUserMessage umsg, params IGuildUser[] users)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!users.Any()) if (!users.Any())
return; return;
@ -321,9 +321,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.DeafenMembers)] [RequirePermission(GuildPermission.DeafenMembers)]
public async Task Deafen(IMessage imsg, params IGuildUser[] users) public async Task Deafen(IUserMessage umsg, params IGuildUser[] users)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!users.Any()) if (!users.Any())
return; return;
@ -344,9 +344,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.DeafenMembers)] [RequirePermission(GuildPermission.DeafenMembers)]
public async Task UnDeafen(IMessage imsg, params IGuildUser[] users) public async Task UnDeafen(IUserMessage umsg, params IGuildUser[] users)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!users.Any()) if (!users.Any())
return; return;
@ -367,18 +367,18 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageChannels)] [RequirePermission(GuildPermission.ManageChannels)]
public async Task DelVoiChanl(IMessage imsg, [Remainder] IVoiceChannel voiceChannel) public async Task DelVoiChanl(IUserMessage umsg, [Remainder] IVoiceChannel voiceChannel)
{ {
await voiceChannel.DeleteAsync().ConfigureAwait(false); await voiceChannel.DeleteAsync().ConfigureAwait(false);
await imsg.Channel.SendMessageAsync($"Removed channel **{voiceChannel.Name}**.").ConfigureAwait(false); await umsg.Channel.SendMessageAsync($"Removed channel **{voiceChannel.Name}**.").ConfigureAwait(false);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageChannels)] [RequirePermission(GuildPermission.ManageChannels)]
public async Task CreatVoiChanl(IMessage imsg, [Remainder] string channelName) public async Task CreatVoiChanl(IUserMessage umsg, [Remainder] string channelName)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
//todo actually print info about created channel //todo actually print info about created channel
var ch = await channel.Guild.CreateVoiceChannelAsync(channelName).ConfigureAwait(false); var ch = await channel.Guild.CreateVoiceChannelAsync(channelName).ConfigureAwait(false);
await channel.SendMessageAsync($"Created voice channel **{ch.Name}**, id `{ch.Id}`.").ConfigureAwait(false); await channel.SendMessageAsync($"Created voice channel **{ch.Name}**, id `{ch.Id}`.").ConfigureAwait(false);
@ -387,7 +387,7 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageChannels)] [RequirePermission(GuildPermission.ManageChannels)]
public async Task DelTxtChanl(IMessage imsg, [Remainder] ITextChannel channel) public async Task DelTxtChanl(IUserMessage umsg, [Remainder] ITextChannel channel)
{ {
await channel.DeleteAsync().ConfigureAwait(false); await channel.DeleteAsync().ConfigureAwait(false);
await channel.SendMessageAsync($"Removed text channel **{channel.Name}**, id `{channel.Id}`.").ConfigureAwait(false); await channel.SendMessageAsync($"Removed text channel **{channel.Name}**, id `{channel.Id}`.").ConfigureAwait(false);
@ -396,9 +396,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageChannels)] [RequirePermission(GuildPermission.ManageChannels)]
public async Task CreaTxtChanl(IMessage imsg, [Remainder] string channelName) public async Task CreaTxtChanl(IUserMessage umsg, [Remainder] string channelName)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
//todo actually print info about created channel //todo actually print info about created channel
var txtCh = await channel.Guild.CreateTextChannelAsync(channelName).ConfigureAwait(false); var txtCh = await channel.Guild.CreateTextChannelAsync(channelName).ConfigureAwait(false);
await channel.SendMessageAsync($"Added text channel **{txtCh.Name}**, id `{txtCh.Id}`.").ConfigureAwait(false); await channel.SendMessageAsync($"Added text channel **{txtCh.Name}**, id `{txtCh.Id}`.").ConfigureAwait(false);
@ -407,9 +407,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageChannels)] [RequirePermission(GuildPermission.ManageChannels)]
public async Task SetTopic(IMessage imsg, [Remainder] string topic = null) public async Task SetTopic(IUserMessage umsg, [Remainder] string topic = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
topic = topic ?? ""; topic = topic ?? "";
await (channel as ITextChannel).ModifyAsync(c => c.Topic = topic); await (channel as ITextChannel).ModifyAsync(c => c.Topic = topic);
await channel.SendMessageAsync(":ok: **New channel topic set.**").ConfigureAwait(false); await channel.SendMessageAsync(":ok: **New channel topic set.**").ConfigureAwait(false);
@ -418,9 +418,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageChannels)] [RequirePermission(GuildPermission.ManageChannels)]
public async Task SetChanlName(IMessage imsg, [Remainder] string name) public async Task SetChanlName(IUserMessage umsg, [Remainder] string name)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.ModifyAsync(c => c.Name = name).ConfigureAwait(false); await channel.ModifyAsync(c => c.Name = name).ConfigureAwait(false);
await channel.SendMessageAsync(":ok: **New channel name set.**").ConfigureAwait(false); await channel.SendMessageAsync(":ok: **New channel name set.**").ConfigureAwait(false);
@ -430,24 +430,24 @@ namespace NadekoBot.Modules.Administration
//delets her own messages, no perm required //delets her own messages, no perm required
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Prune(IMessage imsg) public async Task Prune(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var user = await channel.Guild.GetCurrentUserAsync(); var user = await channel.Guild.GetCurrentUserAsync();
var enumerable = (await imsg.Channel.GetMessagesAsync()).Where(x => x.Author.Id == user.Id); var enumerable = (await umsg.Channel.GetMessagesAsync()).Where(x => x.Author.Id == user.Id);
await imsg.Channel.DeleteMessagesAsync(enumerable); await umsg.Channel.DeleteMessagesAsync(enumerable);
} }
// prune x // prune x
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(ChannelPermission.ManageMessages)] [RequirePermission(ChannelPermission.ManageMessages)]
public async Task Prune(IMessage msg, int count) public async Task Prune(IUserMessage msg, int count)
{ {
var channel = msg.Channel as ITextChannel; var channel = msg.Channel as ITextChannel;
await msg.DeleteAsync(); await (msg as IUserMessage).DeleteAsync();
while (count > 0) while (count > 0)
{ {
int limit = (count < 100) ? count : 100; int limit = (count < 100) ? count : 100;
@ -462,7 +462,7 @@ namespace NadekoBot.Modules.Administration
//prune @user [x] //prune @user [x]
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Prune(IMessage msg, IGuildUser user, int count = 100) public async Task Prune(IUserMessage msg, IGuildUser user, int count = 100)
{ {
var channel = msg.Channel as ITextChannel; var channel = msg.Channel as ITextChannel;
int limit = (count < 100) ? count : 100; int limit = (count < 100) ? count : 100;
@ -472,9 +472,9 @@ namespace NadekoBot.Modules.Administration
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Die(IMessage imsg) //public async Task Die(IUserMessage umsg)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// await channel.SendMessageAsync("`Shutting down.`").ConfigureAwait(false); // await channel.SendMessageAsync("`Shutting down.`").ConfigureAwait(false);
// await Task.Delay(2000).ConfigureAwait(false); // await Task.Delay(2000).ConfigureAwait(false);
@ -484,18 +484,18 @@ namespace NadekoBot.Modules.Administration
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Setname(IMessage imsg, [Remainder] string newName = null) //public async Task Setname(IUserMessage umsg, [Remainder] string newName = null)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
//} //}
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task NewAvatar(IMessage imsg, [Remainder] string img = null) //public async Task NewAvatar(IUserMessage umsg, [Remainder] string img = null)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (string.IsNullOrWhiteSpace(img)) // if (string.IsNullOrWhiteSpace(img))
// return; // return;
@ -512,9 +512,9 @@ namespace NadekoBot.Modules.Administration
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task SetGame(IMessage imsg, [Remainder] string game = null) //public async Task SetGame(IUserMessage umsg, [Remainder] string game = null)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// game = game ?? ""; // game = game ?? "";
@ -524,9 +524,9 @@ namespace NadekoBot.Modules.Administration
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Send(IMessage imsg, string where, [Remainder] string msg = null) //public async Task Send(IUserMessage umsg, string where, [Remainder] string msg = null)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (string.IsNullOrWhiteSpace(msg)) // if (string.IsNullOrWhiteSpace(msg))
// return; // return;
@ -569,9 +569,9 @@ namespace NadekoBot.Modules.Administration
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Announce(IMessage imsg, [Remainder] string message) //public async Task Announce(IUserMessage umsg, [Remainder] string message)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// foreach (var ch in (await _client.GetGuildsAsync().ConfigureAwait(false)).Select(async g => await g.GetDefaultChannelAsync().ConfigureAwait(false))) // foreach (var ch in (await _client.GetGuildsAsync().ConfigureAwait(false)).Select(async g => await g.GetDefaultChannelAsync().ConfigureAwait(false)))
// { // {
@ -584,21 +584,21 @@ namespace NadekoBot.Modules.Administration
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task SaveChat(IMessage imsg, int cnt) //public async Task SaveChat(IUserMessage umsg, int cnt)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// ulong? lastmsgId = null; // ulong? lastmsgId = null;
// var sb = new StringBuilder(); // var sb = new StringBuilder();
// var msgs = new List<IMessage>(cnt); // var msgs = new List<IUserMessage>(cnt);
// while (cnt > 0) // while (cnt > 0)
// { // {
// var dlcnt = cnt < 100 ? cnt : 100; // var dlcnt = cnt < 100 ? cnt : 100;
// IReadOnlyCollection<IMessage> dledMsgs; // IReadOnlyCollection<IUserMessage> dledMsgs;
// if (lastmsgId == null) // if (lastmsgId == null)
// dledMsgs = await imsg.Channel.GetMessagesAsync(cnt).ConfigureAwait(false); // dledMsgs = await umsg.Channel.GetMessagesAsync(cnt).ConfigureAwait(false);
// else // else
// dledMsgs = await imsg.Channel.GetMessagesAsync(lastmsgId.Value, Direction.Before, dlcnt); // dledMsgs = await umsg.Channel.GetMessagesAsync(lastmsgId.Value, Direction.Before, dlcnt);
// if (!dledMsgs.Any()) // if (!dledMsgs.Any())
// break; // break;
@ -608,7 +608,7 @@ namespace NadekoBot.Modules.Administration
// cnt -= 100; // cnt -= 100;
// } // }
// var title = $"Chatlog-{channel.Guild.Name}/#{channel.Name}-{DateTime.Now}.txt"; // var title = $"Chatlog-{channel.Guild.Name}/#{channel.Name}-{DateTime.Now}.txt";
// await (imsg.Author as IGuildUser).SendFileAsync( // await (umsg.Author as IGuildUser).SendFileAsync(
// await JsonConvert.SerializeObject(new { Messages = msgs.Select(s => s.ToString()) }, Formatting.Indented).ToStream().ConfigureAwait(false), // await JsonConvert.SerializeObject(new { Messages = msgs.Select(s => s.ToString()) }, Formatting.Indented).ToStream().ConfigureAwait(false),
// title, title).ConfigureAwait(false); // title, title).ConfigureAwait(false);
//} //}
@ -617,11 +617,11 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.MentionEveryone)] [RequirePermission(GuildPermission.MentionEveryone)]
public async Task MentionRole(IMessage imsg, params IRole[] roles) public async Task MentionRole(IUserMessage umsg, params IRole[] roles)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
string send = $"--{imsg.Author.Mention} has invoked a mention on the following roles--"; string send = $"--{umsg.Author.Mention} has invoked a mention on the following roles--";
foreach (var role in roles) foreach (var role in roles)
{ {
send += $"\n`{role.Name}`\n"; send += $"\n`{role.Name}`\n";
@ -641,9 +641,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Donators(IMessage imsg) public async Task Donators(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
IEnumerable<Donator> donatorsOrdered; IEnumerable<Donator> donatorsOrdered;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
{ {
@ -657,9 +657,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Donadd(IMessage imsg, IUser donator, int amount) public async Task Donadd(IUserMessage umsg, IUser donator, int amount)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
Donator don; Donator don;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())

View File

@ -41,9 +41,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task AutoAssignRole(IMessage imsg, [Remainder] IRole role = null) public async Task AutoAssignRole(IUserMessage umsg, [Remainder] IRole role = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())

View File

@ -18,7 +18,7 @@
// { // {
// try // try
// { // {
// if (imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) return; // if (umsg.Author.Id == NadekoBot.Client.CurrentUser.Id) return;
// foreach (var subscriber in Subscribers) // foreach (var subscriber in Subscribers)
// { // {
// var set = subscriber.Value; // var set = subscriber.Value;
@ -26,7 +26,7 @@
// continue; // continue;
// foreach (var chan in set.Except(new[] { e.Channel })) // foreach (var chan in set.Except(new[] { e.Channel }))
// { // {
// await chan.SendMessageAsync(GetText(e.Server, e.Channel, imsg.Author, e.Message)).ConfigureAwait(false); // await chan.SendMessageAsync(GetText(e.Server, e.Channel, umsg.Author, e.Message)).ConfigureAwait(false);
// } // }
// } // }
// } // }
@ -46,9 +46,9 @@
// { // {
// var msg = chan.Messages // var msg = chan.Messages
// .FirstOrDefault(m => // .FirstOrDefault(m =>
// m.RawText == GetText(e.Server, e.Channel, imsg.Author, e.Before)); // m.RawText == GetText(e.Server, e.Channel, umsg.Author, e.Before));
// if (msg != default(Message)) // if (msg != default(Message))
// await msg.Edit(GetText(e.Server, e.Channel, imsg.Author, e.After)).ConfigureAwait(false); // await msg.Edit(GetText(e.Server, e.Channel, umsg.Author, e.After)).ConfigureAwait(false);
// } // }
// } // }
@ -75,7 +75,7 @@
// if (Subscribers.TryAdd(token, set)) // if (Subscribers.TryAdd(token, set))
// { // {
// set.Add(e.Channel); // set.Add(e.Channel);
// await imsg.Author.SendMessageAsync("This is your CSC token:" + token.ToString()).ConfigureAwait(false); // await umsg.Author.SendMessageAsync("This is your CSC token:" + token.ToString()).ConfigureAwait(false);
// } // }
// }); // });

View File

@ -23,7 +23,7 @@
// var incs = DbHandler.Instance.FindAll<Incident>(i => i.ServerId == sid && i.Read == false); // var incs = DbHandler.Instance.FindAll<Incident>(i => i.ServerId == sid && i.Read == false);
// DbHandler.Instance.Connection.UpdateAll(incs.Select(i => { i.Read = true; return i; })); // DbHandler.Instance.Connection.UpdateAll(incs.Select(i => { i.Read = true; return i; }));
// await imsg.Author.SendMessageAsync(string.Join("\n----------------------", incs.Select(i => i.Text))); // await umsg.Author.SendMessageAsync(string.Join("\n----------------------", incs.Select(i => i.Text)));
// }); // });
// cgb.CreateCommand(Module.Prefix + "listallincidents") // cgb.CreateCommand(Module.Prefix + "listallincidents")
@ -41,7 +41,7 @@
// sw.WriteLine(data); // sw.WriteLine(data);
// sw.Flush(); // sw.Flush();
// sw.BaseStream.Position = 0; // sw.BaseStream.Position = 0;
// await imsg.Author.SendFile("incidents.txt", sw.BaseStream); // await umsg.Author.SendFile("incidents.txt", sw.BaseStream);
// }); // });
// } // }
// } // }

View File

@ -36,17 +36,17 @@
// NadekoBot.Client.MessageReceived += async (s, e) => // NadekoBot.Client.MessageReceived += async (s, e) =>
// { // {
// if (e.Channel.IsPrivate || imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) // if (e.Channel.IsPrivate || umsg.Author.Id == NadekoBot.Client.CurrentUser.Id)
// return; // return;
// if (!SpecificConfigurations.Default.Of(e.Server.Id).SendPrivateMessageOnMention) return; // if (!SpecificConfigurations.Default.Of(e.Server.Id).SendPrivateMessageOnMention) return;
// try // try
// { // {
// var usr = e.Message.MentionedUsers.FirstOrDefault(u => u != imsg.Author); // var usr = e.Message.MentionedUsers.FirstOrDefault(u => u != umsg.Author);
// if (usr?.Status != UserStatus.Offline) // if (usr?.Status != UserStatus.Offline)
// return; // return;
// await channel.SendMessageAsync($"User `{usr.Name}` is offline. PM sent.").ConfigureAwait(false); // await channel.SendMessageAsync($"User `{usr.Name}` is offline. PM sent.").ConfigureAwait(false);
// await usr.SendMessageAsync( // await usr.SendMessageAsync(
// $"User `{imsg.Author.Username}` mentioned you on " + // $"User `{umsg.Author.Username}` mentioned you on " +
// $"`{e.Server.Name}` server while you were offline.\n" + // $"`{e.Server.Name}` server while you were offline.\n" +
// $"`Message:` {e.Message.Text}").ConfigureAwait(false); // $"`Message:` {e.Message.Text}").ConfigureAwait(false);
// } // }
@ -148,7 +148,7 @@
// Channel ch; // Channel ch;
// if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) // if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null)
// return; // return;
// await ch.SendMessageAsync($"`{prettyCurrentTime}`♻`User was unbanned:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); // await ch.SendMessageAsync($"`{prettyCurrentTime}`♻`User was unbanned:` **{umsg.Author.Username}** ({umsg.Author.Id})").ConfigureAwait(false);
// } // }
// catch { } // catch { }
// } // }
@ -163,7 +163,7 @@
// Channel ch; // Channel ch;
// if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) // if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null)
// return; // return;
// await ch.SendMessageAsync($"`{prettyCurrentTime}`✅`User joined:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); // await ch.SendMessageAsync($"`{prettyCurrentTime}`✅`User joined:` **{umsg.Author.Username}** ({umsg.Author.Id})").ConfigureAwait(false);
// } // }
// catch { } // catch { }
// } // }
@ -178,7 +178,7 @@
// Channel ch; // Channel ch;
// if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) // if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null)
// return; // return;
// await ch.SendMessageAsync($"`{prettyCurrentTime}`❗`User left:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); // await ch.SendMessageAsync($"`{prettyCurrentTime}`❗`User left:` **{umsg.Author.Username}** ({umsg.Author.Id})").ConfigureAwait(false);
// } // }
// catch { } // catch { }
// } // }
@ -193,7 +193,7 @@
// Channel ch; // Channel ch;
// if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) // if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null)
// return; // return;
// await ch.SendMessageAsync($"❗`{prettyCurrentTime}`❌`User banned:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); // await ch.SendMessageAsync($"❗`{prettyCurrentTime}`❌`User banned:` **{umsg.Author.Username}** ({umsg.Author.Id})").ConfigureAwait(false);
// } // }
// catch { } // catch { }
// } // }
@ -202,7 +202,7 @@
// { // {
// try // try
// { // {
// if (e.Server == null || e.Channel.IsPrivate || imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) // if (e.Server == null || e.Channel.IsPrivate || umsg.Author.Id == NadekoBot.Client.CurrentUser.Id)
// return; // return;
// var config = SpecificConfigurations.Default.Of(e.Server.Id); // var config = SpecificConfigurations.Default.Of(e.Server.Id);
// var chId = config.LogServerChannel; // var chId = config.LogServerChannel;
@ -215,13 +215,13 @@
// { // {
// await ch.SendMessageAsync( // await ch.SendMessageAsync(
// $@"🕔`{prettyCurrentTime}` **New Message** `#{e.Channel.Name}` // $@"🕔`{prettyCurrentTime}` **New Message** `#{e.Channel.Name}`
//👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false); //👤`{umsg.Author?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false);
// } // }
// else // else
// { // {
// await ch.SendMessageAsync( // await ch.SendMessageAsync(
// $@"🕔`{prettyCurrentTime}` **File Uploaded** `#{e.Channel.Name}` // $@"🕔`{prettyCurrentTime}` **File Uploaded** `#{e.Channel.Name}`
//👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false); //👤`{umsg.Author?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false);
// } // }
// } // }
@ -231,7 +231,7 @@
// { // {
// try // try
// { // {
// if (e.Server == null || e.Channel.IsPrivate || imsg.Author?.Id == NadekoBot.Client.CurrentUser.Id) // if (e.Server == null || e.Channel.IsPrivate || umsg.Author?.Id == NadekoBot.Client.CurrentUser.Id)
// return; // return;
// var config = SpecificConfigurations.Default.Of(e.Server.Id); // var config = SpecificConfigurations.Default.Of(e.Server.Id);
// var chId = config.LogServerChannel; // var chId = config.LogServerChannel;
@ -244,13 +244,13 @@
// { // {
// await ch.SendMessageAsync( // await ch.SendMessageAsync(
// $@"🕔`{prettyCurrentTime}` **Message** 🚮 `#{e.Channel.Name}` // $@"🕔`{prettyCurrentTime}` **Message** 🚮 `#{e.Channel.Name}`
//👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false); //👤`{umsg.Author?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false);
// } // }
// else // else
// { // {
// await ch.SendMessageAsync( // await ch.SendMessageAsync(
// $@"🕔`{prettyCurrentTime}` **File Deleted** `#{e.Channel.Name}` // $@"🕔`{prettyCurrentTime}` **File Deleted** `#{e.Channel.Name}`
//👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false); //👤`{umsg.Author?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false);
// } // }
// } // }
// catch { } // catch { }
@ -259,7 +259,7 @@
// { // {
// try // try
// { // {
// if (e.Server == null || e.Channel.IsPrivate || imsg.Author?.Id == NadekoBot.Client.CurrentUser.Id) // if (e.Server == null || e.Channel.IsPrivate || umsg.Author?.Id == NadekoBot.Client.CurrentUser.Id)
// return; // return;
// var config = SpecificConfigurations.Default.Of(e.Server.Id); // var config = SpecificConfigurations.Default.Of(e.Server.Id);
// var chId = config.LogServerChannel; // var chId = config.LogServerChannel;
@ -270,7 +270,7 @@
// return; // return;
// await ch.SendMessageAsync( // await ch.SendMessageAsync(
// $@"🕔`{prettyCurrentTime}` **Message** 📝 `#{e.Channel.Name}` // $@"🕔`{prettyCurrentTime}` **Message** 📝 `#{e.Channel.Name}`
//👤`{imsg.Author?.ToString() ?? ("NULL")}` //👤`{umsg.Author?.ToString() ?? ("NULL")}`
// `Old:` {e.Before.Text.Unmention()} // `Old:` {e.Before.Text.Unmention()}
// `New:` {e.After.Text.Unmention()}").ConfigureAwait(false); // `New:` {e.After.Text.Unmention()}").ConfigureAwait(false);
// } // }
@ -466,19 +466,19 @@
// return; // return;
// } // }
// if (imsg.Author.VoiceChannel == null) // if (umsg.Author.VoiceChannel == null)
// { // {
// await channel.SendMessageAsync("💢 You are not in a voice channel right now. If you are, please rejoin it.").ConfigureAwait(false); // await channel.SendMessageAsync("💢 You are not in a voice channel right now. If you are, please rejoin it.").ConfigureAwait(false);
// return; // return;
// } // }
// ulong throwaway; // ulong throwaway;
// if (!config.VoiceChannelLog.TryRemove(imsg.Author.VoiceChannel.Id, out throwaway)) // if (!config.VoiceChannelLog.TryRemove(umsg.Author.VoiceChannel.Id, out throwaway))
// { // {
// config.VoiceChannelLog.TryAdd(imsg.Author.VoiceChannel.Id, e.Channel.Id); // config.VoiceChannelLog.TryAdd(umsg.Author.VoiceChannel.Id, e.Channel.Id);
// await channel.SendMessageAsync($"`Logging user updates for` {imsg.Author.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false); // await channel.SendMessageAsync($"`Logging user updates for` {umsg.Author.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false);
// } // }
// else // else
// await channel.SendMessageAsync($"`Stopped logging user updates for` {imsg.Author.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false); // await channel.SendMessageAsync($"`Stopped logging user updates for` {umsg.Author.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false);
// }); // });
// } // }
// } // }

View File

@ -88,9 +88,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task RotatePlaying(IMessage imsg) public async Task RotatePlaying(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
bool status; bool status;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -108,9 +108,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task AddPlaying(IMessage imsg, [Remainder] string status) public async Task AddPlaying(IUserMessage umsg, [Remainder] string status)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
{ {
@ -124,9 +124,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ListPlaying(IMessage imsg) public async Task ListPlaying(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
List<PlayingStatus> statuses; List<PlayingStatus> statuses;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -139,16 +139,16 @@ namespace NadekoBot.Modules.Administration
else else
{ {
var i = 1; var i = 1;
await channel.SendMessageAsync($"{imsg.Author.Mention} `Here is a list of rotating statuses:`\n\n\t" + string.Join("\n\t", statuses.Select(rs => $"`{i++}.` {rs.Status}"))); await channel.SendMessageAsync($"{umsg.Author.Mention} `Here is a list of rotating statuses:`\n\n\t" + string.Join("\n\t", statuses.Select(rs => $"`{i++}.` {rs.Status}")));
} }
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task RemovePlaying(IMessage imsg, int index) public async Task RemovePlaying(IUserMessage umsg, int index)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
index -= 1; index -= 1;
string msg = ""; string msg = "";

View File

@ -25,36 +25,37 @@ namespace NadekoBot.Modules.Administration
this._client = NadekoBot.Client; this._client = NadekoBot.Client;
_client.MessageReceived += async (imsg) => _client.MessageReceived += async (umsg) =>
{ {
var channel = imsg.Channel as ITextChannel; var usrMsg = umsg as IUserMessage;
var channel = usrMsg.Channel as ITextChannel;
if (channel == null || await imsg.IsAuthor()) if (channel == null || await usrMsg.IsAuthor())
return; return;
ConcurrentDictionary<ulong, DateTime> userTimePair; ConcurrentDictionary<ulong, DateTime> userTimePair;
if (!RatelimitingChannels.TryGetValue(channel.Id, out userTimePair)) return; if (!RatelimitingChannels.TryGetValue(channel.Id, out userTimePair)) return;
DateTime lastMessageTime; DateTime lastMessageTime;
if (userTimePair.TryGetValue(imsg.Author.Id, out lastMessageTime)) if (userTimePair.TryGetValue(usrMsg.Author.Id, out lastMessageTime))
{ {
if (DateTime.Now - lastMessageTime < ratelimitTime) if (DateTime.Now - lastMessageTime < ratelimitTime)
{ {
try try
{ {
await imsg.DeleteAsync().ConfigureAwait(false); await usrMsg.DeleteAsync().ConfigureAwait(false);
} }
catch { } catch { }
return; return;
} }
} }
userTimePair.AddOrUpdate(imsg.Author.Id, id => DateTime.Now, (id, dt) => DateTime.Now); userTimePair.AddOrUpdate(usrMsg.Author.Id, id => DateTime.Now, (id, dt) => DateTime.Now);
}; };
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Slowmode(IMessage imsg) public async Task Slowmode(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
ConcurrentDictionary<ulong, DateTime> throwaway; ConcurrentDictionary<ulong, DateTime> throwaway;
if (RatelimitingChannels.TryRemove(channel.Id, out throwaway)) if (RatelimitingChannels.TryRemove(channel.Id, out throwaway))

View File

@ -22,9 +22,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task Asar(IMessage imsg, [Remainder] IRole role) public async Task Asar(IUserMessage umsg, [Remainder] IRole role)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
IEnumerable<SelfAssignedRole> roles; IEnumerable<SelfAssignedRole> roles;
@ -52,9 +52,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task Rsar(IMessage imsg, [Remainder] IRole role) public async Task Rsar(IUserMessage umsg, [Remainder] IRole role)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
bool success; bool success;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -72,9 +72,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Lsar(IMessage imsg) public async Task Lsar(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var toRemove = new HashSet<SelfAssignedRole>(); var toRemove = new HashSet<SelfAssignedRole>();
var removeMsg = new StringBuilder(); var removeMsg = new StringBuilder();
@ -108,9 +108,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageRoles)] [RequirePermission(GuildPermission.ManageRoles)]
public async Task Tesar(IMessage imsg) public async Task Tesar(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
bool areExclusive; bool areExclusive;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -126,10 +126,11 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Iam(IMessage imsg, [Remainder] IRole role) public async Task Iam(IUserMessage umsg, [Remainder] IRole role)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var guildUser = (IGuildUser)imsg.Author; var guildUser = (IGuildUser)umsg.Author;
var usrMsg = (IUserMessage)umsg;
GuildConfig conf; GuildConfig conf;
IEnumerable<SelfAssignedRole> roles; IEnumerable<SelfAssignedRole> roles;
@ -176,17 +177,17 @@ namespace NadekoBot.Modules.Administration
{ {
await Task.Delay(3000).ConfigureAwait(false); await Task.Delay(3000).ConfigureAwait(false);
try { await msg.DeleteAsync().ConfigureAwait(false); } catch { } // if 502 or something, i don't want bot crashing try { await msg.DeleteAsync().ConfigureAwait(false); } catch { } // if 502 or something, i don't want bot crashing
try { await imsg.DeleteAsync().ConfigureAwait(false); } catch { } try { await usrMsg.DeleteAsync().ConfigureAwait(false); } catch { }
}); });
} }
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Iamnot(IMessage imsg, [Remainder] IRole role) public async Task Iamnot(IUserMessage umsg, [Remainder] IRole role)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var guildUser = (IGuildUser)imsg.Author; var guildUser = (IGuildUser)umsg.Author;
GuildConfig conf; GuildConfig conf;
IEnumerable<SelfAssignedRole> roles; IEnumerable<SelfAssignedRole> roles;
@ -223,7 +224,7 @@ namespace NadekoBot.Modules.Administration
{ {
await Task.Delay(3000).ConfigureAwait(false); await Task.Delay(3000).ConfigureAwait(false);
try { await msg.DeleteAsync().ConfigureAwait(false); } catch { } // if 502 or something, i don't want bot crashing try { await msg.DeleteAsync().ConfigureAwait(false); } catch { } // if 502 or something, i don't want bot crashing
try { await imsg.DeleteAsync().ConfigureAwait(false); } catch { } try { await umsg.DeleteAsync().ConfigureAwait(false); } catch { }
}); });
} }
} }

View File

@ -22,9 +22,9 @@
// [LocalizedCommand, LocalizedDescription, LocalizedSummary] // [LocalizedCommand, LocalizedDescription, LocalizedSummary]
// [RequireContext(ContextType.Guild)] // [RequireContext(ContextType.Guild)]
// public async Task Leave(IMessage imsg, [Remainder] string guildStr) // public async Task Leave(IUserMessage umsg, [Remainder] string guildStr)
// { // {
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// guildStr = guildStr.ToUpperInvariant(); // guildStr = guildStr.ToUpperInvariant();
// var server = _client.GetGuilds().FirstOrDefault(g => g.Id.ToString() == guildStr) ?? _client.GetGuilds().FirstOrDefault(g => g.Name.ToUpperInvariant() == guildStr); // var server = _client.GetGuilds().FirstOrDefault(g => g.Id.ToString() == guildStr) ?? _client.GetGuilds().FirstOrDefault(g => g.Name.ToUpperInvariant() == guildStr);

View File

@ -109,9 +109,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task GreetDel(IMessage imsg) public async Task GreetDel(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -131,9 +131,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task Greet(IMessage imsg) public async Task Greet(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -154,9 +154,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task GreetMsg(IMessage imsg, [Remainder] string text) public async Task GreetMsg(IUserMessage umsg, [Remainder] string text)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -183,9 +183,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task GreetDm(IMessage imsg) public async Task GreetDm(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -205,9 +205,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task GreetDmMsg(IMessage imsg, [Remainder] string text) public async Task GreetDmMsg(IUserMessage umsg, [Remainder] string text)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -234,9 +234,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task Bye(IMessage imsg) public async Task Bye(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -257,9 +257,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task ByeMsg(IMessage imsg, [Remainder] string text) public async Task ByeMsg(IUserMessage umsg, [Remainder] string text)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())
@ -286,9 +286,9 @@ namespace NadekoBot.Modules.Administration
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
[RequirePermission(GuildPermission.ManageGuild)] [RequirePermission(GuildPermission.ManageGuild)]
public async Task ByeDel(IMessage imsg) public async Task ByeDel(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
GuildConfig conf; GuildConfig conf;
using (var uow = DbHandler.UnitOfWork()) using (var uow = DbHandler.UnitOfWork())

View File

@ -57,11 +57,11 @@ namespace NadekoBot.Modules.ClashOfClans
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task CreateWar(IMessage imsg, int size, [Remainder] string enemyClan = null) public async Task CreateWar(IUserMessage umsg, int size, [Remainder] string enemyClan = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!(imsg.Author as IGuildUser).GuildPermissions.ManageChannels) if (!(umsg.Author as IGuildUser).GuildPermissions.ManageChannels)
return; return;
if (string.IsNullOrWhiteSpace(enemyClan)) if (string.IsNullOrWhiteSpace(enemyClan))
@ -81,7 +81,7 @@ namespace NadekoBot.Modules.ClashOfClans
} }
var cw = await CreateWar(enemyClan, size, channel.Guild.Id, imsg.Channel.Id); var cw = await CreateWar(enemyClan, size, channel.Guild.Id, umsg.Channel.Id);
//cw.Start(); //cw.Start();
wars.Add(cw); wars.Add(cw);
@ -90,14 +90,14 @@ namespace NadekoBot.Modules.ClashOfClans
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task StartWar(IMessage imsg, [Remainder] string number = null) public async Task StartWar(IUserMessage umsg, [Remainder] string number = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
int num = 0; int num = 0;
int.TryParse(number, out num); int.TryParse(number, out num);
var warsInfo = GetWarInfo(imsg, num); var warsInfo = GetWarInfo(umsg, num);
if (warsInfo == null) if (warsInfo == null)
{ {
await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false); await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false);
@ -118,9 +118,9 @@ namespace NadekoBot.Modules.ClashOfClans
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ListWar(IMessage imsg, [Remainder] string number = null) public async Task ListWar(IUserMessage umsg, [Remainder] string number = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
// if number is null, print all wars in a short way // if number is null, print all wars in a short way
if (string.IsNullOrWhiteSpace(number)) if (string.IsNullOrWhiteSpace(number))
@ -150,7 +150,7 @@ namespace NadekoBot.Modules.ClashOfClans
var num = 0; var num = 0;
int.TryParse(number, out num); int.TryParse(number, out num);
//if number is not null, print the war needed //if number is not null, print the war needed
var warsInfo = GetWarInfo(imsg, num); var warsInfo = GetWarInfo(umsg, num);
if (warsInfo == null) if (warsInfo == null)
{ {
await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false); await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false);
@ -161,10 +161,10 @@ namespace NadekoBot.Modules.ClashOfClans
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Claim(IMessage imsg, int number, int baseNumber, [Remainder] string other_name = null) public async Task Claim(IUserMessage umsg, int number, int baseNumber, [Remainder] string other_name = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var warsInfo = GetWarInfo(imsg, number); var warsInfo = GetWarInfo(umsg, number);
if (warsInfo == null || warsInfo.Item1.Count == 0) if (warsInfo == null || warsInfo.Item1.Count == 0)
{ {
await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false); await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false);
@ -172,7 +172,7 @@ namespace NadekoBot.Modules.ClashOfClans
} }
var usr = var usr =
string.IsNullOrWhiteSpace(other_name) ? string.IsNullOrWhiteSpace(other_name) ?
imsg.Author.Username : umsg.Author.Username :
other_name; other_name;
try try
{ {
@ -189,35 +189,35 @@ namespace NadekoBot.Modules.ClashOfClans
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ClaimFinish1(IMessage imsg, int number, int baseNumber, [Remainder] string other_name = null) public async Task ClaimFinish1(IUserMessage umsg, int number, int baseNumber, [Remainder] string other_name = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await FinishClaim(imsg, number, baseNumber, other_name, 1); await FinishClaim(umsg, number, baseNumber, other_name, 1);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ClaimFinish2(IMessage imsg, int number, int baseNumber, [Remainder] string other_name = null) public async Task ClaimFinish2(IUserMessage umsg, int number, int baseNumber, [Remainder] string other_name = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await FinishClaim(imsg, number, baseNumber, other_name, 2); await FinishClaim(umsg, number, baseNumber, other_name, 2);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ClaimFinish(IMessage imsg, int number, int baseNumber, [Remainder] string other_name = null) public async Task ClaimFinish(IUserMessage umsg, int number, int baseNumber, [Remainder] string other_name = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await FinishClaim(imsg, number, baseNumber, other_name); await FinishClaim(umsg, number, baseNumber, other_name);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task EndWar(IMessage imsg, int number) public async Task EndWar(IUserMessage umsg, int number)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var warsInfo = GetWarInfo(imsg,number); var warsInfo = GetWarInfo(umsg,number);
if (warsInfo == null) if (warsInfo == null)
{ {
await channel.SendMessageAsync("💢🔰 That war does not exist.").ConfigureAwait(false); await channel.SendMessageAsync("💢🔰 That war does not exist.").ConfigureAwait(false);
@ -234,11 +234,11 @@ namespace NadekoBot.Modules.ClashOfClans
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Unclaim(IMessage imsg, int number, [Remainder] string otherName = null) public async Task Unclaim(IUserMessage umsg, int number, [Remainder] string otherName = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var warsInfo = GetWarInfo(imsg, number); var warsInfo = GetWarInfo(umsg, number);
if (warsInfo == null || warsInfo.Item1.Count == 0) if (warsInfo == null || warsInfo.Item1.Count == 0)
{ {
await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false); await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false);
@ -246,7 +246,7 @@ namespace NadekoBot.Modules.ClashOfClans
} }
var usr = var usr =
string.IsNullOrWhiteSpace(otherName) ? string.IsNullOrWhiteSpace(otherName) ?
imsg.Author.Username : umsg.Author.Username :
otherName; otherName;
try try
{ {
@ -261,10 +261,10 @@ namespace NadekoBot.Modules.ClashOfClans
} }
} }
private async Task FinishClaim(IMessage imsg, int number, int baseNumber, [Remainder] string other_name, int stars = 3) private async Task FinishClaim(IUserMessage umsg, int number, int baseNumber, [Remainder] string other_name, int stars = 3)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var warInfo = GetWarInfo(imsg, number); var warInfo = GetWarInfo(umsg, number);
if (warInfo == null || warInfo.Item1.Count == 0) if (warInfo == null || warInfo.Item1.Count == 0)
{ {
await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false); await channel.SendMessageAsync("💢🔰 **That war does not exist.**").ConfigureAwait(false);
@ -272,7 +272,7 @@ namespace NadekoBot.Modules.ClashOfClans
} }
var usr = var usr =
string.IsNullOrWhiteSpace(other_name) ? string.IsNullOrWhiteSpace(other_name) ?
imsg.Author.Username : umsg.Author.Username :
other_name; other_name;
var war = warInfo.Item1[warInfo.Item2]; var war = warInfo.Item1[warInfo.Item2];
@ -280,7 +280,7 @@ namespace NadekoBot.Modules.ClashOfClans
{ {
var baseNum = war.FinishClaim(usr, stars); var baseNum = war.FinishClaim(usr, stars);
SaveWar(war); SaveWar(war);
await channel.SendMessageAsync($"❗🔰{imsg.Author.Mention} **DESTROYED** a base #{baseNum + 1} in a war against {war.ShortPrint()}").ConfigureAwait(false); await channel.SendMessageAsync($"❗🔰{umsg.Author.Mention} **DESTROYED** a base #{baseNum + 1} in a war against {war.ShortPrint()}").ConfigureAwait(false);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -288,9 +288,9 @@ namespace NadekoBot.Modules.ClashOfClans
} }
} }
private static Tuple<List<ClashWar>, int> GetWarInfo(IMessage imsg, int num) private static Tuple<List<ClashWar>, int> GetWarInfo(IUserMessage umsg, int num)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
//check if there are any wars //check if there are any wars
List<ClashWar> wars = null; List<ClashWar> wars = null;
ClashWars.TryGetValue(channel.Guild.Id, out wars); ClashWars.TryGetValue(channel.Guild.Id, out wars);

View File

@ -22,9 +22,9 @@ namespace NadekoBot.Modules.Gambling
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Race(IMessage imsg) public async Task Race(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var ar = new AnimalRace(channel.Guild.Id, channel); var ar = new AnimalRace(channel.Guild.Id, channel);
@ -34,24 +34,24 @@ namespace NadekoBot.Modules.Gambling
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task JoinRace(IMessage imsg, int amount = 0) public async Task JoinRace(IUserMessage umsg, int amount = 0)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (amount < 0) if (amount < 0)
amount = 0; amount = 0;
//todo DB //todo DB
//var userFlowers = Gambling.GetUserFlowers(imsg.Author.Id); //var userFlowers = Gambling.GetUserFlowers(umsg.Author.Id);
//if (userFlowers < amount) //if (userFlowers < amount)
//{ //{
// await channel.SendMessageAsync($"{imsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false);
// return; // return;
//} //}
//if (amount > 0) //if (amount > 0)
// await FlowersHandler.RemoveFlowers(imsg.Author, "BetRace", (int)amount, true).ConfigureAwait(false); // await FlowersHandler.RemoveFlowers(umsg.Author, "BetRace", (int)amount, true).ConfigureAwait(false);
AnimalRace ar; AnimalRace ar;
if (!AnimalRaces.TryGetValue(channel.Guild.Id, out ar)) if (!AnimalRaces.TryGetValue(channel.Guild.Id, out ar))
@ -59,7 +59,7 @@ namespace NadekoBot.Modules.Gambling
await channel.SendMessageAsync("No race exists on this server"); await channel.SendMessageAsync("No race exists on this server");
return; return;
} }
await ar.JoinRace(imsg.Author as IGuildUser, amount); await ar.JoinRace(umsg.Author as IGuildUser, amount);
} }
public class AnimalRace public class AnimalRace
@ -139,7 +139,7 @@ namespace NadekoBot.Modules.Gambling
{ {
var rng = new Random(); var rng = new Random();
Participant winner = null; Participant winner = null;
IMessage msg = null; IUserMessage msg = null;
int place = 1; int place = 1;
try try
{ {
@ -204,7 +204,10 @@ namespace NadekoBot.Modules.Gambling
private async Task Client_MessageReceived(IMessage imsg) private async Task Client_MessageReceived(IMessage imsg)
{ {
if (await imsg.IsAuthor() || !(imsg.Channel is ITextChannel) || imsg.Channel != raceChannel) var msg = imsg as IUserMessage;
if (msg == null)
return;
if (await msg.IsAuthor() || !(imsg.Channel is ITextChannel) || imsg.Channel != raceChannel)
return; return;
messagesSinceGameStarted++; messagesSinceGameStarted++;
} }

View File

@ -16,16 +16,16 @@ namespace NadekoBot.Modules.Gambling
////todo drawing ////todo drawing
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public Task Roll(IMessage imsg, [Remainder] string arg = null) => //public Task Roll(IUserMessage umsg, [Remainder] string arg = null) =>
// InternalRoll(imsg, arg, true); // InternalRoll(umsg, arg, true);
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public Task Rolluo(IMessage imsg, [Remainder] string arg = null) => //public Task Rolluo(IUserMessage umsg, [Remainder] string arg = null) =>
// InternalRoll(imsg, arg, false); // InternalRoll(umsg, arg, false);
//private async Task InternalRoll(IMessage imsg, string arg, bool ordered) { //private async Task InternalRoll(IUserMessage umsg, string arg, bool ordered) {
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// var r = new Random(); // var r = new Random();
// if (string.IsNullOrWhiteSpace(arg)) // if (string.IsNullOrWhiteSpace(arg))
// { // {
@ -107,9 +107,9 @@ namespace NadekoBot.Modules.Gambling
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task NRoll(IMessage imsg, [Remainder] string range) public async Task NRoll(IUserMessage umsg, [Remainder] string range)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
@ -130,7 +130,7 @@ namespace NadekoBot.Modules.Gambling
rolled = new Random().Next(0, int.Parse(range) + 1); rolled = new Random().Next(0, int.Parse(range) + 1);
} }
await channel.SendMessageAsync($"{imsg.Author.Mention} rolled **{rolled}**.").ConfigureAwait(false); await channel.SendMessageAsync($"{umsg.Author.Mention} rolled **{rolled}**.").ConfigureAwait(false);
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -80,7 +80,7 @@
// await e.Channel.SendFile(images.Count + " cards.jpg", bitmap.ToStream()).ConfigureAwait(false); // await e.Channel.SendFile(images.Count + " cards.jpg", bitmap.ToStream()).ConfigureAwait(false);
// if (cardObjects.Count == 5) // if (cardObjects.Count == 5)
// { // {
// await channel.SendMessageAsync($"{imsg.Author.Mention} `{Cards.GetHandValue(cardObjects)}`").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} `{Cards.GetHandValue(cardObjects)}`").ConfigureAwait(false);
// } // }
// } // }
// catch (Exception ex) // catch (Exception ex)

View File

@ -44,15 +44,15 @@
// if (!int.TryParse(amountstr, out amount) || amount < 1) // if (!int.TryParse(amountstr, out amount) || amount < 1)
// return; // return;
// var userFlowers = Gambling.GetUserFlowers(imsg.Author.Id); // var userFlowers = Gambling.GetUserFlowers(umsg.Author.Id);
// if (userFlowers < amount) // if (userFlowers < amount)
// { // {
// await channel.SendMessageAsync($"{imsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false);
// return; // return;
// } // }
// await FlowersHandler.RemoveFlowers(imsg.Author, "Betflip Gamble", (int)amount, true).ConfigureAwait(false); // await FlowersHandler.RemoveFlowers(umsg.Author, "Betflip Gamble", (int)amount, true).ConfigureAwait(false);
// //heads = true // //heads = true
// //tails = false // //tails = false
@ -69,12 +69,12 @@
// string str; // string str;
// if (guess == result) // if (guess == result)
// { // {
// str = $"{imsg.Author.Mention}`You guessed it!` You won {amount * 2}{NadekoBot.Config.CurrencySign}"; // str = $"{umsg.Author.Mention}`You guessed it!` You won {amount * 2}{NadekoBot.Config.CurrencySign}";
// await FlowersHandler.AddFlowersAsync(imsg.Author, "Betflip Gamble", amount * 2, true).ConfigureAwait(false); // await FlowersHandler.AddFlowersAsync(umsg.Author, "Betflip Gamble", amount * 2, true).ConfigureAwait(false);
// } // }
// else // else
// str = $"{imsg.Author.Mention}`More luck next time.`"; // str = $"{umsg.Author.Mention}`More luck next time.`";
// await channel.SendMessageAsync(str).ConfigureAwait(false); // await channel.SendMessageAsync(str).ConfigureAwait(false);
// }; // };

View File

@ -35,9 +35,9 @@ namespace NadekoBot.Modules.Gambling
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Raffle(IMessage imsg, [Remainder] IRole role = null) public async Task Raffle(IUserMessage umsg, [Remainder] IRole role = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
role = role ?? channel.Guild.EveryoneRole; role = role ?? channel.Guild.EveryoneRole;
@ -51,11 +51,11 @@ namespace NadekoBot.Modules.Gambling
////todo DB ////todo DB
//[LocalizedCommand("$$$"), LocalizedDescription("$$$"), LocalizedSummary("$$$")] //[LocalizedCommand("$$$"), LocalizedDescription("$$$"), LocalizedSummary("$$$")]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Cash(IMessage imsg, [Remainder] string arg) //public async Task Cash(IUserMessage umsg, [Remainder] string arg)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// var usr = e.Message.MentionedUsers.FirstOrDefault() ?? imsg.Author; // var usr = e.Message.MentionedUsers.FirstOrDefault() ?? umsg.Author;
// var pts = GetUserFlowers(usr.Id); // var pts = GetUserFlowers(usr.Id);
// var str = $"{usr.Name} has {pts} {NadekoBot.Config.CurrencySign}"; // var str = $"{usr.Name} has {pts} {NadekoBot.Config.CurrencySign}";
// await channel.SendMessageAsync(str).ConfigureAwait(false); // await channel.SendMessageAsync(str).ConfigureAwait(false);
@ -64,23 +64,23 @@ namespace NadekoBot.Modules.Gambling
////todo DB ////todo DB
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Give(IMessage imsg, long amount, [Remainder] IUser receiver) //public async Task Give(IUserMessage umsg, long amount, [Remainder] IUser receiver)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (amount <= 0) // if (amount <= 0)
// return; // return;
// var userFlowers = GetUserFlowers(imsg.Author.Id); // var userFlowers = GetUserFlowers(umsg.Author.Id);
// if (userFlowers < amount) // if (userFlowers < amount)
// { // {
// await channel.SendMessageAsync($"{imsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false);
// return; // return;
// } // }
// await FlowersHandler.RemoveFlowers(imsg.Author, "Gift", (int)amount, true).ConfigureAwait(false); // await FlowersHandler.RemoveFlowers(umsg.Author, "Gift", (int)amount, true).ConfigureAwait(false);
// await FlowersHandler.AddFlowersAsync(receiver, "Gift", (int)amount).ConfigureAwait(false); // await FlowersHandler.AddFlowersAsync(receiver, "Gift", (int)amount).ConfigureAwait(false);
// await channel.SendMessageAsync($"{imsg.Author.Mention} successfully sent {amount} {NadekoBot.Config.CurrencyName}s to {receiver.Mention}!").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} successfully sent {amount} {NadekoBot.Config.CurrencyName}s to {receiver.Mention}!").ConfigureAwait(false);
//} //}
@ -88,64 +88,64 @@ namespace NadekoBot.Modules.Gambling
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public Task Award(IMessage imsg, long amount, [Remainder] IGuildUser usr) => //public Task Award(IUserMessage umsg, long amount, [Remainder] IGuildUser usr) =>
// Award(imsg, amount, usr.Id); // Award(umsg, amount, usr.Id);
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Award(IMessage imsg, long amount, [Remainder] ulong usrId) //public async Task Award(IUserMessage umsg, long amount, [Remainder] ulong usrId)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (amount <= 0) // if (amount <= 0)
// return; // return;
// await FlowersHandler.AddFlowersAsync(usrId, $"Awarded by bot owner. ({imsg.Author.Username}/{imsg.Author.Id})", (int)amount).ConfigureAwait(false); // await FlowersHandler.AddFlowersAsync(usrId, $"Awarded by bot owner. ({umsg.Author.Username}/{umsg.Author.Id})", (int)amount).ConfigureAwait(false);
// await channel.SendMessageAsync($"{imsg.Author.Mention} successfully awarded {amount} {NadekoBot.Config.CurrencyName}s to <@{usrId}>!").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} successfully awarded {amount} {NadekoBot.Config.CurrencyName}s to <@{usrId}>!").ConfigureAwait(false);
//} //}
////todo owner only ////todo owner only
////todo DB ////todo DB
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public Task Take(IMessage imsg, long amount, [Remainder] IGuildUser user) => //public Task Take(IUserMessage umsg, long amount, [Remainder] IGuildUser user) =>
// Take(imsg, amount, user.Id); // Take(umsg, amount, user.Id);
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Take(IMessage imsg, long amount, [Remainder] ulong usrId) //public async Task Take(IUserMessage umsg, long amount, [Remainder] ulong usrId)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (amount <= 0) // if (amount <= 0)
// return; // return;
// await FlowersHandler.RemoveFlowers(usrId, $"Taken by bot owner.({imsg.Author.Username}/{imsg.Author.Id})", (int)amount).ConfigureAwait(false); // await FlowersHandler.RemoveFlowers(usrId, $"Taken by bot owner.({umsg.Author.Username}/{umsg.Author.Id})", (int)amount).ConfigureAwait(false);
// await channel.SendMessageAsync($"{imsg.Author.Mention} successfully took {amount} {NadekoBot.Config.CurrencyName}s from <@{usrId}>!").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} successfully took {amount} {NadekoBot.Config.CurrencyName}s from <@{usrId}>!").ConfigureAwait(false);
//} //}
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task BetRoll(IMessage imsg, int amount) //public async Task BetRoll(IUserMessage umsg, int amount)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (amount < 1) // if (amount < 1)
// return; // return;
// var userFlowers = GetUserFlowers(imsg.Author.Id); // var userFlowers = GetUserFlowers(umsg.Author.Id);
// if (userFlowers < amount) // if (userFlowers < amount)
// { // {
// await channel.SendMessageAsync($"{imsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); // await channel.SendMessageAsync($"{umsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false);
// return; // return;
// } // }
// await FlowersHandler.RemoveFlowers(imsg.Author, "Betroll Gamble", (int)amount, true).ConfigureAwait(false); // await FlowersHandler.RemoveFlowers(umsg.Author, "Betroll Gamble", (int)amount, true).ConfigureAwait(false);
// var rng = new Random().Next(0, 101); // var rng = new Random().Next(0, 101);
// var str = $"{imsg.Author.Mention} `You rolled {rng}.` "; // var str = $"{umsg.Author.Mention} `You rolled {rng}.` ";
// if (rng < 67) // if (rng < 67)
// { // {
// str += "Better luck next time."; // str += "Better luck next time.";
@ -153,17 +153,17 @@ namespace NadekoBot.Modules.Gambling
// else if (rng < 90) // else if (rng < 90)
// { // {
// str += $"Congratulations! You won {amount * 2}{NadekoBot.Config.CurrencySign} for rolling above 66"; // str += $"Congratulations! You won {amount * 2}{NadekoBot.Config.CurrencySign} for rolling above 66";
// await FlowersHandler.AddFlowersAsync(imsg.Author, "Betroll Gamble", amount * 2, true).ConfigureAwait(false); // await FlowersHandler.AddFlowersAsync(umsg.Author, "Betroll Gamble", amount * 2, true).ConfigureAwait(false);
// } // }
// else if (rng < 100) // else if (rng < 100)
// { // {
// str += $"Congratulations! You won {amount * 3}{NadekoBot.Config.CurrencySign} for rolling above 90."; // str += $"Congratulations! You won {amount * 3}{NadekoBot.Config.CurrencySign} for rolling above 90.";
// await FlowersHandler.AddFlowersAsync(imsg.Author, "Betroll Gamble", amount * 3, true).ConfigureAwait(false); // await FlowersHandler.AddFlowersAsync(umsg.Author, "Betroll Gamble", amount * 3, true).ConfigureAwait(false);
// } // }
// else // else
// { // {
// str += $"👑 Congratulations! You won {amount * 10}{NadekoBot.Config.CurrencySign} for rolling **100**. 👑"; // str += $"👑 Congratulations! You won {amount * 10}{NadekoBot.Config.CurrencySign} for rolling **100**. 👑";
// await FlowersHandler.AddFlowersAsync(imsg.Author, "Betroll Gamble", amount * 10, true).ConfigureAwait(false); // await FlowersHandler.AddFlowersAsync(umsg.Author, "Betroll Gamble", amount * 10, true).ConfigureAwait(false);
// } // }
// await channel.SendMessageAsync(str).ConfigureAwait(false); // await channel.SendMessageAsync(str).ConfigureAwait(false);
@ -172,9 +172,9 @@ namespace NadekoBot.Modules.Gambling
////todo DB ////todo DB
// [LocalizedCommand, LocalizedDescription, LocalizedSummary] // [LocalizedCommand, LocalizedDescription, LocalizedSummary]
// [RequireContext(ContextType.Guild)] // [RequireContext(ContextType.Guild)]
// public async Task Leaderboard(IMessage imsg) // public async Task Leaderboard(IUserMessage umsg)
// { // {
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// var richestTemp = DbHandler.Instance.GetTopRichest(); // var richestTemp = DbHandler.Instance.GetTopRichest();
// var richest = richestTemp as CurrencyState[] ?? richestTemp.ToArray(); // var richest = richestTemp as CurrencyState[] ?? richestTemp.ToArray();

View File

@ -14,9 +14,9 @@ namespace NadekoBot.Modules.Games
{ {
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Leet(IMessage imsg, int level, [Remainder] string text = null) public async Task Leet(IUserMessage umsg, int level, [Remainder] string text = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
text = text.Trim(); text = text.Trim();
if (string.IsNullOrWhiteSpace(text)) if (string.IsNullOrWhiteSpace(text))

View File

@ -79,8 +79,8 @@
// foreach(var msgToDelete in msgs) // foreach(var msgToDelete in msgs)
// await msgToDelete.Delete().ConfigureAwait(false); // await msgToDelete.Delete().ConfigureAwait(false);
// await FlowersHandler.AddFlowersAsync(imsg.Author, "Picked a flower.", 1, true).ConfigureAwait(false); // await FlowersHandler.AddFlowersAsync(umsg.Author, "Picked a flower.", 1, true).ConfigureAwait(false);
// var msg = await channel.SendMessageAsync($"**{imsg.Author.Username}** picked a {NadekoBot.Config.CurrencyName}!").ConfigureAwait(false); // var msg = await channel.SendMessageAsync($"**{umsg.Author.Username}** picked a {NadekoBot.Config.CurrencyName}!").ConfigureAwait(false);
// ThreadPool.QueueUserWorkItem(async (state) => // ThreadPool.QueueUserWorkItem(async (state) =>
// { // {
// try // try
@ -104,7 +104,7 @@
// await channel.SendMessageAsync($"There is already a {NadekoBot.Config.CurrencyName} in this channel.").ConfigureAwait(false); // await channel.SendMessageAsync($"There is already a {NadekoBot.Config.CurrencyName} in this channel.").ConfigureAwait(false);
// return; // return;
// } // }
// var removed = await FlowersHandler.RemoveFlowers(imsg.Author, "Planted a flower.", 1, true).ConfigureAwait(false); // var removed = await FlowersHandler.RemoveFlowers(umsg.Author, "Planted a flower.", 1, true).ConfigureAwait(false);
// if (!removed) // if (!removed)
// { // {
// await channel.SendMessageAsync($"You don't have any {NadekoBot.Config.CurrencyName}s.").ConfigureAwait(false); // await channel.SendMessageAsync($"You don't have any {NadekoBot.Config.CurrencyName}s.").ConfigureAwait(false);
@ -118,7 +118,7 @@
// else // else
// msg = await e.Channel.SendFile(file).ConfigureAwait(false); // msg = await e.Channel.SendFile(file).ConfigureAwait(false);
// var vowelFirst = new[] { 'a', 'e', 'i', 'o', 'u' }.Contains(NadekoBot.Config.CurrencyName[0]); // var vowelFirst = new[] { 'a', 'e', 'i', 'o', 'u' }.Contains(NadekoBot.Config.CurrencyName[0]);
// var msg2 = await channel.SendMessageAsync($"Oh how Nice! **{imsg.Author.Username}** planted {(vowelFirst ? "an" : "a")} {NadekoBot.Config.CurrencyName}. Pick it using {Module.Prefix}pick").ConfigureAwait(false); // var msg2 = await channel.SendMessageAsync($"Oh how Nice! **{umsg.Author.Username}** planted {(vowelFirst ? "an" : "a")} {NadekoBot.Config.CurrencyName}. Pick it using {Module.Prefix}pick").ConfigureAwait(false);
// plantedFlowerChannels.TryAdd(e.Channel.Id, new[] { msg, msg2 }); // plantedFlowerChannels.TryAdd(e.Channel.Id, new[] { msg, msg2 });
// } // }
// finally { locker.Release(); } // finally { locker.Release(); }

View File

@ -17,11 +17,11 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Poll(IMessage imsg, [Remainder] string arg = null) public async Task Poll(IUserMessage umsg, [Remainder] string arg = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!(imsg.Author as IGuildUser).GuildPermissions.ManageChannels) if (!(umsg.Author as IGuildUser).GuildPermissions.ManageChannels)
return; return;
if (string.IsNullOrWhiteSpace(arg) || !arg.Contains(";")) if (string.IsNullOrWhiteSpace(arg) || !arg.Contains(";"))
return; return;
@ -29,7 +29,7 @@ namespace NadekoBot.Modules.Games
if (data.Length < 3) if (data.Length < 3)
return; return;
var poll = new Poll(imsg, data[0], data.Skip(1)); var poll = new Poll(umsg, data[0], data.Skip(1));
if (ActivePolls.TryAdd(channel.Guild, poll)) if (ActivePolls.TryAdd(channel.Guild, poll))
{ {
await poll.StartPoll().ConfigureAwait(false); await poll.StartPoll().ConfigureAwait(false);
@ -38,11 +38,11 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Pollend(IMessage imsg) public async Task Pollend(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!(imsg.Author as IGuildUser).GuildPermissions.ManageChannels) if (!(umsg.Author as IGuildUser).GuildPermissions.ManageChannels)
return; return;
Poll poll; Poll poll;
ActivePolls.TryGetValue(channel.Guild, out poll); ActivePolls.TryGetValue(channel.Guild, out poll);
@ -52,16 +52,16 @@ namespace NadekoBot.Modules.Games
public class Poll public class Poll
{ {
private readonly IMessage imsg; private readonly IUserMessage umsg;
private readonly string[] answers; private readonly string[] answers;
private ConcurrentDictionary<IUser, int> participants = new ConcurrentDictionary<IUser, int>(); private ConcurrentDictionary<IUser, int> participants = new ConcurrentDictionary<IUser, int>();
private readonly string question; private readonly string question;
private DateTime started; private DateTime started;
private CancellationTokenSource pollCancellationSource = new CancellationTokenSource(); private CancellationTokenSource pollCancellationSource = new CancellationTokenSource();
public Poll(IMessage imsg, string question, IEnumerable<string> enumerable) public Poll(IUserMessage umsg, string question, IEnumerable<string> enumerable)
{ {
this.imsg = imsg; this.umsg = umsg;
this.question = question; this.question = question;
this.answers = enumerable as string[] ?? enumerable.ToArray(); this.answers = enumerable as string[] ?? enumerable.ToArray();
} }
@ -70,13 +70,13 @@ namespace NadekoBot.Modules.Games
{ {
started = DateTime.Now; started = DateTime.Now;
NadekoBot.Client.MessageReceived += Vote; NadekoBot.Client.MessageReceived += Vote;
var msgToSend = $@"📃**{imsg.Author.Username}** has created a poll which requires your attention: var msgToSend = $@"📃**{umsg.Author.Username}** has created a poll which requires your attention:
**{question}**\n"; **{question}**\n";
var num = 1; var num = 1;
msgToSend = answers.Aggregate(msgToSend, (current, answ) => current + $"`{num++}.` **{answ}**\n"); msgToSend = answers.Aggregate(msgToSend, (current, answ) => current + $"`{num++}.` **{answ}**\n");
msgToSend += "\n**Private Message me with the corresponding number of the answer.**"; msgToSend += "\n**Private Message me with the corresponding number of the answer.**";
await imsg.Channel.SendMessageAsync(msgToSend).ConfigureAwait(false); await umsg.Channel.SendMessageAsync(msgToSend).ConfigureAwait(false);
} }
public async Task StopPoll(IGuildChannel ch) public async Task StopPoll(IGuildChannel ch)
@ -91,7 +91,7 @@ namespace NadekoBot.Modules.Games
var totalVotesCast = results.Sum(kvp => kvp.Value); var totalVotesCast = results.Sum(kvp => kvp.Value);
if (totalVotesCast == 0) if (totalVotesCast == 0)
{ {
await imsg.Channel.SendMessageAsync("📄 **No votes have been cast.**").ConfigureAwait(false); await umsg.Channel.SendMessageAsync("📄 **No votes have been cast.**").ConfigureAwait(false);
return; return;
} }
var closeMessage = $"--------------**POLL CLOSED**--------------\n" + var closeMessage = $"--------------**POLL CLOSED**--------------\n" +
@ -100,7 +100,7 @@ namespace NadekoBot.Modules.Games
$" has {kvp.Value} votes." + $" has {kvp.Value} votes." +
$"({kvp.Value * 1.0f / totalVotesCast * 100}%)\n"); $"({kvp.Value * 1.0f / totalVotesCast * 100}%)\n");
await imsg.Channel.SendMessageAsync($"📄 **Total votes cast**: {totalVotesCast}\n{closeMessage}").ConfigureAwait(false); await umsg.Channel.SendMessageAsync($"📄 **Total votes cast**: {totalVotesCast}\n{closeMessage}").ConfigureAwait(false);
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -108,8 +108,11 @@ namespace NadekoBot.Modules.Games
} }
} }
private async Task Vote(IMessage msg) private async Task Vote(IMessage imsg)
{ {
var msg = imsg as ISystemMessage;
if (msg == null)
return;
try try
{ {
IPrivateChannel ch; IPrivateChannel ch;

View File

@ -103,16 +103,16 @@
// { // {
// try // try
// { // {
// if (e.Channel == null || e.Channel.Id != channel.Id || imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) return; // if (e.Channel == null || e.Channel.Id != channel.Id || umsg.Author.Id == NadekoBot.Client.CurrentUser.Id) return;
// var guess = e.Message.RawText; // var guess = e.Message.RawText;
// var distance = CurrentSentence.LevenshteinDistance(guess); // var distance = CurrentSentence.LevenshteinDistance(guess);
// var decision = Judge(distance, guess.Length); // var decision = Judge(distance, guess.Length);
// if (decision && !finishedUserIds.Contains(imsg.Author.Id)) // if (decision && !finishedUserIds.Contains(umsg.Author.Id))
// { // {
// finishedUserIds.Add(imsg.Author.Id); // finishedUserIds.Add(umsg.Author.Id);
// await channel.Send($"{imsg.Author.Mention} finished in **{sw.Elapsed.Seconds}** seconds with { distance } errors, **{ CurrentSentence.Length / WORD_VALUE / sw.Elapsed.Seconds * 60 }** WPM!").ConfigureAwait(false); // await channel.Send($"{umsg.Author.Mention} finished in **{sw.Elapsed.Seconds}** seconds with { distance } errors, **{ CurrentSentence.Length / WORD_VALUE / sw.Elapsed.Seconds * 60 }** WPM!").ConfigureAwait(false);
// if (finishedUserIds.Count % 2 == 0) // if (finishedUserIds.Count % 2 == 0)
// { // {
// await channel.SendMessageAsync($":exclamation: `A lot of people finished, here is the text for those still typing:`\n\n:book:**{CurrentSentence}**:book:").ConfigureAwait(false); // await channel.SendMessageAsync($":exclamation: `A lot of people finished, here is the text for those still typing:`\n\n:book:**{CurrentSentence}**:book:").ConfigureAwait(false);
@ -139,7 +139,7 @@
// public Func<CommandEventArgs, Task> DoFunc() => // public Func<CommandEventArgs, Task> DoFunc() =>
// async e => // async e =>
// { // {
// var game = RunningContests.GetOrAdd(imsg.Author.Server.Id, id => new TypingGame(e.Channel)); // var game = RunningContests.GetOrAdd(umsg.Author.Server.Id, id => new TypingGame(e.Channel));
// if (game.IsActive) // if (game.IsActive)
// { // {
@ -158,7 +158,7 @@
// async e => // async e =>
// { // {
// TypingGame game; // TypingGame game;
// if (RunningContests.TryRemove(imsg.Author.Server.Id, out game)) // if (RunningContests.TryRemove(umsg.Author.Server.Id, out game))
// { // {
// await game.Stop().ConfigureAwait(false); // await game.Stop().ConfigureAwait(false);
// return; // return;
@ -181,7 +181,7 @@
// .Parameter("text", ParameterType.Unparsed) // .Parameter("text", ParameterType.Unparsed)
// .Do(async e => // .Do(async e =>
// { // {
// if (!NadekoBot.IsOwner(imsg.Author.Id) || string.IsNullOrWhiteSpace(text)) return; // if (!NadekoBot.IsOwner(umsg.Author.Id) || string.IsNullOrWhiteSpace(text)) return;
// DbHandler.Instance.Connection.Insert(new TypingArticle // DbHandler.Instance.Connection.Insert(new TypingArticle
// { // {

View File

@ -104,19 +104,23 @@ namespace NadekoBot.Modules.Games.Trivia
private async Task PotentialGuess(IMessage imsg) private async Task PotentialGuess(IMessage imsg)
{ {
var umsg = imsg as IUserMessage;
if (umsg == null)
return;
try try
{ {
if (!(imsg.Channel is IGuildChannel && imsg.Channel is ITextChannel)) return; if (!(umsg.Channel is IGuildChannel && umsg.Channel is ITextChannel)) return;
if ((imsg.Channel as ITextChannel).Guild != guild) return; if ((umsg.Channel as ITextChannel).Guild != guild) return;
if (imsg.Author.Id == (await NadekoBot.Client.GetCurrentUserAsync()).Id) return; if (umsg.Author.Id == (await NadekoBot.Client.GetCurrentUserAsync()).Id) return;
var guildUser = imsg.Author as IGuildUser; var guildUser = umsg.Author as IGuildUser;
var guess = false; var guess = false;
await _guessLock.WaitAsync().ConfigureAwait(false); await _guessLock.WaitAsync().ConfigureAwait(false);
try try
{ {
if (GameActive && CurrentQuestion.IsAnswerCorrect(imsg.Content) && !triviaCancelSource.IsCancellationRequested) if (GameActive && CurrentQuestion.IsAnswerCorrect(umsg.Content) && !triviaCancelSource.IsCancellationRequested)
{ {
Users.AddOrUpdate(guildUser, 0, (gu, old) => old++); Users.AddOrUpdate(guildUser, 0, (gu, old) => old++);
guess = true; guess = true;

View File

@ -19,9 +19,9 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Trivia(IMessage imsg, string[] args) public async Task Trivia(IUserMessage umsg, string[] args)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
TriviaGame trivia; TriviaGame trivia;
if (!RunningTrivias.TryGetValue(channel.Guild.Id, out trivia)) if (!RunningTrivias.TryGetValue(channel.Guild.Id, out trivia))
@ -34,7 +34,7 @@ namespace NadekoBot.Modules.Games
}).Where(t => t.Item1).Select(t => t.Item2).FirstOrDefault(); }).Where(t => t.Item1).Select(t => t.Item2).FirstOrDefault();
if (number < 0) if (number < 0)
return; return;
var triviaGame = new TriviaGame(channel.Guild, imsg.Channel as ITextChannel, showHints, number == 0 ? 10 : number); var triviaGame = new TriviaGame(channel.Guild, umsg.Channel as ITextChannel, showHints, number == 0 ? 10 : number);
if (RunningTrivias.TryAdd(channel.Guild.Id, triviaGame)) if (RunningTrivias.TryAdd(channel.Guild.Id, triviaGame))
await channel.SendMessageAsync($"**Trivia game started! {triviaGame.WinRequirement} points needed to win.**").ConfigureAwait(false); await channel.SendMessageAsync($"**Trivia game started! {triviaGame.WinRequirement} points needed to win.**").ConfigureAwait(false);
else else
@ -46,9 +46,9 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Tl(IMessage imsg) public async Task Tl(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
TriviaGame trivia; TriviaGame trivia;
if (RunningTrivias.TryGetValue(channel.Guild.Id, out trivia)) if (RunningTrivias.TryGetValue(channel.Guild.Id, out trivia))
@ -59,9 +59,9 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Tq(IMessage imsg) public async Task Tq(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
TriviaGame trivia; TriviaGame trivia;
if (RunningTrivias.TryRemove(channel.Guild.Id, out trivia)) if (RunningTrivias.TryRemove(channel.Guild.Id, out trivia))

View File

@ -30,9 +30,9 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Choose(IMessage imsg, [Remainder] string list = null) public async Task Choose(IUserMessage umsg, [Remainder] string list = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(list)) if (string.IsNullOrWhiteSpace(list))
return; return;
var listArr = list.Split(';'); var listArr = list.Split(';');
@ -44,9 +44,9 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task _8Ball(IMessage imsg, [Remainder] string question = null) public async Task _8Ball(IUserMessage umsg, [Remainder] string question = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(question)) if (string.IsNullOrWhiteSpace(question))
return; return;
@ -57,9 +57,9 @@ namespace NadekoBot.Modules.Games
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Rps(IMessage imsg, string input) public async Task Rps(IUserMessage umsg, string input)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
Func<int,string> GetRPSPick = (p) => Func<int,string> GetRPSPick = (p) =>
{ {
@ -100,16 +100,16 @@ namespace NadekoBot.Modules.Games
(pick == 2 && nadekoPick == 0)) (pick == 2 && nadekoPick == 0))
msg = $"{(await NadekoBot.Client.GetCurrentUserAsync()).Mention} won! :{GetRPSPick(nadekoPick)}: beats :{GetRPSPick(pick)}:"; msg = $"{(await NadekoBot.Client.GetCurrentUserAsync()).Mention} won! :{GetRPSPick(nadekoPick)}: beats :{GetRPSPick(pick)}:";
else else
msg = $"{imsg.Author.Mention} won! :{GetRPSPick(pick)}: beats :{GetRPSPick(nadekoPick)}:"; msg = $"{umsg.Author.Mention} won! :{GetRPSPick(pick)}: beats :{GetRPSPick(nadekoPick)}:";
await channel.SendMessageAsync(msg).ConfigureAwait(false); await channel.SendMessageAsync(msg).ConfigureAwait(false);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Linux(IMessage imsg, string guhnoo, string loonix) public async Task Linux(IUserMessage umsg, string guhnoo, string loonix)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.SendMessageAsync( await channel.SendMessageAsync(
$@"I'd just like to interject for moment. What you're refering to as {loonix}, is in fact, {guhnoo}/{loonix}, or as I've recently taken to calling it, {guhnoo} plus {loonix}. {loonix} is not an operating system unto itself, but rather another free component of a fully functioning {guhnoo} system made useful by the {guhnoo} corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX. $@"I'd just like to interject for moment. What you're refering to as {loonix}, is in fact, {guhnoo}/{loonix}, or as I've recently taken to calling it, {guhnoo} plus {loonix}. {loonix} is not an operating system unto itself, but rather another free component of a fully functioning {guhnoo} system made useful by the {guhnoo} corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.

View File

@ -27,9 +27,9 @@ namespace NadekoBot.Modules.Help
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Modules(IMessage imsg) public async Task Modules(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.SendMessageAsync("`List of modules:` \n• " + string.Join("\n• ", _commands.Modules.Select(m => m.Name)) + $"\n`Type \"-commands module_name\" to get a list of commands in that module.`") await channel.SendMessageAsync("`List of modules:` \n• " + string.Join("\n• ", _commands.Modules.Select(m => m.Name)) + $"\n`Type \"-commands module_name\" to get a list of commands in that module.`")
.ConfigureAwait(false); .ConfigureAwait(false);
@ -37,9 +37,9 @@ namespace NadekoBot.Modules.Help
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Commands(IMessage imsg, [Remainder] string module = null) public async Task Commands(IUserMessage umsg, [Remainder] string module = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
module = module?.Trim().ToUpperInvariant(); module = module?.Trim().ToUpperInvariant();
if (string.IsNullOrWhiteSpace(module)) if (string.IsNullOrWhiteSpace(module))
@ -67,14 +67,14 @@ namespace NadekoBot.Modules.Help
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task H(IMessage imsg, [Remainder] string comToFind = null) public async Task H(IUserMessage umsg, [Remainder] string comToFind = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
comToFind = comToFind?.ToLowerInvariant(); comToFind = comToFind?.ToLowerInvariant();
if (string.IsNullOrWhiteSpace(comToFind)) if (string.IsNullOrWhiteSpace(comToFind))
{ {
await (await (imsg.Author as IGuildUser).CreateDMChannelAsync()).SendMessageAsync(HelpString).ConfigureAwait(false); await (await (umsg.Author as IGuildUser).CreateDMChannelAsync()).SendMessageAsync(HelpString).ConfigureAwait(false);
return; return;
} }
var com = _commands.Commands.FirstOrDefault(c => c.Text.ToLowerInvariant() == comToFind); var com = _commands.Commands.FirstOrDefault(c => c.Text.ToLowerInvariant() == comToFind);
@ -88,7 +88,7 @@ namespace NadekoBot.Modules.Help
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Hgit(IMessage imsg) public async Task Hgit(IUserMessage umsg)
{ {
var helpstr = new StringBuilder(); var helpstr = new StringBuilder();
@ -115,9 +115,9 @@ namespace NadekoBot.Modules.Help
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Guide(IMessage imsg) public async Task Guide(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.SendMessageAsync( await channel.SendMessageAsync(
@"**LIST OF COMMANDS**: <http://nadekobot.readthedocs.io/en/latest/Commands%20List/> @"**LIST OF COMMANDS**: <http://nadekobot.readthedocs.io/en/latest/Commands%20List/>
@ -126,9 +126,9 @@ namespace NadekoBot.Modules.Help
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Donate(IMessage imsg) public async Task Donate(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.SendMessageAsync( await channel.SendMessageAsync(
$@"You can support the project on patreon. <https://patreon.com/nadekobot> or $@"You can support the project on patreon. <https://patreon.com/nadekobot> or

View File

@ -36,25 +36,25 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Next(IMessage imsg) public async Task Next(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) return; if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) return;
if (musicPlayer.PlaybackVoiceChannel == ((IGuildUser)imsg.Author).VoiceChannel) if (musicPlayer.PlaybackVoiceChannel == ((IGuildUser)umsg.Author).VoiceChannel)
musicPlayer.Next(); musicPlayer.Next();
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Stop(IMessage imsg) public async Task Stop(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) return; if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) return;
if (((IGuildUser)imsg.Author).VoiceChannel == musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel == musicPlayer.PlaybackVoiceChannel)
{ {
musicPlayer.Autoplay = false; musicPlayer.Autoplay = false;
musicPlayer.Stop(); musicPlayer.Stop();
@ -63,25 +63,25 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Destroy(IMessage imsg) public async Task Destroy(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryRemove(channel.Guild.Id, out musicPlayer)) return; if (!MusicPlayers.TryRemove(channel.Guild.Id, out musicPlayer)) return;
if (((IGuildUser)imsg.Author).VoiceChannel == musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel == musicPlayer.PlaybackVoiceChannel)
musicPlayer.Destroy(); musicPlayer.Destroy();
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Pause(IMessage imsg) public async Task Pause(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) return; if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) return;
if (((IGuildUser)imsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel)
return; return;
musicPlayer.TogglePause(); musicPlayer.TogglePause();
if (musicPlayer.Paused) if (musicPlayer.Paused)
@ -92,37 +92,37 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Queue(IMessage imsg, [Remainder] string query) public async Task Queue(IUserMessage umsg, [Remainder] string query)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await QueueSong(((IGuildUser)imsg.Author), channel, ((IGuildUser)imsg.Author).VoiceChannel, query).ConfigureAwait(false); await QueueSong(((IGuildUser)umsg.Author), channel, ((IGuildUser)umsg.Author).VoiceChannel, query).ConfigureAwait(false);
if (channel.Guild.GetCurrentUser().GetPermissions(channel).ManageMessages) if (channel.Guild.GetCurrentUser().GetPermissions(channel).ManageMessages)
{ {
await Task.Delay(10000).ConfigureAwait(false); await Task.Delay(10000).ConfigureAwait(false);
await imsg.DeleteAsync().ConfigureAwait(false); await ((IUserMessage)umsg).DeleteAsync().ConfigureAwait(false);
} }
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task SoundCloudQueue(IMessage imsg, [Remainder] string query) public async Task SoundCloudQueue(IUserMessage umsg, [Remainder] string query)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await QueueSong(((IGuildUser)imsg.Author), channel, ((IGuildUser)imsg.Author).VoiceChannel, query, musicType: MusicType.Soundcloud).ConfigureAwait(false); await QueueSong(((IGuildUser)umsg.Author), channel, ((IGuildUser)umsg.Author).VoiceChannel, query, musicType: MusicType.Soundcloud).ConfigureAwait(false);
if (channel.Guild.GetCurrentUser().GetPermissions(channel).ManageMessages) if (channel.Guild.GetCurrentUser().GetPermissions(channel).ManageMessages)
{ {
await Task.Delay(10000).ConfigureAwait(false); await Task.Delay(10000).ConfigureAwait(false);
await imsg.DeleteAsync().ConfigureAwait(false); await ((IUserMessage)umsg).DeleteAsync().ConfigureAwait(false);
} }
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ListQueue(IMessage imsg, int page = 1) public async Task ListQueue(IUserMessage umsg, int page = 1)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
{ {
@ -153,9 +153,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task NowPlaying(IMessage imsg) public async Task NowPlaying(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
@ -168,13 +168,13 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Volume(IMessage imsg, int val) public async Task Volume(IUserMessage umsg, int val)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
if (((IGuildUser)imsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel)
return; return;
if (val < 0) if (val < 0)
return; return;
@ -184,9 +184,9 @@ namespace NadekoBot.Modules.Music
////todo DB ////todo DB
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Defvol(IMessage imsg, [Remainder] int val) //public async Task Defvol(IUserMessage umsg, [Remainder] int val)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// var arg = val; // var arg = val;
// float volume; // float volume;
// if (!float.TryParse(arg, out volume) || volume < 0 || volume > 100) // if (!float.TryParse(arg, out volume) || volume < 0 || volume > 100)
@ -201,39 +201,39 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Mute(IMessage imsg) public async Task Mute(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
if (((IGuildUser)imsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel)
return; return;
musicPlayer.SetVolume(0); musicPlayer.SetVolume(0);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Max(IMessage imsg) public async Task Max(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
if (((IGuildUser)imsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel)
return; return;
musicPlayer.SetVolume(100); musicPlayer.SetVolume(100);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Shuffle(IMessage imsg) public async Task Shuffle(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
if (((IGuildUser)imsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel)
return; return;
if (musicPlayer.Playlist.Count < 2) if (musicPlayer.Playlist.Count < 2)
{ {
@ -247,13 +247,13 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Playlist(IMessage imsg, [Remainder] string playlist) public async Task Playlist(IUserMessage umsg, [Remainder] string playlist)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var arg = playlist; var arg = playlist;
if (string.IsNullOrWhiteSpace(arg)) if (string.IsNullOrWhiteSpace(arg))
return; return;
if (((IGuildUser)imsg.Author).VoiceChannel?.Guild != channel.Guild) if (((IGuildUser)umsg.Author).VoiceChannel?.Guild != channel.Guild)
{ {
await channel.SendMessageAsync("💢 You need to be in a voice channel on this server.\n If you are already in a voice channel, try rejoining it.").ConfigureAwait(false); await channel.SendMessageAsync("💢 You need to be in a voice channel on this server.\n If you are already in a voice channel, try rejoining it.").ConfigureAwait(false);
return; return;
@ -278,7 +278,7 @@ namespace NadekoBot.Modules.Music
{ {
try try
{ {
await QueueSong(((IGuildUser)imsg.Author), channel, ((IGuildUser)imsg.Author).VoiceChannel, id, true).ConfigureAwait(false); await QueueSong(((IGuildUser)umsg.Author), channel, ((IGuildUser)umsg.Author).VoiceChannel, id, true).ConfigureAwait(false);
} }
catch (PlaylistFullException) catch (PlaylistFullException)
{ break; } { break; }
@ -289,9 +289,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task SoundCloudPl(IMessage imsg, [Remainder] string pl) public async Task SoundCloudPl(IUserMessage umsg, [Remainder] string pl)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
pl = pl?.Trim(); pl = pl?.Trim();
if (string.IsNullOrWhiteSpace(pl)) if (string.IsNullOrWhiteSpace(pl))
@ -300,7 +300,7 @@ namespace NadekoBot.Modules.Music
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
var scvids = JObject.Parse(await http.GetStringAsync($"http://api.soundcloud.com/resolve?url={pl}&client_id={NadekoBot.Credentials.SoundCloudClientId}").ConfigureAwait(false))["tracks"].ToObject<SoundCloudVideo[]>(); var scvids = JObject.Parse(await http.GetStringAsync($"http://api.soundcloud.com/resolve?url={pl}&client_id={NadekoBot.Credentials.SoundCloudClientId}").ConfigureAwait(false))["tracks"].ToObject<SoundCloudVideo[]>();
await QueueSong(((IGuildUser)imsg.Author), channel, ((IGuildUser)imsg.Author).VoiceChannel, scvids[0].TrackLink).ConfigureAwait(false); await QueueSong(((IGuildUser)umsg.Author), channel, ((IGuildUser)umsg.Author).VoiceChannel, scvids[0].TrackLink).ConfigureAwait(false);
MusicPlayer mp; MusicPlayer mp;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out mp)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out mp))
@ -317,7 +317,7 @@ namespace NadekoBot.Modules.Music
Uri = svideo.StreamLink, Uri = svideo.StreamLink,
ProviderType = MusicType.Normal, ProviderType = MusicType.Normal,
Query = svideo.TrackLink, Query = svideo.TrackLink,
}), ((IGuildUser)imsg.Author).Username); }), ((IGuildUser)umsg.Author).Username);
} }
catch (PlaylistFullException) { break; } catch (PlaylistFullException) { break; }
} }
@ -326,9 +326,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task LocalPl(IMessage imsg, [Remainder] string directory) public async Task LocalPl(IUserMessage umsg, [Remainder] string directory)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var arg = directory; var arg = directory;
if (string.IsNullOrWhiteSpace(arg)) if (string.IsNullOrWhiteSpace(arg))
return; return;
@ -340,7 +340,7 @@ namespace NadekoBot.Modules.Music
{ {
try try
{ {
await QueueSong(((IGuildUser)imsg.Author), channel, ((IGuildUser)imsg.Author).VoiceChannel, file.FullName, true, MusicType.Local).ConfigureAwait(false); await QueueSong(((IGuildUser)umsg.Author), channel, ((IGuildUser)umsg.Author).VoiceChannel, file.FullName, true, MusicType.Local).ConfigureAwait(false);
} }
catch (PlaylistFullException) catch (PlaylistFullException)
{ {
@ -355,41 +355,41 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Radio(IMessage imsg, string radio_link) public async Task Radio(IUserMessage umsg, string radio_link)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (((IGuildUser)imsg.Author).VoiceChannel?.Guild != channel.Guild) if (((IGuildUser)umsg.Author).VoiceChannel?.Guild != channel.Guild)
{ {
await channel.SendMessageAsync("💢 You need to be in a voice channel on this server.\n If you are already in a voice channel, try rejoining it.").ConfigureAwait(false); await channel.SendMessageAsync("💢 You need to be in a voice channel on this server.\n If you are already in a voice channel, try rejoining it.").ConfigureAwait(false);
return; return;
} }
await QueueSong(((IGuildUser)imsg.Author), channel, ((IGuildUser)imsg.Author).VoiceChannel, radio_link, musicType: MusicType.Radio).ConfigureAwait(false); await QueueSong(((IGuildUser)umsg.Author), channel, ((IGuildUser)umsg.Author).VoiceChannel, radio_link, musicType: MusicType.Radio).ConfigureAwait(false);
if (channel.Guild.GetCurrentUser().GetPermissions(channel).ManageMessages) if (channel.Guild.GetCurrentUser().GetPermissions(channel).ManageMessages)
{ {
await Task.Delay(10000).ConfigureAwait(false); await Task.Delay(10000).ConfigureAwait(false);
await imsg.DeleteAsync().ConfigureAwait(false); await ((IUserMessage)umsg).DeleteAsync().ConfigureAwait(false);
} }
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Local(IMessage imsg, [Remainder] string path) public async Task Local(IUserMessage umsg, [Remainder] string path)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var arg = path; var arg = path;
if (string.IsNullOrWhiteSpace(arg)) if (string.IsNullOrWhiteSpace(arg))
return; return;
await QueueSong(((IGuildUser)imsg.Author), channel, ((IGuildUser)imsg.Author).VoiceChannel, path, musicType: MusicType.Local).ConfigureAwait(false); await QueueSong(((IGuildUser)umsg.Author), channel, ((IGuildUser)umsg.Author).VoiceChannel, path, musicType: MusicType.Local).ConfigureAwait(false);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Move(IMessage imsg) public async Task Move(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
var voiceChannel = ((IGuildUser)imsg.Author).VoiceChannel; var voiceChannel = ((IGuildUser)umsg.Author).VoiceChannel;
if (voiceChannel == null || voiceChannel.Guild != channel.Guild || !MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (voiceChannel == null || voiceChannel.Guild != channel.Guild || !MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
musicPlayer.MoveToVoiceChannel(voiceChannel); musicPlayer.MoveToVoiceChannel(voiceChannel);
@ -397,16 +397,16 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Remove(IMessage imsg, int num) public async Task Remove(IUserMessage umsg, int num)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
{ {
return; return;
} }
if (((IGuildUser)imsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel)
return; return;
if (num <= 0 || num > musicPlayer.Playlist.Count) if (num <= 0 || num > musicPlayer.Playlist.Count)
return; return;
@ -417,9 +417,9 @@ namespace NadekoBot.Modules.Music
//todo fix //todo fix
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Remove(IMessage imsg, string all) public async Task Remove(IUserMessage umsg, string all)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (all.Trim().ToUpperInvariant() != "ALL") if (all.Trim().ToUpperInvariant() != "ALL")
return; return;
@ -432,9 +432,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task MoveSong(IMessage imsg, [Remainder] string fromto) public async Task MoveSong(IUserMessage umsg, [Remainder] string fromto)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
{ {
@ -468,9 +468,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task SetMaxQueue(IMessage imsg, uint size) public async Task SetMaxQueue(IUserMessage umsg, uint size)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
{ {
@ -482,9 +482,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ReptCurSong(IMessage imsg) public async Task ReptCurSong(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
@ -500,9 +500,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task RepeatPl(IMessage imsg) public async Task RepeatPl(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
@ -513,46 +513,46 @@ namespace NadekoBot.Modules.Music
/// ///
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Save(IMessage imsg, [Remainder] string name) //public async Task Save(IUserMessage umsg, [Remainder] string name)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
//} //}
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Load(IMessage imsg, [Remainder] string name) //public async Task Load(IUserMessage umsg, [Remainder] string name)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
//} //}
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Playlists(IMessage imsg, [Remainder] string num) //public async Task Playlists(IUserMessage umsg, [Remainder] string num)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
//} //}
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task DeletePlaylist(IMessage imsg, [Remainder] string pl) //public async Task DeletePlaylist(IUserMessage umsg, [Remainder] string pl)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
//} //}
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Goto(IMessage imsg, int time) public async Task Goto(IUserMessage umsg, int time)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
if (((IGuildUser)imsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel) if (((IGuildUser)umsg.Author).VoiceChannel != musicPlayer.PlaybackVoiceChannel)
return; return;
if (time < 0) if (time < 0)
@ -582,9 +582,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task GetLink(IMessage imsg, int index = 0) public async Task GetLink(IUserMessage umsg, int index = 0)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
@ -617,9 +617,9 @@ namespace NadekoBot.Modules.Music
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Autoplay(IMessage imsg) public async Task Autoplay(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
MusicPlayer musicPlayer; MusicPlayer musicPlayer;
if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer)) if (!MusicPlayers.TryGetValue(channel.Guild.Id, out musicPlayer))
return; return;
@ -648,8 +648,8 @@ namespace NadekoBot.Modules.Music
var mp = new MusicPlayer(voiceCh, vol); var mp = new MusicPlayer(voiceCh, vol);
IMessage playingMessage = null; IUserMessage playingMessage = null;
IMessage lastFinishedMessage = null; IUserMessage lastFinishedMessage = null;
mp.OnCompleted += async (s, song) => mp.OnCompleted += async (s, song) =>
{ {
if (song.PrintStatusMessage) if (song.PrintStatusMessage)

View File

@ -24,9 +24,9 @@ namespace NadekoBot.Modules.NSFW
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Hentai(IMessage imsg, [Remainder] string tag = null) public async Task Hentai(IUserMessage umsg, [Remainder] string tag = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
@ -43,9 +43,9 @@ namespace NadekoBot.Modules.NSFW
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Danbooru(IMessage imsg, [Remainder] string tag = null) public async Task Danbooru(IUserMessage umsg, [Remainder] string tag = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetDanbooruImageLink(tag).ConfigureAwait(false); var link = await GetDanbooruImageLink(tag).ConfigureAwait(false);
@ -57,9 +57,9 @@ namespace NadekoBot.Modules.NSFW
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Gelbooru(IMessage imsg, [Remainder] string tag = null) public async Task Gelbooru(IUserMessage umsg, [Remainder] string tag = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetRule34ImageLink(tag).ConfigureAwait(false); var link = await GetRule34ImageLink(tag).ConfigureAwait(false);
@ -71,9 +71,9 @@ namespace NadekoBot.Modules.NSFW
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Rule34(IMessage imsg, [Remainder] string tag = null) public async Task Rule34(IUserMessage umsg, [Remainder] string tag = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetGelbooruImageLink(tag).ConfigureAwait(false); var link = await GetGelbooruImageLink(tag).ConfigureAwait(false);
@ -85,9 +85,9 @@ namespace NadekoBot.Modules.NSFW
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task E621(IMessage imsg, [Remainder] string tag = null) public async Task E621(IUserMessage umsg, [Remainder] string tag = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetE621ImageLink(tag).ConfigureAwait(false); var link = await GetE621ImageLink(tag).ConfigureAwait(false);
@ -99,18 +99,18 @@ namespace NadekoBot.Modules.NSFW
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Cp(IMessage imsg) public async Task Cp(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.SendMessageAsync("http://i.imgur.com/MZkY1md.jpg").ConfigureAwait(false); await channel.SendMessageAsync("http://i.imgur.com/MZkY1md.jpg").ConfigureAwait(false);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Boobs(IMessage imsg) public async Task Boobs(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {
JToken obj; JToken obj;
@ -128,9 +128,9 @@ namespace NadekoBot.Modules.NSFW
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Butts(IMessage imsg) public async Task Butts(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {

View File

@ -17,9 +17,9 @@ namespace NadekoBot.Modules.Games
//todo Dragon should PR this in //todo Dragon should PR this in
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Poke(IMessage imsg) public async Task Poke(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
} }

View File

@ -13,11 +13,11 @@
// { // {
// [LocalizedCommand, LocalizedDescription, LocalizedSummary] // [LocalizedCommand, LocalizedDescription, LocalizedSummary]
// [RequireContext(ContextType.Guild)] // [RequireContext(ContextType.Guild)]
// public async Task Anime(IMessage imsg, [Remainder] string query = null) // public async Task Anime(IUserMessage umsg, [Remainder] string query = null)
// { // {
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (!(await ValidateQuery(imsg.Channel as ITextChannel, query).ConfigureAwait(false))) return; // if (!(await ValidateQuery(umsg.Channel as ITextChannel, query).ConfigureAwait(false))) return;
// string result; // string result;
// try // try
// { // {
@ -34,11 +34,11 @@
// [LocalizedCommand, LocalizedDescription, LocalizedSummary] // [LocalizedCommand, LocalizedDescription, LocalizedSummary]
// [RequireContext(ContextType.Guild)] // [RequireContext(ContextType.Guild)]
// public async Task Manga(IMessage imsg, [Remainder] string query = null) // public async Task Manga(IUserMessage umsg, [Remainder] string query = null)
// { // {
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// if (!(await ValidateQuery(imsg.Channel as ITextChannel, query).ConfigureAwait(false))) return; // if (!(await ValidateQuery(umsg.Channel as ITextChannel, query).ConfigureAwait(false))) return;
// string result; // string result;
// try // try
// { // {

View File

@ -16,7 +16,7 @@ namespace NadekoBot.Modules.Searches
{ {
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public static async Task Calculate(IMessage msg, [Remainder] string expression) public static async Task Calculate(IUserMessage msg, [Remainder] string expression)
{ {
try try
{ {
@ -43,7 +43,7 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task CalcOps(IMessage msg) public async Task CalcOps(IUserMessage msg)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
var selection = typeof(Math).GetTypeInfo().GetMethods().Except(typeof(object).GetTypeInfo().GetMethods()).Select(x => var selection = typeof(Math).GetTypeInfo().GetMethods().Except(typeof(object).GetTypeInfo().GetMethods()).Select(x =>

View File

@ -44,9 +44,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Yomama(IMessage imsg) public async Task Yomama(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
var response = await http.GetStringAsync("http://api.yomomma.info/").ConfigureAwait(false); var response = await http.GetStringAsync("http://api.yomomma.info/").ConfigureAwait(false);
@ -56,9 +56,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Randjoke(IMessage imsg) public async Task Randjoke(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
var response = await http.GetStringAsync("http://tambal.azurewebsites.net/joke/random").ConfigureAwait(false); var response = await http.GetStringAsync("http://tambal.azurewebsites.net/joke/random").ConfigureAwait(false);
@ -68,9 +68,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ChuckNorris(IMessage imsg) public async Task ChuckNorris(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
var response = await http.GetStringAsync("http://api.icndb.com/jokes/random/").ConfigureAwait(false); var response = await http.GetStringAsync("http://api.icndb.com/jokes/random/").ConfigureAwait(false);
@ -80,9 +80,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task WowJoke(IMessage imsg) public async Task WowJoke(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!wowJokes.Any()) if (!wowJokes.Any())
{ {
@ -92,9 +92,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task MagicItem(IMessage imsg) public async Task MagicItem(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var rng = new Random(); var rng = new Random();
var item = magicItems[rng.Next(0, magicItems.Count)].ToString(); var item = magicItems[rng.Next(0, magicItems.Count)].ToString();

View File

@ -33,9 +33,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Lolban(IMessage imsg) public async Task Lolban(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;

View File

@ -17,9 +17,9 @@ namespace NadekoBot.Modules.Searches
{ {
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Memelist(IMessage imsg) public async Task Memelist(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
var data = JsonConvert.DeserializeObject<Dictionary<string, string>>(await http.GetStringAsync("http://memegen.link/templates/")) var data = JsonConvert.DeserializeObject<Dictionary<string, string>>(await http.GetStringAsync("http://memegen.link/templates/"))
@ -31,9 +31,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Memegen(IMessage imsg, string meme, string topText, string botText) public async Task Memegen(IUserMessage umsg, string meme, string topText, string botText)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var top = Uri.EscapeDataString(topText.Replace(' ', '-')); var top = Uri.EscapeDataString(topText.Replace(' ', '-'));
var bot = Uri.EscapeDataString(botText.Replace(' ', '-')); var bot = Uri.EscapeDataString(botText.Replace(' ', '-'));

View File

@ -27,9 +27,9 @@ namespace NadekoBot.Modules.Searches
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Osu(IMessage imsg, string usr, string mode) public async Task Osu(IUserMessage umsg, string usr, string mode)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(usr)) if (string.IsNullOrWhiteSpace(usr))
return; return;
@ -60,9 +60,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Osub(IMessage imsg, [Remainder] string map) public async Task Osub(IUserMessage umsg, [Remainder] string map)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.OsuApiKey)) if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.OsuApiKey))
{ {
@ -97,9 +97,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Osu5(IMessage imsg, string user, [Remainder] string mode) public async Task Osu5(IUserMessage umsg, string user, [Remainder] string mode)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.OsuApiKey)) if (string.IsNullOrWhiteSpace(NadekoBot.Credentials.OsuApiKey))
{ {
await channel.SendMessageAsync("💢 An osu! API key is required.").ConfigureAwait(false); await channel.SendMessageAsync("💢 An osu! API key is required.").ConfigureAwait(false);

View File

@ -41,9 +41,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Pokemon(IMessage imsg, [Remainder] string pokemon = null) public async Task Pokemon(IUserMessage umsg, [Remainder] string pokemon = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
pokemon = pokemon?.Trim().ToUpperInvariant(); pokemon = pokemon?.Trim().ToUpperInvariant();
if (string.IsNullOrWhiteSpace(pokemon)) if (string.IsNullOrWhiteSpace(pokemon))
@ -62,9 +62,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task PokemonAbility(IMessage imsg, [Remainder] string ability = null) public async Task PokemonAbility(IUserMessage umsg, [Remainder] string ability = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
ability = ability?.Trim().ToUpperInvariant().Replace(" ", ""); ability = ability?.Trim().ToUpperInvariant().Replace(" ", "");
if (string.IsNullOrWhiteSpace(ability)) if (string.IsNullOrWhiteSpace(ability))

View File

@ -258,7 +258,7 @@
// config.ObservingStreams.Remove(toRemove); // config.ObservingStreams.Remove(toRemove);
// await ConfigHandler.SaveConfig().ConfigureAwait(false); // await ConfigHandler.SaveConfig().ConfigureAwait(false);
// await channel.SendMessageAsync($":ok: Removed `{toRemovimsg.Authorname}`'s stream from notifications.").ConfigureAwait(false); // await channel.SendMessageAsync($":ok: Removed `{toRemovumsg.Authorname}`'s stream from notifications.").ConfigureAwait(false);
// }); // });
// cgb.CreateCommand(Module.Prefix + "liststreams") // cgb.CreateCommand(Module.Prefix + "liststreams")

View File

@ -28,9 +28,9 @@ namespace NadekoBot.Modules.Searches
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Weather(IMessage imsg, string city, string country) public async Task Weather(IUserMessage umsg, string city, string country)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
city = city.Replace(" ", ""); city = city.Replace(" ", "");
country = city.Replace(" ", ""); country = city.Replace(" ", "");
string response; string response;
@ -49,10 +49,10 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Youtube(IMessage imsg, [Remainder] string query = null) public async Task Youtube(IUserMessage umsg, [Remainder] string query = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!(await ValidateQuery(imsg.Channel as ITextChannel, query).ConfigureAwait(false))) return; if (!(await ValidateQuery(umsg.Channel as ITextChannel, query).ConfigureAwait(false))) return;
var result = (await _google.GetVideosByKeywordsAsync(query, 1)).FirstOrDefault(); var result = (await _google.GetVideosByKeywordsAsync(query, 1)).FirstOrDefault();
if (string.IsNullOrWhiteSpace(result)) if (string.IsNullOrWhiteSpace(result))
{ {
@ -64,12 +64,12 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Imdb(IMessage imsg, [Remainder] string query = null) public async Task Imdb(IUserMessage umsg, [Remainder] string query = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (!(await ValidateQuery(imsg.Channel as ITextChannel, query).ConfigureAwait(false))) return; if (!(await ValidateQuery(umsg.Channel as ITextChannel, query).ConfigureAwait(false))) return;
await imsg.Channel.TriggerTypingAsync().ConfigureAwait(false); await umsg.Channel.TriggerTypingAsync().ConfigureAwait(false);
string result; string result;
try try
{ {
@ -88,9 +88,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task RandomCat(IMessage imsg) public async Task RandomCat(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
await channel.SendMessageAsync(JObject.Parse( await channel.SendMessageAsync(JObject.Parse(
@ -101,9 +101,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task RandomDog(IMessage imsg) public async Task RandomDog(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
await channel.SendMessageAsync("http://random.dog/" + await http.GetStringAsync("http://random.dog/woof").ConfigureAwait(false)).ConfigureAwait(false); await channel.SendMessageAsync("http://random.dog/" + await http.GetStringAsync("http://random.dog/woof").ConfigureAwait(false)).ConfigureAwait(false);
@ -112,9 +112,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task I(IMessage imsg, [Remainder] string query = null) public async Task I(IUserMessage umsg, [Remainder] string query = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(query)) if (string.IsNullOrWhiteSpace(query))
return; return;
@ -142,9 +142,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Ir(IMessage imsg, [Remainder] string query = null) public async Task Ir(IUserMessage umsg, [Remainder] string query = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(query)) if (string.IsNullOrWhiteSpace(query))
return; return;
@ -174,9 +174,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Lmgtfy(IMessage imsg, [Remainder] string ffs = null) public async Task Lmgtfy(IUserMessage umsg, [Remainder] string ffs = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
if (string.IsNullOrWhiteSpace(ffs)) if (string.IsNullOrWhiteSpace(ffs))
@ -188,9 +188,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Google(IMessage imsg, [Remainder] string terms = null) public async Task Google(IUserMessage umsg, [Remainder] string terms = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
terms = terms?.Trim(); terms = terms?.Trim();
@ -202,16 +202,16 @@ $@"🌍 **Weather for** 【{obj["target"]}】
////todo drawing ////todo drawing
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Hearthstone(IMessage imsg, [Remainder] string name = null) //public async Task Hearthstone(IUserMessage umsg, [Remainder] string name = null)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// var arg = name; // var arg = name;
// if (string.IsNullOrWhiteSpace(arg)) // if (string.IsNullOrWhiteSpace(arg))
// { // {
// await channel.SendMessageAsync("💢 Please enter a card name to search for.").ConfigureAwait(false); // await channel.SendMessageAsync("💢 Please enter a card name to search for.").ConfigureAwait(false);
// return; // return;
// } // }
// await imsg.Channel.TriggerTypingAsync().ConfigureAwait(false); // await umsg.Channel.TriggerTypingAsync().ConfigureAwait(false);
// string response = ""; // string response = "";
// using (var http = new HttpClient()) // using (var http = new HttpClient())
// { // {
@ -247,9 +247,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Ud(IMessage imsg, [Remainder] string query = null) public async Task Ud(IUserMessage umsg, [Remainder] string query = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var arg = query; var arg = query;
if (string.IsNullOrWhiteSpace(arg)) if (string.IsNullOrWhiteSpace(arg))
@ -257,7 +257,7 @@ $@"🌍 **Weather for** 【{obj["target"]}】
await channel.SendMessageAsync("💢 Please enter a search term.").ConfigureAwait(false); await channel.SendMessageAsync("💢 Please enter a search term.").ConfigureAwait(false);
return; return;
} }
await imsg.Channel.TriggerTypingAsync().ConfigureAwait(false); await umsg.Channel.TriggerTypingAsync().ConfigureAwait(false);
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
http.DefaultRequestHeaders.Clear(); http.DefaultRequestHeaders.Clear();
@ -281,9 +281,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Hashtag(IMessage imsg, [Remainder] string query = null) public async Task Hashtag(IUserMessage umsg, [Remainder] string query = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var arg = query; var arg = query;
if (string.IsNullOrWhiteSpace(arg)) if (string.IsNullOrWhiteSpace(arg))
@ -291,7 +291,7 @@ $@"🌍 **Weather for** 【{obj["target"]}】
await channel.SendMessageAsync("💢 Please enter a search term.").ConfigureAwait(false); await channel.SendMessageAsync("💢 Please enter a search term.").ConfigureAwait(false);
return; return;
} }
await imsg.Channel.TriggerTypingAsync().ConfigureAwait(false); await umsg.Channel.TriggerTypingAsync().ConfigureAwait(false);
string res = ""; string res = "";
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
@ -316,9 +316,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Catfact(IMessage imsg) public async Task Catfact(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
using (var http = new HttpClient()) using (var http = new HttpClient())
{ {
var response = await http.GetStringAsync("http://catfacts-api.appspot.com/api/facts").ConfigureAwait(false); var response = await http.GetStringAsync("http://catfacts-api.appspot.com/api/facts").ConfigureAwait(false);
@ -330,9 +330,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Revav(IMessage imsg, [Remainder] string arg = null) public async Task Revav(IUserMessage umsg, [Remainder] string arg = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var usrStr = arg?.Trim().ToUpperInvariant(); var usrStr = arg?.Trim().ToUpperInvariant();
if (string.IsNullOrWhiteSpace(usrStr)) if (string.IsNullOrWhiteSpace(usrStr))
@ -347,9 +347,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Revimg(IMessage imsg, [Remainder] string imageLink = null) public async Task Revimg(IUserMessage umsg, [Remainder] string imageLink = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
imageLink = imageLink?.Trim() ?? ""; imageLink = imageLink?.Trim() ?? "";
if (string.IsNullOrWhiteSpace(imageLink)) if (string.IsNullOrWhiteSpace(imageLink))
@ -359,9 +359,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Safebooru(IMessage imsg, [Remainder] string tag = null) public async Task Safebooru(IUserMessage umsg, [Remainder] string tag = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
tag = tag?.Trim() ?? ""; tag = tag?.Trim() ?? "";
var link = await GetSafebooruImageLink(tag).ConfigureAwait(false); var link = await GetSafebooruImageLink(tag).ConfigureAwait(false);
@ -373,9 +373,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Wiki(IMessage imsg, [Remainder] string query = null) public async Task Wiki(IUserMessage umsg, [Remainder] string query = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
query = query?.Trim(); query = query?.Trim();
if (string.IsNullOrWhiteSpace(query)) if (string.IsNullOrWhiteSpace(query))
@ -394,9 +394,9 @@ $@"🌍 **Weather for** 【{obj["target"]}】
////todo drawing ////todo drawing
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task Clr(IMessage imsg, [Remainder] string color = null) //public async Task Clr(IUserMessage umsg, [Remainder] string color = null)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// color = color?.Trim().Replace("#", ""); // color = color?.Trim().Replace("#", "");
// if (string.IsNullOrWhiteSpace((string)color)) // if (string.IsNullOrWhiteSpace((string)color))
@ -419,13 +419,13 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Videocall(IMessage imsg, [Remainder] string arg = null) public async Task Videocall(IUserMessage umsg, [Remainder] string arg = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {
var allUsrs = imsg.MentionedUsers.Append(imsg.Author); var allUsrs = umsg.MentionedUsers.Append(umsg.Author);
var allUsrsArray = allUsrs.ToArray(); var allUsrsArray = allUsrs.ToArray();
var str = allUsrsArray.Aggregate("http://appear.in/", (current, usr) => current + Uri.EscapeUriString(usr.Username[0].ToString())); var str = allUsrsArray.Aggregate("http://appear.in/", (current, usr) => current + Uri.EscapeUriString(usr.Username[0].ToString()));
str += new Random().Next(); str += new Random().Next();
@ -442,11 +442,11 @@ $@"🌍 **Weather for** 【{obj["target"]}】
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Avatar(IMessage imsg, [Remainder] string mention = null) public async Task Avatar(IUserMessage umsg, [Remainder] string mention = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var usr = imsg.MentionedUsers.FirstOrDefault(); var usr = umsg.MentionedUsers.FirstOrDefault();
if (usr == null) if (usr == null)
{ {
await channel.SendMessageAsync("Invalid user specified.").ConfigureAwait(false); await channel.SendMessageAsync("Invalid user specified.").ConfigureAwait(false);

View File

@ -18,9 +18,9 @@ namespace NadekoBot.Modules.Translator
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Translate(IMessage imsg, string langs, [Remainder] string text = null) public async Task Translate(IUserMessage umsg, string langs, [Remainder] string text = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
try try
{ {
@ -33,7 +33,7 @@ namespace NadekoBot.Modules.Translator
if (string.IsNullOrWhiteSpace(text)) if (string.IsNullOrWhiteSpace(text))
return; return;
await imsg.Channel.TriggerTypingAsync().ConfigureAwait(false); await umsg.Channel.TriggerTypingAsync().ConfigureAwait(false);
string translation = await GoogleTranslator.Instance.Translate(text, from, to).ConfigureAwait(false); string translation = await GoogleTranslator.Instance.Translate(text, from, to).ConfigureAwait(false);
await channel.SendMessageAsync(translation).ConfigureAwait(false); await channel.SendMessageAsync(translation).ConfigureAwait(false);
} }
@ -46,9 +46,9 @@ namespace NadekoBot.Modules.Translator
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Translangs(IMessage imsg) public async Task Translangs(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.SendTableAsync(GoogleTranslator.Instance.Languages, str => $"{str,-15}", columns: 3); await channel.SendTableAsync(GoogleTranslator.Instance.Languages, str => $"{str,-15}", columns: 3);
} }

View File

@ -75,7 +75,7 @@
// .Parameter("board_id", Discord.Commands.ParameterType.Required) // .Parameter("board_id", Discord.Commands.ParameterType.Required)
// .Do(async e => // .Do(async e =>
// { // {
// if (!NadekoBot.IsOwner(imsg.Author.Id)) return; // if (!NadekoBot.IsOwner(umsg.Author.Id)) return;
// if (bound != null) return; // if (bound != null) return;
// try // try
// { // {
@ -95,7 +95,7 @@
// .Description($"Unbinds a bot from the channel and board. **Bot Owner Only!**| `{Prefix}unbind`") // .Description($"Unbinds a bot from the channel and board. **Bot Owner Only!**| `{Prefix}unbind`")
// .Do(async e => // .Do(async e =>
// { // {
// if (!NadekoBot.IsOwner(imsg.Author.Id)) return; // if (!NadekoBot.IsOwner(umsg.Author.Id)) return;
// if (bound == null || bound != e.Channel) return; // if (bound == null || bound != e.Channel) return;
// t.Stop(); // t.Stop();
// bound = null; // bound = null;
@ -109,7 +109,7 @@
// .Description($"Lists all lists, yo ;) **Bot Owner Only!**| `{Prefix}list`") // .Description($"Lists all lists, yo ;) **Bot Owner Only!**| `{Prefix}list`")
// .Do(async e => // .Do(async e =>
// { // {
// if (!NadekoBot.IsOwner(imsg.Author.Id)) return; // if (!NadekoBot.IsOwner(umsg.Author.Id)) return;
// if (bound == null || board == null || bound != e.Channel) return; // if (bound == null || board == null || bound != e.Channel) return;
// await channel.SendMessageAsync("Lists for a board '" + board.Name + "'\n" + string.Join("\n", board.Lists.Select(l => "**• " + l.ToString() + "**"))) // await channel.SendMessageAsync("Lists for a board '" + board.Name + "'\n" + string.Join("\n", board.Lists.Select(l => "**• " + l.ToString() + "**")))
// .ConfigureAwait(false); // .ConfigureAwait(false);
@ -120,7 +120,7 @@
// .Parameter("list_name", Discord.Commands.ParameterType.Unparsed) // .Parameter("list_name", Discord.Commands.ParameterType.Unparsed)
// .Do(async e => // .Do(async e =>
// { // {
// if (!NadekoBot.IsOwner(imsg.Author.Id)) return; // if (!NadekoBot.IsOwner(umsg.Author.Id)) return;
// if (bound == null || board == null || bound != e.Channel || list_name == null) return; // if (bound == null || board == null || bound != e.Channel || list_name == null) return;
// int num; // int num;

View File

@ -13,7 +13,7 @@ namespace NadekoBot.Modules.Utility
{ {
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ServerInfo(IMessage msg, string guild = null) public async Task ServerInfo(IUserMessage msg, string guild = null)
{ {
var channel = msg.Channel as ITextChannel; var channel = msg.Channel as ITextChannel;
guild = guild?.ToUpperInvariant(); guild = guild?.ToUpperInvariant();
@ -48,7 +48,7 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ChannelInfo(IMessage msg, ITextChannel channel = null) public async Task ChannelInfo(IUserMessage msg, ITextChannel channel = null)
{ {
var ch = channel ?? msg.Channel as ITextChannel; var ch = channel ?? msg.Channel as ITextChannel;
if (ch == null) if (ch == null)
@ -64,7 +64,7 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task UserInfo(IMessage msg, IGuildUser usr = null) public async Task UserInfo(IUserMessage msg, IGuildUser usr = null)
{ {
var channel = msg.Channel as ITextChannel; var channel = msg.Channel as ITextChannel;
var user = usr ?? msg.Author as IGuildUser; var user = usr ?? msg.Author as IGuildUser;

View File

@ -16,9 +16,9 @@ namespace NadekoBot.Modules.Utility
{ {
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ShowQuote(IMessage imsg, string keyword) public async Task ShowQuote(IUserMessage umsg, string keyword)
{ {
var channel = imsg.Channel as ITextChannel; var channel = umsg.Channel as ITextChannel;
if (string.IsNullOrWhiteSpace(keyword)) if (string.IsNullOrWhiteSpace(keyword))
return; return;
@ -39,9 +39,9 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task AddQuote(IMessage imsg, string keyword, [Remainder] string text) public async Task AddQuote(IUserMessage umsg, string keyword, [Remainder] string text)
{ {
var channel = imsg.Channel as ITextChannel; var channel = umsg.Channel as ITextChannel;
if (string.IsNullOrWhiteSpace(keyword) || string.IsNullOrWhiteSpace(text)) if (string.IsNullOrWhiteSpace(keyword) || string.IsNullOrWhiteSpace(text))
return; return;
@ -52,8 +52,8 @@ namespace NadekoBot.Modules.Utility
{ {
uow.Quotes.Add(new Quote uow.Quotes.Add(new Quote
{ {
AuthorId = imsg.Author.Id, AuthorId = umsg.Author.Id,
AuthorName = imsg.Author.Username, AuthorName = umsg.Author.Username,
GuildId = channel.Guild.Id, GuildId = channel.Guild.Id,
Keyword = keyword, Keyword = keyword,
Text = text, Text = text,
@ -65,9 +65,9 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task DeleteQuote(IMessage imsg, string keyword) public async Task DeleteQuote(IUserMessage umsg, string keyword)
{ {
var channel = imsg.Channel as ITextChannel; var channel = umsg.Channel as ITextChannel;
if (string.IsNullOrWhiteSpace(keyword)) if (string.IsNullOrWhiteSpace(keyword))
return; return;
@ -92,9 +92,9 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task DelAllQuotes(IMessage imsg, string keyword) public async Task DelAllQuotes(IUserMessage umsg, string keyword)
{ {
var channel = imsg.Channel as ITextChannel; var channel = umsg.Channel as ITextChannel;
if (string.IsNullOrWhiteSpace(keyword)) if (string.IsNullOrWhiteSpace(keyword))
return; return;

View File

@ -99,9 +99,9 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Remind(IMessage imsg, string meorchannel, string timeStr, [Remainder] string message) public async Task Remind(IUserMessage umsg, string meorchannel, string timeStr, [Remainder] string message)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var meorchStr = meorchannel.ToUpperInvariant(); var meorchStr = meorchannel.ToUpperInvariant();
IMessageChannel ch; IMessageChannel ch;
@ -109,7 +109,7 @@ namespace NadekoBot.Modules.Utility
if (meorchStr == "ME") if (meorchStr == "ME")
{ {
isPrivate = true; isPrivate = true;
ch = await ((IGuildUser)imsg.Author).CreateDMChannelAsync().ConfigureAwait(false); ch = await ((IGuildUser)umsg.Author).CreateDMChannelAsync().ConfigureAwait(false);
} }
else if (meorchStr == "HERE") else if (meorchStr == "HERE")
{ {
@ -122,7 +122,7 @@ namespace NadekoBot.Modules.Utility
if (ch == null) if (ch == null)
{ {
await channel.SendMessageAsync($"{imsg.Author.Mention} Something went wrong (channel cannot be found) ;(").ConfigureAwait(false); await channel.SendMessageAsync($"{umsg.Author.Mention} Something went wrong (channel cannot be found) ;(").ConfigureAwait(false);
return; return;
} }
@ -175,7 +175,7 @@ namespace NadekoBot.Modules.Utility
IsPrivate = isPrivate, IsPrivate = isPrivate,
When = time, When = time,
Message = message, Message = message,
UserId = imsg.Author.Id, UserId = umsg.Author.Id,
ServerId = channel.Guild.Id ServerId = channel.Guild.Id
}; };
@ -185,16 +185,16 @@ namespace NadekoBot.Modules.Utility
await uow.CompleteAsync(); await uow.CompleteAsync();
} }
await channel.SendMessageAsync($"⏰ I will remind \"{(ch is ITextChannel ? ((ITextChannel)ch).Name : imsg.Author.Username)}\" to \"{message.ToString()}\" in {output}. ({time:d.M.yyyy.} at {time:HH:mm})").ConfigureAwait(false); await channel.SendMessageAsync($"⏰ I will remind \"{(ch is ITextChannel ? ((ITextChannel)ch).Name : umsg.Author.Username)}\" to \"{message.ToString()}\" in {output}. ({time:d.M.yyyy.} at {time:HH:mm})").ConfigureAwait(false);
await StartReminder(rem); await StartReminder(rem);
} }
////todo owner only ////todo owner only
//[LocalizedCommand, LocalizedDescription, LocalizedSummary] //[LocalizedCommand, LocalizedDescription, LocalizedSummary]
//[RequireContext(ContextType.Guild)] //[RequireContext(ContextType.Guild)]
//public async Task RemindTemplate(IMessage imsg, [Remainder] string arg) //public async Task RemindTemplate(IUserMessage umsg, [Remainder] string arg)
//{ //{
// var channel = (ITextChannel)imsg.Channel; // var channel = (ITextChannel)umsg.Channel;
// arg = arg?.Trim(); // arg = arg?.Trim();

View File

@ -25,13 +25,13 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task WhosPlaying(IMessage imsg, [Remainder] string game = null) public async Task WhosPlaying(IUserMessage umsg, [Remainder] string game = null)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
game = game.Trim().ToUpperInvariant(); game = game.Trim().ToUpperInvariant();
if (string.IsNullOrWhiteSpace(game)) if (string.IsNullOrWhiteSpace(game))
return; return;
var arr = (await (imsg.Channel as IGuildChannel).Guild.GetUsersAsync()) var arr = (await (umsg.Channel as IGuildChannel).Guild.GetUsersAsync())
.Where(u => u.Game?.Name?.ToUpperInvariant() == game) .Where(u => u.Game?.Name?.ToUpperInvariant() == game)
.Select(u => u.Username) .Select(u => u.Username)
.ToList(); .ToList();
@ -45,11 +45,11 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task InRole(IMessage imsg, [Remainder] string roles = null) public async Task InRole(IUserMessage umsg, [Remainder] string roles = null)
{ {
if (string.IsNullOrWhiteSpace(roles)) if (string.IsNullOrWhiteSpace(roles))
return; return;
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var arg = roles.Split(',').Select(r => r.Trim().ToUpperInvariant()); var arg = roles.Split(',').Select(r => r.Trim().ToUpperInvariant());
string send = _l["`Here is a list of users in a specfic role:`"]; string send = _l["`Here is a list of users in a specfic role:`"];
foreach (var roleStr in arg.Where(str => !string.IsNullOrWhiteSpace(str) && str != "@EVERYONE" && str != "EVERYONE")) foreach (var roleStr in arg.Where(str => !string.IsNullOrWhiteSpace(str) && str != "@EVERYONE" && str != "EVERYONE"))
@ -57,14 +57,14 @@ namespace NadekoBot.Modules.Utility
var role = channel.Guild.Roles.Where(r => r.Name.ToUpperInvariant() == roleStr).FirstOrDefault(); var role = channel.Guild.Roles.Where(r => r.Name.ToUpperInvariant() == roleStr).FirstOrDefault();
if (role == null) continue; if (role == null) continue;
send += $"\n`{role.Name}`\n"; send += $"\n`{role.Name}`\n";
send += string.Join(", ", (await channel.Guild.GetUsersAsync()).Where(u => u.Roles.Contains(role)).Select(u => u.ToString())); send += string.Join(", ", channel.Guild.GetUsers().Where(u => u.Roles.Contains(role)).Select(u => u.ToString()));
} }
var usr = imsg.Author as IGuildUser; var usr = umsg.Author as IGuildUser;
while (send.Length > 2000) while (send.Length > 2000)
{ {
if (!usr.GetPermissions(channel).ManageMessages) if (!usr.GetPermissions(channel).ManageMessages)
{ {
await channel.SendMessageAsync($"{usr.Mention} you are not allowed to use this command on roles with a lot of users in them to prevent abuse."); await channel.SendMessageAsync($"{usr.Mention} you are not allowed to use this command on roles with a lot of users in them to prevent abuse.").ConfigureAwait(false);
return; return;
} }
var curstr = send.Substring(0, 2000); var curstr = send.Substring(0, 2000);
@ -78,7 +78,7 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task CheckMyPerms(IMessage msg) public async Task CheckMyPerms(IUserMessage msg)
{ {
StringBuilder builder = new StringBuilder("```\n"); StringBuilder builder = new StringBuilder("```\n");
@ -95,28 +95,28 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task UserId(IMessage msg, IGuildUser target = null) public async Task UserId(IUserMessage msg, IGuildUser target = null)
{ {
var usr = target ?? msg.Author; var usr = target ?? msg.Author;
await msg.Reply($"Id of the user { usr.Username } is { usr.Id })"); await msg.Reply($"Id of the user { usr.Username } is { usr.Id })").ConfigureAwait(false);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
public async Task ChannelId(IMessage msg) public async Task ChannelId(IUserMessage msg)
{ {
await msg.Reply($"This Channel's ID is {msg.Channel.Id}"); await msg.Reply($"This Channel's ID is {msg.Channel.Id}").ConfigureAwait(false);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ServerId(IMessage msg) public async Task ServerId(IUserMessage msg)
{ {
await msg.Reply($"This server's ID is {(msg.Channel as ITextChannel).Guild.Id}"); await msg.Reply($"This server's ID is {(msg.Channel as ITextChannel).Guild.Id}").ConfigureAwait(false);
} }
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Roles(IMessage msg, IGuildUser target = null) public async Task Roles(IUserMessage msg, IGuildUser target = null)
{ {
var guild = (msg.Channel as ITextChannel).Guild; var guild = (msg.Channel as ITextChannel).Guild;
if (target != null) if (target != null)
@ -131,9 +131,9 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task ChannelTopic(IMessage imsg) public async Task ChannelTopic(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
var topic = channel.Topic; var topic = channel.Topic;
if (string.IsNullOrWhiteSpace(topic)) if (string.IsNullOrWhiteSpace(topic))
@ -144,9 +144,9 @@ namespace NadekoBot.Modules.Utility
[LocalizedCommand, LocalizedDescription, LocalizedSummary] [LocalizedCommand, LocalizedDescription, LocalizedSummary]
[RequireContext(ContextType.Guild)] [RequireContext(ContextType.Guild)]
public async Task Stats(IMessage imsg) public async Task Stats(IUserMessage umsg)
{ {
var channel = (ITextChannel)imsg.Channel; var channel = (ITextChannel)umsg.Channel;
await channel.SendMessageAsync(await NadekoBot.Stats.Print()); await channel.SendMessageAsync(await NadekoBot.Stats.Print());
} }

View File

@ -88,15 +88,18 @@ namespace NadekoBot
} }
} }
private Task Client_MessageReceived(IMessage imsg) private Task Client_MessageReceived(IMessage umsg)
{ {
var usrMsg = umsg as IUserMessage;
if (usrMsg == null)
return Task.CompletedTask;
var throwaway = Task.Run(async () => var throwaway = Task.Run(async () =>
{ {
var sw = new Stopwatch(); var sw = new Stopwatch();
sw.Start(); sw.Start();
var t = await Commands.Execute(imsg, imsg.Content); var t = await Commands.Execute(usrMsg, usrMsg.Content);
sw.Stop(); sw.Stop();
var channel = (imsg.Channel as ITextChannel); var channel = (umsg.Channel as ITextChannel);
if (t.IsSuccess) if (t.IsSuccess)
{ {
@ -105,10 +108,10 @@ namespace NadekoBot
"Server: {1}\n\t" + "Server: {1}\n\t" +
"Channel: {2}\n\t" + "Channel: {2}\n\t" +
"Message: {3}", "Message: {3}",
imsg.Author + " [" + imsg.Author.Id + "]", // {0} umsg.Author + " [" + umsg.Author.Id + "]", // {0}
(channel == null ? "PRIVATE" : channel.Guild.Name + " [" + channel.Guild.Id + "]"), // {1} (channel == null ? "PRIVATE" : channel.Guild.Name + " [" + channel.Guild.Id + "]"), // {1}
(channel == null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]"), //{2} (channel == null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]"), //{2}
imsg.Content, // {3} umsg.Content, // {3}
sw.Elapsed.TotalSeconds // {4} sw.Elapsed.TotalSeconds // {4}
); );
} }
@ -120,10 +123,10 @@ namespace NadekoBot
"Channel: {2}\n\t" + "Channel: {2}\n\t" +
"Message: {3}\n\t" + "Message: {3}\n\t" +
"Error: {4}", "Error: {4}",
imsg.Author + " [" + imsg.Author.Id + "]", // {0} umsg.Author + " [" + umsg.Author.Id + "]", // {0}
(channel == null ? "PRIVATE" : channel.Guild.Name + " [" + channel.Guild.Id + "]"), // {1} (channel == null ? "PRIVATE" : channel.Guild.Name + " [" + channel.Guild.Id + "]"), // {1}
(channel == null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]"), //{2} (channel == null ? "PRIVATE" : channel.Name + " [" + channel.Id + "]"), //{2}
imsg.Content,// {3} umsg.Content,// {3}
t.ErrorReason, // {4} t.ErrorReason, // {4}
sw.Elapsed.TotalSeconds //{5} sw.Elapsed.TotalSeconds //{5}
); );

View File

@ -24,29 +24,29 @@ namespace NadekoBot.Extensions
public static double UnixTimestamp(this DateTime dt) => dt.ToUniversalTime().Subtract(new DateTime(1970, 1, 1)).TotalSeconds; public static double UnixTimestamp(this DateTime dt) => dt.ToUniversalTime().Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
public static async Task<IMessage> SendMessageAsync(this IGuildUser user, string message, bool isTTS = false) => public static async Task<IUserMessage> SendMessageAsync(this IGuildUser user, string message, bool isTTS = false) =>
await (await user.CreateDMChannelAsync().ConfigureAwait(false)).SendMessageAsync(message, isTTS).ConfigureAwait(false); await (await user.CreateDMChannelAsync().ConfigureAwait(false)).SendMessageAsync(message, isTTS).ConfigureAwait(false);
public static async Task<IMessage> SendFileAsync(this IGuildUser user, string filePath, string caption = null, bool isTTS = false) => public static async Task<IUserMessage> SendFileAsync(this IGuildUser user, string filePath, string caption = null, bool isTTS = false) =>
await (await user.CreateDMChannelAsync().ConfigureAwait(false)).SendFileAsync(filePath, caption, isTTS).ConfigureAwait(false); await (await user.CreateDMChannelAsync().ConfigureAwait(false)).SendFileAsync(filePath, caption, isTTS).ConfigureAwait(false);
public static async Task<IMessage> SendFileAsync(this IGuildUser user, Stream fileStream, string fileName, string caption = null, bool isTTS = false) => public static async Task<IUserMessage> SendFileAsync(this IGuildUser user, Stream fileStream, string fileName, string caption = null, bool isTTS = false) =>
await (await user.CreateDMChannelAsync().ConfigureAwait(false)).SendFileAsync(fileStream, fileName, caption, isTTS).ConfigureAwait(false); await (await user.CreateDMChannelAsync().ConfigureAwait(false)).SendFileAsync(fileStream, fileName, caption, isTTS).ConfigureAwait(false);
public static async Task<IMessage> Reply(this IMessage msg, string content) => public static async Task<IUserMessage> Reply(this IUserMessage msg, string content) =>
await msg.Channel.SendMessageAsync(content).ConfigureAwait(false); await msg.Channel.SendMessageAsync(content).ConfigureAwait(false);
public static Task<bool> IsAuthor(this IMessage msg) => public static Task<bool> IsAuthor(this IUserMessage msg) =>
Task.FromResult(NadekoBot.Client.GetCurrentUser().Id == msg.Author.Id); Task.FromResult(NadekoBot.Client.GetCurrentUser().Id == msg.Author.Id);
public static IEnumerable<IUser> Members(this IRole role) => public static IEnumerable<IUser> Members(this IRole role) =>
NadekoBot.Client.GetGuilds().Where(g => g.Id == role.GuildId).FirstOrDefault()?.GetUsers().Where(u => u.Roles.Contains(role)) ?? Enumerable.Empty<IUser>(); NadekoBot.Client.GetGuilds().Where(g => g.Id == role.GuildId).FirstOrDefault()?.GetUsers().Where(u => u.Roles.Contains(role)) ?? Enumerable.Empty<IUser>();
public static async Task<IMessage[]> ReplyLong(this IMessage msg, string content, string breakOn = "\n", string addToEnd = "", string addToStart = "") public static async Task<IUserMessage[]> ReplyLong(this IUserMessage msg, string content, string breakOn = "\n", string addToEnd = "", string addToStart = "")
{ {
if (content.Length < 2000) return new[] { await msg.Channel.SendMessageAsync(content).ConfigureAwait(false) }; if (content.Length < 2000) return new[] { await msg.Channel.SendMessageAsync(content).ConfigureAwait(false) };
var list = new List<IMessage>(); var list = new List<IUserMessage>();
var temp = Regex.Split(content, breakOn).Select(x => x += breakOn).ToList(); var temp = Regex.Split(content, breakOn).Select(x => x += breakOn).ToList();
string toolong; string toolong;
@ -77,7 +77,7 @@ namespace NadekoBot.Extensions
return list.ToArray(); return list.ToArray();
} }
public static Task<IMessage> SendTableAsync<T>(this IMessageChannel ch, string seed, IEnumerable<T> items, Func<T, string> howToPrint, int columns = 3) public static Task<IUserMessage> SendTableAsync<T>(this IMessageChannel ch, string seed, IEnumerable<T> items, Func<T, string> howToPrint, int columns = 3)
{ {
var i = 0; var i = 0;
return ch.SendMessageAsync($@"{seed}```xl return ch.SendMessageAsync($@"{seed}```xl
@ -86,7 +86,7 @@ namespace NadekoBot.Extensions
```"); ```");
} }
public static Task<IMessage> SendTableAsync<T>(this IMessageChannel ch, IEnumerable<T> items, Func<T, string> howToPrint, int columns = 3) public static Task<IUserMessage> SendTableAsync<T>(this IMessageChannel ch, IEnumerable<T> items, Func<T, string> howToPrint, int columns = 3)
{ {
return ch.SendTableAsync("", items, howToPrint, columns); return ch.SendTableAsync("", items, howToPrint, columns);
} }

View File

@ -31,7 +31,7 @@ namespace NadekoBot.Modules.CustomReactions
}else return rng.Next().ToString(); }else return rng.Next().ToString();
} }, } },
{new Regex("%mention%"), (e,m) => NadekoBot.BotMention }, {new Regex("%mention%"), (e,m) => NadekoBot.BotMention },
{new Regex("%user%"), (e,m) => imsg.Author.Mention }, {new Regex("%user%"), (e,m) => umsg.Author.Mention },
{new Regex("%target%"), (e,m) => args?.Trim() ?? "" }, {new Regex("%target%"), (e,m) => args?.Trim() ?? "" },
}; };

View File

@ -119,10 +119,10 @@ namespace NadekoBot.Modules.Permissions.Classes
case PermissionsHandler.PermissionBanType.RoleBanModule: case PermissionsHandler.PermissionBanType.RoleBanModule:
msg = $"You do not have a **role** which permits you the usage of **{command.Category}** module."; msg = $"You do not have a **role** which permits you the usage of **{command.Category}** module.";
break; break;
case PermissionsHandler.PermissionBanTypimsg.AuthorBanCommand: case PermissionsHandler.PermissionBanTypumsg.AuthorBanCommand:
msg = $"{user.Mention}, You have been banned from using **{command.Text}** command."; msg = $"{user.Mention}, You have been banned from using **{command.Text}** command.";
break; break;
case PermissionsHandler.PermissionBanTypimsg.AuthorBanModule: case PermissionsHandler.PermissionBanTypumsg.AuthorBanModule:
msg = $"{user.Mention}, You have been banned from using **{command.Category}** module."; msg = $"{user.Mention}, You have been banned from using **{command.Category}** module.";
break; break;
default: default:

View File

@ -142,10 +142,10 @@ namespace NadekoBot.Modules.Permissions.Classes
//user //user
if (serverPerms.UserPermissions.TryGetValue(user.Id, out perm) && if (serverPerms.UserPermissions.TryGetValue(user.Id, out perm) &&
perm.Modules.TryGetValue(command.Category, out val) && val == false) perm.Modules.TryGetValue(command.Category, out val) && val == false)
return PermissionBanTypimsg.AuthorBanModule; return PermissionBanTypumsg.AuthorBanModule;
if (serverPerms.UserPermissions.TryGetValue(user.Id, out perm) && if (serverPerms.UserPermissions.TryGetValue(user.Id, out perm) &&
perm.Commands.TryGetValue(command.Text, out val) && val == false) perm.Commands.TryGetValue(command.Text, out val) && val == false)
return PermissionBanTypimsg.AuthorBanCommand; return PermissionBanTypumsg.AuthorBanCommand;
return PermissionBanType.None; return PermissionBanType.None;
} }

View File

@ -224,7 +224,7 @@ namespace NadekoBot.Modules.Permissions
.Parameter("user", ParameterType.Unparsed) .Parameter("user", ParameterType.Unparsed)
.Do(async e => .Do(async e =>
{ {
var user = imsg.Author; var user = umsg.Author;
if (!string.IsNullOrWhiteSpace(user)) if (!string.IsNullOrWhiteSpace(user))
try try
{ {