private void handle()
{
functions func = new functions();
string name = "", message = "", type = "", color = "", style = "";
Message = socket.readString();
var root = JObject.Parse(Message);
foreach (KeyValuePair<String, JToken> app in root) {
var appName = app.Key;
switch (appName) {
case "text":
message = app.Value.ToString();
if (message.Contains(" "))
name = func.strip_codes(message.Substring(0, message.IndexOf(" ")).Replace("<", "").Replace(">", "").Replace(":", "").Replace(" ", ""));
type = "chat";
break;
case "translate":
type = app.Value.ToString();
break;
case "using":
name = app.Value.First.ToString();
message = app.Value.Last.ToString();
break;
case "color":
color = app.Value.ToString();
break;
case "italic":
if (app.Value.ToString() == "true")
style = "italic";
break;
}
if (type == "chat.type.admin") {
if (app.Value.HasValues == true) {
name = app.Value[0].ToString();
JObject thisObj = JObject.Parse(app.Value[1].ToString());
foreach (KeyValuePair<String, JToken> part in thisObj) {
var topName = part.Key;
switch (topName) {
case "translate":
type = part.Value.ToString();
break;
case "using":
message = part.Value.First.ToString();
name = part.Value.Last.ToString();
break;
}
}
}
}
}
// Now with the JSON Parsed, we have to add some special message cases.
switch (type) {
case "multiplayer.player.joined":
message = name + " Joined the server";
break;
case "multiplayer.player.left":
message = name + " Left the server";
break;
case "death.attack.outOfWorld":
message = name + " fell out of the world!";
break;
case "death.attack.explosion.player":
message = name + " was blown up by " + message;
break;
case "death.attack.mob":
message = name + " was killed by a " + message;
break;
case "chat.type.text":
message = name + ": " + message;
commandHandler ch = new commandHandler(socket, mainform, name, message);
break;
case "chat":
commandHandler h = new commandHandler(socket, mainform, name, message);
break;
case "chat.type.emote":
message = "§d" + name + " " + message;
break;
case "chat.type.announcement":
message = "§d[" + name + "]:§f " + message;
break;
case "commands.tp.success":
message = name + " teleported to " + message;
break;
case "commands.op.success":
message = name + " was promoted to Op";
break;
default:
message = Message;
break;
}
if (color != "")
message = convertCode(message, color);
handleColors(message,style);
if (mainform.ircmode == 2 || mainform.ircmode == 3)
{
string[] args = message.Split(' ');
string username = args[0].Replace("<", "").Replace(">", "").Replace(":", "").Replace(" ", "");
username = func.strip_codes(username);
if (!(username == mainform.username && message.Contains("IRC: <")))
mainform.ircmessage(mainform.translate_colors(message));
}
}