// KICK 8530196 0 -1 -1 -1 :You can't fly so frequently. One flight per 10 seconds is allowed. void ParseKick(GalaCommand command) { /*var senderId = command.Parameters[1].ToInt(); * var s = command.Postfix; * var i = s.IndexOf(' '); * s = s.Substring(i+1); * AddMessage(senderId, s);*/ }
// ACTION 8530196 8807955 :БАОБАБ gives autofocused a massage void ParseAction(GalaCommand command) { var senderId = command.Parameters[1].ToInt(); var s = command.Postfix; var i = s.IndexOf(' '); s = s.Substring(i + 1); AddMessage(senderId, s); }
//852 2402 :Set cannon up void Parse852(GalaCommand command) { MenuActions.AddItem(command.Postfix, command.Parameters[0]); }
void OnMessageReceivedInternal(string message) { message = message.Trim(); if (message == "") { return; } //log("<< '" + message + "'"); Log.Galaxy("<< " + message); GalaCommand c = new GalaCommand(message.Trim()); /*print("prefix: "+c.Prefix); * print("name: "+c.Name); * print("params: "+c.Parameters); * print("postfix: "+c.Postfix);*/ switch (c.Name) { case "HAAAPSI": // приветствие var code = c.Parameters[0]; authCode = SessionCodeGenerator.Generate(code); cmdIdent(); ReadPrefs(); if (!userPass.IsNullOrWhiteSpace()) { cmdUser(); } else { cmdRecover(); } break; case "REGISTER": // добро на вход userId = c.Parameters[0].Trim().ToInt(); userPass = c.Parameters[1].Trim(); userName = c.Parameters[2].Trim(); cmdUser(); planet.myUserId = userId; WriteUserPrefs(); break; case "999": // auth OK cmdAddons(); //PlayerPrefs.GetString("planetName", null); string s = null; //"pi100let"; var custom = ChatSettings.Me.CustomPlanetName; if (!custom.IsNullOrWhiteSpace()) { s = custom; } cmdJoin(s); break; case "PING": cmdPong(); break; case "353": // список юзеров. может быть несколько таких команд if (isWait353) { planet.Reset(); isWait353 = false; } planet.JoinUsers(c.Postfix); planet.SetName(c.Parameters[2]); break; case "366": isWait353 = true; OnEnterChannel(); break; case "860": // авторитет юзера / 860 8530196 161 1;aura/0_1;0;0;33 planet.ParseAuthority(c.Parameters); break; case "JOIN": // вход перса planet.JoinUser(c.Parameters); break; case "PART": // выход перса planet.PartUser(c.Parameters); break; case "451": // ошибки // входили с другого устройства, нужно войти по рековери cmdRecover(); break; case "452": case "432": case "433": case "601": case "403": MessageBox.Show("System Notice", c.Postfix); Disconnect(); break; case "471": // планета переполнена var msg = c.Postfix; if (!joinPlanetName.IsNullOrWhiteSpace()) { msg += " (" + joinPlanetName + ")"; // на спец. кнопку вешаем собитие повторного джоина Action onClick = () => { cmdJoin(joinPlanetName); MessageBox.Dismiss(); }; MessageBox.EnableSpecialButton("Try Again", onClick); } MessageBox.Show("System Notice", msg); //Disconnect(); break; case "473": MessageBox.Show("Fly", "Can't fly to closed planet!"); //Disconnect(); break; case "900": // инфа о планете planet.SetName(c.Parameters[0]); break; case "PRIVMSG": // инфа о планете AddMessage(c.Parameters[0].ToInt(), c.Postfix); break; case "332": // топик AddMessage(-1, "Subject: " + c.Postfix); break; case "ACTION": ParseAction(c); break; case "KICK": ParseKick(c); break; case "852": if (isWait852) { Reset852(); isWait852 = false; } Parse852(c); break; case "853": isWait852 = true; Prepare852(); break; default: break; } }