Exemplo n.º 1
0
        // parses a LobbyInit packet
        private void ParseLobbyInit(Packet p)
        {
            if (ServerState == ServerState.Game)
            {
                Packet pOut = new Packet((int)PacketHeader.LobbyKick, "Game has already started");
                server.SendData(pOut, p.Sender);
            }

            // Create a new player
            int    i            = 0;
            string userName     = (string)p.Items[i++];
            string userPassword = (string)p.Items[i++];

            if (BannedAddresses.Contains(p.Sender.Address.Split(':')[0]))
            {
                Packet pOut = new Packet((int)PacketHeader.LobbyKick, "Your are banned");
                server.SendData(pOut, p.Sender);
                return;
            }
            if (userPassword != ServerPassword)
            {
                Packet pOut = new Packet((int)PacketHeader.LobbyKick, "Incorrect password");
                server.SendData(pOut, p.Sender);
                return;
            }

            controllers.Player.AddPlayer(p.Sender, userName);

            // Sync lobby state
            SendLobbyStateToAll();
        }
Exemplo n.º 2
0
        public static void BanIP(IPAddress addr, float seconds)
        {
            RCon.bannedAddresses.RemoveAll((BannedAddresses x) => x.addr == addr);
            BannedAddresses bannedAddresses = default(BannedAddresses);

            bannedAddresses.addr    = addr;
            bannedAddresses.banTime = UnityEngine.Time.realtimeSinceStartup + seconds;
        }
        public void BanPlayer(ulong networkId, int minutes)
        {
            NetworkingPlayer player = Players.FirstOrDefault(p => p.NetworkId == networkId);

            if (player == null)
            {
                return;
            }

            BannedAddresses.Add(player.Ip);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Bans the player with the given id
        /// </summary>
        /// <param name="playerID"></param>
        public void BanPlayer(int playerID)
        {
            Player player = controllers.Player.GetPlayer(playerID);

            if (player == null)
            {
                return;
            }
            string bannedAddress = player.Connection.Address.Split(':')[0];

            BannedAddresses.Add(bannedAddress);
            controllers.Player.RemovePlayer(playerID);
            Packet pOut = new Packet((int)PacketHeader.LobbyBan, "Host banned you");

            server.SendData(pOut, player.Connection);
            player.Connection.Close(1000);
            ConsoleManager.Instance.WriteLine($"Banned {bannedAddress}", MsgType.ServerInfo);
        }