public Rcon()
{
PacketHandlers = new Dictionary<PacketType,Dictionary<Opcode,Action<Packet>>>();
PacketHandlers[PacketType.Server] = new Dictionary<Opcode,Action<Packet>>();
PacketHandlers[PacketType.ResponseValue] = new Dictionary<Opcode,Action<Packet>>();
PacketHandlers[PacketType.AuthResponse] = new Dictionary<Opcode,Action<Packet>>();
PacketHandlers[PacketType.Server][Opcode.ServerResponse] = OnConsoleLogUpdated;
PacketHandlers[PacketType.ResponseValue][Opcode.Generic] = OnConsoleLogUpdated;
PacketHandlers[PacketType.ResponseValue][Opcode.GetPlayers] = OnGetPlayers;
PacketHandlers[PacketType.ResponseValue][Opcode.ChatMessage] = OnGetChatMessage;
PacketHandlers[PacketType.ResponseValue][Opcode.KickPlayer] = OnKickPlayer;
PacketHandlers[PacketType.ResponseValue][Opcode.Whitelist] = OnWhitelistPlayer;
PacketHandlers[PacketType.ResponseValue][Opcode.UnWhitelist] = OnUnWhitelistPlayer;
PacketHandlers[PacketType.ResponseValue][Opcode.BanPlayer] = OnBanPlayer;
PacketHandlers[PacketType.ResponseValue][Opcode.ScheduledTask] = OnScheduledTask;
PacketHandlers[PacketType.ResponseValue][Opcode.Keepalive] = (p) => Console.WriteLine("Keepalive");
PacketHandlers[PacketType.AuthResponse][Opcode.Auth] = OnServerAuthSuccess;
PacketHandlers[PacketType.AuthResponse][Opcode.AuthFailed] = OnServerAuthFail;
}