C_Minebot.Packets.chatMessage.handle C# (CSharp) Method

handle() private method

private handle ( ) : void
return void
        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));
            }
        }