SHARE
TWEET

Everybody Edits - Listrooms 2

capasha Mar 15th, 2016 161 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.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using PlayerIOClient;
  11. namespace ListRooms
  12. {
  13.     public partial class Form1 : Form
  14.     {
  15.         private Dictionary<string, roomdata> room = new Dictionary<string, roomdata>();
  16.         private Client client;
  17.         private int inc = 0;
  18.         private DatabaseObject dbo;
  19.         public Form1()
  20.         {
  21.             InitializeComponent();
  22.         }
  23.  
  24.         private void button1_Click(object sender, EventArgs e)
  25.         {
  26.             client = PlayerIO.QuickConnect.SimpleConnect("everybody-edits-su9rn58o40itdbnw69plyw", "guest", "guest", null);
  27.             ReadRoomData();
  28.         }
  29.  
  30.         private void ReadWorldData(string roomid, int inced, int total)
  31.         {
  32.             if (roomid != null)
  33.             {
  34.                 client.BigDB.Load("Worlds", roomid,
  35.                     delegate(DatabaseObject dbo)
  36.                     {
  37.  
  38.  
  39.                         foreach (KeyValuePair<string, object> db in dbo)
  40.                         {
  41.  
  42.                             //Console.WriteLine(db.Key + " " + db.Value.GetType());
  43.                             switch (db.Key)
  44.                             {
  45.                                 case "owner":
  46.                                     room[roomid].owner = (string)db.Value;
  47.                                     break;
  48.                                 case "width":
  49.                                     room[roomid].width = (int)db.Value;
  50.                                     break;
  51.                                 case "height":
  52.                                     room[roomid].height = (int)db.Value;
  53.                                     break;
  54.                                 case "type":
  55.                                     room[roomid].type = (int)db.Value;
  56.                                     break;
  57.                                 case "curseLimit":
  58.                                     room[roomid].curseLimit = (int)db.Value;
  59.                                     break;
  60.                                 case "zombieLimit":
  61.                                     room[roomid].zombieLimit = (int)db.Value;
  62.                                     break;
  63.                                 case "Status":
  64.                                     room[roomid].Status = (int)db.Value;
  65.                                     break;
  66.                                 case "backgroundColor":
  67.                                     room[roomid].backgroundColor = (uint)db.Value;
  68.                                     break;
  69.                                 case "HideLobby":
  70.                                     room[roomid].HideLobby = (bool)db.Value;
  71.                                     break;
  72.                                 case "allowSpectating":
  73.                                     room[roomid].allowSpectating = (bool)db.Value;
  74.                                     break;
  75.                                 case "visible":
  76.                                     room[roomid].visible = (bool)db.Value;
  77.                                     break;
  78.                                 case "MinimapEnabled":
  79.                                     room[roomid].MinimapEnabled = (bool)db.Value;
  80.                                     break;
  81.                                 case "LobbyPreviewEnabled":
  82.                                     room[roomid].LobbyPreviewEnabled = (bool)db.Value;
  83.                                     break;
  84.                                 case "Crew":
  85.                                     room[roomid].Crew = (string)db.Value;
  86.                                     break;
  87.                                 case "Campaign":
  88.                                     room[roomid].Campaign = (string)db.Value;
  89.                                     break;
  90.                                 default:
  91.                                     // Console.WriteLine("Unknown: " + db.Key + " " + db.Value.GetType());
  92.                                     break;
  93.                             }
  94.                         }
  95.                         this.Invoke((MethodInvoker)delegate { progressBar2.Value = Convert.ToInt32((double)inced / total * 100); });
  96.                     },
  97.                     delegate(PlayerIOError error)
  98.                     {
  99.                         Console.WriteLine(error.Message);
  100.                     });
  101.             }
  102.         }
  103.  
  104.         private void ReadRoomData()
  105.         {
  106.             room.Clear();
  107.             progressBar1.Value = 0;
  108.             progressBar2.Value = 0;
  109.             label3.Text = "Found: 0 World(s)";
  110.             int total = 0, inca = 0, inca2 = 0;
  111.             RoomInfo[] rooms;
  112.             rooms = client.Multiplayer.ListRooms(null, null, 0, 0);
  113.  
  114.             bool owned = false, needskey = false, isfeatured = false, iscampaign = false, lobbyprewview = false;
  115.             int plays = 0, rating = 0, favorites = 0, likes = 0, players = 0;
  116.             string description = null, roomid = null, name = null;
  117.  
  118.             for (int i = 0; i < rooms.Length; i++)
  119.             {
  120.  
  121.                 this.Invoke((MethodInvoker)delegate { progressBar1.Value = Convert.ToInt32((double)i / rooms.Length * 100); });
  122.                 if (!rooms[i].RoomType.StartsWith("Lobby") && !rooms[i].RoomType.StartsWith("Tracking") && !rooms[i].RoomType.StartsWith("CrewLobby"))
  123.                 {
  124.                     inca2 += 1;
  125.                     roomid = rooms[i].Id;
  126.                     players = rooms[i].OnlineUsers;
  127.                     foreach (KeyValuePair<string, string> kvp in rooms[i].RoomData)
  128.                     {
  129.                         switch (kvp.Key)
  130.                         {
  131.                             case "owned":
  132.                                 bool.TryParse(kvp.Value, out owned);
  133.                                 break;
  134.                             case "needskey":
  135.                                 needskey = kvp.Value == "yep" ? true : false;
  136.                                 break;
  137.                             case "plays":
  138.                                 int.TryParse(kvp.Value, out plays);
  139.                                 break;
  140.                             case "rating":
  141.                                 int.TryParse(kvp.Value, out rating);
  142.                                 break;
  143.                             case "name":
  144.                                 name = kvp.Value;
  145.                                 break;
  146.                             case "Favorites":
  147.                                 int.TryParse(kvp.Value, out favorites);
  148.                                 break;
  149.                             case "Likes":
  150.                                 int.TryParse(kvp.Value, out likes);
  151.                                 break;
  152.                             case "description":
  153.                                 description = kvp.Value;
  154.                                 break;
  155.                             case "IsFeatured":
  156.                                 bool.TryParse(kvp.Value, out isfeatured);
  157.                                 break;
  158.                             case "IsCampaign":
  159.                                 bool.TryParse(kvp.Value, out iscampaign);
  160.                                 break;
  161.                             case "LobbyPreviewEnabled":
  162.                                 bool.TryParse(kvp.Value, out lobbyprewview);
  163.                                 break;
  164.                         }
  165.                     }
  166.                     room.Add(roomid, new roomdata()
  167.                     {
  168.                         players = players,
  169.                         owned = owned,
  170.                         needskey = needskey,
  171.                         plays = plays,
  172.                         rating = rating,
  173.                         name = name,
  174.                         favorites = favorites,
  175.                         likes = likes,
  176.                         description = description,
  177.                         isfeatured = isfeatured,
  178.                         iscampaign = iscampaign,
  179.                         lobbypreview = lobbyprewview
  180.                     });
  181.  
  182.                 }
  183.  
  184.             }
  185.             this.Invoke((MethodInvoker)delegate { label3.Text = "Found: " + inca2 + " World(s)"; });
  186.             foreach (KeyValuePair<string, roomdata> rd in room)
  187.             {
  188.                 inca += 1;
  189.                 System.Threading.Thread thread = new System.Threading.Thread(delegate() { ReadWorldData(rd.Key, inca, room.Count); });
  190.                 thread.Start();
  191.             }
  192.             //Load data.
  193.         }
  194.     }
  195.     class roomdata
  196.     {
  197.         public int players { get; set; }
  198.         public bool owned { get; set; }
  199.         public bool needskey { get; set; }
  200.         public int plays { get; set; }
  201.         public int rating { get; set; }
  202.         public string name { get; set; }
  203.         public int favorites { get; set; }
  204.         public int likes { get; set; }
  205.         public string description { get; set; }
  206.         public bool isfeatured { get; set; }
  207.         public bool iscampaign { get; set; }
  208.         public bool lobbypreview { get; set; }
  209.  
  210.  
  211.  
  212.         //From Worlds database
  213.  
  214.         public byte[] x { get; set; }
  215.         public byte[] Y { get; set; }
  216.  
  217.         public string owner { get; set; }
  218.         public int width { get; set; }
  219.         public int height { get; set; }
  220.         public int type { get; set; }
  221.         public uint backgroundColor { get; set; }
  222.         public int curseLimit { get; set; }
  223.         public int zombieLimit { get; set; }
  224.         public bool HideLobby { get; set; }
  225.         public bool allowSpectating { get; set; }
  226.         public bool visible { get; set; }
  227.         public bool MinimapEnabled { get; set; }
  228.         public bool LobbyPreviewEnabled { get; set; }
  229.         public string Crew { get; set; }
  230.         public int Status { get; set; }
  231.         public string Campaign { get; set; }
  232.  
  233.     }
  234. }
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