コード例 #1
0
ファイル: CommandsSetup.cs プロジェクト: s4rduk4r/MePhit
        public async Task TimeZone(CommandContext commandContext, [Description("Часовой пояс")] params string[] timeZoneId)
        {
            if (timeZoneId.Length == 0)
            {
                var msg = $"{MePhItUtilities.EmojiInfo} **Available Timezones:**\n";
                foreach (var tz in TimeZoneInfo.GetSystemTimeZones())
                {
                    msg += string.Format("{0}\n", tz.DisplayName);
                }
                MePhItUtilities.SendBigMessage(commandContext.Channel, msg);
                commandContext.Message.CreateReactionAsync(Bot.ReactSuccess);
                return;
            }

            var tzId = "";

            for (int i = 0; i < timeZoneId.Length; i++)
            {
                tzId += timeZoneId[i] + (i < timeZoneId.Length - 1 ? " " : "");
            }

            try
            {
                foreach (var tz in TimeZoneInfo.GetSystemTimeZones())
                {
                    if (tz.DisplayName == tzId)
                    {
                        Settings.TimeZone[commandContext.Guild] = tz;
                    }
                }

                try
                {
                    SaveToSettingsFile(commandContext.Guild);
                }
                catch (Exception e)
                {
                    commandContext.Channel.SendMessageAsync($"{MePhItUtilities.EmojiError} {e.Message}\n{e.StackTrace}");
                }

                commandContext.Message.CreateReactionAsync(Bot.ReactSuccess);
            }
            catch (Exception e)
            {
                commandContext.Message.RespondAsync($"{MePhItUtilities.EmojiCritical} {e.Message}\n{e.StackTrace}");
                commandContext.Message.CreateReactionAsync(Bot.ReactFail);
            }
        }
コード例 #2
0
        public async Task List(CommandContext commandContext,
                               [Description("Канал для вывода сформированного списка студентов")]
                               DiscordChannel channel = null)
        {
            channel = channel == null ? commandContext.Channel : channel;

            var students = await MePhItUtilities.GetStudentsAsync(commandContext.Guild);

            var memberList = "";
            var strAbsense = Localization.Message(commandContext.Guild, MessageID.ListAbsent);

            foreach (var student in students)
            {
                memberList += student.IsOnline ? $"{student.User.Mention}\n" : string.Format(strAbsense, student.User.Mention);
            }

            commandContext.Message.CreateReactionAsync(MePhItBot.Bot.ReactSuccess);

            await channel.SendMessageAsync(Localization.Message(commandContext.Guild, MessageID.ListHeader));

            channel.SendMessageAsync(memberList);
        }