SHARE
TWEET

Everybody Edits - Simple Bot

capasha Mar 8th, 2016 (edited) 292 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using PlayerIOClient;
  7. using System.Text.RegularExpressions;
  8. namespace bot
  9. {
  10.     class Program
  11.     {
  12.         public static string email = "guest";
  13.         public static string password = "guest";
  14.         public static string roomid = "PW01";
  15.         public static int botid = 0;
  16.  
  17.         public static Dictionary<int, player> players = new Dictionary<int, player>();
  18.         static void Main(string[] args)
  19.         {
  20.  
  21.             PlayerIO.QuickConnect.SimpleConnect("everybody-edits-su9rn58o40itdbnw69plyw", email, password, null,
  22.                 delegate(Client client)
  23.                 {
  24.                     client.Multiplayer.CreateJoinRoom(roomid, roomid.StartsWith("BW") ? "Beta" : "Everybodyedits" + client.BigDB.Load("config", "config")["version"], false, null, null,
  25.                         delegate(Connection con)
  26.                         {
  27.                             con.Send("init");
  28.                             con.OnMessage += delegate(object sender, PlayerIOClient.Message m)
  29.                             {
  30.                                 switch (m.Type)
  31.                                 {
  32.                                     case "init":
  33.                                         botid = m.GetInt(5); //Store the botid
  34.                                         con.Send("init2");
  35.                                         break;
  36.                                     case "add":
  37.                                         players.Add(m.GetInt(0), new player()
  38.                                         {
  39.                                             username = m.GetString(1), //Nickname of player
  40.                                             killed = false, //Is the user alive or not
  41.                                             totalBlueCoins = m.GetInt(10), //Total blue coins the user have
  42.                                             totalYellowCoins = m.GetInt(9), //Total yellow coins the user have
  43.                                             totalDeaths = m.GetInt(11), //Total died times
  44.                                             teamColor = m.GetInt(16), //Team Color
  45.                                             smiley = m.GetInt(3) //Smiley that the user using
  46.                                         });
  47.                                         break;
  48.                                     case "say":
  49.                                         if (botid == m.GetInt(0)) return; //If bot is talking, ignore him
  50.  
  51.                                         //If the first letter prefix is: . ! ? - +. Continue
  52.                                         if (Regex.IsMatch(m.GetString(1).Substring(0, 1), @"\.|\!|\?|\-|\+"))
  53.                                         {
  54.                                             var cmdprefix = m.GetString(1).Substring(0, 1); //Set the command prefix
  55.                                             var words = m.GetString(1).ToLower().Split(' '); //Split the spacebar into words.
  56.                                             if (words[0].StartsWith(cmdprefix + "hello")) //If words starts with the prefix and "hello"
  57.                                             {
  58.                                                 con.Send("say", "Hello World " + players[m.GetInt(0)].username); // Bot writes out "Hello World <nickname>" in the chat
  59.                                             }
  60.                                             else if (words[0].StartsWith(cmdprefix + "kick")) //If words starts with the prefix and "kick"
  61.                                             {
  62.                                                 if (words.Length == 2) // If the message contains 2 words. (.kick <nickname>)
  63.                                                 {
  64.                                                    if (player.ContainsValue(words[1])) // If message 2/words[1] is the word nickname
  65.                                                    {
  66.                                                         con.Send("say", "/kick " + words[1] + " You got kicked!"); // Kick the player out of the room
  67.                                                    }
  68.                                                 }
  69.                                             }
  70.                                         }
  71.                                         break;
  72.                                     case "left":
  73.                                         players.Remove(m.GetInt(0)); //Remove player from the playerlist when he leaves
  74.                                         break;
  75.                                     case "team":
  76.                                         players[m.GetInt(0)].teamColor = m.GetInt(1); // Updating the users team color
  77.                                         break;
  78.                                     case "c":
  79.                                         players[m.GetInt(0)].totalBlueCoins = m.GetInt(2); //Updating blue coins
  80.                                         players[m.GetInt(0)].totalYellowCoins = m.GetInt(1); //Updating yellow coins
  81.                                         break;
  82.                                     case "kill":
  83.                                         players[m.GetInt(0)].killed = true; //Set the player as killed
  84.                                         break;
  85.                                     case "face":
  86.                                         players[m.GetInt(0)].smiley = m.GetInt(1); //Updating the smiley that the user using
  87.                                         break;
  88.                                     case "k":
  89.                                         if (m.GetInt(1) == -1) return; //If none have the crown, skip this step
  90.                                         foreach (var player in players)
  91.                                         {
  92.                                             if (player.Value.haveCrown) player.Value.haveCrown = false; //If there is already a user with crown.
  93.                                         }
  94.                                         players[m.GetInt(0)].haveCrown = true; //If user touched the crown
  95.                                         break;
  96.                                     case "ks":
  97.                                         players[m.GetInt(0)].gotTrophy = true; //If user touched trophy
  98.                                         break;
  99.  
  100.                                 }
  101.                             };
  102.  
  103.                         },
  104.                         delegate(PlayerIOError error)
  105.                         {
  106.                             Console.WriteLine(error.Message);
  107.                         });
  108.                 },
  109.                 delegate(PlayerIOError error)
  110.                 {
  111.                     Console.WriteLine(error.Message);
  112.                 });
  113.             Console.ReadKey();
  114.         }
  115.     }
  116.     class player
  117.     {
  118.         public string username { get; set; }
  119.         public bool killed { get; set; }
  120.         public bool haveCrown { get; set; }
  121.         public bool gotTrophy { get; set; }
  122.         public int totalBlueCoins { get; set; }
  123.         public int totalYellowCoins { get; set; }
  124.         public int totalDeaths { get; set; }
  125.         public int teamColor { get; set; }
  126.         public int smiley { get; set; }
  127.     }
  128. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top