Advertisement
Guest User

Program.cs

a guest
Jun 26th, 2019
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 8.83 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Reflection;
  4. using System.Threading.Tasks;
  5. using Discord;
  6. using Discord.Commands;
  7. using Discord.WebSocket;
  8. using Discord.Net;
  9.  
  10. namespace discbot
  11. {
  12.     public class Program
  13.     {
  14.  
  15.         public static bool memereact = false;
  16.         static ulong messageid;
  17.         static ulong debugchannel = 593430696874213384;
  18.         static ulong schedulechannel = 593433900651380736;
  19.  
  20.         private DiscordSocketClient Client;
  21.         private CommandService Commands;
  22.  
  23.         static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult();
  24.  
  25.        
  26.  
  27.         private async Task MainAsync()
  28.         {
  29.             Client = new DiscordSocketClient(new DiscordSocketConfig
  30.             {
  31.                 LogLevel = LogSeverity.Debug
  32.             });
  33.  
  34.             Commands = new CommandService(new CommandServiceConfig
  35.             {
  36.                 CaseSensitiveCommands = false,
  37.                 DefaultRunMode = RunMode.Async,
  38.                 LogLevel = LogSeverity.Debug
  39.             });
  40.  
  41.             Client.MessageReceived += Client_MessageReceived;
  42.             Client.ReactionAdded += OnReactionAdded;
  43.            
  44.             await Commands.AddModulesAsync(assembly: Assembly.GetEntryAssembly(), services: null);
  45.  
  46.             Client.Ready += Client_Ready;
  47.             Client.Log += Client_Log;
  48.            
  49.             await Client.LoginAsync(TokenType.Bot, "I wont show u dis");
  50.             await Client.StartAsync();
  51.  
  52.  
  53.             await Task.Delay(-1);
  54.  
  55.         }
  56.         private async Task Client_Log(LogMessage msg)
  57.         {
  58.             Console.WriteLine($"{DateTime.Now} at {msg.Source} {msg.Message}");
  59.         }
  60.  
  61.         private async Task Client_Ready()
  62.         {
  63.             await Client.SetGameAsync("Visiting Kim Jong Un");
  64.         }
  65.  
  66.         public async Task ReactAsync(SocketUserMessage userMsg)
  67.         {
  68.             if (memereact)
  69.             {
  70.                 string name = userMsg.Author.Username.ToString();
  71.                 Console.WriteLine("Reacting on user: " + name);
  72.                 if (name == "Broccoli")
  73.                 {
  74.                     var emoji = new Emoji("\uD83D\uDEAB");
  75.                     await userMsg.AddReactionAsync(emoji);
  76.                 }
  77.                 else
  78.                 {
  79.                     var emoji = new Emoji("\uD83D\uDCAA");
  80.                     await userMsg.AddReactionAsync(emoji);
  81.                     emoji = new Emoji("\uD83D\uDE02");
  82.                     await userMsg.AddReactionAsync(emoji);
  83.                     emoji = new Emoji("\uD83D\uDC4C");
  84.                     await userMsg.AddReactionAsync(emoji);
  85.                     emoji = new Emoji("\uD83D\uDCAF");
  86.                     await userMsg.AddReactionAsync(emoji);
  87.                 }
  88.             }
  89.            
  90.  
  91.  
  92.         }
  93.  
  94.         public async Task DebugMessage(String a)
  95.         {
  96.             await Client.GetGuild(593114638770634763).GetTextChannel(debugchannel).SendMessageAsync(a);
  97.            
  98.         }
  99.  
  100.         public async Task ScheduleMessage(String a)
  101.         {
  102.             await Client.GetGuild(593114638770634763).GetTextChannel(schedulechannel).SendMessageAsync(a);
  103.         }
  104.  
  105.         private async Task OnReactionAdded(Cacheable<IUserMessage, ulong> cache, ISocketMessageChannel channel, SocketReaction thereaction)
  106.         {
  107.             await DebugMessage("React func started");
  108.             string path = @"C:\Users\Alex\source\repos\discbot\messageid.txt";
  109.             string s = "";
  110.             using (StreamReader sr = File.OpenText(path))
  111.             {
  112.                
  113.                 try
  114.                 {
  115.                     while ((s = sr.ReadLine()) != null)
  116.                     {
  117.                         ulong thekeytodark = ulong.Parse(s);
  118.                         await DebugMessage("Checking if " + thereaction.MessageId + thekeytodark + " matches");
  119.                         if (thereaction.MessageId == thekeytodark)
  120.                         {
  121.                             var emotes = thereaction.Emote;
  122.                             switch (emotes.ToString())
  123.                             {
  124.                                 case ":ok_hand:":
  125.                                     await ScheduleMessage("A request at " + thereaction.Channel.Name + " was completed!!");
  126.                                     break;
  127.                                 case ":thumbs_up:":
  128.                                     await ScheduleMessage("the work for a request from " + thereaction.Channel.Name + " has been started!!");
  129.                                     break;
  130.                                 default:
  131.                                     await DebugMessage("Reaction or emoji at " + thereaction.Channel.Name + " was not a listed one so i wont to do anything");
  132.                                     break;
  133.  
  134.                             }
  135.              
  136.                         }
  137.                     }
  138.                 } catch(Exception e)
  139.                 {
  140.                     await channel.SendMessageAsync("Something went wrong... Exception was sent to console!");
  141.                     Console.WriteLine(e);
  142.                 }
  143.                 sr.Close();          
  144.             }
  145.             return;
  146.         }
  147.  
  148.  
  149.         private async Task Client_CheckTicket(SocketMessage arg)
  150.         {
  151.             try
  152.             {
  153.                 var Message = arg as SocketUserMessage;
  154.                 var Context = new SocketCommandContext(Client, Message);
  155.                 if (Context.Channel.Id == debugchannel)
  156.                 {
  157.                     Console.WriteLine("Detected a debug message i wont be taking any actions against it");
  158.                     return;
  159.                 }
  160.  
  161.                 if (Context.User.IsBot)
  162.                 {
  163.                     String s = "";
  164.                     String path = @"C:\Users\Alex\source\repos\discbot\ids.txt";
  165.  
  166.                     using (StreamReader sr = File.OpenText(path))
  167.                     {
  168.                         try
  169.                         {
  170.                             while ((s = sr.ReadLine()) != null)
  171.                             {
  172.                                 await DebugMessage("Checking this message: " + Message.Content);
  173.                                 if (Context.Message.Content.Contains(s))
  174.                                 {
  175.                                     messageid = Message.Id;
  176.                                     await DebugMessage("added");
  177.                                 }
  178.                                
  179.                             }
  180.  
  181.                         }
  182.                         catch (Exception e)
  183.                         {
  184.                             await DebugMessage("Something went wrong... Exception was sent to console!");
  185.                             Console.WriteLine(e);
  186.                             return;
  187.                         }
  188.                         sr.Close();
  189.  
  190.                     }
  191.                     if (messageid != 0)
  192.                     {
  193.                         path = @"C:\Users\Alex\source\repos\discbot\messageid.txt";
  194.                         using (StreamWriter sr = File.AppendText(path))
  195.                         {
  196.                             sr.WriteLine(messageid);
  197.                             sr.Close();
  198.                         }
  199.                     }
  200.                     else
  201.                     {
  202.                         await DebugMessage("MessageID was 0 so i will not add it to my database");
  203.                         return;
  204.                     }
  205.  
  206.                 }
  207.                 else
  208.                 {
  209.                     await DebugMessage("No pass");
  210.                 }
  211.             } catch(Exception e)
  212.             {
  213.                await DebugMessage(e.ToString());
  214.             }
  215.         }
  216.  
  217.         private async Task Client_MessageReceived(SocketMessage arg)
  218.         {
  219.            
  220.             var Message = arg as SocketUserMessage;
  221.             await ReactAsync(Message);
  222.             var Context = new SocketCommandContext(Client, Message);
  223.  
  224.             if (Context.Message == null || Context.Message.Content == "") return;
  225.             if (Context.User.IsBot) return;
  226.  
  227.             int ArgPos = 0;
  228.             if (!(Message.HasStringPrefix("nuked!", ref ArgPos) || Message.HasMentionPrefix(Client.CurrentUser, ref ArgPos))) return;
  229.  
  230.            
  231.             var Result = await Commands.ExecuteAsync(Context, ArgPos, null);
  232.             if (!Result.IsSuccess)
  233.             {
  234.                 Console.WriteLine($"{DateTime.Now} at Commands Something went wrong with executing a nuke launch. Text: {Context.Message.Content} | Error: {Result.ErrorReason}");
  235.                 await Context.Channel.SendMessageAsync($"{DateTime.Now} at Commands Something went wrong with executing a nuke launch. Text: {Context.Message.Content} | Error: {Result.ErrorReason}");
  236.             }
  237.  
  238.         }
  239.  
  240.  
  241.  
  242.     }
  243.  
  244. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement