Esempio n. 1
0
        public static async Task ReplyAsync(ShardedCommandContextCustom context, [Remainder] string regularMess = null)
        {
            if (context.MessageContentForEdit == null)
            {
                var message = await context.Channel.SendMessageAsync($"{regularMess}");

                var kek = new Global.CommandRam(context.User, context.Message, message);
                Global.CommandList.Add(kek);
            }
            else if (context.MessageContentForEdit == "edit")
            {
                foreach (var t in Global.CommandList)
                {
                    if (t.UserSocketMsg.Id == context.Message.Id)
                    {
                        await t.BotSocketMsg.ModifyAsync(message =>
                        {
                            message.Content = "";
                            message.Embed   = null;
                            if (regularMess != null)
                            {
                                message.Content = regularMess.ToString();
                            }
                        });
                    }
                }
            }
            if (Global.CommandList.Count >= 100)
            {
                var list = Global.CommandList.Skip(70).ToList();
                Global.CommandList = list;
            }
        }
Esempio n. 2
0
        public static async Task ReplyAsync(ShardedCommandContextCustom context, EmbedBuilder embed)
        {
            if (context.MessageContentForEdit == null)
            {
                var message = await context.Channel.SendMessageAsync("", false, embed.Build());

                var kek = new Global.CommandRam(context.User, context.Message, message);
                Global.CommandList.Add(kek);
            }
            else if (context.MessageContentForEdit == "edit")
            {
                foreach (var t in Global.CommandList)
                {
                    if (t.UserSocketMsg.Id == context.Message.Id)
                    {
                        if (context.Message.Content.Contains("top"))
                        {
                            await t.BotSocketMsg.ModifyAsync(message =>
                            {
                                message.Content = "";
                                message.Embed   = null;
                                //  message.Embed = embed.Build();
                            });
                        }

                        await t.BotSocketMsg.ModifyAsync(message =>
                        {
                            message.Content = "";
                            message.Embed   = null;
                            message.Embed   = embed.Build();
                        });
                    }
                }
            }

            if (Global.CommandList.Count >= 100)
            {
                var list = Global.CommandList.Skip(70).ToList();
                Global.CommandList = list;
            }
        }
Esempio n. 3
0
#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
#pragma warning disable CS1998 // This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread.

        public async Task MessageReceived(SocketMessage message, DiscordShardedClient client)
        {
            try
            {
                if (message.Author.IsBot)
                {
                    return;
                }

                var context = new ShardedCommandContextCustom(client, message as SocketUserMessage);
                var account = UserAccounts.GetAccount(context.User, context.Guild.Id);
                var guild   = ServerAccounts.GetServerAccount(context.Guild);

                var rolesToGiveList = guild.Roles.ToList();

                var roleToGive = "2gagwerweghsxbd";


                var userCheck = "ju";
                if (account.MyPrefix != null)
                {
                    userCheck = context.Message.Content.Substring(0, account.MyPrefix.Length);
                }
                var serverCheck = context.Message.Content.Substring(0, guild.Prefix.Length);

                if (serverCheck == guild.Prefix)
                {
                    roleToGive = context.Message.Content.Substring(guild.Prefix.Length,
                                                                   message.Content.Length - guild.Prefix.Length);
                }

                if (userCheck == account.MyPrefix)
                {
                    roleToGive = context.Message.Content.Substring(account.MyPrefix.Length,
                                                                   message.Content.Length - account.MyPrefix.Length);
                }
                if (userCheck != account.MyPrefix && serverCheck != guild.Prefix)
                {
                    return;
                }
                if (rolesToGiveList.Any(x => string.Equals(x.Key, roleToGive, StringComparison.CurrentCultureIgnoreCase)))
                {
                    SocketRole roleToAdd = null;

                    foreach (var t in rolesToGiveList)
                    {
                        if (string.Equals(t.Key, roleToGive, StringComparison.CurrentCultureIgnoreCase))
                        {
                            roleToAdd = context.Guild.Roles.SingleOrDefault(x => x.Name.ToString().ToLower() == t.Value.ToLower());
                        }
                    }


                    if (!(context.User is SocketGuildUser guildUser) || roleToAdd == null)
                    {
                        return;
                    }

                    var roleList = guildUser.Roles.ToArray();

                    if (roleList.Any(t => string.Equals(t.Name, roleToAdd.Name, StringComparison.CurrentCultureIgnoreCase)))
                    {
                        await guildUser.RemoveRoleAsync(roleToAdd);

                        await CommandHandeling.ReplyAsync(context, $"-{roleToAdd.Name}");

                        return;
                    }

                    await guildUser.AddRoleAsync(roleToAdd);

                    await CommandHandeling.ReplyAsync(context, $"+{roleToAdd.Name}");
                }
            }
            catch
            {
                //  ignored
            }
        }
Esempio n. 4
0
        public async Task _client_MessageUpdated(Cacheable <IMessage, ulong> messageBefore,
                                                 SocketMessage messageAfter, ISocketMessageChannel arg3)
        {
            if (messageAfter.Author.IsBot)
            {
                return;
            }
            var after = messageAfter as IUserMessage;

            if (messageAfter.Content == null)
            {
                return;
            }

            if (messageAfter.Author is SocketGuildUser userCheck && userCheck.IsMuted)
            {
                return;
            }


            var before = (messageBefore.HasValue ? messageBefore.Value : null) as IUserMessage;

            if (before == null)
            {
                return;
            }
            if (arg3 == null)
            {
                return;
            }
            if (before.Content == after?.Content)
            {
                return;
            }


            var list = Global.CommandList;

            foreach (var t in list)
            {
                if (t.UserSocketMsg.Id != messageAfter.Id)
                {
                    continue;
                }

                if (!(messageAfter is SocketUserMessage message))
                {
                    continue;
                }

                if (t.BotSocketMsg == null)
                {
                    return;
                }

                var context = new ShardedCommandContextCustom(_client, message, "edit");
                var argPos  = 0;


                if (message.Channel is SocketDMChannel)
                {
                    var resultTask = await _commands.ExecuteAsync(
                        context,
                        argPos,
                        _services);

                    if (!resultTask.IsSuccess && !resultTask.ErrorReason.Contains("Unknown command"))
                    {
                        ReplyAsync(context, $"Booole! {resultTask.ErrorReason}");
                    }
                    return;
                }

                var guild   = ServerAccounts.GetServerAccount(context.Guild);
                var account = UserAccounts.GetAccount(context.User, context.Guild.Id);
                if (message.HasStringPrefix(guild.Prefix, ref argPos) || message.HasStringPrefix(guild.Prefix + " ",
                                                                                                 ref argPos) ||
                    message.HasMentionPrefix(_client.CurrentUser,
                                             ref argPos) ||
                    message.HasStringPrefix(account.MyPrefix + " ",
                                            ref argPos) ||
                    message.HasStringPrefix(account.MyPrefix,
                                            ref argPos))
                {
                    var resultTaskk = await _commands.ExecuteAsync(
                        context,
                        argPos,
                        _services);


                    if (!resultTaskk.IsSuccess && !resultTaskk.ErrorReason.Contains("Unknown command"))
                    {
                        ReplyAsync(context, $"Booole! {resultTaskk.ErrorReason}");
                    }
                }

                return;
            }

            await Task.CompletedTask;
        }
Esempio n. 5
0
        public async Task HandleCommandAsync(SocketMessage msg)

        {
            var message = msg as SocketUserMessage;

            if (message == null)
            {
                return;
            }
            var context = new ShardedCommandContextCustom(_client, message);
            var argPos  = 0;

            if (message.Author is SocketGuildUser userCheck && userCheck.IsMuted)
            {
                return;
            }

            if (msg.Author.IsBot)
            {
                return;
            }


            switch (message.Channel)
            {
            case SocketDMChannel _ when context.User.IsBot:
                return;

            case SocketDMChannel _:
                var resultTask = _commands.ExecuteAsync(
                    context,
                    argPos,
                    _services);
                resultTask.ContinueWith(task =>
                {
                    if (!task.Result.IsSuccess)
                    {
                        Console.ForegroundColor = LogColor("red");
                        Console.WriteLine(
                            $"{DateTime.Now.ToLongTimeString()} - DM: ERROR '{context.Channel}' {context.User}: {message} || {task.Result.ErrorReason}");
                        Console.ResetColor();

                        File.AppendAllText(LogFile,
                                           $"{DateTime.Now.ToLongTimeString()} - DM: ERROR '{context.Channel}' {context.User}: {message} || {task.Result.ErrorReason} \n");

                        if (!task.Result.ErrorReason.Contains("Unknown command"))
                        {
                            ReplyAsync(context, $"Booole! {task.Result.ErrorReason}");
                        }
                    }
                    else
                    {
                        Console.ForegroundColor = LogColor("white");
                        Console.WriteLine(
                            $"{DateTime.Now.ToLongTimeString()} - DM: '{context.Channel}' {context.User}: {message}");
                        Console.ResetColor();

                        File.AppendAllText(LogFile,
                                           $"{DateTime.Now.ToLongTimeString()} - DM: '{context.Channel}' {context.User}: {message} \n");
                    }
                });

                return;
            }

            var guild = ServerAccounts.GetServerAccount(context.Guild);

            guild.MessagesReceivedAll += 1;
            ServerAccounts.SaveServerAccounts();
            var account = UserAccounts.GetAccount(context.User, context.Guild.Id);

            if (message.HasStringPrefix(guild.Prefix, ref argPos) || message.HasStringPrefix(guild.Prefix + " ",
                                                                                             ref argPos) ||
                message.HasMentionPrefix(_client.CurrentUser,
                                         ref argPos) ||
                message.HasStringPrefix(account.MyPrefix + " ",
                                        ref argPos) ||
                message.HasStringPrefix(account.MyPrefix,
                                        ref argPos))
            {
                var resultTask = _commands.ExecuteAsync(
                    context,
                    argPos,
                    _services);
                resultTask.ContinueWith(task =>
                {
                    if (!task.Result.IsSuccess)
                    {
                        Console.ForegroundColor = LogColor("red");
                        Console.WriteLine(
                            $"{DateTime.Now.ToLongTimeString()} - ERROR '{context.Channel}' {context.User}: {message} || {task.Result.ErrorReason}");
                        Console.ResetColor();

                        File.AppendAllText(LogFile,
                                           $"{DateTime.Now.ToLongTimeString()} - ERROR '{context.Channel}' {context.User}: {message} || {task.Result.ErrorReason} \n");

                        if (!task.Result.ErrorReason.Contains("Unknown command"))
                        {
                            ReplyAsync(context, $"Booole! {task.Result.ErrorReason}");
                        }
                    }
                    else
                    {
                        Console.ForegroundColor = LogColor("white");
                        Console.WriteLine(
                            $"{DateTime.Now.ToLongTimeString()} - '{context.Channel}' {context.User}: {message}");
                        Console.ResetColor();

                        File.AppendAllText(LogFile,
                                           $"{DateTime.Now.ToLongTimeString()} - '{context.Channel}' {context.User}: {message} \n");
                    }
                });
            }
        }