From bb8b7cf202851b3dc44e58ebdea9f5dcc7de2c82 Mon Sep 17 00:00:00 2001 From: TimofeyLednev Date: Fri, 21 Aug 2026 23:21:21 +0500 Subject: [PATCH 1/3] Crossplay m8 and java 1.8.x --- .../headers/ExternalServer.hpp | 5 + .../headers/ExternalServerFile.hpp | 2 + .../gui/screens/AddExternalServerScreen.hpp | 7 + .../gui/screens/EditExternalServerScreen.hpp | 4 + .../headers/java/JavaBridge.hpp | 49 + .../headers/java/JavaByteBuf.hpp | 66 + .../headers/java/JavaChunkData.hpp | 38 + .../headers/java/JavaChunkSource.hpp | 67 + .../headers/java/JavaIdMap.hpp | 43 + .../headers/java/JavaLog.hpp | 16 + .../headers/java/JavaSession.hpp | 282 ++ .../headers/java/JavaSocket.hpp | 57 + .../headers/java/JavaY.hpp | 46 + .../headers/level/LevelHeight.hpp | 74 + .../headers/level/chunk/LevelChunk.hpp | 17 +- .../impl/ExternalServer.cpp | 14 +- .../impl/ExternalServerFile.cpp | 20 +- modifiedeight-newadditions/impl/Minecraft.cpp | 14 +- .../impl/entity/LocalPlayer.cpp | 36 +- .../impl/entity/Painting.cpp | 14 +- .../impl/entity/Player.cpp | 3 +- .../impl/entity/player/gamemode/GameMode.cpp | 4 +- .../elements/LocalServerListItemElement.cpp | 13 + .../gui/screens/AddExternalServerScreen.cpp | 40 +- .../impl/gui/screens/ChatScreen.cpp | 11 +- .../gui/screens/EditExternalServerScreen.cpp | 35 +- .../impl/item/ItemInstance.cpp | 12 + .../impl/item/WaterLilyTileItem.cpp | 3 +- .../impl/java/JavaBridge.cpp | 104 + .../impl/java/JavaByteBuf.cpp | 265 ++ .../impl/java/JavaChunkData.cpp | 191 ++ .../impl/java/JavaChunkSource.cpp | 216 ++ .../impl/java/JavaIdMap.cpp | 662 +++++ .../impl/java/JavaSession.cpp | 2602 +++++++++++++++++ .../impl/java/JavaSessionOut.cpp | 414 +++ .../impl/java/JavaSocket.cpp | 419 +++ .../impl/level/Level.cpp | 33 +- .../impl/level/LevelHeight.cpp | 25 + .../impl/level/LightUpdate.cpp | 5 +- .../impl/level/Region.cpp | 7 +- .../impl/level/chunk/LevelChunk.cpp | 118 +- .../impl/level/gen/NewRandomLevelSource.cpp | 15 +- .../level/gen/PerformanceTestChunkSource.cpp | 11 +- .../impl/level/gen/RandomLevelSource.cpp | 15 +- .../impl/level/storage/DataLayer.cpp | 5 +- .../storage/ExternalFileLevelStorage.cpp | 15 +- .../impl/network/ClientSideNetworkHandler.cpp | 5 +- .../impl/network/RakNetInstance.cpp | 11 + .../impl/network/packet/ChunkDataPacket.cpp | 3 +- .../impl/rendering/ItemInHandRenderer.cpp | 19 +- .../impl/rendering/LevelRenderer.cpp | 6 +- .../rendering/entity/HumanoidMobRenderer.cpp | 5 +- .../impl/rendering/entity/ItemRenderer.cpp | 11 +- .../rendering/entity/PaintingRenderer.cpp | 2 + .../impl/rendering/entity/PlayerRenderer.cpp | 3 +- .../impl/rendering/model/HumanoidModel.cpp | 3 +- .../impl/tile/ChestTile.cpp | 4 +- .../impl/tile/ReedTile.cpp | 3 +- .../impl/tile/SeagrassTile.cpp | 5 +- .../impl/tile/SpongeTile.cpp | 3 +- modifiedeight-newadditions/impl/tile/Tile.cpp | 3 +- .../impl/tile/WaterLilyTile.cpp | 5 +- 62 files changed, 6075 insertions(+), 130 deletions(-) create mode 100644 modifiedeight-newadditions/headers/java/JavaBridge.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaByteBuf.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaChunkData.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaChunkSource.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaIdMap.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaLog.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaSession.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaSocket.hpp create mode 100644 modifiedeight-newadditions/headers/java/JavaY.hpp create mode 100644 modifiedeight-newadditions/headers/level/LevelHeight.hpp create mode 100644 modifiedeight-newadditions/impl/java/JavaBridge.cpp create mode 100644 modifiedeight-newadditions/impl/java/JavaByteBuf.cpp create mode 100644 modifiedeight-newadditions/impl/java/JavaChunkData.cpp create mode 100644 modifiedeight-newadditions/impl/java/JavaChunkSource.cpp create mode 100644 modifiedeight-newadditions/impl/java/JavaIdMap.cpp create mode 100644 modifiedeight-newadditions/impl/java/JavaSession.cpp create mode 100644 modifiedeight-newadditions/impl/java/JavaSessionOut.cpp create mode 100644 modifiedeight-newadditions/impl/java/JavaSocket.cpp create mode 100644 modifiedeight-newadditions/impl/level/LevelHeight.cpp diff --git a/modifiedeight-newadditions/headers/ExternalServer.hpp b/modifiedeight-newadditions/headers/ExternalServer.hpp index 3dd005cd..de094297 100644 --- a/modifiedeight-newadditions/headers/ExternalServer.hpp +++ b/modifiedeight-newadditions/headers/ExternalServer.hpp @@ -7,9 +7,14 @@ struct ExternalServer int32_t field_0; std::string field_4, field_8; int32_t field_C; + // Set when this entry is a Minecraft Java Edition 1.8.x server rather than + // an MCPE one, which decides whether joining goes through RakNet or through + // the Java session. + bool_t isJava; ExternalServer(); ExternalServer(const ExternalServer&); ExternalServer(int32_t, const std::string&, const std::string&, int32_t); + ExternalServer(int32_t, const std::string&, const std::string&, int32_t, bool_t); //~ExternalServer(); }; diff --git a/modifiedeight-newadditions/headers/ExternalServerFile.hpp b/modifiedeight-newadditions/headers/ExternalServerFile.hpp index 887cf4c4..a4e428bc 100644 --- a/modifiedeight-newadditions/headers/ExternalServerFile.hpp +++ b/modifiedeight-newadditions/headers/ExternalServerFile.hpp @@ -11,7 +11,9 @@ struct ExternalServerFile ExternalServerFile(const std::string&); void addServer(const std::string&, const std::string&, int32_t); + void addServer(const std::string&, const std::string&, int32_t, bool_t); void editServer(int32_t, const std::string&, const std::string&, int32_t); + void editServer(int32_t, const std::string&, const std::string&, int32_t, bool_t); std::unordered_map* getExternalServers(); void load(); void removeServer(int32_t); diff --git a/modifiedeight-newadditions/headers/gui/screens/AddExternalServerScreen.hpp b/modifiedeight-newadditions/headers/gui/screens/AddExternalServerScreen.hpp index bda6f511..78dfe798 100644 --- a/modifiedeight-newadditions/headers/gui/screens/AddExternalServerScreen.hpp +++ b/modifiedeight-newadditions/headers/gui/screens/AddExternalServerScreen.hpp @@ -18,8 +18,15 @@ struct AddExternalServerScreen: Screen std::shared_ptr field_94; std::shared_ptr