namespace DiscordBOTRP { class Program { public static Int32 limit; static void Main(string[] args) => new Program().RunBotAsync().GetAwaiter().GetResult(); private DiscordSocketClient _client; private CommandService _commands; private IServiceProvider _services; public async Task RunBotAsync() { _client = new DiscordSocketClient(); _commands = new CommandService(); _services = new ServiceCollection() .AddSingleton(_client) .AddSingleton(_commands) .BuildServiceProvider(); string botToken = "NDgxNDQ3MDY5Mjc0NDcyNDYw.DmSvgg.DAkGPuMDY7VNpWRY18SSDOfccNU"; _client.Log += Log; await RegisterCommandsAsync(); await _client.LoginAsync(TokenType.Bot, botToken); await _client.StartAsync(); await Task.Delay(-1); } private Task Log(LogMessage arg) { Console.WriteLine(arg); return Task.CompletedTask; } public async Task RegisterCommandsAsync() { _client.MessageReceived += HandleCommandAsync; await _commands.AddModulesAsync(Assembly.GetEntryAssembly()); } public static string getBetween(string strSource, string strStart, string strEnd) { int Start, End; if (strSource.Contains(strStart) && strSource.Contains(strEnd)) { Start = strSource.IndexOf(strStart, 0) + strStart.Length; End = strSource.IndexOf(strEnd, Start); return strSource.Substring(Start, End - Start); } else { return ""; } } private async Task HandleCommandAsync(SocketMessage arg) { var message = arg as SocketUserMessage; if (message is null || message.Author.IsBot) return; int argPos = 0; if(message.HasStringPrefix(":", ref argPos) || message.HasMentionPrefix(_client.CurrentUser, ref argPos)) { var context = new SocketCommandContext(_client, message); var result = await _commands.ExecuteAsync(context, argPos, _services); if (!result.IsSuccess) Console.WriteLine(result.ErrorReason); } } } }