public Guid BeginHostGame(Guid gameid, Version gameVersion, string gamename, string gameIconUrl, string password, string actualgamename, Version sasVersion, bool specators) { var hgr = new HostGameRequest(gameid, gameVersion, gamename, actualgamename, gameIconUrl, password ?? "", sasVersion, specators); Log.InfoFormat("BeginHostGame {0}", hgr); var m = new Message(new Jid(AppConfig.Instance.GameServUsername, AppConfig.Instance.ServerPath, null), this.Xmpp.MyJID, MessageType.normal, "", "hostgame"); m.GenerateId(); m.AddChild(hgr); this.Xmpp.Send(m); return(hgr.RequestId); }
public Guid HostGame(HostGameRequest req, User u) { var bport = AppConfig.Instance.BroadcastPort; var game = new HostedGame(Ports.NextPort, req.GameGuid, req.GameVersion, req.GameName, req.Name, req.Password, u, req.Spectators, false, true, req.RequestId, bport, req.SasVersion); if (game.StartProcess(true)) { // Try to kill every other game this asshole started before this one. var others = GameListener.Games.Where(x => x.Username.Equals(u.UserName, StringComparison.InvariantCultureIgnoreCase)) .ToArray(); foreach (var g in others) { g.TryKillGame(); } return(game.Id); } return(Guid.Empty); }
private static void HandleToServer(string source, MessageReader packet) { var messageType = (MessageType)packet.Tag; Console.ForegroundColor = ConsoleColor.White; //Console.WriteLine($"{source,-15} Server received: {packet.Tag,-2} {messageType}"); try { var reader = packet.GetHazelReader(); var body = reader.PeekToEnd(); if (SaveMessages) { File.WriteAllBytes(Path.Combine(MessageFolder, $"send_{packet.Tag}_{allId++}.bin"), body); } switch (messageType) { case MessageType.HostGame: var host = HostGameRequest.Deserialize(reader); DumpToConsole(host); break; case MessageType.JoinGame: var join = JoinGameRequest.Deserialize(reader); DumpToConsole(join); break; case MessageType.GameData: var gamedata = GameData.Deserialize(reader); foreach (var item in gamedata) { HandleGameData(item, true); } //Directory.CreateDirectory("gamedata"); //File.WriteAllBytes(Path.Combine("gamedata", $"send_data_{gamedataId++}.bin"), body); break; case MessageType.GameDataTo: var gamedatato = GameDataTo.Deserialize(reader); foreach (var item in gamedatato) { HandleGameDataTo(item, true); } break; case MessageType.GetGameListV2: var gamelistrequest = GetGameListV2Request.Deserialize(reader); DumpToConsole(gamelistrequest); break; case MessageType.RemovePlayer: var removeplayer = RemovePlayerRequest.Deserialize(reader); DumpToConsole(removeplayer); break; default: Console.WriteLine($"Unhandled Message: {messageType} size: {body.Length}"); return; } if (reader.GetBytesLeft() > 0 && LogNotConsumed) { Console.WriteLine($"[{messageType}]{reader.GetBytesLeft()} bytes not cunsumed"); } } catch (Exception ex) { Console.WriteLine("Error handling ToServer: " + ex.Message); } }