Example #1
0
        public static int MassRankChange(Player player, Rank from, Rank to, bool silent)
        {
            if (player == null)
            {
                throw new ArgumentNullException("player");
            }
            if (from == null)
            {
                throw new ArgumentNullException("from");
            }
            if (to == null)
            {
                throw new ArgumentNullException("to");
            }
            int affected = 0;

            lock ( AddLocker ) {
                foreach (PlayerInfo info in List)
                {
                    if (info.Rank == from)
                    {
                        ModerationCommands.DoChangeRank(player, info, to, "~MassRank", silent, false);
                        affected++;
                    }
                }
                return(affected);
            }
        }
Example #2
0
 // Sets up all the command hooks
 internal static void Init()
 {
     ModerationCommands.Init();
     BuildingCommands.Init();
     InfoCommands.Init();
     WorldCommands.Init();
     ZoneCommands.Init();
     MaintenanceCommands.Init();
     ChatCommands.Init();
 }
Example #3
0
 // Sets up all the command hooks
 internal static void Init()
 {
     ModerationCommands.Init();
     BuildingCommands.Init();
     InfoCommands.Init();
     WorldCommands.Init();
     ZoneCommands.Init();
     MaintenanceCommands.Init();
     ChatCommands.Init();
     Logger.Log(LogType.Debug,
                "CommandManager: {0} commands registered ({1} hidden, {2} aliases)",
                Commands.Count,
                GetCommands(true).Length,
                Aliases.Count);
 }
Example #4
0
        public static async void RunCommand(DiscordClient client, CommandType type, string[] args,
                                            DiscordMessage message)
        {
            switch (type)
            {
            case CommandType.Warn:
                if (args.Length < 2)
                {
                    return;
                }

                var moderator = await message.Channel.Guild.GetMemberAsync(message.Author.Id);

                try
                {
                    var messageId =
                        Convert.ToUInt64(args[0].TrimStart('<').TrimStart('@').TrimStart('!').TrimEnd('>'));
                    var member = await message.Channel.Guild.GetMemberAsync(messageId);

                    var reason = "Не указана";
                    if (args.Length > 2)
                    {
                        reason = "";
                        if (args.Length == 3)
                        {
                            reason = args[2];
                        }
                        else
                        {
                            for (var i = 2; i < args.Length; ++i)
                            {
                                reason += args[i] + " ";
                            }
                        }
                    }

                    ModerationCommands.Warn(client, moderator, message.Channel.Guild, member, reason);
                }
                catch (FormatException)
                {
                    await moderator.SendMessageAsync(
                        $"{BotSettings.ErrorEmoji} Не удалось отправить предупреждение!");
                }
                catch (NotFoundException)
                {
                    await moderator.SendMessageAsync(
                        $"{BotSettings.ErrorEmoji} Не удалось отправить предупреждение!");
                }
                catch (Exception e)
                {
                    var errChannel = message.Channel.Guild.GetChannel(BotSettings.ErrorLog);

                    var msg = "**Команда:** warn\n" +
                              $"**Канал:** {message.Channel}\n" +
                              $"**Пользователь:** {moderator}\n" +
                              $"**Исключение:** {e.GetType()}:{e.Message}\n" +
                              $"**Трассировка стека:** \n```{e.StackTrace}```";

                    await errChannel.SendMessageAsync(msg);
                }

                return;
            }
        }