Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Reflection;
- using System.Threading.Tasks;
- using Discord;
- using Discord.Commands;
- using Discord.WebSocket;
- using Discord.Net;
- namespace discbot
- {
- public class Program
- {
- public static bool memereact = false;
- static ulong messageid;
- static ulong debugchannel = 593430696874213384;
- static ulong schedulechannel = 593433900651380736;
- private DiscordSocketClient Client;
- private CommandService Commands;
- static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult();
- private async Task MainAsync()
- {
- Client = new DiscordSocketClient(new DiscordSocketConfig
- {
- LogLevel = LogSeverity.Debug
- });
- Commands = new CommandService(new CommandServiceConfig
- {
- CaseSensitiveCommands = false,
- DefaultRunMode = RunMode.Async,
- LogLevel = LogSeverity.Debug
- });
- Client.MessageReceived += Client_MessageReceived;
- Client.ReactionAdded += OnReactionAdded;
- await Commands.AddModulesAsync(assembly: Assembly.GetEntryAssembly(), services: null);
- Client.Ready += Client_Ready;
- Client.Log += Client_Log;
- await Client.LoginAsync(TokenType.Bot, "I wont show u dis");
- await Client.StartAsync();
- await Task.Delay(-1);
- }
- private async Task Client_Log(LogMessage msg)
- {
- Console.WriteLine($"{DateTime.Now} at {msg.Source} {msg.Message}");
- }
- private async Task Client_Ready()
- {
- await Client.SetGameAsync("Visiting Kim Jong Un");
- }
- public async Task ReactAsync(SocketUserMessage userMsg)
- {
- if (memereact)
- {
- string name = userMsg.Author.Username.ToString();
- Console.WriteLine("Reacting on user: " + name);
- if (name == "Broccoli")
- {
- var emoji = new Emoji("\uD83D\uDEAB");
- await userMsg.AddReactionAsync(emoji);
- }
- else
- {
- var emoji = new Emoji("\uD83D\uDCAA");
- await userMsg.AddReactionAsync(emoji);
- emoji = new Emoji("\uD83D\uDE02");
- await userMsg.AddReactionAsync(emoji);
- emoji = new Emoji("\uD83D\uDC4C");
- await userMsg.AddReactionAsync(emoji);
- emoji = new Emoji("\uD83D\uDCAF");
- await userMsg.AddReactionAsync(emoji);
- }
- }
- }
- public async Task DebugMessage(String a)
- {
- await Client.GetGuild(593114638770634763).GetTextChannel(debugchannel).SendMessageAsync(a);
- }
- public async Task ScheduleMessage(String a)
- {
- await Client.GetGuild(593114638770634763).GetTextChannel(schedulechannel).SendMessageAsync(a);
- }
- private async Task OnReactionAdded(Cacheable<IUserMessage, ulong> cache, ISocketMessageChannel channel, SocketReaction thereaction)
- {
- await DebugMessage("React func started");
- string path = @"C:\Users\Alex\source\repos\discbot\messageid.txt";
- string s = "";
- using (StreamReader sr = File.OpenText(path))
- {
- try
- {
- while ((s = sr.ReadLine()) != null)
- {
- ulong thekeytodark = ulong.Parse(s);
- await DebugMessage("Checking if " + thereaction.MessageId + thekeytodark + " matches");
- if (thereaction.MessageId == thekeytodark)
- {
- var emotes = thereaction.Emote;
- switch (emotes.ToString())
- {
- case ":ok_hand:":
- await ScheduleMessage("A request at " + thereaction.Channel.Name + " was completed!!");
- break;
- case ":thumbs_up:":
- await ScheduleMessage("the work for a request from " + thereaction.Channel.Name + " has been started!!");
- break;
- default:
- await DebugMessage("Reaction or emoji at " + thereaction.Channel.Name + " was not a listed one so i wont to do anything");
- break;
- }
- }
- }
- } catch(Exception e)
- {
- await channel.SendMessageAsync("Something went wrong... Exception was sent to console!");
- Console.WriteLine(e);
- }
- sr.Close();
- }
- return;
- }
- private async Task Client_CheckTicket(SocketMessage arg)
- {
- try
- {
- var Message = arg as SocketUserMessage;
- var Context = new SocketCommandContext(Client, Message);
- if (Context.Channel.Id == debugchannel)
- {
- Console.WriteLine("Detected a debug message i wont be taking any actions against it");
- return;
- }
- if (Context.User.IsBot)
- {
- String s = "";
- String path = @"C:\Users\Alex\source\repos\discbot\ids.txt";
- using (StreamReader sr = File.OpenText(path))
- {
- try
- {
- while ((s = sr.ReadLine()) != null)
- {
- await DebugMessage("Checking this message: " + Message.Content);
- if (Context.Message.Content.Contains(s))
- {
- messageid = Message.Id;
- await DebugMessage("added");
- }
- }
- }
- catch (Exception e)
- {
- await DebugMessage("Something went wrong... Exception was sent to console!");
- Console.WriteLine(e);
- return;
- }
- sr.Close();
- }
- if (messageid != 0)
- {
- path = @"C:\Users\Alex\source\repos\discbot\messageid.txt";
- using (StreamWriter sr = File.AppendText(path))
- {
- sr.WriteLine(messageid);
- sr.Close();
- }
- }
- else
- {
- await DebugMessage("MessageID was 0 so i will not add it to my database");
- return;
- }
- }
- else
- {
- await DebugMessage("No pass");
- }
- } catch(Exception e)
- {
- await DebugMessage(e.ToString());
- }
- }
- private async Task Client_MessageReceived(SocketMessage arg)
- {
- var Message = arg as SocketUserMessage;
- await ReactAsync(Message);
- var Context = new SocketCommandContext(Client, Message);
- if (Context.Message == null || Context.Message.Content == "") return;
- if (Context.User.IsBot) return;
- int ArgPos = 0;
- if (!(Message.HasStringPrefix("nuked!", ref ArgPos) || Message.HasMentionPrefix(Client.CurrentUser, ref ArgPos))) return;
- var Result = await Commands.ExecuteAsync(Context, ArgPos, null);
- if (!Result.IsSuccess)
- {
- Console.WriteLine($"{DateTime.Now} at Commands Something went wrong with executing a nuke launch. Text: {Context.Message.Content} | Error: {Result.ErrorReason}");
- await Context.Channel.SendMessageAsync($"{DateTime.Now} at Commands Something went wrong with executing a nuke launch. Text: {Context.Message.Content} | Error: {Result.ErrorReason}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement