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); } }
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); }