Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using WebSocketSharp;
- using WebSocketSharp.Frame;
- using Newtonsoft.Json;
- using System.Threading;
- namespace csharpclient
- {
- struct Packet
- {
- public string type, nick, password, name, reason;
- public StateObject? obj;
- }
- struct StateObject
- {
- public string chat;
- public int img, x, y;
- }
- class MainClass
- {
- public static void Main (string[] args)
- {
- string username = "ajf-bot", password = null;
- StateObject myState = new StateObject();
- myState.x = 225;
- myState.y = 220;
- myState.img = 0;
- myState.chat = "";
- using (WebSocket ws = new WebSocket("ws://ajf.me:9001/", new string[] { "ponyplace-broadcast" })) {
- ws.OnOpen += (sender, e) =>
- {
- Console.WriteLine ("Connected");
- // say hello
- Packet packet = new Packet();
- packet.type = "appear";
- packet.nick = username;
- packet.password = password;
- packet.obj = myState;
- string json = JsonConvert.SerializeObject(packet);
- Console.WriteLine ("Said hello: " + json);
- ws.Send(json);
- };
- ws.OnMessage += (sender, e) =>
- {
- Packet packet = JsonConvert.DeserializeObject<Packet>(e.Data);
- switch (packet.type) {
- // we got list of rooms
- case "room_list":
- {
- Console.WriteLine ("We got list of rooms.");
- // join room
- Packet newPacket = new Packet();
- newPacket.type = "room_change";
- newPacket.name = "library";
- string json = JsonConvert.SerializeObject(newPacket);
- Console.WriteLine ("Went to Library: " + json);
- ws.Send (json);
- break;
- }
- // we joined room
- case "room_change":
- {
- Console.WriteLine ("We changed room.");
- // say hello to peeps
- myState.chat = "hello I'm a bot how do you do?";
- Packet newPacket = new Packet();
- newPacket.type = "update";
- newPacket.obj = myState;
- string json = JsonConvert.SerializeObject(newPacket);
- Console.WriteLine ("Said howdy: " + json);
- ws.Send (json);
- break;
- }
- // we kicked :<
- case "kick":
- {
- Console.WriteLine ("We got kicked :( reason: " + packet.reason);
- break;
- }
- // someone joined
- case "appear":
- {
- Console.WriteLine (packet.nick + " appeared");
- break;
- }
- // someone joined
- case "die":
- {
- Console.WriteLine (packet.nick + " left");
- break;
- }
- // someone updated
- case "update":
- {
- StateObject obj = (StateObject)packet.obj;
- Console.WriteLine ("<" + packet.nick + "> (" + obj.x + "," + obj.y + ") " + obj.chat);
- break;
- }
- default:
- {
- Console.WriteLine ("Got (unhandled type) message: " + e.Data);
- break;
- }
- }
- };
- ws.OnError += (sender, e) =>
- {
- Console.WriteLine ("Error! " + e.Message);
- };
- ws.OnClose += (sender, e) =>
- {
- Console.WriteLine ("Lost connection");
- };
- ws.Connect();
- while (true)
- {
- Thread.Sleep (500);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement