Some replacements, main gambling file done
This commit is contained in:
		| @@ -238,13 +238,13 @@ namespace NadekoBot | ||||
| {er.Exception} | ||||
| ------------------------------------- | ||||
| "); | ||||
|                         Console.WriteLine($">>COMMAND ERRORED after *{(DateTime.UtcNow - dt).TotalSeconds}s*\nCmd: {e.Command.Text}\nMsg: {e.Message.Text}\nUsr: {e.User.Name} [{e.User.Id}]\nSrvr: {e.Server?.Name ?? "PRIVATE"} [{e.Server?.Id}]\n-----"); | ||||
|                         Console.WriteLine($">>COMMAND ERRORED after *{(DateTime.UtcNow - dt).TotalSeconds}s*\nCmd: {e.Command.Text}\nMsg: {e.Message.Text}\nUsr: {imsg.Author.Username} [{imsg.Author.Id}]\nSrvr: {e.Server?.Name ?? "PRIVATE"} [{e.Server?.Id}]\n-----"); | ||||
|                     } | ||||
|  | ||||
|                 } | ||||
|                 else | ||||
|                 { | ||||
|                     Console.WriteLine($">>COMMAND ENDED after *{(DateTime.UtcNow - dt).TotalSeconds}s*\nCmd: {e.Command.Text}\nMsg: {e.Message.Text}\nUsr: {e.User.Name} [{e.User.Id}]\nSrvr: {e.Server?.Name ?? "PRIVATE"} [{e.Server?.Id}]\n-----"); | ||||
|                     Console.WriteLine($">>COMMAND ENDED after *{(DateTime.UtcNow - dt).TotalSeconds}s*\nCmd: {e.Command.Text}\nMsg: {e.Message.Text}\nUsr: {imsg.Author.Username} [{imsg.Author.Id}]\nSrvr: {e.Server?.Name ?? "PRIVATE"} [{e.Server?.Id}]\n-----"); | ||||
|                 } | ||||
|             } | ||||
|             catch { } | ||||
| @@ -253,7 +253,7 @@ namespace NadekoBot | ||||
|         private async void StatsCollector_RanCommand(object sender, CommandEventArgs e) | ||||
|         { | ||||
|             commandTracker.TryAdd(e.Message.Id, DateTime.UtcNow); | ||||
|             Console.WriteLine($">>COMMAND STARTED\nCmd: {e.Command.Text}\nMsg: {e.Message.Text}\nUsr: {e.User.Name} [{e.User.Id}]\nSrvr: {e.Server?.Name ?? "PRIVATE"} [{e.Server?.Id}]\n-----"); | ||||
|             Console.WriteLine($">>COMMAND STARTED\nCmd: {e.Command.Text}\nMsg: {e.Message.Text}\nUsr: {imsg.Author.Username} [{imsg.Author.Id}]\nSrvr: {e.Server?.Name ?? "PRIVATE"} [{e.Server?.Id}]\n-----"); | ||||
| #if !NADEKO_RELEASE | ||||
|             await Task.Run(() => | ||||
|             { | ||||
| @@ -266,8 +266,8 @@ namespace NadekoBot | ||||
|                         ServerName = e.Server?.Name ?? "--Direct Message--", | ||||
|                         ChannelId = (long)e.Channel.Id, | ||||
|                         ChannelName = e.Channel.IsPrivate ? "--Direct Message" : e.Channel.Name, | ||||
|                         UserId = (long)e.User.Id, | ||||
|                         UserName = e.User.Name, | ||||
|                         UserId = (long)imsg.Author.Id, | ||||
|                         UserName = imsg.Author.Username, | ||||
|                         CommandName = e.Command.Text, | ||||
|                         DateAdded = DateTime.Now | ||||
|                     }); | ||||
|   | ||||
| @@ -23,7 +23,7 @@ namespace NadekoBot.Modules.Administration.Commands | ||||
|                     //if (role == null) | ||||
|                     //    return; | ||||
|  | ||||
|                     //e.User.AddRoles(role); | ||||
|                     //imsg.Author.AddRoles(role); | ||||
|                     return Task.CompletedTask; | ||||
|                 }; | ||||
|             } | ||||
|   | ||||
| @@ -18,7 +18,7 @@ | ||||
| //            { | ||||
| //                try | ||||
| //                { | ||||
| //                    if (e.User.Id == NadekoBot.Client.CurrentUser.Id) return; | ||||
| //                    if (imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) return; | ||||
| //                    foreach (var subscriber in Subscribers) | ||||
| //                    { | ||||
| //                        var set = subscriber.Value; | ||||
| @@ -26,7 +26,7 @@ | ||||
| //                            continue; | ||||
| //                        foreach (var chan in set.Except(new[] { e.Channel })) | ||||
| //                        { | ||||
| //                            await chan.SendMessage(GetText(e.Server, e.Channel, e.User, e.Message)).ConfigureAwait(false); | ||||
| //                            await chan.SendMessage(GetText(e.Server, e.Channel, imsg.Author, e.Message)).ConfigureAwait(false); | ||||
| //                        } | ||||
| //                    } | ||||
| //                } | ||||
| @@ -46,9 +46,9 @@ | ||||
| //                        { | ||||
| //                            var msg = chan.Messages | ||||
| //                                .FirstOrDefault(m => | ||||
| //                                    m.RawText == GetText(e.Server, e.Channel, e.User, e.Before)); | ||||
| //                                    m.RawText == GetText(e.Server, e.Channel, imsg.Author, e.Before)); | ||||
| //                            if (msg != default(Message)) | ||||
| //                                await msg.Edit(GetText(e.Server, e.Channel, e.User, e.After)).ConfigureAwait(false); | ||||
| //                                await msg.Edit(GetText(e.Server, e.Channel, imsg.Author, e.After)).ConfigureAwait(false); | ||||
| //                        } | ||||
| //                    } | ||||
|  | ||||
| @@ -75,7 +75,7 @@ | ||||
| //                    if (Subscribers.TryAdd(token, set)) | ||||
| //                    { | ||||
| //                        set.Add(e.Channel); | ||||
| //                        await e.User.SendMessage("This is your CSC token:" + token.ToString()).ConfigureAwait(false); | ||||
| //                        await imsg.Author.SendMessage("This is your CSC token:" + token.ToString()).ConfigureAwait(false); | ||||
| //                    } | ||||
| //                }); | ||||
|  | ||||
|   | ||||
| @@ -23,7 +23,7 @@ | ||||
| //                    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; })); | ||||
|  | ||||
| //                    await e.User.SendMessage(string.Join("\n----------------------", incs.Select(i => i.Text))); | ||||
| //                    await imsg.Author.SendMessage(string.Join("\n----------------------", incs.Select(i => i.Text))); | ||||
| //                }); | ||||
|  | ||||
| //            cgb.CreateCommand(Module.Prefix + "listallincidents") | ||||
| @@ -41,7 +41,7 @@ | ||||
| //                    sw.WriteLine(data); | ||||
| //                    sw.Flush(); | ||||
| //                    sw.BaseStream.Position = 0; | ||||
| //                    await e.User.SendFile("incidents.txt", sw.BaseStream); | ||||
| //                    await imsg.Author.SendFile("incidents.txt", sw.BaseStream); | ||||
| //                }); | ||||
| //        } | ||||
| //    } | ||||
|   | ||||
| @@ -36,17 +36,17 @@ | ||||
|  | ||||
| //            NadekoBot.Client.MessageReceived += async (s, e) => | ||||
| //            { | ||||
| //                if (e.Channel.IsPrivate || e.User.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                if (e.Channel.IsPrivate || imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                    return; | ||||
| //                if (!SpecificConfigurations.Default.Of(e.Server.Id).SendPrivateMessageOnMention) return; | ||||
| //                try | ||||
| //                { | ||||
| //                    var usr = e.Message.MentionedUsers.FirstOrDefault(u => u != e.User); | ||||
| //                    var usr = e.Message.MentionedUsers.FirstOrDefault(u => u != imsg.Author); | ||||
| //                    if (usr?.Status != UserStatus.Offline) | ||||
| //                        return; | ||||
| //                    await channel.SendMessageAsync($"User `{usr.Name}` is offline. PM sent.").ConfigureAwait(false); | ||||
| //                    await usr.SendMessage( | ||||
| //                        $"User `{e.User.Name}` mentioned you on " + | ||||
| //                        $"User `{imsg.Author.Username}` mentioned you on " + | ||||
| //                        $"`{e.Server.Name}` server while you were offline.\n" + | ||||
| //                        $"`Message:` {e.Message.Text}").ConfigureAwait(false); | ||||
| //                } | ||||
| @@ -148,7 +148,7 @@ | ||||
| //                Channel ch; | ||||
| //                if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) | ||||
| //                    return; | ||||
| //                await ch.SendMessage($"`{prettyCurrentTime}`♻`User was unbanned:` **{e.User.Name}** ({e.User.Id})").ConfigureAwait(false); | ||||
| //                await ch.SendMessage($"`{prettyCurrentTime}`♻`User was unbanned:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); | ||||
| //            } | ||||
| //            catch { } | ||||
| //        } | ||||
| @@ -163,7 +163,7 @@ | ||||
| //                Channel ch; | ||||
| //                if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) | ||||
| //                    return; | ||||
| //                await ch.SendMessage($"`{prettyCurrentTime}`✅`User joined:` **{e.User.Name}** ({e.User.Id})").ConfigureAwait(false); | ||||
| //                await ch.SendMessage($"`{prettyCurrentTime}`✅`User joined:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); | ||||
| //            } | ||||
| //            catch { } | ||||
| //        } | ||||
| @@ -178,7 +178,7 @@ | ||||
| //                Channel ch; | ||||
| //                if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) | ||||
| //                    return; | ||||
| //                await ch.SendMessage($"`{prettyCurrentTime}`❗`User left:` **{e.User.Name}** ({e.User.Id})").ConfigureAwait(false); | ||||
| //                await ch.SendMessage($"`{prettyCurrentTime}`❗`User left:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); | ||||
| //            } | ||||
| //            catch { } | ||||
| //        } | ||||
| @@ -193,7 +193,7 @@ | ||||
| //                Channel ch; | ||||
| //                if ((ch = e.Server.TextChannels.Where(tc => tc.Id == chId).FirstOrDefault()) == null) | ||||
| //                    return; | ||||
| //                await ch.SendMessage($"❗`{prettyCurrentTime}`❌`User banned:` **{e.User.Name}** ({e.User.Id})").ConfigureAwait(false); | ||||
| //                await ch.SendMessage($"❗`{prettyCurrentTime}`❌`User banned:` **{imsg.Author.Username}** ({imsg.Author.Id})").ConfigureAwait(false); | ||||
| //            } | ||||
| //            catch { } | ||||
| //        } | ||||
| @@ -202,7 +202,7 @@ | ||||
| //        { | ||||
| //            try | ||||
| //            { | ||||
| //                if (e.Server == null || e.Channel.IsPrivate || e.User.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                if (e.Server == null || e.Channel.IsPrivate || imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                    return; | ||||
| //                var config = SpecificConfigurations.Default.Of(e.Server.Id); | ||||
| //                var chId = config.LogServerChannel; | ||||
| @@ -215,13 +215,13 @@ | ||||
| //                { | ||||
| //                    await ch.SendMessage( | ||||
| //        $@"🕔`{prettyCurrentTime}` **New Message** `#{e.Channel.Name}` | ||||
| //👤`{e.User?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false); | ||||
| //👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false); | ||||
| //                } | ||||
| //                else | ||||
| //                { | ||||
| //                    await ch.SendMessage( | ||||
| //        $@"🕔`{prettyCurrentTime}` **File Uploaded** `#{e.Channel.Name}` | ||||
| //👤`{e.User?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false); | ||||
| //👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false); | ||||
| //                } | ||||
|  | ||||
| //            } | ||||
| @@ -231,7 +231,7 @@ | ||||
| //        { | ||||
| //            try | ||||
| //            { | ||||
| //                if (e.Server == null || e.Channel.IsPrivate || e.User?.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                if (e.Server == null || e.Channel.IsPrivate || imsg.Author?.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                    return; | ||||
| //                var config = SpecificConfigurations.Default.Of(e.Server.Id); | ||||
| //                var chId = config.LogServerChannel; | ||||
| @@ -244,13 +244,13 @@ | ||||
| //                { | ||||
| //                    await ch.SendMessage( | ||||
| //        $@"🕔`{prettyCurrentTime}` **Message** 🚮 `#{e.Channel.Name}` | ||||
| //👤`{e.User?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false); | ||||
| //👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Text.Unmention()}").ConfigureAwait(false); | ||||
| //                } | ||||
| //                else | ||||
| //                { | ||||
| //                    await ch.SendMessage( | ||||
| //        $@"🕔`{prettyCurrentTime}` **File Deleted** `#{e.Channel.Name}` | ||||
| //👤`{e.User?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false); | ||||
| //👤`{imsg.Author?.ToString() ?? ("NULL")}` {e.Message.Attachments.FirstOrDefault()?.ProxyUrl}").ConfigureAwait(false); | ||||
| //                } | ||||
| //            } | ||||
| //            catch { } | ||||
| @@ -259,7 +259,7 @@ | ||||
| //        { | ||||
| //            try | ||||
| //            { | ||||
| //                if (e.Server == null || e.Channel.IsPrivate || e.User?.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                if (e.Server == null || e.Channel.IsPrivate || imsg.Author?.Id == NadekoBot.Client.CurrentUser.Id) | ||||
| //                    return; | ||||
| //                var config = SpecificConfigurations.Default.Of(e.Server.Id); | ||||
| //                var chId = config.LogServerChannel; | ||||
| @@ -270,7 +270,7 @@ | ||||
| //                    return; | ||||
| //                await ch.SendMessage( | ||||
| //        $@"🕔`{prettyCurrentTime}` **Message** 📝 `#{e.Channel.Name}` | ||||
| //👤`{e.User?.ToString() ?? ("NULL")}` | ||||
| //👤`{imsg.Author?.ToString() ?? ("NULL")}` | ||||
| //        `Old:` {e.Before.Text.Unmention()} | ||||
| //        `New:` {e.After.Text.Unmention()}").ConfigureAwait(false); | ||||
| //            } | ||||
| @@ -466,19 +466,19 @@ | ||||
| //                          return; | ||||
| //                      } | ||||
|  | ||||
| //                      if (e.User.VoiceChannel == null) | ||||
| //                      if (imsg.Author.VoiceChannel == null) | ||||
| //                      { | ||||
| //                          await channel.SendMessageAsync("💢 You are not in a voice channel right now. If you are, please rejoin it.").ConfigureAwait(false); | ||||
| //                          return; | ||||
| //                      } | ||||
| //                      ulong throwaway; | ||||
| //                      if (!config.VoiceChannelLog.TryRemove(e.User.VoiceChannel.Id, out throwaway)) | ||||
| //                      if (!config.VoiceChannelLog.TryRemove(imsg.Author.VoiceChannel.Id, out throwaway)) | ||||
| //                      { | ||||
| //                          config.VoiceChannelLog.TryAdd(e.User.VoiceChannel.Id, e.Channel.Id); | ||||
| //                          await channel.SendMessageAsync($"`Logging user updates for` {e.User.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false); | ||||
| //                          config.VoiceChannelLog.TryAdd(imsg.Author.VoiceChannel.Id, e.Channel.Id); | ||||
| //                          await channel.SendMessageAsync($"`Logging user updates for` {imsg.Author.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false); | ||||
| //                      } | ||||
| //                      else | ||||
| //                          await channel.SendMessageAsync($"`Stopped logging user updates for` {e.User.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false); | ||||
| //                          await channel.SendMessageAsync($"`Stopped logging user updates for` {imsg.Author.VoiceChannel.Mention} `voice channel.`").ConfigureAwait(false); | ||||
| //                  }); | ||||
| //        } | ||||
| //    } | ||||
|   | ||||
| @@ -131,12 +131,12 @@ | ||||
| //                        await channel.SendMessageAsync(":anger:That role is not self-assignable.").ConfigureAwait(false); | ||||
| //                        return; | ||||
| //                    } | ||||
| //                    if (e.User.HasRole(role)) | ||||
| //                    if (imsg.Author.HasRole(role)) | ||||
| //                    { | ||||
| //                        await channel.SendMessageAsync($":anger:You already have {role.Name} role.").ConfigureAwait(false); | ||||
| //                        return; | ||||
| //                    } | ||||
| //                    var sameRoles = e.User.Roles.Where(r => config.ListOfSelfAssignableRoles.Contains(r.Id)); | ||||
| //                    var sameRoles = imsg.Author.Roles.Where(r => config.ListOfSelfAssignableRoles.Contains(r.Id)); | ||||
| //                    if (config.ExclusiveSelfAssignedRoles && sameRoles.Any()) | ||||
| //                    { | ||||
| //                        await channel.SendMessageAsync($":anger:You already have {sameRoles.FirstOrDefault().Name} role.").ConfigureAwait(false); | ||||
| @@ -144,7 +144,7 @@ | ||||
| //                    } | ||||
| //                    try | ||||
| //                    { | ||||
| //                        await e.User.AddRoles(role).ConfigureAwait(false); | ||||
| //                        await imsg.Author.AddRoles(role).ConfigureAwait(false); | ||||
| //                    } | ||||
| //                    catch (HttpException ex) when (ex.StatusCode == System.Net.HttpStatusCode.InternalServerError) | ||||
| //                    { | ||||
| @@ -187,12 +187,12 @@ | ||||
| //                        await channel.SendMessageAsync(":anger:That role is not self-assignable.").ConfigureAwait(false); | ||||
| //                        return; | ||||
| //                    } | ||||
| //                    if (!e.User.HasRole(role)) | ||||
| //                    if (!imsg.Author.HasRole(role)) | ||||
| //                    { | ||||
| //                        await channel.SendMessageAsync($":anger:You don't have {role.Name} role.").ConfigureAwait(false); | ||||
| //                        return; | ||||
| //                    } | ||||
| //                    await e.User.RemoveRoles(role).ConfigureAwait(false); | ||||
| //                    await imsg.Author.RemoveRoles(role).ConfigureAwait(false); | ||||
| //                    var msg = await channel.SendMessageAsync($":ok:Successfuly removed {role.Name} role from you.").ConfigureAwait(false); | ||||
| //                    await Task.Delay(3000).ConfigureAwait(false); | ||||
| //                    await msg.Delete().ConfigureAwait(false); | ||||
|   | ||||
| @@ -39,7 +39,7 @@ | ||||
|  | ||||
| //                var controls = AnnouncementsDictionary[e.Server.Id]; | ||||
| //                var channel = NadekoBot.Client.GetChannel(controls.ByeChannel); | ||||
| //                var msg = controls.ByeText.Replace("%user%", "**" + e.User.Name + "**").Trim(); | ||||
| //                var msg = controls.ByeText.Replace("%user%", "**" + imsg.Author.Username + "**").Trim(); | ||||
| //                if (string.IsNullOrEmpty(msg)) | ||||
| //                    return; | ||||
|  | ||||
| @@ -48,7 +48,7 @@ | ||||
| //                    Greeted++; | ||||
| //                    try | ||||
| //                    { | ||||
| //                        await e.User.SendMessage($"`Farewell Message From {e.Server?.Name}`\n" + msg).ConfigureAwait(false); | ||||
| //                        await imsg.Author.SendMessage($"`Farewell Message From {e.Server?.Name}`\n" + msg).ConfigureAwait(false); | ||||
|  | ||||
| //                    } | ||||
| //                    catch { } | ||||
| @@ -78,13 +78,13 @@ | ||||
| //                var controls = AnnouncementsDictionary[e.Server.Id]; | ||||
| //                var channel = NadekoBot.Client.GetChannel(controls.GreetChannel); | ||||
|  | ||||
| //                var msg = controls.GreetText.Replace("%user%", e.User.Mention).Trim(); | ||||
| //                var msg = controls.GreetText.Replace("%user%", imsg.Author.Mention).Trim(); | ||||
| //                if (string.IsNullOrEmpty(msg)) | ||||
| //                    return; | ||||
| //                if (controls.GreetPM) | ||||
| //                { | ||||
| //                    Greeted++; | ||||
| //                    await e.User.SendMessage($"`Welcome Message From {e.Server.Name}`\n" + msg).ConfigureAwait(false); | ||||
| //                    await imsg.Author.SendMessage($"`Welcome Message From {e.Server.Name}`\n" + msg).ConfigureAwait(false); | ||||
| //                } | ||||
| //                else | ||||
| //                { | ||||
| @@ -211,7 +211,7 @@ | ||||
| //                .Description($"Toggles automatic deletion of greet and bye messages. **Needs Manage Server Permissions.**| `{Prefix}grdel`") | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!e.User.ServerPermissions.ManageServer) return; | ||||
| //                    if (!imsg.Author.ServerPermissions.ManageServer) return; | ||||
| //                    var ann = AnnouncementsDictionary.GetOrAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||
|  | ||||
| //                    if (ann.ToggleDelete()) | ||||
| @@ -224,7 +224,7 @@ | ||||
| //                .Description($"Toggles anouncements on the current channel when someone joins the server. **Needs Manage Server Permissions.**| `{Prefix}greet`") | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!e.User.ServerPermissions.ManageServer) return; | ||||
| //                    if (!imsg.Author.ServerPermissions.ManageServer) return; | ||||
| //                    var ann = AnnouncementsDictionary.GetOrAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||
|  | ||||
| //                    if (ann.ToggleGreet(e.Channel.Id)) | ||||
| @@ -238,7 +238,7 @@ | ||||
| //                .Parameter("msg", ParameterType.Unparsed) | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!e.User.ServerPermissions.ManageServer) return; | ||||
| //                    if (!imsg.Author.ServerPermissions.ManageServer) return; | ||||
| //                    var ann = AnnouncementsDictionary.GetOrAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||
| //                    if (string.IsNullOrWhiteSpace(e.GetArg("msg"))) | ||||
| //                    { | ||||
| @@ -257,7 +257,7 @@ | ||||
| //                .Description($"Toggles anouncements on the current channel when someone leaves the server. | `{Prefix}bye`") | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!e.User.ServerPermissions.ManageServer) return; | ||||
| //                    if (!imsg.Author.ServerPermissions.ManageServer) return; | ||||
| //                    var ann = AnnouncementsDictionary.GetOrAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||
|  | ||||
| //                    if (ann.ToggleBye(e.Channel.Id)) | ||||
| @@ -271,7 +271,7 @@ | ||||
| //                .Parameter("msg", ParameterType.Unparsed) | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!e.User.ServerPermissions.ManageServer) return; | ||||
| //                    if (!imsg.Author.ServerPermissions.ManageServer) return; | ||||
| //                    var ann = AnnouncementsDictionary.GetOrAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||
| //                    if (string.IsNullOrWhiteSpace(e.GetArg("msg"))) | ||||
| //                    { | ||||
| @@ -289,7 +289,7 @@ | ||||
| //                .Description($"Toggles whether the good bye messages will be sent in a PM or in the text channel. **Needs Manage Server Permissions.**| `{Prefix}byepm`") | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!e.User.ServerPermissions.ManageServer) return; | ||||
| //                    if (!imsg.Author.ServerPermissions.ManageServer) return; | ||||
| //                    var ann = AnnouncementsDictionary.GetOrAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||
|  | ||||
|  | ||||
| @@ -305,7 +305,7 @@ | ||||
| //                .Description($"Toggles whether the greet messages will be sent in a PM or in the text channel. **Needs Manage Server Permissions.**| `{Prefix}greetpm`") | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!e.User.ServerPermissions.ManageServer) return; | ||||
| //                    if (!imsg.Author.ServerPermissions.ManageServer) return; | ||||
|  | ||||
| //                    var ann = AnnouncementsDictionary.GetOrAdd(e.Server.Id, new AnnounceControls(e.Server.Id)); | ||||
|  | ||||
|   | ||||
| @@ -11,7 +11,8 @@ using System.Threading.Tasks; | ||||
|  | ||||
| namespace NadekoBot.Modules.Gambling.Commands | ||||
| { | ||||
|     class AnimalRacing : DiscordCommand | ||||
|     [Group] | ||||
|     class AnimalRacing | ||||
|     { | ||||
|         public static ConcurrentDictionary<ulong, AnimalRace> AnimalRaces = new ConcurrentDictionary<ulong, AnimalRace>(); | ||||
|  | ||||
| @@ -44,24 +45,24 @@ namespace NadekoBot.Modules.Gambling.Commands | ||||
|                     if (!int.TryParse(e.GetArg("amount"), out amount) || amount < 0) | ||||
|                         amount = 0; | ||||
|  | ||||
|                     var userFlowers = GamblingModule.GetUserFlowers(e.User.Id); | ||||
|                     var userFlowers = Gambling.GetUserFlowers(imsg.Author.Id); | ||||
|  | ||||
|                     if (userFlowers < amount) | ||||
|                     { | ||||
|                         await imsg.Channel.SendMessageAsync($"{e.User.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); | ||||
|                         await channel.SendMessageAsync($"{imsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); | ||||
|                         return; | ||||
|                     } | ||||
|  | ||||
|                     if (amount > 0) | ||||
|                         await FlowersHandler.RemoveFlowers(e.User, "BetRace", (int)amount, true).ConfigureAwait(false); | ||||
|                         await FlowersHandler.RemoveFlowers(imsg.Author, "BetRace", (int)amount, true).ConfigureAwait(false); | ||||
|  | ||||
|                     AnimalRace ar; | ||||
|                     if (!AnimalRaces.TryGetValue(e.Server.Id, out ar)) | ||||
|                     { | ||||
|                         await imsg.Channel.SendMessageAsync("No race exists on this server"); | ||||
|                         await channel.SendMessageAsync("No race exists on this server"); | ||||
|                         return; | ||||
|                     } | ||||
|                     await ar.JoinRace(e.User, amount); | ||||
|                     await ar.JoinRace(imsg.Author, amount); | ||||
|  | ||||
|                 }); | ||||
|         } | ||||
| @@ -77,7 +78,7 @@ namespace NadekoBot.Modules.Gambling.Commands | ||||
|             private ulong serverId; | ||||
|             private int messagesSinceGameStarted = 0; | ||||
|  | ||||
|             public Channel raceChannel { get; set; } | ||||
|             public IGuildChannel raceChannel { get; set; } | ||||
|             public bool Started { get; private set; } = false; | ||||
|  | ||||
|             public AnimalRace(ulong serverId, Channel ch) | ||||
| @@ -134,7 +135,7 @@ namespace NadekoBot.Modules.Gambling.Commands | ||||
|             { | ||||
|                 var rng = new Random(); | ||||
|                 Participant winner = null; | ||||
|                 Message msg = null; | ||||
|                 IMessage msg = null; | ||||
|                 int place = 1; | ||||
|                 try | ||||
|                 { | ||||
| @@ -196,7 +197,7 @@ namespace NadekoBot.Modules.Gambling.Commands | ||||
|  | ||||
|             } | ||||
|  | ||||
|             private void Client_MessageReceived(object sender, MessageEventArgs e) | ||||
|             private void Client_MessageReceived(IMessage imsg) | ||||
|             { | ||||
|                 if (e.Message.IsAuthor || e.Channel.IsPrivate || e.Channel != raceChannel) | ||||
|                     return; | ||||
| @@ -211,7 +212,7 @@ namespace NadekoBot.Modules.Gambling.Commands | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             public async Task<bool> JoinRace(User u, int amount = 0) | ||||
|             public async Task<bool> JoinRace(IGuildUser u, int amount = 0) | ||||
|             { | ||||
|                 var animal = ""; | ||||
|                 if (!animals.TryDequeue(out animal)) | ||||
| @@ -238,7 +239,7 @@ namespace NadekoBot.Modules.Gambling.Commands | ||||
|  | ||||
|         public class Participant | ||||
|         { | ||||
|             public User User { get; set; } | ||||
|             public IGuildUser User { get; set; } | ||||
|             public string Animal { get; set; } | ||||
|             public int AmountBet { get; set; } | ||||
|  | ||||
| @@ -247,7 +248,7 @@ namespace NadekoBot.Modules.Gambling.Commands | ||||
|  | ||||
|             public int Place { get; set; } = 0; | ||||
|  | ||||
|             public Participant(User u, string a, int amount) | ||||
|             public Participant(IGuildUser u, string a, int amount) | ||||
|             { | ||||
|                 this.User = u; | ||||
|                 this.Animal = a; | ||||
|   | ||||
| @@ -151,7 +151,7 @@ namespace NadekoBot.Modules.Gambling | ||||
|                         rolled = new Random().Next(0, int.Parse(e.GetArg("range")) + 1); | ||||
|                     } | ||||
|  | ||||
|                     await channel.SendMessageAsync($"{e.User.Mention} rolled **{rolled}**.").ConfigureAwait(false); | ||||
|                     await channel.SendMessageAsync($"{imsg.Author.Mention} rolled **{rolled}**.").ConfigureAwait(false); | ||||
|                 } | ||||
|                 catch (Exception ex) | ||||
|                 { | ||||
|   | ||||
| @@ -79,7 +79,7 @@ namespace NadekoBot.Modules.Gambling | ||||
|                 await e.Channel.SendFile(images.Count + " cards.jpg", bitmap.ToStream()).ConfigureAwait(false); | ||||
|                 if (cardObjects.Count == 5) | ||||
|                 { | ||||
|                     await channel.SendMessageAsync($"{e.User.Mention} `{Cards.GetHandValue(cardObjects)}`").ConfigureAwait(false); | ||||
|                     await channel.SendMessageAsync($"{imsg.Author.Mention} `{Cards.GetHandValue(cardObjects)}`").ConfigureAwait(false); | ||||
|                 } | ||||
|             } | ||||
|             catch (Exception ex) | ||||
|   | ||||
| @@ -40,7 +40,7 @@ namespace NadekoBot.Modules.Gambling | ||||
|         //{ | ||||
|         //    var channel = imsg.Channel as ITextChannel; | ||||
|  | ||||
|         //    var usr = e.Message.MentionedUsers.FirstOrDefault() ?? e.User; | ||||
|         //    var usr = e.Message.MentionedUsers.FirstOrDefault() ?? imsg.Author; | ||||
|         //    var pts = GetUserFlowers(usr.Id); | ||||
|         //    var str = $"{usr.Name} has {pts} {NadekoBot.Config.CurrencySign}"; | ||||
|         //    await channel.SendMessageAsync(str).ConfigureAwait(false); | ||||
| @@ -58,14 +58,14 @@ namespace NadekoBot.Modules.Gambling | ||||
|  | ||||
|         //    if (userFlowers < amount) | ||||
|         //    { | ||||
|         //        await channel.SendMessageAsync($"{e.User.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); | ||||
|         //        await channel.SendMessageAsync($"{imsg.Author.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); | ||||
|         //        return; | ||||
|         //    } | ||||
|  | ||||
|         //    await FlowersHandler.RemoveFlowers(e.User, "Gift", (int)amount, true).ConfigureAwait(false); | ||||
|         //    await FlowersHandler.RemoveFlowers(imsg.Author, "Gift", (int)amount, true).ConfigureAwait(false); | ||||
|         //    await FlowersHandler.AddFlowersAsync(receiver, "Gift", (int)amount).ConfigureAwait(false); | ||||
|  | ||||
|         //    await channel.SendMessageAsync($"{e.User.Mention} successfully sent {amount} {NadekoBot.Config.CurrencyName}s to {receiver.Mention}!").ConfigureAwait(false); | ||||
|         //    await channel.SendMessageAsync($"{imsg.Author.Mention} successfully sent {amount} {NadekoBot.Config.CurrencyName}s to {receiver.Mention}!").ConfigureAwait(false); | ||||
|  | ||||
|         //} | ||||
|  | ||||
| @@ -87,122 +87,94 @@ namespace NadekoBot.Modules.Gambling | ||||
|  | ||||
|         //    await FlowersHandler.AddFlowersAsync(usrId, $"Awarded by bot owner. ({imsg.Author.Username}/{imsg.Author.Id})", (int)amount).ConfigureAwait(false); | ||||
|  | ||||
|         //    await channel.SendMessageAsync($"{e.User.Mention} successfully awarded {amount} {NadekoBot.Config.CurrencyName}s to <@{usrId}>!").ConfigureAwait(false); | ||||
|         //    await channel.SendMessageAsync($"{imsg.Author.Mention} successfully awarded {amount} {NadekoBot.Config.CurrencyName}s to <@{usrId}>!").ConfigureAwait(false); | ||||
|         //} | ||||
|  | ||||
|         ////todo owner only | ||||
|         ////todo DB | ||||
|         //[LocalizedCommand, LocalizedDescription, LocalizedSummary] | ||||
|         //[RequireContext(ContextType.Guild)] | ||||
|         //public Task Take(IMessage imsg, long amount, [Remainder] IGuildUser user) => | ||||
|         //    Take(imsg, amount, user.Id); | ||||
|  | ||||
|         [LocalizedCommand, LocalizedDescription, LocalizedSummary] | ||||
|         [RequireContext(ContextType.Guild)] | ||||
|         public async Task Take(IMessage imsg, long amount, [Remainder] IGuildUser ownedPerson) | ||||
|         { | ||||
|             var channel = imsg.Channel as ITextChannel; | ||||
|         //[LocalizedCommand, LocalizedDescription, LocalizedSummary] | ||||
|         //[RequireContext(ContextType.Guild)] | ||||
|         //public async Task Take(IMessage imsg, long amount, [Remainder] ulong usrId) | ||||
|         //{ | ||||
|         //    var channel = imsg.Channel as ITextChannel; | ||||
|         //    if (amount <= 0) | ||||
|         //        return; | ||||
|  | ||||
|             if (amount < 0) | ||||
|                 return; | ||||
|         //    await FlowersHandler.RemoveFlowers(usrId, $"Taken by bot owner.({imsg.Author.Username}/{imsg.Author.Id})", (int)amount).ConfigureAwait(false); | ||||
|  | ||||
|             var mentionedUser = e.Message.MentionedUsers.FirstOrDefault(u => | ||||
|                                                 u.Id != NadekoBot.Client.CurrentUser.Id); | ||||
|             if (mentionedUser == null) | ||||
|                 return; | ||||
|         //    await channel.SendMessageAsync($"{imsg.Author.Mention} successfully took {amount} {NadekoBot.Config.CurrencyName}s from <@{usrId}>!").ConfigureAwait(false); | ||||
|         //} | ||||
|  | ||||
|             await FlowersHandler.RemoveFlowers(ownedPerson.Id, $"Taken by bot owner.({e.User.Name}/{e.User.Id})", (int)amount).ConfigureAwait(false); | ||||
|         //[LocalizedCommand, LocalizedDescription, LocalizedSummary] | ||||
|         //[RequireContext(ContextType.Guild)] | ||||
|         //public async Task BetRoll(IMessage imsg, int amount) | ||||
|         //{ | ||||
|         //    var channel = imsg.Channel as ITextChannel; | ||||
|  | ||||
|             await channel.SendMessageAsync($"{e.User.Mention} successfully took {amount} {NadekoBot.Config.CurrencyName}s from {mentionedUser.Mention}!").ConfigureAwait(false); | ||||
|         //    if (amount < 1) | ||||
|         //        return; | ||||
|  | ||||
|         //    var userFlowers = GetUserFlowers(imsg.Author.Id); | ||||
|  | ||||
|         //    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); | ||||
|         //        return; | ||||
|         //    } | ||||
|  | ||||
|         //    await FlowersHandler.RemoveFlowers(imsg.Author, "Betroll Gamble", (int)amount, true).ConfigureAwait(false); | ||||
|  | ||||
|         //    var rng = new Random().Next(0, 101); | ||||
|         //    var str = $"{imsg.Author.Mention} `You rolled {rng}.` "; | ||||
|         //    if (rng < 67) | ||||
|         //    { | ||||
|         //        str += "Better luck next time."; | ||||
|         //    } | ||||
|         //    else if (rng < 90) | ||||
|         //    { | ||||
|         //        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); | ||||
|         //    } | ||||
|         //    else if (rng < 100) | ||||
|         //    { | ||||
|         //        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); | ||||
|         //    } | ||||
|         //    else | ||||
|         //    { | ||||
|         //        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 channel.SendMessageAsync(str).ConfigureAwait(false); | ||||
|         //} | ||||
|  | ||||
|         ////todo DB | ||||
| //        [LocalizedCommand, LocalizedDescription, LocalizedSummary] | ||||
| //        [RequireContext(ContextType.Guild)] | ||||
| //        public async Task Leaderboard(IMessage imsg) | ||||
| //        { | ||||
| //            var channel = imsg.Channel as ITextChannel; | ||||
|  | ||||
| //            var richestTemp = DbHandler.Instance.GetTopRichest(); | ||||
| //            var richest = richestTemp as CurrencyState[] ?? richestTemp.ToArray(); | ||||
| //            if (richest.Length == 0) | ||||
| //                return; | ||||
| //            await channel.SendMessageAsync( | ||||
| //                richest.Aggregate(new StringBuilder( | ||||
| //$@"```xl | ||||
| //┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓ | ||||
| //┃        Id           ┃  $$$  ┃ | ||||
| //"), | ||||
| //                (cur, cs) => cur.AppendLine( | ||||
| //$@"┣━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━┫ | ||||
| //┃{(e.Server.Users.Where(u => u.Id == (ulong)cs.UserId).FirstOrDefault()?.Name.TrimTo(18, true) ?? cs.UserId.ToString()),-20} ┃ {cs.Value,5} ┃") | ||||
| //                        ).ToString() + "┗━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━┛```").ConfigureAwait(false); | ||||
|         } | ||||
|  | ||||
|         public override void Install(ModuleManager manager) | ||||
|         { | ||||
|             cgb.CreateCommand(Prefix + "award") | ||||
|                 .Description($"Gives someone a certain amount of flowers. **Bot Owner Only!** | `{Prefix}award 100 @person`") | ||||
|                 .AddCheck(SimpleCheckers.OwnerOnly()) | ||||
|                 .Parameter("amount", ParameterType.Required) | ||||
|                 .Parameter("receiver", ParameterType.Unparsed) | ||||
|                 .Do(async e => | ||||
|                 { | ||||
|  | ||||
|                 }); | ||||
|  | ||||
|             cgb.CreateCommand(Prefix + "take") | ||||
|                 .Description($"Takes a certain amount of flowers from someone. **Bot Owner Only!** | `{Prefix}take 1 \"@someguy\"`") | ||||
|                 .AddCheck(SimpleCheckers.OwnerOnly()) | ||||
|                 .Parameter("amount", ParameterType.Required) | ||||
|                 .Parameter("rektperson", ParameterType.Unparsed) | ||||
|                 .Do(async e => | ||||
|                 { | ||||
|                 }); | ||||
|  | ||||
|             cgb.CreateCommand(Prefix + "betroll") | ||||
|                 .Alias(Prefix + "br") | ||||
|                 .Description($"Bets a certain amount of {NadekoBot.Config.CurrencyName}s and rolls a dice. Rolling over 66 yields x2 flowers, over 90 - x3 and 100 x10. | `{Prefix}br 5`") | ||||
|                 .Parameter("amount", ParameterType.Required) | ||||
|                 .Do(async e => | ||||
|                 { | ||||
|                     var amountstr = e.GetArg("amount").Trim(); | ||||
|                     int amount; | ||||
|  | ||||
|                     if (!int.TryParse(amountstr, out amount) || amount < 1) | ||||
|                         return; | ||||
|  | ||||
|                     var userFlowers = GetUserFlowers(e.User.Id); | ||||
|  | ||||
|                     if (userFlowers < amount) | ||||
|                     { | ||||
|                         await channel.SendMessageAsync($"{e.User.Mention} You don't have enough {NadekoBot.Config.CurrencyName}s. You only have {userFlowers}{NadekoBot.Config.CurrencySign}.").ConfigureAwait(false); | ||||
|                         return; | ||||
|                     } | ||||
|  | ||||
|                     await FlowersHandler.RemoveFlowers(e.User, "Betroll Gamble", (int)amount, true).ConfigureAwait(false); | ||||
|  | ||||
|                     var rng = new Random().Next(0, 101); | ||||
|                     var str = $"{e.User.Mention} `You rolled {rng}.` "; | ||||
|                     if (rng < 67) | ||||
|                     { | ||||
|                         str += "Better luck next time."; | ||||
|                     } | ||||
|                     else if (rng < 90) | ||||
|                     { | ||||
|                         str += $"Congratulations! You won {amount * 2}{NadekoBot.Config.CurrencySign} for rolling above 66"; | ||||
|                         await FlowersHandler.AddFlowersAsync(e.User, "Betroll Gamble", amount * 2, true).ConfigureAwait(false); | ||||
|                     } | ||||
|                     else if (rng < 100) | ||||
|                     { | ||||
|                         str += $"Congratulations! You won {amount * 3}{NadekoBot.Config.CurrencySign} for rolling above 90."; | ||||
|                         await FlowersHandler.AddFlowersAsync(e.User, "Betroll Gamble", amount * 3, true).ConfigureAwait(false); | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         str += $"👑 Congratulations! You won {amount * 10}{NadekoBot.Config.CurrencySign} for rolling **100**. 👑"; | ||||
|                         await FlowersHandler.AddFlowersAsync(e.User, "Betroll Gamble", amount * 10, true).ConfigureAwait(false); | ||||
|                     } | ||||
|  | ||||
|                     await channel.SendMessageAsync(str).ConfigureAwait(false); | ||||
|  | ||||
|                 }); | ||||
|  | ||||
|             cgb.CreateCommand(Prefix + "leaderboard") | ||||
|                 .Alias(Prefix + "lb") | ||||
|                 .Description($"Displays bot currency leaderboard | `{Prefix}lb`") | ||||
|                 .Do(async e => | ||||
|                 { | ||||
|                     var richestTemp = DbHandler.Instance.GetTopRichest(); | ||||
|                     var richest = richestTemp as CurrencyState[] ?? richestTemp.ToArray(); | ||||
|                     if (richest.Length == 0) | ||||
|                         return; | ||||
|                     await channel.SendMessageAsync( | ||||
|                         richest.Aggregate(new StringBuilder( | ||||
| $@"```xl | ||||
| ┏━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━┓ | ||||
| ┃        Id           ┃  $$$  ┃ | ||||
| "), | ||||
|                         (cur, cs) => cur.AppendLine( | ||||
| $@"┣━━━━━━━━━━━━━━━━━━━━━╋━━━━━━━┫ | ||||
| ┃{(e.Server.Users.Where(u => u.Id == (ulong)cs.UserId).FirstOrDefault()?.Name.TrimTo(18, true) ?? cs.UserId.ToString()),-20} ┃ {cs.Value,5} ┃") | ||||
|                                 ).ToString() + "┗━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━┛```").ConfigureAwait(false); | ||||
|                 }); | ||||
|         }); | ||||
|         } | ||||
|  | ||||
|     public static long GetUserFlowers(ulong userId) => | ||||
|         Classes.DbHandler.Instance.GetStateByUserId((long)userId)?.Value ?? 0; | ||||
| } | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -79,8 +79,8 @@ | ||||
| //                    foreach(var msgToDelete in msgs) | ||||
| //                        await msgToDelete.Delete().ConfigureAwait(false); | ||||
|  | ||||
| //                    await FlowersHandler.AddFlowersAsync(e.User, "Picked a flower.", 1, true).ConfigureAwait(false); | ||||
| //                    var msg = await channel.SendMessageAsync($"**{e.User.Name}** picked a {NadekoBot.Config.CurrencyName}!").ConfigureAwait(false); | ||||
| //                    await FlowersHandler.AddFlowersAsync(imsg.Author, "Picked a flower.", 1, true).ConfigureAwait(false); | ||||
| //                    var msg = await channel.SendMessageAsync($"**{imsg.Author.Username}** picked a {NadekoBot.Config.CurrencyName}!").ConfigureAwait(false); | ||||
| //                    ThreadPool.QueueUserWorkItem(async (state) => | ||||
| //                    { | ||||
| //                        try | ||||
| @@ -104,7 +104,7 @@ | ||||
| //                            await channel.SendMessageAsync($"There is already a {NadekoBot.Config.CurrencyName} in this channel.").ConfigureAwait(false); | ||||
| //                            return; | ||||
| //                        } | ||||
| //                        var removed = await FlowersHandler.RemoveFlowers(e.User, "Planted a flower.", 1, true).ConfigureAwait(false); | ||||
| //                        var removed = await FlowersHandler.RemoveFlowers(imsg.Author, "Planted a flower.", 1, true).ConfigureAwait(false); | ||||
| //                        if (!removed) | ||||
| //                        { | ||||
| //                            await channel.SendMessageAsync($"You don't have any {NadekoBot.Config.CurrencyName}s.").ConfigureAwait(false); | ||||
| @@ -118,7 +118,7 @@ | ||||
| //                        else | ||||
| //                            msg = await e.Channel.SendFile(file).ConfigureAwait(false); | ||||
| //                        var vowelFirst = new[] { 'a', 'e', 'i', 'o', 'u' }.Contains(NadekoBot.Config.CurrencyName[0]); | ||||
| //                        var msg2 = await channel.SendMessageAsync($"Oh how Nice! **{e.User.Name}** planted {(vowelFirst ? "an" : "a")} {NadekoBot.Config.CurrencyName}. Pick it using {Module.Prefix}pick").ConfigureAwait(false); | ||||
| //                        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); | ||||
| //                        plantedFlowerChannels.TryAdd(e.Channel.Id, new[] { msg, msg2 }); | ||||
| //                    } | ||||
| //                    finally { locker.Release();  } | ||||
|   | ||||
| @@ -103,16 +103,16 @@ | ||||
| //        { | ||||
| //            try | ||||
| //            { | ||||
| //                if (e.Channel == null || e.Channel.Id != channel.Id || e.User.Id == NadekoBot.Client.CurrentUser.Id) return; | ||||
| //                if (e.Channel == null || e.Channel.Id != channel.Id || imsg.Author.Id == NadekoBot.Client.CurrentUser.Id) return; | ||||
|  | ||||
| //                var guess = e.Message.RawText; | ||||
|  | ||||
| //                var distance = CurrentSentence.LevenshteinDistance(guess); | ||||
| //                var decision = Judge(distance, guess.Length); | ||||
| //                if (decision && !finishedUserIds.Contains(e.User.Id)) | ||||
| //                if (decision && !finishedUserIds.Contains(imsg.Author.Id)) | ||||
| //                { | ||||
| //                    finishedUserIds.Add(e.User.Id); | ||||
| //                    await channel.Send($"{e.User.Mention} finished in **{sw.Elapsed.Seconds}** seconds with { distance } errors, **{ CurrentSentence.Length / WORD_VALUE / sw.Elapsed.Seconds * 60 }** WPM!").ConfigureAwait(false); | ||||
| //                    finishedUserIds.Add(imsg.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); | ||||
| //                    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); | ||||
| @@ -139,7 +139,7 @@ | ||||
| //        public Func<CommandEventArgs, Task> DoFunc() => | ||||
| //            async e => | ||||
| //            { | ||||
| //                var game = RunningContests.GetOrAdd(e.User.Server.Id, id => new TypingGame(e.Channel)); | ||||
| //                var game = RunningContests.GetOrAdd(imsg.Author.Server.Id, id => new TypingGame(e.Channel)); | ||||
|  | ||||
| //                if (game.IsActive) | ||||
| //                { | ||||
| @@ -158,7 +158,7 @@ | ||||
| //            async e => | ||||
| //            { | ||||
| //                TypingGame game; | ||||
| //                if (RunningContests.TryRemove(e.User.Server.Id, out game)) | ||||
| //                if (RunningContests.TryRemove(imsg.Author.Server.Id, out game)) | ||||
| //                { | ||||
| //                    await game.Stop().ConfigureAwait(false); | ||||
| //                    return; | ||||
| @@ -181,7 +181,7 @@ | ||||
| //                .Parameter("text", ParameterType.Unparsed) | ||||
| //                .Do(async e => | ||||
| //                { | ||||
| //                    if (!NadekoBot.IsOwner(e.User.Id) || string.IsNullOrWhiteSpace(e.GetArg("text"))) return; | ||||
| //                    if (!NadekoBot.IsOwner(imsg.Author.Id) || string.IsNullOrWhiteSpace(e.GetArg("text"))) return; | ||||
|  | ||||
| //                    DbHandler.Instance.Connection.Insert(new TypingArticle | ||||
| //                    { | ||||
|   | ||||
| @@ -258,7 +258,7 @@ | ||||
|  | ||||
| //                        config.ObservingStreams.Remove(toRemove); | ||||
| //                        await ConfigHandler.SaveConfig().ConfigureAwait(false); | ||||
| //                        await channel.SendMessageAsync($":ok: Removed `{toRemove.Username}`'s stream from notifications.").ConfigureAwait(false); | ||||
| //                        await channel.SendMessageAsync($":ok: Removed `{toRemovimsg.Authorname}`'s stream from notifications.").ConfigureAwait(false); | ||||
| //                    }); | ||||
|  | ||||
| //                cgb.CreateCommand(Module.Prefix + "liststreams") | ||||
|   | ||||
| @@ -75,7 +75,7 @@ | ||||
| //                    .Parameter("board_id", Discord.Commands.ParameterType.Required) | ||||
| //                    .Do(async e => | ||||
| //                    { | ||||
| //                        if (!NadekoBot.IsOwner(e.User.Id)) return; | ||||
| //                        if (!NadekoBot.IsOwner(imsg.Author.Id)) return; | ||||
| //                        if (bound != null) return; | ||||
| //                        try | ||||
| //                        { | ||||
| @@ -95,7 +95,7 @@ | ||||
| //                    .Description($"Unbinds a bot from the channel and board. **Bot Owner Only!**| `{Prefix}unbind`") | ||||
| //                    .Do(async e => | ||||
| //                    { | ||||
| //                        if (!NadekoBot.IsOwner(e.User.Id)) return; | ||||
| //                        if (!NadekoBot.IsOwner(imsg.Author.Id)) return; | ||||
| //                        if (bound == null || bound != e.Channel) return; | ||||
| //                        t.Stop(); | ||||
| //                        bound = null; | ||||
| @@ -109,7 +109,7 @@ | ||||
| //                    .Description($"Lists all lists, yo ;) **Bot Owner Only!**| `{Prefix}list`") | ||||
| //                    .Do(async e => | ||||
| //                    { | ||||
| //                        if (!NadekoBot.IsOwner(e.User.Id)) return; | ||||
| //                        if (!NadekoBot.IsOwner(imsg.Author.Id)) 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() + "**"))) | ||||
| //                                       .ConfigureAwait(false); | ||||
| @@ -120,7 +120,7 @@ | ||||
| //                    .Parameter("list_name", Discord.Commands.ParameterType.Unparsed) | ||||
| //                    .Do(async e => | ||||
| //                    { | ||||
| //                        if (!NadekoBot.IsOwner(e.User.Id)) return; | ||||
| //                        if (!NadekoBot.IsOwner(imsg.Author.Id)) return; | ||||
| //                        if (bound == null || board == null || bound != e.Channel || e.GetArg("list_name") == null) return; | ||||
|  | ||||
| //                        int num; | ||||
|   | ||||
| @@ -100,7 +100,7 @@ | ||||
| //                    if (meorchStr == "ME") | ||||
| //                    { | ||||
| //                        isPrivate = true; | ||||
| //                        ch = await e.User.CreatePMChannel().ConfigureAwait(false); | ||||
| //                        ch = await imsg.Author.CreatePMChannel().ConfigureAwait(false); | ||||
| //                    } | ||||
| //                    else if (meorchStr == "HERE") | ||||
| //                    { | ||||
| @@ -113,7 +113,7 @@ | ||||
|  | ||||
| //                    if (ch == null) | ||||
| //                    { | ||||
| //                        await channel.SendMessageAsync($"{e.User.Mention} Something went wrong (channel cannot be found) ;(").ConfigureAwait(false); | ||||
| //                        await channel.SendMessageAsync($"{imsg.Author.Mention} Something went wrong (channel cannot be found) ;(").ConfigureAwait(false); | ||||
| //                        return; | ||||
| //                    } | ||||
|  | ||||
| @@ -168,7 +168,7 @@ | ||||
| //                        IsPrivate = isPrivate, | ||||
| //                        When = time, | ||||
| //                        Message = e.GetArg("message"), | ||||
| //                        UserId = (long)e.User.Id, | ||||
| //                        UserId = (long)imsg.Author.Id, | ||||
| //                        ServerId = (long)e.Server.Id | ||||
| //                    }; | ||||
| //                    DbHandler.Instance.Connection.Insert(rem); | ||||
|   | ||||
| @@ -31,7 +31,7 @@ namespace NadekoBot.Modules.CustomReactions | ||||
|                         }else return rng.Next().ToString(); | ||||
|                         } }, | ||||
|                     {new Regex("%mention%"), (e,m) => NadekoBot.BotMention }, | ||||
|                     {new Regex("%user%"), (e,m) => e.User.Mention }, | ||||
|                     {new Regex("%user%"), (e,m) => imsg.Author.Mention }, | ||||
|                     {new Regex("%target%"), (e,m) => e.GetArg("args")?.Trim() ?? "" }, | ||||
|  | ||||
|                  }; | ||||
|   | ||||
| @@ -51,7 +51,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     { | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) return; | ||||
|                         if (musicPlayer.PlaybackVoiceChannel == e.User.VoiceChannel) | ||||
|                         if (musicPlayer.PlaybackVoiceChannel == imsg.Author.VoiceChannel) | ||||
|                             musicPlayer.Next(); | ||||
|                     }); | ||||
|  | ||||
| @@ -62,7 +62,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     { | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) return; | ||||
|                         if (e.User.VoiceChannel == musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel == musicPlayer.PlaybackVoiceChannel) | ||||
|                         { | ||||
|                             musicPlayer.Autoplay = false; | ||||
|                             musicPlayer.Stop(); | ||||
| @@ -77,7 +77,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     { | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryRemove(e.Server, out musicPlayer)) return; | ||||
|                         if (e.User.VoiceChannel == musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel == musicPlayer.PlaybackVoiceChannel) | ||||
|                             musicPlayer.Destroy(); | ||||
|                     }); | ||||
|  | ||||
| @@ -88,7 +88,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     { | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) return; | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         musicPlayer.TogglePause(); | ||||
|                         if (musicPlayer.Paused) | ||||
| @@ -105,7 +105,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     .Parameter("query", ParameterType.Unparsed) | ||||
|                     .Do(async e => | ||||
|                     { | ||||
|                         await QueueSong(e.User, e.Channel, e.User.VoiceChannel, e.GetArg("query")).ConfigureAwait(false); | ||||
|                         await QueueSong(imsg.Author, e.Channel, imsg.Author.VoiceChannel, e.GetArg("query")).ConfigureAwait(false); | ||||
|                         if (e.Server.CurrentUser.GetPermissions(e.Channel).ManageMessages) | ||||
|                         { | ||||
|                             await Task.Delay(10000).ConfigureAwait(false); | ||||
| @@ -120,7 +120,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     .Parameter("query", ParameterType.Unparsed) | ||||
|                     .Do(async e => | ||||
|                     { | ||||
|                         await QueueSong(e.User, e.Channel, e.User.VoiceChannel, e.GetArg("query"), musicType: MusicType.Soundcloud).ConfigureAwait(false); | ||||
|                         await QueueSong(imsg.Author, e.Channel, imsg.Author.VoiceChannel, e.GetArg("query"), musicType: MusicType.Soundcloud).ConfigureAwait(false); | ||||
|                         if (e.Server.CurrentUser.GetPermissions(e.Channel).ManageMessages) | ||||
|                         { | ||||
|                             await Task.Delay(10000).ConfigureAwait(false); | ||||
| @@ -190,7 +190,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                             return; | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         var arg = e.GetArg("val"); | ||||
|                         int volume; | ||||
| @@ -230,7 +230,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                             return; | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         musicPlayer.SetVolume(0); | ||||
|                     }); | ||||
| @@ -242,7 +242,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                             return; | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         musicPlayer.SetVolume(100); | ||||
|                     }); | ||||
| @@ -254,7 +254,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                             return; | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         musicPlayer.SetVolume(50); | ||||
|                     }); | ||||
| @@ -267,7 +267,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                             return; | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         if (musicPlayer.Playlist.Count < 2) | ||||
|                         { | ||||
| @@ -288,7 +288,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         var arg = e.GetArg("playlist"); | ||||
|                         if (string.IsNullOrWhiteSpace(arg)) | ||||
|                             return; | ||||
|                         if (e.User.VoiceChannel?.Server != e.Server) | ||||
|                         if (imsg.Author.VoiceChannel?.Server != e.Server) | ||||
|                         { | ||||
|                             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; | ||||
| @@ -313,7 +313,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         { | ||||
|                             try | ||||
|                             { | ||||
|                                 await QueueSong(e.User, e.Channel, e.User.VoiceChannel, id, true).ConfigureAwait(false); | ||||
|                                 await QueueSong(imsg.Author, e.Channel, imsg.Author.VoiceChannel, id, true).ConfigureAwait(false); | ||||
|                             } | ||||
|                             catch (PlaylistFullException) | ||||
|                             { break; } | ||||
| @@ -334,7 +334,7 @@ namespace NadekoBot.Modules.Music | ||||
|                             return; | ||||
|  | ||||
|                         var scvids = JObject.Parse(await http.GetStringAsync($"http://api.soundcloud.com/resolve?url={pl}&client_id={NadekoBot.Creds.SoundCloudClientID}").ConfigureAwait(false))["tracks"].ToObject<SoundCloudVideo[]>(); | ||||
|                         await QueueSong(e.User, e.Channel, e.User.VoiceChannel, scvids[0].TrackLink).ConfigureAwait(false); | ||||
|                         await QueueSong(imsg.Author, e.Channel, imsg.Author.VoiceChannel, scvids[0].TrackLink).ConfigureAwait(false); | ||||
|  | ||||
|                         MusicPlayer mp; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out mp)) | ||||
| @@ -351,7 +351,7 @@ namespace NadekoBot.Modules.Music | ||||
|                                     Uri = svideo.StreamLink, | ||||
|                                     ProviderType = MusicType.Normal, | ||||
|                                     Query = svideo.TrackLink, | ||||
|                                 }), e.User.Name); | ||||
|                                 }), imsg.Author.Username); | ||||
|                             } | ||||
|                             catch (PlaylistFullException) { break; } | ||||
|                         } | ||||
| @@ -375,7 +375,7 @@ namespace NadekoBot.Modules.Music | ||||
|                             { | ||||
|                                 try | ||||
|                                 { | ||||
|                                     await QueueSong(e.User, e.Channel, e.User.VoiceChannel, file.FullName, true, MusicType.Local).ConfigureAwait(false); | ||||
|                                     await QueueSong(imsg.Author, e.Channel, imsg.Author.VoiceChannel, file.FullName, true, MusicType.Local).ConfigureAwait(false); | ||||
|                                 } | ||||
|                                 catch (PlaylistFullException) | ||||
|                                 { | ||||
| @@ -393,12 +393,12 @@ namespace NadekoBot.Modules.Music | ||||
|                     .Parameter("radio_link", ParameterType.Required) | ||||
|                     .Do(async e => | ||||
|                     { | ||||
|                         if (e.User.VoiceChannel?.Server != e.Server) | ||||
|                         if (imsg.Author.VoiceChannel?.Server != e.Server) | ||||
|                         { | ||||
|                             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; | ||||
|                         } | ||||
|                         await QueueSong(e.User, e.Channel, e.User.VoiceChannel, e.GetArg("radio_link"), musicType: MusicType.Radio).ConfigureAwait(false); | ||||
|                         await QueueSong(imsg.Author, e.Channel, imsg.Author.VoiceChannel, e.GetArg("radio_link"), musicType: MusicType.Radio).ConfigureAwait(false); | ||||
|                         if (e.Server.CurrentUser.GetPermissions(e.Channel).ManageMessages) | ||||
|                         { | ||||
|                             await Task.Delay(10000).ConfigureAwait(false); | ||||
| @@ -416,7 +416,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         var arg = e.GetArg("path"); | ||||
|                         if (string.IsNullOrWhiteSpace(arg)) | ||||
|                             return; | ||||
|                         await QueueSong(e.User, e.Channel, e.User.VoiceChannel, e.GetArg("path"), musicType: MusicType.Local).ConfigureAwait(false); | ||||
|                         await QueueSong(imsg.Author, e.Channel, imsg.Author.VoiceChannel, e.GetArg("path"), musicType: MusicType.Local).ConfigureAwait(false); | ||||
|                     }); | ||||
|  | ||||
|                 cgb.CreateCommand(Prefix + "move") | ||||
| @@ -425,7 +425,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     .Do(e => | ||||
|                     { | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         var voiceChannel = e.User.VoiceChannel; | ||||
|                         var voiceChannel = imsg.Author.VoiceChannel; | ||||
|                         if (voiceChannel == null || voiceChannel.Server != e.Server || !MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                             return; | ||||
|                         musicPlayer.MoveToVoiceChannel(voiceChannel); | ||||
| @@ -443,7 +443,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         { | ||||
|                             return; | ||||
|                         } | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         if (arg?.ToLower() == "all") | ||||
|                         { | ||||
| @@ -608,8 +608,8 @@ namespace NadekoBot.Modules.Music | ||||
|  | ||||
|                         var playlist = new MusicPlaylist | ||||
|                         { | ||||
|                             CreatorId = (long)e.User.Id, | ||||
|                             CreatorName = e.User.Name, | ||||
|                             CreatorId = (long)imsg.Author.Id, | ||||
|                             CreatorName = imsg.Author.Username, | ||||
|                             Name = name.ToLowerInvariant(), | ||||
|                         }; | ||||
|                         DbHandler.Instance.SaveAll(songInfos); | ||||
| @@ -629,7 +629,7 @@ namespace NadekoBot.Modules.Music | ||||
|                     .Parameter("name", ParameterType.Unparsed) | ||||
|                     .Do(async e => | ||||
|                     { | ||||
|                         var voiceCh = e.User.VoiceChannel; | ||||
|                         var voiceCh = imsg.Author.VoiceChannel; | ||||
|                         var textCh = e.Channel; | ||||
|                         if (voiceCh == null || voiceCh.Server != textCh.Server) | ||||
|                         { | ||||
| @@ -670,7 +670,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         { | ||||
|                             try | ||||
|                             { | ||||
|                                 await QueueSong(e.User, textCh, voiceCh, si.Query, true, (MusicType)si.ProviderType).ConfigureAwait(false); | ||||
|                                 await QueueSong(imsg.Author, textCh, voiceCh, si.Query, true, (MusicType)si.ProviderType).ConfigureAwait(false); | ||||
|                             } | ||||
|                             catch (PlaylistFullException) | ||||
|                             { | ||||
| @@ -710,10 +710,10 @@ namespace NadekoBot.Modules.Music | ||||
|                         if (string.IsNullOrWhiteSpace(pl)) | ||||
|                             return; | ||||
|                         var plnum = int.Parse(pl); | ||||
|                         if (NadekoBot.IsOwner(e.User.Id)) | ||||
|                         if (NadekoBot.IsOwner(imsg.Author.Id)) | ||||
|                             DbHandler.Instance.Delete<MusicPlaylist>(plnum); | ||||
|                         else | ||||
|                             DbHandler.Instance.DeleteWhere<MusicPlaylist>(mp => mp.Id == plnum && (long)e.User.Id == mp.CreatorId); | ||||
|                             DbHandler.Instance.DeleteWhere<MusicPlaylist>(mp => mp.Id == plnum && (long)imsg.Author.Id == mp.CreatorId); | ||||
|                         await channel.SendMessageAsync("`Ok.` :ok:").ConfigureAwait(false); | ||||
|                     }); | ||||
|  | ||||
| @@ -726,7 +726,7 @@ namespace NadekoBot.Modules.Music | ||||
|                         MusicPlayer musicPlayer; | ||||
|                         if (!MusicPlayers.TryGetValue(e.Server, out musicPlayer)) | ||||
|                             return; | ||||
|                         if (e.User.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                         if (imsg.Author.VoiceChannel != musicPlayer.PlaybackVoiceChannel) | ||||
|                             return; | ||||
|                         int skipTo; | ||||
|                         if (!int.TryParse(skipToStr, out skipTo) || skipTo < 0) | ||||
|   | ||||
| @@ -119,10 +119,10 @@ namespace NadekoBot.Modules.Permissions.Classes | ||||
|                         case PermissionsHandler.PermissionBanType.RoleBanModule: | ||||
|                             msg = $"You do not have a **role** which permits you the usage of **{command.Category}** module."; | ||||
|                             break; | ||||
|                         case PermissionsHandler.PermissionBanType.UserBanCommand: | ||||
|                         case PermissionsHandler.PermissionBanTypimsg.AuthorBanCommand: | ||||
|                             msg = $"{user.Mention}, You have been banned from using **{command.Text}** command."; | ||||
|                             break; | ||||
|                         case PermissionsHandler.PermissionBanType.UserBanModule: | ||||
|                         case PermissionsHandler.PermissionBanTypimsg.AuthorBanModule: | ||||
|                             msg = $"{user.Mention}, You have been banned from using **{command.Category}** module."; | ||||
|                             break; | ||||
|                         default: | ||||
|   | ||||
| @@ -142,10 +142,10 @@ namespace NadekoBot.Modules.Permissions.Classes | ||||
|             //user | ||||
|             if (serverPerms.UserPermissions.TryGetValue(user.Id, out perm) && | ||||
|                 perm.Modules.TryGetValue(command.Category, out val) && val == false) | ||||
|                 return PermissionBanType.UserBanModule; | ||||
|                 return PermissionBanTypimsg.AuthorBanModule; | ||||
|             if (serverPerms.UserPermissions.TryGetValue(user.Id, out perm) && | ||||
|                 perm.Commands.TryGetValue(command.Text, out val) && val == false) | ||||
|                 return PermissionBanType.UserBanCommand; | ||||
|                 return PermissionBanTypimsg.AuthorBanCommand; | ||||
|  | ||||
|             return PermissionBanType.None; | ||||
|         } | ||||
|   | ||||
| @@ -224,7 +224,7 @@ namespace NadekoBot.Modules.Permissions | ||||
|                     .Parameter("user", ParameterType.Unparsed) | ||||
|                     .Do(async e => | ||||
|                     { | ||||
|                         var user = e.User; | ||||
|                         var user = imsg.Author; | ||||
|                         if (!string.IsNullOrWhiteSpace(e.GetArg("user"))) | ||||
|                             try | ||||
|                             { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user