Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        protected virtual void DispatchUseMapFunctionRequest(ILayerConnection sender, Packet request)
        {
            var handler = this.RequestPacketUseMapFunctionRecieved;

            if (handler != null)
            {
                handler(this, request);
            }
        }
Пример #4
0
        protected virtual void DispatchAlterModlistRequest(ILayerConnection sender, Packet request)
        {
            var handler = this.RequestPacketAlterModlistRecieved;

            if (handler != null)
            {
                handler(this, request);
            }
        }
Пример #5
0
        protected virtual void DispatchSecureSafeListedRequest(ILayerConnection sender, Packet request)
        {
            var handler = this.RequestPacketSecureSafeListedRecieved;

            if (handler != null)
            {
                handler(this, request);
            }
        }
Пример #6
0
        protected virtual void DispatchAdminKillPlayerRequest(ILayerConnection sender, Packet request)
        {
            var handler = this.RequestPacketAdminPlayerKillRecieved;

            if (handler != null)
            {
                handler(this, request);
            }
        }
Пример #7
0
        protected virtual void DispatchSquadIsPrivateRequest(ILayerConnection sender, Packet request)
        {
            var handler = this.RequestPacketSquadIsPrivateReceived;

            if (handler != null)
            {
                handler(this, request);
            }
        }
Пример #8
0
        protected virtual void DispatchHelpRequest(ILayerConnection sender, Packet request)
        {
            var handler = this.RequestHelp;

            if (handler != null)
            {
                handler(this, request);
            }
        }
Пример #9
0
        protected virtual void DispatchAdminShutDownRequest(ILayerConnection sender, Packet request)
        {
            var handler = this.RequestPacketAdminShutdown;

            if (handler != null)
            {
                handler(this, request);
            }
        }
Пример #10
0
 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".
     //}
 }
Пример #11
0
        private void Connection_ConnectionClosed(ILayerConnection sender)
        {
            var handler = this.ConnectionClosed;

            if (handler != null)
            {
                handler(this);
            }

            this.NullActions();
        }
Пример #12
0
        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);
                }
            }
        }
Пример #13
0
 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");
     }
 }
Пример #14
0
        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);
        }
Пример #15
0
        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);
        }
Пример #16
0
 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);
             }
         }
     }
 }
Пример #17
0
        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");
                }
            }
        }
Пример #18
0
        private void Connection_ConnectionClosed(ILayerConnection sender) {
            var handler = this.ConnectionClosed;
            if (handler != null) {
                handler(this);
            }

            this.NullActions();
        }
Пример #19
0
 protected virtual void DispatchAdminKillPlayerRequest(ILayerConnection sender, Packet request) {
     var handler = this.RequestPacketAdminPlayerKillRecieved;
     if (handler != null) {
         handler(this, request);
     }
 }
Пример #20
0
 protected virtual void DispatchSquadIsPrivateRequest(ILayerConnection sender, Packet request) {
     var handler = this.RequestPacketSquadIsPrivateReceived;
     if (handler != null) {
         handler(this, request);
     }
 }
Пример #21
0
 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");
     }
 }
Пример #22
0
 protected virtual void DispatchVarsAdminPasswordRequest(ILayerConnection sender, Packet request)
 {
     this.SendResponse(request, "UnknownCommand");
 }
Пример #23
0
 protected virtual void DispatchAdminShutDownRequest(ILayerConnection sender, Packet request) {
     var handler = this.RequestPacketAdminShutdown;
     if (handler != null) {
         handler(this, request);
     }
 }
Пример #24
0
 protected virtual void DispatchVarsAdminPasswordRequest(ILayerConnection sender, Packet request) {
     this.SendResponse(request, "UnknownCommand");
 }
Пример #25
0
 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".  
     //}
 }
Пример #26
0
 protected virtual void DispatchAlterMaplistRequest(ILayerConnection sender, Packet request) {
     var handler = this.RequestPacketAlterMaplistRecieved;
     if (handler != null) {
         handler(this, request);
     }
 }
Пример #27
0
        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);
        }
Пример #28
0
        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);
        }
Пример #29
0
        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();
            }
        }
Пример #30
0
        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);
                }
            }
        }
Пример #31
0
        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);
        }
Пример #32
0
        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;
        }
Пример #33
0
 protected virtual void DispatchSecureSafeListedRequest(ILayerConnection sender, Packet request) {
     var handler = this.RequestPacketSecureSafeListedRecieved;
     if (handler != null) {
         handler(this, request);
     }
 }
Пример #34
0
        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");
                }
            }
        }
Пример #35
0
        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;
        }
Пример #36
0
        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);
        }
Пример #37
0
 protected virtual void DispatchHelpRequest(ILayerConnection sender, Packet request) {
     var handler = this.RequestHelp;
     if (handler != null) {
         handler(this, request);
     }
 }
Пример #38
0
 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);
             }
         }
     }
 }