aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/ClientConnection.h
diff options
context:
space:
mode:
authordaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
committerdaoge_cmd <3523206925@qq.com>2026-03-01 12:16:08 +0800
commitb691c43c44ff180d10e7d4a9afc83b98551ff586 (patch)
tree3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.Client/ClientConnection.h
parentdef8cb415354ac390b7e89052a50605285f1aca9 (diff)
Initial commit
Diffstat (limited to 'Minecraft.Client/ClientConnection.h')
-rw-r--r--Minecraft.Client/ClientConnection.h140
1 files changed, 140 insertions, 0 deletions
diff --git a/Minecraft.Client/ClientConnection.h b/Minecraft.Client/ClientConnection.h
new file mode 100644
index 00000000..2ce46ce0
--- /dev/null
+++ b/Minecraft.Client/ClientConnection.h
@@ -0,0 +1,140 @@
+#pragma once
+#include "..\Minecraft.World\net.minecraft.network.h"
+class Minecraft;
+class MultiPlayerLevel;
+class SavedDataStorage;
+class Socket;
+class MultiplayerLocalPlayer;
+
+class ClientConnection : public PacketListener
+{
+private:
+ enum eClientConnectionConnectingState
+ {
+ eCCPreLoginSent = 0,
+ eCCPreLoginReceived,
+ eCCLoginSent,
+ eCCLoginReceived,
+ eCCConnected
+ };
+private:
+ bool done;
+ Connection *connection;
+public:
+ wstring message;
+ bool createdOk; // 4J added
+private:
+ Minecraft *minecraft;
+ MultiPlayerLevel *level;
+ bool started;
+
+ // 4J Stu - I don't think we are interested in the PlayerInfo data, so I'm not going to use it at the moment
+ //Map<String, PlayerInfo> playerInfoMap = new HashMap<String, PlayerInfo>();
+public:
+ //List<PlayerInfo> playerInfos = new ArrayList<PlayerInfo>();
+
+ int maxPlayers;
+
+public:
+ bool isStarted() { return started; } // 4J Added
+ bool isClosed() { return done; } // 4J Added
+ Socket *getSocket() { return connection->getSocket(); } // 4J Added
+
+private:
+ DWORD m_userIndex; // 4J Added
+public:
+ SavedDataStorage *savedDataStorage;
+ ClientConnection(Minecraft *minecraft, const wstring& ip, int port);
+ ClientConnection(Minecraft *minecraft, Socket *socket, int iUserIndex = -1);
+ ~ClientConnection();
+ void tick();
+ INetworkPlayer *getNetworkPlayer();
+ virtual void handleLogin(shared_ptr<LoginPacket> packet);
+ virtual void handleAddEntity(shared_ptr<AddEntityPacket> packet);
+ virtual void handleAddExperienceOrb(shared_ptr<AddExperienceOrbPacket> packet);
+ virtual void handleAddGlobalEntity(shared_ptr<AddGlobalEntityPacket> packet);
+ virtual void handleAddPainting(shared_ptr<AddPaintingPacket> packet);
+ virtual void handleSetEntityMotion(shared_ptr<SetEntityMotionPacket> packet);
+ virtual void handleSetEntityData(shared_ptr<SetEntityDataPacket> packet);
+ virtual void handleAddPlayer(shared_ptr<AddPlayerPacket> packet);
+ virtual void handleTeleportEntity(shared_ptr<TeleportEntityPacket> packet);
+ virtual void handleMoveEntity(shared_ptr<MoveEntityPacket> packet);
+ virtual void handleRotateMob(shared_ptr<RotateHeadPacket> packet);
+ virtual void handleMoveEntitySmall(shared_ptr<MoveEntityPacketSmall> packet);
+ virtual void handleRemoveEntity(shared_ptr<RemoveEntitiesPacket> packet);
+ virtual void handleMovePlayer(shared_ptr<MovePlayerPacket> packet);
+
+ Random *random;
+
+ // 4J Added
+ virtual void handleChunkVisibilityArea(shared_ptr<ChunkVisibilityAreaPacket> packet);
+
+ virtual void handleChunkVisibility(shared_ptr<ChunkVisibilityPacket> packet);
+ virtual void handleChunkTilesUpdate(shared_ptr<ChunkTilesUpdatePacket> packet);
+ virtual void handleBlockRegionUpdate(shared_ptr<BlockRegionUpdatePacket> packet);
+ virtual void handleTileUpdate(shared_ptr<TileUpdatePacket> packet);
+ virtual void handleDisconnect(shared_ptr<DisconnectPacket> packet);
+ virtual void onDisconnect(DisconnectPacket::eDisconnectReason reason, void *reasonObjects);
+ void sendAndDisconnect(shared_ptr<Packet> packet);
+ void send(shared_ptr<Packet> packet);
+ virtual void handleTakeItemEntity(shared_ptr<TakeItemEntityPacket> packet);
+ virtual void handleChat(shared_ptr<ChatPacket> packet);
+ virtual void handleAnimate(shared_ptr<AnimatePacket> packet);
+ virtual void handleEntityActionAtPosition(shared_ptr<EntityActionAtPositionPacket> packet);
+ virtual void handlePreLogin(shared_ptr<PreLoginPacket> packet);
+ void close();
+ virtual void handleAddMob(shared_ptr<AddMobPacket> packet);
+ virtual void handleSetTime(shared_ptr<SetTimePacket> packet);
+ virtual void handleSetSpawn(shared_ptr<SetSpawnPositionPacket> packet);
+ virtual void handleRidePacket(shared_ptr<SetRidingPacket> packet);
+ virtual void handleEntityEvent(shared_ptr<EntityEventPacket> packet);
+private:
+ shared_ptr<Entity> getEntity(int entityId);
+ wstring GetDisplayNameByGamertag(wstring gamertag);
+public:
+ virtual void handleSetHealth(shared_ptr<SetHealthPacket> packet);
+ virtual void handleSetExperience(shared_ptr<SetExperiencePacket> packet);
+ virtual void handleRespawn(shared_ptr<RespawnPacket> packet);
+ virtual void handleExplosion(shared_ptr<ExplodePacket> packet);
+ virtual void handleContainerOpen(shared_ptr<ContainerOpenPacket> packet);
+ virtual void handleContainerSetSlot(shared_ptr<ContainerSetSlotPacket> packet);
+ virtual void handleContainerAck(shared_ptr<ContainerAckPacket> packet);
+ virtual void handleContainerContent(shared_ptr<ContainerSetContentPacket> packet);
+ virtual void handleSignUpdate(shared_ptr<SignUpdatePacket> packet);
+ virtual void handleTileEntityData(shared_ptr<TileEntityDataPacket> packet);
+ virtual void handleContainerSetData(shared_ptr<ContainerSetDataPacket> packet);
+ virtual void handleSetEquippedItem(shared_ptr<SetEquippedItemPacket> packet);
+ virtual void handleContainerClose(shared_ptr<ContainerClosePacket> packet);
+ virtual void handleTileEvent(shared_ptr<TileEventPacket> packet);
+ virtual void handleTileDestruction(shared_ptr<TileDestructionPacket> packet);
+ virtual bool canHandleAsyncPackets();
+ virtual void handleGameEvent(shared_ptr<GameEventPacket> gameEventPacket);
+ virtual void handleComplexItemData(shared_ptr<ComplexItemDataPacket> packet);
+ virtual void handleLevelEvent(shared_ptr<LevelEventPacket> packet);
+ virtual void handleAwardStat(shared_ptr<AwardStatPacket> packet);
+ virtual void handleUpdateMobEffect(shared_ptr<UpdateMobEffectPacket> packet);
+ virtual void handleRemoveMobEffect(shared_ptr<RemoveMobEffectPacket> packet);
+ virtual bool isServerPacketListener();
+ virtual void handlePlayerInfo(shared_ptr<PlayerInfoPacket> packet);
+ virtual void handleKeepAlive(shared_ptr<KeepAlivePacket> packet);
+ virtual void handlePlayerAbilities(shared_ptr<PlayerAbilitiesPacket> playerAbilitiesPacket);
+ virtual void handleSoundEvent(shared_ptr<LevelSoundPacket> packet);
+ virtual void handleCustomPayload(shared_ptr<CustomPayloadPacket> customPayloadPacket);
+ virtual Connection *getConnection();
+
+ // 4J Added
+ virtual void handleServerSettingsChanged(shared_ptr<ServerSettingsChangedPacket> packet);
+ virtual void handleTexture(shared_ptr<TexturePacket> packet);
+ virtual void handleTextureAndGeometry(shared_ptr<TextureAndGeometryPacket> packet);
+ virtual void handleUpdateProgress(shared_ptr<UpdateProgressPacket> packet);
+
+ // 4J Added
+ static int HostDisconnectReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
+ static int ExitGameAndSaveReturned(void *pParam,int iPad,C4JStorage::EMessageResult result);
+ virtual void handleTextureChange(shared_ptr<TextureChangePacket> packet);
+ virtual void handleTextureAndGeometryChange(shared_ptr<TextureAndGeometryChangePacket> packet);
+ virtual void handleUpdateGameRuleProgressPacket(shared_ptr<UpdateGameRuleProgressPacket> packet);
+ virtual void handleXZ(shared_ptr<XZPacket> packet);
+
+ void displayPrivilegeChanges(shared_ptr<MultiplayerLocalPlayer> player, unsigned int oldPrivileges);
+}; \ No newline at end of file