public async Task New(CommandContext ctx, [Description("Уникальное имя корабля")][RemainingText] string name) { // check if user already has a ship if (PrivateShip.GetOwnedShip(ctx.Member.Id) != null) { await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Ты уже являешься владельцем корабля."); return; } var requestTime = DateTime.Now; // check if the ship name is not set if (string.IsNullOrEmpty(name)) { await ctx.RespondAsync( $"{Bot.BotSettings.ErrorEmoji} Ты не указал имя корабля: `!p new название корабля`"); return; } // check if there is a ship with the same name if (PrivateShip.Get(name) != null) { await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Корабль с таким именем уже существует."); return; } // create a new ship var ship = PrivateShip.Create(name, requestTime, 0); ship.AddMember(ctx.Member.Id, PrivateShipMemberRole.Captain, false); // create a request message var requestsChannel = ctx.Guild.GetChannel(Bot.BotSettings.PrivateRequestsChannel); var requestText = "**Запрос на создание корабля**\n\n" + $"**От:** {ctx.Member.Mention} ({ctx.Member.Id})\n" + $"**Название:** {name}\n" + $"**Время:** {DateTime.Now}\n\n" + $"Используйте :white_check_mark: для подтверждения или :no_entry: для отказа."; var message = await requestsChannel.SendMessageAsync(requestText); await message.CreateReactionAsync(DiscordEmoji.FromName(ctx.Client, ":white_check_mark:")); await message.CreateReactionAsync(DiscordEmoji.FromName(ctx.Client, ":no_entry:")); ship.RequestMessage = message.Id; // notify user await ctx.RespondAsync($"{Bot.BotSettings.OkEmoji} Запрос успешно отправлен"); }