private static void ServerPacketsProcessor(AuthenticationServer ui) { //TODO: make it work for multiple servers, we need a list holding fragments for different servers and logic to manage it. Fragmentation fragment = new Fragmentation(8192); while (_continueServerProcessing) { PacketContainer cont; if (_queuedServerPackets.TryDequeue(out cont)) { PacketsProcessor dataProcessor = new PacketsProcessor(); dataProcessor.ExtractPackets(cont, ref fragment); foreach (PacketContent p in cont.extractedPackets) { GameServer.Received(ui, p, GetServerByIndex(cont.serverID)); } } else { Thread.Sleep(5); } } }
public AccountsManager(AuthenticationServer form) { this.form = form; }
public void SetUI(AuthenticationServer ui) { this.ui = ui; }
public static void Received(AuthenticationServer form, PacketContent pc, ServerDetails serverDetails) { _form = form; GameRecvPackets msgType = (GameRecvPackets)pc.GetMsgType(); switch (msgType) { case GameRecvPackets.RegisterServer: RegisterServer(pc, serverDetails); break; case GameRecvPackets.UpdatePlayer: PreSavePlayer(pc); break; case GameRecvPackets.PlayerAcknowledged: CheckAdmission(pc); break; case GameRecvPackets.BeginPlayerUpdate: updatingPlayers = true; break; case GameRecvPackets.FinishPlayerUpdate: if (updatedPlayerList.Length == 0) return; updatedPlayerList = updatedPlayerList.Remove(updatedPlayerList.Length - 2, 2); appendLog("Saved accounts & banks for:\n" + updatedPlayerList); updatingPlayers = false; updatedPlayerList = ""; SendServer_SaveConfirmation(serverDetails); break; default: break; } }