Advertisement
Guest User

Untitled

a guest
Feb 28th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.07 KB | None | 0 0
  1. using System;
  2.  
  3. using WebSocketSharp;
  4. using WebSocketSharp.Frame;
  5.  
  6. using Newtonsoft.Json;
  7.  
  8. using System.Threading;
  9.  
  10. namespace csharpclient
  11. {
  12.     struct Packet
  13.     {
  14.         public string type, nick, password, name, reason;
  15.         public StateObject? obj;
  16.     }
  17.  
  18.     struct StateObject
  19.     {
  20.         public string chat;
  21.         public int img, x, y;
  22.     }
  23.  
  24.     class MainClass
  25.     {
  26.         public static void Main (string[] args)
  27.         {
  28.             string username = "ajf-bot", password = null;
  29.  
  30.             StateObject myState = new StateObject();
  31.             myState.x = 225;
  32.             myState.y = 220;
  33.             myState.img = 0;
  34.             myState.chat = "";
  35.  
  36.             using (WebSocket ws = new WebSocket("ws://ajf.me:9001/", new string[] { "ponyplace-broadcast" })) {
  37.                 ws.OnOpen += (sender, e) =>
  38.                 {
  39.                     Console.WriteLine ("Connected");
  40.  
  41.                     // say hello
  42.                     Packet packet = new Packet();
  43.                     packet.type = "appear";
  44.                     packet.nick = username;
  45.                     packet.password = password;
  46.                     packet.obj = myState;
  47.  
  48.                     string json = JsonConvert.SerializeObject(packet);
  49.                     Console.WriteLine ("Said hello: " + json);
  50.                     ws.Send(json);
  51.                 };
  52.                 ws.OnMessage += (sender, e) =>
  53.                 {
  54.                     Packet packet = JsonConvert.DeserializeObject<Packet>(e.Data);
  55.  
  56.                     switch (packet.type) {
  57.                     // we got list of rooms
  58.                     case "room_list":
  59.                     {
  60.                         Console.WriteLine ("We got list of rooms.");
  61.  
  62.                         // join room
  63.                         Packet newPacket = new Packet();
  64.                         newPacket.type = "room_change";
  65.                         newPacket.name = "library";
  66.  
  67.                         string json = JsonConvert.SerializeObject(newPacket);
  68.                         Console.WriteLine ("Went to Library: " + json);
  69.                         ws.Send (json);
  70.                         break;
  71.                     }
  72.                     // we joined room
  73.                     case "room_change":
  74.                     {
  75.                         Console.WriteLine ("We changed room.");
  76.  
  77.                         // say hello to peeps
  78.                         myState.chat = "hello I'm a bot how do you do?";
  79.  
  80.                         Packet newPacket = new Packet();
  81.                         newPacket.type = "update";
  82.                         newPacket.obj = myState;
  83.  
  84.                         string json = JsonConvert.SerializeObject(newPacket);
  85.                         Console.WriteLine ("Said howdy: " + json);
  86.                         ws.Send (json);
  87.                         break;
  88.                     }
  89.                     // we kicked :<
  90.                     case "kick":
  91.                     {
  92.                         Console.WriteLine ("We got kicked :( reason: " + packet.reason);
  93.                         break;
  94.                     }
  95.                     // someone joined
  96.                     case "appear":
  97.                     {
  98.                         Console.WriteLine (packet.nick + " appeared");
  99.                         break;
  100.                     }
  101.                     // someone joined
  102.                     case "die":
  103.                     {
  104.                         Console.WriteLine (packet.nick + " left");
  105.                         break;
  106.                     }
  107.                     // someone updated
  108.                     case "update":
  109.                     {
  110.                         StateObject obj = (StateObject)packet.obj;
  111.                         Console.WriteLine ("<" + packet.nick + "> (" + obj.x + "," + obj.y + ") " + obj.chat);
  112.                         break;
  113.                     }
  114.                     default:
  115.                     {
  116.                         Console.WriteLine ("Got (unhandled type) message: " + e.Data);
  117.                         break;
  118.                     }
  119.                     }
  120.                 };
  121.                 ws.OnError += (sender, e) =>
  122.                 {
  123.                     Console.WriteLine ("Error! " + e.Message);
  124.                 };
  125.                 ws.OnClose += (sender, e) =>
  126.                 {
  127.                     Console.WriteLine ("Lost connection");
  128.                 };
  129.  
  130.                 ws.Connect();
  131.  
  132.                 while (true)
  133.                 {
  134.                     Thread.Sleep (500);
  135.                 }
  136.             }
  137.         }
  138.     }
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement