public MohPacketDispatcher(ILayerConnection connection) : base(connection) { this.RequestDelegates.Add("vars.clanTeams", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.noAmmoPickups", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.noCrosshairs", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.noSpotting", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.noUnlocks", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.realisticHealth", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.skillLimit", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.preRoundLimit", this.DispatchVarsRequest); this.RequestDelegates.Add("admin.stopPreRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("admin.roundStartTimerEnabled", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.tdmScoreCounterMaxScore", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundStartTimerPlayersLimit", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundStartTimerDelay", this.DispatchVarsRequest); this.RequestDelegates.Add("reservedSpectateSlots.configFile", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSpectateSlots.load", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSpectateSlots.save", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSpectateSlots.addPlayer", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSpectateSlots.removePlayer", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSpectateSlots.clear", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSpectateSlots.list", this.DispatchSecureSafeListedRequest); }
protected virtual void DispatchUseMapFunctionRequest(ILayerConnection sender, Packet request) { var handler = this.RequestPacketUseMapFunctionRecieved; if (handler != null) { handler(this, request); } }
protected virtual void DispatchAlterModlistRequest(ILayerConnection sender, Packet request) { var handler = this.RequestPacketAlterModlistRecieved; if (handler != null) { handler(this, request); } }
protected virtual void DispatchSecureSafeListedRequest(ILayerConnection sender, Packet request) { var handler = this.RequestPacketSecureSafeListedRecieved; if (handler != null) { handler(this, request); } }
protected virtual void DispatchAdminKillPlayerRequest(ILayerConnection sender, Packet request) { var handler = this.RequestPacketAdminPlayerKillRecieved; if (handler != null) { handler(this, request); } }
protected virtual void DispatchSquadIsPrivateRequest(ILayerConnection sender, Packet request) { var handler = this.RequestPacketSquadIsPrivateReceived; if (handler != null) { handler(this, request); } }
protected virtual void DispatchHelpRequest(ILayerConnection sender, Packet request) { var handler = this.RequestHelp; if (handler != null) { handler(this, request); } }
protected virtual void DispatchAdminShutDownRequest(ILayerConnection sender, Packet request) { var handler = this.RequestPacketAdminShutdown; if (handler != null) { handler(this, request); } }
private void Connection_PacketReceived(ILayerConnection sender, Packet packet) { if (packet.OriginatedFromServer == false && packet.IsResponse == false) { this.DispatchRequestPacket(sender, packet); } //else if (packet.OriginatedFromServer == true && packet.IsResponse == true) { // Response to an event we sent. We just accept these without processing them. Should always be "OK". //} }
private void Connection_ConnectionClosed(ILayerConnection sender) { var handler = this.ConnectionClosed; if (handler != null) { handler(this); } this.NullActions(); }
protected virtual void DispatchBanListAddRequest(ILayerConnection sender, Packet request) { if (request.Words.Count >= 4) { CBanInfo newBan = new CBanInfo(request.Words[1], request.Words[2], new TimeoutSubset(request.Words.GetRange(3, TimeoutSubset.RequiredLength(request.Words[3]))), request.Words.Count >= (4 + TimeoutSubset.RequiredLength(request.Words[3])) ? request.Words[(3 + TimeoutSubset.RequiredLength(request.Words[3]))] : ""); var handler = this.RequestBanListAddRecieved; if (handler != null) { handler(this, request, newBan); } } }
protected virtual void DispatchLoginPlainTextRequest(ILayerConnection sender, Packet request) { if (request.Words.Count >= 2) { var handler = this.RequestLoginPlainText; if (handler != null) { handler(this, request, request.Words[1]); } } else { this.SendResponse(request, "InvalidArguments"); } }
public Bfbc2PacketDispatcher(ILayerConnection connection) : base(connection) { this.RequestDelegates.Add("vars.killCam", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.miniMap", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.crossHair", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.3dSpotting", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.miniMapSpotting", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.thirdPersonVehicleCameras", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.teamBalance", this.DispatchVarsRequest); this.RequestDelegates.Add("reservedSlots.configFile", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlots.load", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlots.save", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlots.addPlayer", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlots.removePlayer", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlots.clear", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlots.list", this.DispatchSecureSafeListedRequest); }
public virtual void DispatchRequestPacket(ILayerConnection sender, Packet request) { if (request.Words.Count >= 1) { if (this.RequestDelegates.ContainsKey(request.Words[0]) == true) { this.RequestDelegates[request.Words[0]](sender, request); } else { var handler = this.RequestPacketUnknownRecieved; if (handler != null) { handler(this, request); } } } }
protected virtual void DispatchEventsEnabledRequest(ILayerConnection sender, Packet request) { if (this.RequestEventsEnabled != null) { bool blEnabled = true; if (request.Words.Count == 2 && bool.TryParse(request.Words[1], out blEnabled) == true) { var handler = this.RequestEventsEnabled; if (handler != null) { handler(this, request, blEnabled); } } else { this.SendResponse(request, "InvalidArguments"); } } }
protected virtual void DispatchLoginHashedRequest(ILayerConnection sender, Packet request) { if (request.Words.Count == 1) { var handler = this.RequestLoginHashed; if (handler != null) { handler(this, request); } } else if (request.Words.Count >= 2) { var handler = this.RequestLoginHashedPassword; if (handler != null) { handler(this, request, request.Words[1]); } } else { this.SendResponse(request, "InvalidArguments"); } }
protected virtual void DispatchVarsAdminPasswordRequest(ILayerConnection sender, Packet request) { this.SendResponse(request, "UnknownCommand"); }
protected virtual void DispatchAlterMaplistRequest(ILayerConnection sender, Packet request) { var handler = this.RequestPacketAlterMaplistRecieved; if (handler != null) { handler(this, request); } }
public MohwPacketDispatcher(ILayerConnection connection) : base(connection) { this.RequestDelegates.Add("admin.eventsEnabled", this.DispatchEventsEnabledRequest); #region FrostbiteLayerClient delegates // vars.bannerUrl -> FrostbiteLayerClient // vars.friendlyFire -> FrostbiteLayerClient // vars.gamePassword -> FrostbiteLayerClient // vars.idleTimeout -> FrostbiteLayerClient // vars.ranked -> FrostbiteLayerClient // vars.serverDescription // vars.serverName // vars.teamKill* #endregion #region MoHW R-3 disabled // MoHW R-3 this.m_requestDelegates.Add("reservedSlotsList.aggressiveJoin", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.3dSpotting", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.hud", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.miniMap", this.DispatchVarsRequest); // this.m_requestDelegates.Add("vars.miniMapSpotting", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.nameTag", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.onlySquadLeaderSpawn", this.DispatchVarsRequest); // this.m_requestDelegates.Add("vars.thirdPersonVehicleCameras", this.DispatchVarsRequest); // MOHW general this.m_requestDelegates.Add("vars.premiumStatus", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.roundLockdownCountdown", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.roundWarmupTimeout", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.unlockMode", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.vehicleSpawnAllowed", this.DispatchVarsRequest); // MoHW R-3 this.m_requestDelegates.Add("vars.vehicleSpawnDelay", this.DispatchVarsRequest); #endregion this.RequestDelegates.Add("vars.3pCam", this.DispatchVarsRequest); // R-5 this.m_requestDelegates.Add("vars.allUnlocksUnlocked", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.autoBalance", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.buddyOutline", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.bulletDamage", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.gameModeCounter", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.hudBuddyInfo", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudClassAbility", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudCrosshair", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudEnemyTag", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudExplosiveIcons", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudGameMode", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudHealthAmmo", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudMinimap", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudObiturary", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudPointsTracker", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.hudUnlocks", this.DispatchVarsRequest); // MoHW this.RequestDelegates.Add("vars.idleBanRounds", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.killCam", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.maxPlayers", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.playlist", this.DispatchAlterMaplistRequest); // MoHW this.RequestDelegates.Add("vars.playerManDownTime", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.playerRespawnTime", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.regenerateHealth", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundRestartPlayerCount", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundStartPlayerCount", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.soldierHealth", this.DispatchVarsRequest); this.RequestDelegates.Add("reservedSlotsList.configFile", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.load", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.save", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.add", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.remove", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.clear", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.list", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("currentLevel", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("mapList.add", this.DispatchAlterMaplistRequest); this.RequestDelegates.Add("mapList.runNextRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.restartRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.endRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.setNextMapIndex", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.getMapIndices", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("mapList.getRounds", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("vars.serverMessage", this.DispatchVarsRequest); }
public Bf3PacketDispatcher(ILayerConnection connection) : base(connection) { this.RequestDelegates.Add("admin.eventsEnabled", this.DispatchEventsEnabledRequest); // vars.idleTimeout is already included in FrostbiteLayerClient //this.m_requestDelegates.Add("vars.idleTimeout", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.idleBanRounds", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.maxPlayers", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.3pCam", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.vehicleSpawnAllowed", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.vehicleSpawnDelay", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.bulletDamage", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.nameTag", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.regenerateHealth", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundRestartPlayerCount", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.onlySquadLeaderSpawn", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.unlockMode", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.gunMasterWeaponsPreset", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.soldierHealth", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.hud", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.playerManDownTime", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundStartPlayerCount", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.playerRespawnTime", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.gameModeCounter", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.ctfRoundTimeModifier", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundLockdownCountdown", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundWarmupTimeout", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.killCam", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.miniMap", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.crossHair", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.3dSpotting", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.miniMapSpotting", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.thirdPersonVehicleCameras", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.autoBalance", this.DispatchVarsRequest); this.RequestDelegates.Add("reservedSlotsList.configFile", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.load", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.save", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.add", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.remove", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.clear", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.list", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("reservedSlotsList.aggressiveJoin", this.DispatchVarsRequest); this.RequestDelegates.Add("currentLevel", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("mapList.add", this.DispatchAlterMaplistRequest); this.RequestDelegates.Add("mapList.runNextRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.restartRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.endRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.setNextMapIndex", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.getMapIndices", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("mapList.getRounds", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("vars.serverMessage", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.premiumStatus", this.DispatchVarsRequest); this.RequestDelegates.Add("player.idleDuration", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("player.isAlive", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("player.ping", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("squad.leader", this.DispatchSquadLeaderRequest); this.RequestDelegates.Add("squad.listActive", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("squad.listPlayers", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("squad.private", this.DispatchSquadIsPrivateRequest); }
public LayerClient(ILayerInstance layer, ILayerConnection connection, PRoConApplication application, PRoConClient client) { if (layer == null) throw new ArgumentNullException("layer"); if (connection == null) throw new ArgumentNullException("connection"); if (application == null) throw new ArgumentNullException("application"); if (client == null) throw new ArgumentNullException("client"); this.Layer = layer; this.Application = application; this.Client = client; Privileges = new CPrivileges(); Username = String.Empty; // This is just a default value so we never accidently pass through an empty // String for authentication. We generate a better salt later on. this.Salt = DateTime.Now.ToString("HH:mm:ss ff"); this.IsLoggedIn = false; this.GzipCompression = false; this.ProconEventsUid = String.Empty; if (client.Game != null) { if (client.Game is BFBC2Client) { this.PacketDispatcher = new Bfbc2PacketDispatcher(connection); } else if (client.Game is MoHClient) { this.PacketDispatcher = new MohPacketDispatcher(connection); } else if (client.Game is BF3Client) { this.PacketDispatcher = new Bf3PacketDispatcher(connection); } else if (client.Game is BFHLClient) { this.PacketDispatcher = new BfhlPacketDispatcher(connection); } else if (client.Game is BF4Client) { this.PacketDispatcher = new Bf4PacketDispatcher(connection); } else if (client.Game is MOHWClient) { this.PacketDispatcher = new MohwPacketDispatcher(connection); } this.RequestDelegates = new Dictionary<String, Action<ILayerPacketDispatcher, Packet>>() { { "procon.application.shutdown", this.DispatchProconApplicationShutdownRequest }, { "procon.login.username", this.DispatchProconLoginUsernameRequest }, { "procon.registerUid", this.DispatchProconRegisterUidRequest }, { "procon.version", this.DispatchProconVersionRequest }, { "procon.vars", this.DispatchProconVarsRequest }, { "procon.privileges", this.DispatchProconPrivilegesRequest }, { "procon.compression", this.DispatchProconCompressionRequest }, { "procon.account.listAccounts", this.DispatchProconAccountListAccountsRequest }, { "procon.account.listLoggedIn", this.DispatchProconAccountListLoggedInRequest }, { "procon.account.create", this.DispatchProconAccountCreateRequest }, { "procon.account.delete", this.DispatchProconAccountDeleteRequest }, { "procon.account.setPassword", this.DispatchProconAccountSetPasswordRequest }, { "procon.battlemap.deleteZone", this.DispatchProconBattlemapDeleteZoneRequest }, { "procon.battlemap.createZone", this.DispatchProconBattlemapCreateZoneRequest }, { "procon.battlemap.modifyZoneTags", this.DispatchProconBattlemapModifyZoneTagsRequest }, { "procon.battlemap.modifyZonePoints", this.DispatchProconBattlemapModifyZonePointsRequest }, { "procon.battlemap.listZones", this.DispatchProconBattlemapListZonesRequest }, { "procon.layer.setPrivileges", this.DispatchProconLayerSetPrivilegesRequest }, { "procon.plugin.listLoaded", this.DispatchProconPluginListLoadedRequest }, { "procon.plugin.listEnabled", this.DispatchProconPluginListEnabledRequest }, { "procon.plugin.enable", this.DispatchProconPluginEnableRequest }, { "procon.plugin.setVariable", this.DispatchProconPluginSetVariableRequest }, { "procon.exec", this.DispatchProconExecRequest }, { "procon.admin.say", this.DispatchProconAdminSayRequest }, { "procon.admin.yell", this.DispatchProconAdminYellRequest } ,{ "procon.player.syncPlayTimes", this.DispatchProconPlayerSyncPlayTimesRequest } }; this.RegisterEvents(); } }
protected LayerPacketDispatcher(ILayerConnection connection) { this.Connection = connection; this.RequestDelegates = new Dictionary<String, Action<ILayerConnection, Packet>>() { { "login.plainText", this.DispatchLoginPlainTextRequest }, { "login.hashed", this.DispatchLoginHashedRequest }, { "logout", this.DispatchLogoutRequest }, { "quit", this.DispatchQuitRequest }, { "version", this.DispatchUnsecureSafeListedRequest }, { "eventsEnabled", this.DispatchEventsEnabledRequest }, { "help", this.DispatchHelpRequest }, { "admin.runScript", this.DispatchSecureSafeListedRequest }, { "punkBuster.pb_sv_command", this.DispatchPunkbusterRequest }, { "serverInfo", this.DispatchUnsecureSafeListedRequest }, { "admin.say", this.DispatchSecureSafeListedRequest }, { "admin.yell", this.DispatchSecureSafeListedRequest }, { "admin.runNextLevel", this.DispatchUseMapFunctionRequest }, { "admin.currentLevel", this.DispatchSecureSafeListedRequest }, { "admin.restartMap", this.DispatchUseMapFunctionRequest }, { "admin.supportedMaps", this.DispatchSecureSafeListedRequest }, { "admin.setPlaylist", this.DispatchAlterMaplistRequest }, { "admin.getPlaylist", this.DispatchSecureSafeListedRequest }, { "admin.getPlaylists", this.DispatchSecureSafeListedRequest }, { "admin.listPlayers", this.DispatchSecureSafeListedRequest }, { "listPlayers", this.DispatchSecureSafeListedRequest }, { "admin.endRound", this.DispatchUseMapFunctionRequest }, { "admin.runNextRound", this.DispatchUseMapFunctionRequest }, { "admin.restartRound", this.DispatchUseMapFunctionRequest }, { "banList.add", this.DispatchBanListAddRequest }, { "banList.remove", this.DispatchAlterBanListRequest }, { "banList.clear", this.DispatchAlterBanListRequest }, { "banList.save", this.DispatchAlterBanListRequest }, { "banList.load", this.DispatchAlterBanListRequest }, { "banList.list", this.DispatchSecureSafeListedRequest }, { "textChatModerationList.addPlayer", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.removePlayer", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.clear", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.save", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.load", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.list", this.DispatchSecureSafeListedRequest }, #region Maplist { "mapList.configFile", this.DispatchAlterMaplistRequest }, { "mapList.load", this.DispatchAlterMaplistRequest }, { "mapList.save", this.DispatchAlterMaplistRequest }, { "mapList.list", this.DispatchSecureSafeListedRequest }, { "mapList.clear", this.DispatchAlterMaplistRequest }, { "mapList.append", this.DispatchAlterMaplistRequest }, { "mapList.nextLevelIndex", this.DispatchUseMapFunctionRequest }, { "mapList.remove", this.DispatchAlterMaplistRequest }, { "mapList.insert", this.DispatchAlterMaplistRequest }, #endregion #region Configuration { "vars.adminPassword", this.DispatchVarsAdminPasswordRequest }, { "vars.gamePassword", this.DispatchVarsRequest }, { "vars.punkBuster", this.DispatchVarsRequest }, { "vars.ranked", this.DispatchVarsRequest }, { "vars.rankLimit", this.DispatchVarsRequest }, { "vars.profanityFilter", this.DispatchVarsRequest }, { "vars.idleTimeout", this.DispatchVarsRequest }, { "vars.playerLimit", this.DispatchVarsRequest }, { "vars.currentPlayerLimit", this.DispatchVarsRequest }, { "vars.maxPlayerLimit", this.DispatchVarsRequest }, { "vars.teamFactionOverride", this.DispatchVarsRequest }, #endregion #region Details { "vars.serverName", this.DispatchVarsRequest }, { "vars.bannerUrl", this.DispatchVarsRequest }, { "vars.serverDescription", this.DispatchVarsRequest }, #endregion #region Gameplay { "vars.hardCore", this.DispatchVarsRequest }, { "vars.friendlyFire", this.DispatchVarsRequest }, #endregion #region Team Killing { "vars.teamKillCountForKick", this.DispatchVarsRequest }, { "vars.teamKillKickForBan", this.DispatchVarsRequest }, { "vars.teamKillValueForKick", this.DispatchVarsRequest }, { "vars.teamKillValueIncrease", this.DispatchVarsRequest }, { "vars.teamKillValueDecreasePerSecond", this.DispatchVarsRequest }, #endregion #region Text Chat Moderation { "vars.textChatModerationMode", this.DispatchVarsRequest }, { "vars.textChatSpamTriggerCount", this.DispatchVarsRequest }, { "vars.textChatSpamDetectionTime", this.DispatchVarsRequest }, { "vars.textChatSpamCoolDownTime", this.DispatchVarsRequest }, #endregion #region Level Variables { "levelVars.set", this.DispatchVarsRequest }, { "levelVars.get", this.DispatchVarsRequest }, { "levelVars.evaluate", this.DispatchVarsRequest }, { "levelVars.clear", this.DispatchVarsRequest }, { "levelVars.list", this.DispatchSecureSafeListedRequest }, #endregion { "admin.kickPlayer", this.DispatchAdminKickPlayerRequest }, { "admin.killPlayer", this.DispatchAdminKillPlayerRequest }, { "admin.movePlayer", this.DispatchAdminMovePlayerRequest }, { "admin.shutDown", this.DispatchAdminShutDownRequest }, }; this.Connection.PacketReceived = Connection_PacketReceived; this.Connection.ConnectionClosed = Connection_ConnectionClosed; }
protected LayerPacketDispatcher(ILayerConnection connection) { this.Connection = connection; this.RequestDelegates = new Dictionary <String, Action <ILayerConnection, Packet> >() { { "login.plainText", this.DispatchLoginPlainTextRequest }, { "login.hashed", this.DispatchLoginHashedRequest }, { "logout", this.DispatchLogoutRequest }, { "quit", this.DispatchQuitRequest }, { "version", this.DispatchUnsecureSafeListedRequest }, { "eventsEnabled", this.DispatchEventsEnabledRequest }, { "help", this.DispatchHelpRequest }, { "admin.runScript", this.DispatchSecureSafeListedRequest }, { "punkBuster.pb_sv_command", this.DispatchPunkbusterRequest }, { "serverInfo", this.DispatchUnsecureSafeListedRequest }, { "admin.say", this.DispatchSecureSafeListedRequest }, { "admin.yell", this.DispatchSecureSafeListedRequest }, { "admin.runNextLevel", this.DispatchUseMapFunctionRequest }, { "admin.currentLevel", this.DispatchSecureSafeListedRequest }, { "admin.restartMap", this.DispatchUseMapFunctionRequest }, { "admin.supportedMaps", this.DispatchSecureSafeListedRequest }, { "admin.setPlaylist", this.DispatchAlterMaplistRequest }, { "admin.getPlaylist", this.DispatchSecureSafeListedRequest }, { "admin.getPlaylists", this.DispatchSecureSafeListedRequest }, { "admin.listPlayers", this.DispatchSecureSafeListedRequest }, { "listPlayers", this.DispatchSecureSafeListedRequest }, { "admin.endRound", this.DispatchUseMapFunctionRequest }, { "admin.runNextRound", this.DispatchUseMapFunctionRequest }, { "admin.restartRound", this.DispatchUseMapFunctionRequest }, { "banList.add", this.DispatchBanListAddRequest }, { "banList.remove", this.DispatchAlterBanListRequest }, { "banList.clear", this.DispatchAlterBanListRequest }, { "banList.save", this.DispatchAlterBanListRequest }, { "banList.load", this.DispatchAlterBanListRequest }, { "banList.list", this.DispatchSecureSafeListedRequest }, { "textChatModerationList.addPlayer", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.removePlayer", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.clear", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.save", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.load", this.DispatchAlterTextMonderationListRequest }, { "textChatModerationList.list", this.DispatchSecureSafeListedRequest }, #region Maplist { "mapList.configFile", this.DispatchAlterMaplistRequest }, { "mapList.load", this.DispatchAlterMaplistRequest }, { "mapList.save", this.DispatchAlterMaplistRequest }, { "mapList.list", this.DispatchSecureSafeListedRequest }, { "mapList.clear", this.DispatchAlterMaplistRequest }, { "mapList.append", this.DispatchAlterMaplistRequest }, { "mapList.nextLevelIndex", this.DispatchUseMapFunctionRequest }, { "mapList.remove", this.DispatchAlterMaplistRequest }, { "mapList.insert", this.DispatchAlterMaplistRequest }, #endregion #region Venice Unleashed { "modList.Add", this.DispatchAlterModlistRequest }, { "modList.AvailableMods", this.DispatchAlterModlistRequest }, { "modList.Clear", this.DispatchAlterModlistRequest }, { "modList.Debug", this.DispatchAlterModlistRequest }, { "modList.List", this.DispatchAlterModlistRequest }, { "modList.ReloadExtension", this.DispatchAlterModlistRequest }, { "modList.Remove", this.DispatchAlterModlistRequest }, { "modList.Save", this.DispatchAlterModlistRequest }, { "modList.UnloadExtensions", this.DispatchAlterModlistRequest }, #endregion #region Configuration { "vars.adminPassword", this.DispatchVarsAdminPasswordRequest }, { "vars.gamePassword", this.DispatchVarsRequest }, { "vars.punkBuster", this.DispatchVarsRequest }, { "vars.ranked", this.DispatchVarsRequest }, { "vars.rankLimit", this.DispatchVarsRequest }, { "vars.profanityFilter", this.DispatchVarsRequest }, { "vars.idleTimeout", this.DispatchVarsRequest }, { "vars.playerLimit", this.DispatchVarsRequest }, { "vars.currentPlayerLimit", this.DispatchVarsRequest }, { "vars.maxPlayerLimit", this.DispatchVarsRequest }, { "vars.teamFactionOverride", this.DispatchVarsRequest }, #endregion #region Details { "vars.serverName", this.DispatchVarsRequest }, { "vars.bannerUrl", this.DispatchVarsRequest }, { "vars.serverDescription", this.DispatchVarsRequest }, #endregion #region Gameplay { "vars.hardCore", this.DispatchVarsRequest }, { "vars.friendlyFire", this.DispatchVarsRequest }, #endregion #region Team Killing { "vars.teamKillCountForKick", this.DispatchVarsRequest }, { "vars.teamKillKickForBan", this.DispatchVarsRequest }, { "vars.teamKillValueForKick", this.DispatchVarsRequest }, { "vars.teamKillValueIncrease", this.DispatchVarsRequest }, { "vars.teamKillValueDecreasePerSecond", this.DispatchVarsRequest }, #endregion #region Text Chat Moderation { "vars.textChatModerationMode", this.DispatchVarsRequest }, { "vars.textChatSpamTriggerCount", this.DispatchVarsRequest }, { "vars.textChatSpamDetectionTime", this.DispatchVarsRequest }, { "vars.textChatSpamCoolDownTime", this.DispatchVarsRequest }, #endregion #region Level Variables { "levelVars.set", this.DispatchVarsRequest }, { "levelVars.get", this.DispatchVarsRequest }, { "levelVars.evaluate", this.DispatchVarsRequest }, { "levelVars.clear", this.DispatchVarsRequest }, { "levelVars.list", this.DispatchSecureSafeListedRequest }, #endregion { "admin.kickPlayer", this.DispatchAdminKickPlayerRequest }, { "admin.killPlayer", this.DispatchAdminKillPlayerRequest }, { "admin.movePlayer", this.DispatchAdminMovePlayerRequest }, { "admin.shutDown", this.DispatchAdminShutDownRequest }, }; this.Connection.PacketReceived = Connection_PacketReceived; this.Connection.ConnectionClosed = Connection_ConnectionClosed; }
public Bf4PacketDispatcher(ILayerConnection connection) : base(connection) { this.RequestDelegates.Add("admin.eventsEnabled", this.DispatchEventsEnabledRequest); // vars.idleTimeout is already included in FrostbiteLayerClient //this.m_requestDelegates.Add("vars.idleTimeout", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.idleBanRounds", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.maxPlayers", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.3pCam", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.vehicleSpawnAllowed", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.vehicleSpawnDelay", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.bulletDamage", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.nameTag", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.regenerateHealth", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundRestartPlayerCount", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.onlySquadLeaderSpawn", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.unlockMode", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.preset", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.gunMasterWeaponsPreset", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.soldierHealth", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.hud", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.playerManDownTime", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundStartPlayerCount", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.playerRespawnTime", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.gameModeCounter", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundLockdownCountdown", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundWarmupTimeout", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.killCam", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.miniMap", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.crossHair", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.3dSpotting", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.miniMapSpotting", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.thirdPersonVehicleCameras", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.autoBalance", this.DispatchVarsRequest); this.RequestDelegates.Add("reservedSlotsList.configFile", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.load", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.save", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.add", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.remove", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.clear", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("reservedSlotsList.list", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("reservedSlotsList.aggressiveJoin", this.DispatchVarsRequest); this.RequestDelegates.Add("spectatorList.load", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("spectatorList.save", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("spectatorList.add", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("spectatorList.remove", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("spectatorList.clear", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("spectatorList.list", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("gameAdmin.load", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("gameAdmin.save", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("gameAdmin.add", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("gameAdmin.remove", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("gameAdmin.clear", this.DispatchAlterReservedSlotsListRequest); this.RequestDelegates.Add("gameAdmin.list", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("currentLevel", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("mapList.add", this.DispatchAlterMaplistRequest); this.RequestDelegates.Add("mapList.runNextRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.restartRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.endRound", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.setNextMapIndex", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("mapList.getMapIndices", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("mapList.getRounds", this.DispatchUseMapFunctionRequest); this.RequestDelegates.Add("vars.serverMessage", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.premiumStatus", this.DispatchVarsRequest); this.RequestDelegates.Add("player.idleDuration", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("player.isAlive", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("player.ping", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("squad.leader", this.DispatchSquadLeaderRequest); this.RequestDelegates.Add("squad.listActive", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("squad.listPlayers", this.DispatchSecureSafeListedRequest); this.RequestDelegates.Add("squad.private", this.DispatchSquadIsPrivateRequest); this.RequestDelegates.Add("punkBuster.isActive", this.DispatchVarsRequest); this.RequestDelegates.Add("punkBuster.activate", this.DispatchVarsRequest); this.RequestDelegates.Add("punkBuster.deactivate", this.DispatchVarsRequest); this.RequestDelegates.Add("fairFight.isActive", this.DispatchVarsRequest); this.RequestDelegates.Add("fairFight.activate", this.DispatchVarsRequest); this.RequestDelegates.Add("fairfight.deactivate", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.maxSpectators", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.hitIndicatorsEnabled", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.commander", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.serverType", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.forceReloadWholeMags", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.alwaysAllowSpectators", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.roundTimeLimit", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.ticketBleedRate", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.mpExperience", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.team1FactionOverride", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.team2FactionOverride", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.team3FactionOverride", this.DispatchVarsRequest); this.RequestDelegates.Add("vars.team4FactionOverride", this.DispatchVarsRequest); }