Facebook
From Blush Owl, 5 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 207
  1. namespace DiscordBOTRP
  2. {
  3.     class Program
  4.     {
  5.     public static Int32 limit;
  6.  
  7.         static void Main(string[] args) => new Program().RunBotAsync().GetAwaiter().GetResult();
  8.         private DiscordSocketClient _client;
  9.         private CommandService _commands;
  10.         private IServiceProvider _services;
  11.  
  12.         public async Task RunBotAsync()
  13.         {
  14.             _client = new DiscordSocketClient();
  15.             _commands = new CommandService();
  16.  
  17.             _services = new ServiceCollection()
  18.                 .AddSingleton(_client)
  19.                 .AddSingleton(_commands)
  20.                 .BuildServiceProvider();
  21.  
  22.             string botToken = "NDgxNDQ3MDY5Mjc0NDcyNDYw.DmSvgg.DAkGPuMDY7VNpWRY18SSDOfccNU";
  23.  
  24.             _client.Log += Log;
  25.  
  26.             await RegisterCommandsAsync();
  27.  
  28.             await _client.LoginAsync(TokenType.Bot, botToken);
  29.  
  30.             await _client.StartAsync();
  31.  
  32.             await Task.Delay(-1);
  33.         }
  34.  
  35.         private Task Log(LogMessage arg)
  36.         {
  37.             Console.WriteLine(arg);
  38.  
  39.             return Task.CompletedTask;
  40.         }
  41.  
  42.         public async Task RegisterCommandsAsync()
  43.         {
  44.             _client.MessageReceived += HandleCommandAsync;
  45.  
  46.             await _commands.AddModulesAsync(Assembly.GetEntryAssembly());
  47.  
  48.         }
  49.  
  50.         public static string getBetween(string strSource, string strStart, string strEnd)
  51.         {
  52.             int Start, End;
  53.             if (strSource.Contains(strStart) && strSource.Contains(strEnd))
  54.             {
  55.                 Start = strSource.IndexOf(strStart, 0) + strStart.Length;
  56.                 End = strSource.IndexOf(strEnd, Start);
  57.                 return strSource.Substring(Start, End - Start);
  58.             }
  59.             else
  60.             {
  61.                 return "";
  62.             }
  63.         }
  64.  
  65.         private async Task HandleCommandAsync(SocketMessage arg)
  66.         {
  67.             var message = arg as SocketUserMessage;
  68.  
  69.             if (message is null || message.Author.IsBot) return;
  70.  
  71.             int argPos = 0;
  72.  
  73.             if(message.HasStringPrefix(":", ref argPos) || message.HasMentionPrefix(_client.CurrentUser, ref argPos))
  74.             {
  75.                 var context = new SocketCommandContext(_client, message);
  76.  
  77.                 var result = await _commands.ExecuteAsync(context, argPos, _services);
  78.  
  79.                 if (!result.IsSuccess)
  80.                     Console.WriteLine(result.ErrorReason);
  81.             }
  82.         }
  83.     }
  84. }