Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Discord;
- using Google.Apis.Auth.OAuth2;
- using Google.Apis.Sheets.v4;
- using Google.Apis.Sheets.v4.Data;
- using Google.Apis.Services;
- using Google.Apis.Util.Store;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- namespace DiscordBot
- {
- class Program
- {
- // If modifying these scopes, delete your previously saved credentials
- // at ~/.credentials/sheets.googleapis.com-dotnet-quickstart.json
- static string[] Scopes = { SheetsService.Scope.SpreadsheetsReadonly };
- static string ApplicationName = "Google Sheets Test";
- static void Main(string[] args)
- {
- var bot = new DiscordClient();
- string ProgramLocation = (System.Reflection.Assembly.GetExecutingAssembly().CodeBase.Replace("file:///", "").Replace("DiscordBot.EXE", "") + "login.txt");
- string Username;
- string Password;
- UserCredential credential;
- using (var stream = new FileStream("client_id.json", FileMode.Open, FileAccess.Read))
- {
- string credPath = System.Environment.GetFolderPath(
- System.Environment.SpecialFolder.Personal);
- credPath = Path.Combine(credPath, ".credentials/sheets.googleapis.com-dotnet-quickstart.json");
- credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets,
- Scopes,
- "user",
- CancellationToken.None,
- new FileDataStore(credPath, true)).Result;
- Console.WriteLine("Credential file saved to: " + credPath);
- }
- var service = new SheetsService(new BaseClientService.Initializer()
- {
- HttpClientInitializer = credential,
- ApplicationName = ApplicationName,
- });
- string spreadsheetId = "1zT4trzM34tI56_YhFJfIiJYvj5OMCWXDE_WnBiCVMD0";
- string range = "B6:B12";
- SpreadsheetsResource.ValuesResource.GetRequest request = service.Spreadsheets.Values.Get(spreadsheetId, range);
- ValueRange response = request.Execute();
- IList<IList<Object>> values = response.Values;
- if (values != null && values.Count > 0)
- {
- Console.WriteLine("SPECIAL, Value");
- foreach (var row in values)
- {
- Console.WriteLine("{0}, {1}", row[1], row[7]);
- }
- }
- else
- {
- Console.WriteLine("No data found.");
- }
- Console.Read();
- if (!File.Exists(ProgramLocation))
- {
- if (!File.Exists("C:/login.txt"))
- {
- Console.WriteLine("No Login Files Found");
- Console.WriteLine("Enter Username");
- Username = Console.ReadLine();
- Console.WriteLine("Enter Password");
- Password = "";
- while (true)
- {
- var key = System.Console.ReadKey(true);
- if (key.Key == ConsoleKey.Enter)
- { break; }
- else if (key.Key != ConsoleKey.Backspace)
- { Console.Write("*"); }
- Password += key.KeyChar;
- }
- Console.WriteLine("Creating Login File in " + ProgramLocation);
- using (StreamWriter sw = File.CreateText(ProgramLocation))
- {
- sw.WriteLine("UserName: " + Username);
- sw.WriteLine("Password: " + Password);
- }
- }
- else
- {
- Username = File.ReadLines("C:/login.txt").Skip(0).Take(1).First().Replace(" ", "").Replace("UserName:", "");
- Password = File.ReadLines("C:/login.txt").Skip(1).Take(1).First().Replace(" ", "").Replace("Password:", "");
- }
- }
- else
- {
- Username = File.ReadLines(ProgramLocation).Skip(0).Take(1).First().Replace(" ", "").Replace("UserName:", "");
- Password = File.ReadLines(ProgramLocation).Skip(1).Take(1).First().Replace(" ", "").Replace("Password:", "");
- }
- bot.MessageReceived += bot_MessageReceived;
- try
- {
- bot.ExecuteAndWait(async () =>
- {
- await bot.Connect(Username, Password);
- Console.WriteLine("Bot Online, Logged in as " + Username);
- });
- }
- catch
- {
- Console.WriteLine("Username or password incorrect.");
- Console.WriteLine("Press Enter to exit and try again.");
- Console.WriteLine(Username);
- Console.WriteLine(Password);
- File.Delete(ProgramLocation);
- Console.ReadLine();
- }
- }
- private static void bot_MessageReceived(object sender, MessageEventArgs e)
- {
- if (e.Message.IsAuthor) return;
- Console.WriteLine("{0} said {1} in {2}", e.User.Name, e.Message.Text, e.Channel.Name);
- if (e.Message.Text.ToLower().Contains("!roll"))
- {
- string str = e.Message.Text;
- string[] tokens = str.Split(' ');
- double numTest;
- try
- {
- if (Double.TryParse(tokens[1], out numTest) && Double.TryParse(tokens[2], out numTest))
- {
- int DiceNumber = Convert.ToInt32(tokens[1]);
- int RollNumber = Convert.ToInt32(tokens[2]);
- string message = DND.rollDice(DiceNumber, RollNumber);
- e.Channel.SendMessage(message);
- //e.Channel.SendMessage("Roll a " + DiceNumber + " Sided Dice " + RollNumber + " Times");
- }
- else
- {
- e.Channel.SendMessage("Invalid arguments. Use '!roll (Dice Sides) (number of Rolls)' no parenthesis. 1");
- }
- }
- catch
- {
- e.Channel.SendMessage("Invalid arguments. Use '!roll (Dice Sides) (number of Rolls)' no parenthesis. ");
- }
- }
- if (e.Message.Text.ToLower().Contains("!battle"))
- {
- string battleOrder;
- string[] tokens = e.Message.Text.Split(' ');
- List<string> Validate = new List<string>(tokens);
- if (Validate.Count > 2)
- {
- battleOrder = DND.battlesequence(e.Message.Text);
- }
- else
- {
- battleOrder = "Please include at least 2 players/npcs";
- }
- e.Channel.SendMessage(battleOrder);
- }
- if (e.Message.Text.ToLower().Contains("!Artie"))
- {
- string[] tokens = e.Message.Text.Split(' ');
- string messsage = CharacterSheet.CharacterSPECIAL();
- e.Channel.SendMessage(messsage);
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement