mirror of
https://github.com/LeavesMC/Leaves.git
synced 2026-01-06 15:51:33 +00:00
Fix and update Jade protocol
This commit is contained in:
@@ -70,10 +70,10 @@ index 2ef8eac38e5136defacc8904480a21d2bd20b325..69868f675624ad3b2c4742572a2b2c49
|
||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/protocol/JadeProtocol.java b/src/main/java/top/leavesmc/leaves/protocol/JadeProtocol.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade59c6f796
|
||||
index 0000000000000000000000000000000000000000..68ff2809250ca290113ec2528075f812ba4ea41b
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/top/leavesmc/leaves/protocol/JadeProtocol.java
|
||||
@@ -0,0 +1,572 @@
|
||||
@@ -0,0 +1,580 @@
|
||||
+package top.leavesmc.leaves.protocol;
|
||||
+
|
||||
+import com.google.common.cache.Cache;
|
||||
@@ -82,11 +82,9 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+import com.google.common.collect.ImmutableList;
|
||||
+import com.google.common.collect.ListMultimap;
|
||||
+import com.google.common.collect.Lists;
|
||||
+import com.google.common.collect.Streams;
|
||||
+import com.mojang.authlib.GameProfile;
|
||||
+import io.netty.buffer.Unpooled;
|
||||
+import net.minecraft.core.BlockPos;
|
||||
+import net.minecraft.core.Registry;
|
||||
+import net.minecraft.core.registries.BuiltInRegistries;
|
||||
+import net.minecraft.nbt.CompoundTag;
|
||||
+import net.minecraft.nbt.ListTag;
|
||||
@@ -97,7 +95,6 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+import net.minecraft.server.MinecraftServer;
|
||||
+import net.minecraft.server.level.ServerLevel;
|
||||
+import net.minecraft.server.level.ServerPlayer;
|
||||
+import net.minecraft.util.Mth;
|
||||
+import net.minecraft.world.Container;
|
||||
+import net.minecraft.world.LockCode;
|
||||
+import net.minecraft.world.Nameable;
|
||||
@@ -119,6 +116,7 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+import net.minecraft.world.level.BaseCommandBlock;
|
||||
+import net.minecraft.world.level.Level;
|
||||
+import net.minecraft.world.level.block.ChestBlock;
|
||||
+import net.minecraft.world.level.block.ChiseledBookShelfBlock;
|
||||
+import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity;
|
||||
+import net.minecraft.world.level.block.entity.BaseContainerBlockEntity;
|
||||
+import net.minecraft.world.level.block.entity.BeehiveBlockEntity;
|
||||
@@ -126,6 +124,7 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
+import net.minecraft.world.level.block.entity.BrewingStandBlockEntity;
|
||||
+import net.minecraft.world.level.block.entity.ChestBlockEntity;
|
||||
+import net.minecraft.world.level.block.entity.ChiseledBookShelfBlockEntity;
|
||||
+import net.minecraft.world.level.block.entity.CommandBlockEntity;
|
||||
+import net.minecraft.world.level.block.entity.ComparatorBlockEntity;
|
||||
+import net.minecraft.world.level.block.entity.EnderChestBlockEntity;
|
||||
@@ -135,6 +134,7 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+import net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity;
|
||||
+import net.minecraft.world.level.block.state.BlockState;
|
||||
+import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||
+import net.minecraft.world.phys.BlockHitResult;
|
||||
+import org.apache.commons.lang3.mutable.MutableInt;
|
||||
+import org.apache.logging.log4j.util.TriConsumer;
|
||||
+import org.jetbrains.annotations.Contract;
|
||||
@@ -353,6 +353,12 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+ }
|
||||
+ }
|
||||
+ }));
|
||||
+ tileDataProviders.register(ChiseledBookShelfBlockEntity.class, ((data, player, world, object, showDetails) -> {
|
||||
+ ChiseledBookShelfBlockEntity bookShelf = (ChiseledBookShelfBlockEntity) object;
|
||||
+ if (!bookShelf.isEmpty()) {
|
||||
+ data.put("Bookshelf", bookShelf.saveWithoutMetadata());
|
||||
+ }
|
||||
+ }));
|
||||
+ tileDataProviders.register(BlockEntity.class, ((tag, player, world, object, showDetails) -> {
|
||||
+ if (object instanceof AbstractFurnaceBlockEntity) {
|
||||
+ return;
|
||||
@@ -392,8 +398,8 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+ }
|
||||
+
|
||||
+ Level world = player.level();
|
||||
+ Entity entity = world.getEntity(buf.readVarInt());
|
||||
+ boolean showDetails = buf.readBoolean();
|
||||
+ Entity entity = world.getEntity(buf.readVarInt());
|
||||
+ if (entity == null || player.distanceToSqr(entity) > MAX_DISTANCE_SQR) {
|
||||
+ return;
|
||||
+ }
|
||||
@@ -425,8 +431,9 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ BlockPos pos = buf.readBlockPos();
|
||||
+ boolean showDetails = buf.readBoolean();
|
||||
+ BlockHitResult result = buf.readBlockHitResult();
|
||||
+ BlockPos pos = result.getBlockPos();
|
||||
+ Level world = player.level();
|
||||
+ if (pos.distSqr(player.blockPosition()) > MAX_DISTANCE_SQR || !world.isLoaded(pos)) {
|
||||
+ return;
|
||||
@@ -457,6 +464,7 @@ index 0000000000000000000000000000000000000000..33ad9e2f0cf2d712ea7f9b5285cd1ade
|
||||
+
|
||||
+ FriendlyByteBuf buf1 = new FriendlyByteBuf(Unpooled.buffer());
|
||||
+ buf1.writeNbt(tag);
|
||||
+ buf1.writeNbt(tag);
|
||||
+ ProtocolUtils.sendPayloadPacket(player, PACKET_RECEIVE_DATA, buf1);
|
||||
+ });
|
||||
+
|
||||
|
||||
Reference in New Issue
Block a user