#pragma once using namespace std; class Packet; class AddEntityPacket; class AddGlobalEntityPacket; class AddMobPacket; class AddPaintingPacket; class AddPlayerPacket; class AnimatePacket; class AwardStatPacket; class BlockRegionUpdatePacket; class ChatPacket; class ChunkTilesUpdatePacket; class ChunkVisibilityPacket; class ComplexItemDataPacket; class ContainerAckPacket; class ContainerClickPacket; class ContainerClosePacket; class ContainerOpenPacket; class ContainerSetContentPacket; class ContainerSetDataPacket; class ContainerSetSlotPacket; #include "DisconnectPacket.h" class EntityActionAtPositionPacket; class EntityEventPacket; class ExplodePacket; class GameEventPacket; class InteractPacket; class KeepAlivePacket; class LevelEventPacket; class LoginPacket; class MoveEntityPacket; class MoveEntityPacketSmall; class MovePlayerPacket; class PlayerActionPacket; class PlayerCommandPacket; class PlayerInputPacket; class PreLoginPacket; class RemoveEntitiesPacket; class RespawnPacket; class SetCarriedItemPacket; class SetEntityDataPacket; class SetEntityMotionPacket; class SetEquippedItemPacket; class SetHealthPacket; class SetRidingPacket; class SetSpawnPositionPacket; class SetTimePacket; class SignUpdatePacket; class TakeItemEntityPacket; class TeleportEntityPacket; class TileEventPacket; class TileUpdatePacket; class UseItemPacket; // 1.8.2 class GetInfoPacket; class UpdateMobEffectPacket; class RemoveMobEffectPacket; class PlayerInfoPacket; class SetExperiencePacket; class SetCreativeModeSlotPacket; class AddExperienceOrbPacket; // 1.0.1 class ContainerButtonClickPacket; class TileEntityDataPacket; // 1.1 class CustomPayloadPacket; // 1.2.3 class RotateHeadPacket; // 1.3.2 class ClientProtocolPacket; class ServerAuthDataPacket; class SharedKeyPacket; class PlayerAbilitiesPacket; class ChatAutoCompletePacket; class ClientInformationPacket; class LevelSoundPacket; class TileDestructionPacket; class ClientCommandPacket; class LevelChunksPacket; // 4J Added class CraftItemPacket; class TradeItemPacket; class DebugOptionsPacket; class ServerSettingsChangedPacket; class TexturePacket; class TextureAndGeometryPacket; class ChunkVisibilityAreaPacket; class UpdateProgressPacket; class TextureChangePacket; class TextureAndGeometryChangePacket; class UpdateGameRuleProgressPacket; class KickPlayerPacket; class AdditionalModelPartsPacket; class XZPacket; class GameCommandPacket; class PacketListener { public: virtual bool isServerPacketListener() = 0; virtual void handleBlockRegionUpdate(shared_ptr packet); virtual void onUnhandledPacket(shared_ptr packet); virtual void onDisconnect(DisconnectPacket::eDisconnectReason reason, void *reasonObjects); virtual void handleDisconnect(shared_ptr packet); virtual void handleLogin(shared_ptr packet); virtual void handleMovePlayer(shared_ptr packet); virtual void handleChunkTilesUpdate(shared_ptr packet); virtual void handlePlayerAction(shared_ptr packet); virtual void handleTileUpdate(shared_ptr packet); virtual void handleChunkVisibility(shared_ptr packet); virtual void handleAddPlayer(shared_ptr packet); virtual void handleMoveEntity(shared_ptr packet); virtual void handleMoveEntitySmall(shared_ptr packet); virtual void handleTeleportEntity(shared_ptr packet); virtual void handleUseItem(shared_ptr packet); virtual void handleSetCarriedItem(shared_ptr packet); virtual void handleRemoveEntity(shared_ptr packet); virtual void handleTakeItemEntity(shared_ptr packet); virtual void handleChat(shared_ptr packet); virtual void handleAddEntity(shared_ptr packet); virtual void handleAnimate(shared_ptr packet); virtual void handlePlayerCommand(shared_ptr packet); virtual void handlePreLogin(shared_ptr packet); virtual void handleAddMob(shared_ptr packet); virtual void handleSetTime(shared_ptr packet); virtual void handleSetSpawn(shared_ptr packet); virtual void handleSetEntityMotion(shared_ptr packet); virtual void handleSetEntityData(shared_ptr packet); virtual void handleRidePacket(shared_ptr packet); virtual void handleInteract(shared_ptr packet); virtual void handleEntityEvent(shared_ptr packet); virtual void handleSetHealth(shared_ptr packet); virtual void handleRespawn(shared_ptr packet); virtual void handleExplosion(shared_ptr packet); virtual void handleContainerOpen(shared_ptr packet); virtual void handleContainerClose(shared_ptr packet); virtual void handleContainerClick(shared_ptr packet); virtual void handleContainerSetSlot(shared_ptr packet); virtual void handleContainerContent(shared_ptr packet); virtual void handleSignUpdate(shared_ptr packet); virtual void handleContainerSetData(shared_ptr packet); virtual void handleSetEquippedItem(shared_ptr packet); virtual void handleContainerAck(shared_ptr packet); virtual void handleAddPainting(shared_ptr packet); virtual void handleTileEvent(shared_ptr packet); virtual void handleAwardStat(shared_ptr packet); virtual void handleEntityActionAtPosition(shared_ptr packet); virtual void handlePlayerInput(shared_ptr packet); virtual void handleGameEvent(shared_ptr packet); virtual void handleAddGlobalEntity(shared_ptr packet); virtual void handleComplexItemData(shared_ptr packet); virtual void handleLevelEvent(shared_ptr packet); // 1.8.2 virtual void handleGetInfo(shared_ptr packet); virtual void handleUpdateMobEffect(shared_ptr packet); virtual void handleRemoveMobEffect(shared_ptr packet); virtual void handlePlayerInfo(shared_ptr packet); virtual void handleKeepAlive(shared_ptr packet); virtual void handleSetExperience(shared_ptr packet); virtual void handleSetCreativeModeSlot(shared_ptr packet); virtual void handleAddExperienceOrb(shared_ptr packet); // 1.0.1 virtual void handleContainerButtonClick(shared_ptr packet); virtual void handleTileEntityData(shared_ptr tileEntityDataPacket); // 1.1s virtual void handleCustomPayload(shared_ptr customPayloadPacket); // 1.2.3 virtual void handleRotateMob(shared_ptr rotateMobPacket); // 1.3.2 virtual void handleClientProtocolPacket(shared_ptr packet); virtual void handleServerAuthData(shared_ptr packet); //virtual void handleSharedKey(shared_ptr packet); virtual void handlePlayerAbilities(shared_ptr playerAbilitiesPacket); virtual void handleChatAutoComplete(shared_ptr packet); virtual void handleClientInformation(shared_ptr packet); virtual void handleSoundEvent(shared_ptr packet); virtual void handleTileDestruction(shared_ptr packet); virtual void handleClientCommand(shared_ptr packet); //virtual void handleLevelChunks(shared_ptr packet); virtual bool canHandleAsyncPackets(); // 4J Added virtual void handleCraftItem(shared_ptr packet); virtual void handleTradeItem(shared_ptr packet); virtual void handleDebugOptions(shared_ptr packet); virtual void handleServerSettingsChanged(shared_ptr packet); virtual void handleTexture(shared_ptr packet); virtual void handleTextureAndGeometry(shared_ptr packet); virtual void handleChunkVisibilityArea(shared_ptr packet); virtual void handleUpdateProgress(shared_ptr packet); virtual void handleTextureChange(shared_ptr packet); virtual void handleTextureAndGeometryChange(shared_ptr packet); virtual void handleUpdateGameRuleProgressPacket(shared_ptr packet); virtual void handleKickPlayer(shared_ptr packet); virtual void handleXZ(shared_ptr packet); virtual void handleGameCommand(shared_ptr packet); };