public async Task CreateEventAsync([Remainder] string paramString) { if (IsAdmin()) { var name = paramString.ParseArgs("名称"); var hostServer = paramString.ParseArgs("服务器"); var notificationChannelId = paramString.ParseArgs("频道"); if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(hostServer)) { await ReplyAsync(embed : "用法: `创建赛事 -名称 \"赛事名\" -服务器 \"[服务器地址]:[端口号]\"`\n想要找到可用的服务器使用 `列出服务器` 指令\n你也可以提前加上设置项。比如在命令里添加`-对选手隐藏得分`".ErrorEmbed()); } else { var server = ServerService.GetServer(); if (server == null) { await ReplyAsync(embed : "服务器不在线,所以不能创建比赛".ErrorEmbed()); } else { var host = server.State.KnownHosts.FirstOrDefault(x => $"{x.Address}:{x.Port}" == hostServer); QualifierEvent.EventSettings settings = QualifierEvent.EventSettings.None; //Parse any desired options foreach (QualifierEvent.EventSettings o in Enum.GetValues(typeof(QualifierEvent.EventSettings))) { if (paramString.ParseArgs(o.ToString()) == "true") { settings = (settings | o); } } var response = await server.SendCreateQualifierEvent(host, DatabaseService.DatabaseContext.ConvertDatabaseToModel(null, new Database.Event { EventId = Guid.NewGuid().ToString(), GuildId = Context.Guild.Id, GuildName = Context.Guild.Name, Name = name, InfoChannelId = ulong.Parse(notificationChannelId ?? "0"), Flags = (int)settings })); if (response.Type == Response.ResponseType.Success) { await ReplyAsync(embed : response.Message.SuccessEmbed()); } else if (response.Type == Response.ResponseType.Fail) { await ReplyAsync(embed : response.Message.ErrorEmbed()); } } } } else { await ReplyAsync(embed : "你没有足够的权限使用该命令".ErrorEmbed()); } }
public async Task CreateEventAsync([Remainder] string paramString) { if (IsAdmin()) { var name = paramString.ParseArgs("name"); var hostServer = paramString.ParseArgs("host"); var notificationChannelId = paramString.ParseArgs("infoChannelId"); if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(hostServer)) { await ReplyAsync(embed : "Usage: `createEvent -name \"Event Name\" -host \"[host address]:[port]\"`\nTo find available hosts, please run `listHosts`\nYou can also set your desired event settings here. For example, add `-hidescorefromplayers` to the command!".ErrorEmbed()); } else { var server = ServerService.GetServer(); if (server == null) { await ReplyAsync(embed : "The Server is not running, so we can't can't add events to it".ErrorEmbed()); } else { var host = server.State.KnownHosts.FirstOrDefault(x => $"{x.Address}:{x.Port}" == hostServer); QualifierEvent.EventSettings settings = QualifierEvent.EventSettings.None; //Parse any desired options foreach (QualifierEvent.EventSettings o in Enum.GetValues(typeof(QualifierEvent.EventSettings))) { if (paramString.ParseArgs(o.ToString()) == "true") { settings = (settings | o); } } var response = await server.SendCreateQualifierEvent(host, DatabaseService.DatabaseContext.ConvertDatabaseToModel(null, new Database.Event { EventId = Guid.NewGuid().ToString(), GuildId = Context.Guild.Id, GuildName = Context.Guild.Name, Name = name, InfoChannelId = ulong.Parse(notificationChannelId), Flags = (int)settings })); if (response.Type == Response.ResponseType.Success) { await ReplyAsync(embed : response.Message.SuccessEmbed()); } else if (response.Type == Response.ResponseType.Fail) { await ReplyAsync(embed : response.Message.ErrorEmbed()); } } } } else { await ReplyAsync(embed : "You do not have sufficient permissions to use this command".ErrorEmbed()); } }