// 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(); }
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); }
/// <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); }