public static void HandlePacketServerListPing(Client client, ServerListPingPacket packet) { // Received a ServerListPing, so send back Disconnect with the Reason string containing data (server description, number of users, number of slots), delimited by a § var clientCount = client.Server.GetAuthenticatedClients().Count(); client.Kick(String.Format("§1\0{0}\0{1}\0{2}\0{3}\0{4}", ProtocolVersion, MinecraftServerVersion, ChraftConfig.MOTD, clientCount, ChraftConfig.MaxPlayers)); }
public static void HandlePacketServerListPing(Client client, ServerListPingPacket packet) { // Received a ServerListPing, so send back Disconnect with the Reason string containing data (server description, number of users, number of slots), delimited by a § var clientCount = client.Server.GetAuthenticatedClients().Count(); //client.SendPacket(new DisconnectPacket() { Reason = String.Format("{0}§{1}§{2}", client.Owner.Server.ToString(), clientCount, Chraft.Properties.ChraftConfig.MaxPlayers) }); client.Kick(String.Format("{0}§{1}§{2}", client.Server, clientCount, ChraftConfig.MaxPlayers)); }
public static void ReadServerListPing(Client client, PacketReader reader) { ServerListPingPacket sl = new ServerListPingPacket(); sl.Read(reader); if (!reader.Failed) { Client.HandlePacketServerListPing(client, sl); } }
public static ServerPing DoPing(IPEndPoint endPoint) { var client = new TcpClient(); client.Connect(endPoint); var stream = new MinecraftStream(client.GetStream()); var ping = new ServerListPingPacket(1); ping.WritePacket(stream); var response = PacketReader.ReadPacket(stream); client.Close(); // TODO: Handle old pings var pong = (DisconnectPacket)response; var parts = pong.Reason.Substring(3).Split('\0'); var result = new ServerPing(); result.ProtocolVersion = int.Parse(parts[0]); result.ServerVersion = parts[1]; result.MotD = parts[2]; result.CurrentPlayers = int.Parse(parts[3]); result.MaxPlayers = int.Parse(parts[4]); return result; }
public static ServerPing DoPing(IPEndPoint endPoint) { var client = new TcpClient(); client.Connect(endPoint); var stream = new MinecraftStream(client.GetStream()); var ping = new ServerListPingPacket(1); ping.WritePacket(stream); var response = PacketReader.ReadPacket(stream); client.Close(); // TODO: Handle old pings var pong = (DisconnectPacket)response; var parts = pong.Reason.Substring(3).Split('\0'); var result = new ServerPing(); result.ProtocolVersion = int.Parse(parts[0]); result.ServerVersion = parts[1]; result.MotD = parts[2]; result.CurrentPlayers = int.Parse(parts[3]); result.MaxPlayers = int.Parse(parts[4]); return(result); }