9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00

Updated Upstream (Leaves)

Upstream has released updates that appear to apply and compile correctly

Leaves Changes:
LeavesMC/Leaves@2c30e11 Update Paper and use archive
LeavesMC/Leaves@e64ef21 [ci skip] issue template LeavesMC -> Leaves (#386)
LeavesMC/Leaves@bce1d6c Fix GlobalConfigCreator (#385), and not pre
LeavesMC/Leaves@abda1c7 Fix color in console (#383)
LeavesMC/Leaves@b723a7f Update Jade Protocol
LeavesMC/Leaves@41476d8 Fix EndPortal teleport entity's delta movement (#388)
This commit is contained in:
Dreeam
2025-01-08 04:10:02 -05:00
parent 822da78d0c
commit 119beeff20
3 changed files with 80 additions and 96 deletions

View File

@@ -9,7 +9,7 @@ and change store way to sql maybe?
Original license: GPLv3
Original project: https://github.com/LeavesMC/Leaves
Commit: aeeef2213c2295288b71c9162cbe008c4a3defd9
Commit: 41476d86922416c45f703df2871890831fc42bb5
diff --git a/src/main/java/org/leavesmc/leaves/LeavesLogger.java b/src/main/java/org/leavesmc/leaves/LeavesLogger.java
new file mode 100644

View File

@@ -142,13 +142,12 @@ index c63bdbd72ecd45b8d5862a996636c0ce1e87166e..4e91895387b214cadc658b150ed6b88e
}
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/JadeProtocol.java b/src/main/java/org/leavesmc/leaves/protocol/jade/JadeProtocol.java
new file mode 100644
index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22db31adef
index 0000000000000000000000000000000000000000..3f21db1707c961242090f2edd54b72f233c59d79
--- /dev/null
+++ b/src/main/java/org/leavesmc/leaves/protocol/jade/JadeProtocol.java
@@ -0,0 +1,310 @@
@@ -0,0 +1,279 @@
+package org.leavesmc.leaves.protocol.jade;
+
+import com.google.common.base.Suppliers;
+import net.minecraft.core.BlockPos;
+import net.minecraft.core.registries.BuiltInRegistries;
+import net.minecraft.core.registries.Registries;
@@ -165,12 +164,9 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+import net.minecraft.world.entity.animal.allay.Allay;
+import net.minecraft.world.entity.animal.armadillo.Armadillo;
+import net.minecraft.world.entity.animal.frog.Tadpole;
+import net.minecraft.world.entity.boss.EnderDragonPart;
+import net.minecraft.world.entity.boss.enderdragon.EnderDragon;
+import net.minecraft.world.entity.monster.ZombieVillager;
+import net.minecraft.world.item.ItemStack;
+import net.minecraft.world.item.Items;
+import net.minecraft.world.level.Level;
+import net.minecraft.world.level.block.Block;
+import net.minecraft.world.level.block.CampfireBlock;
+import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity;
@@ -185,9 +181,6 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+import net.minecraft.world.level.block.entity.JukeboxBlockEntity;
+import net.minecraft.world.level.block.entity.LecternBlockEntity;
+import net.minecraft.world.level.block.entity.TrialSpawnerBlockEntity;
+import net.minecraft.world.level.block.state.BlockState;
+import net.minecraft.world.phys.BlockHitResult;
+import net.minecraft.world.phys.EntityHitResult;
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.NotNull;
+import org.leavesmc.leaves.LeavesLogger;
@@ -195,9 +188,7 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+import org.leavesmc.leaves.protocol.core.ProtocolHandler;
+import org.leavesmc.leaves.protocol.core.ProtocolUtils;
+import org.leavesmc.leaves.protocol.jade.accessor.BlockAccessor;
+import org.leavesmc.leaves.protocol.jade.accessor.BlockAccessorImpl;
+import org.leavesmc.leaves.protocol.jade.accessor.EntityAccessor;
+import org.leavesmc.leaves.protocol.jade.accessor.EntityAccessorImpl;
+import org.leavesmc.leaves.protocol.jade.payload.ReceiveDataPayload;
+import org.leavesmc.leaves.protocol.jade.payload.RequestBlockPayload;
+import org.leavesmc.leaves.protocol.jade.payload.RequestEntityPayload;
@@ -244,7 +235,7 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+
+ public static final HierarchyLookup<IServerDataProvider<EntityAccessor>> entityDataProviders = new HierarchyLookup<>(Entity.class);
+ public static final PairHierarchyLookup<IServerDataProvider<BlockAccessor>> blockDataProviders = new PairHierarchyLookup<>(new HierarchyLookup<>(Block.class), new HierarchyLookup<>(BlockEntity.class));
+ public static final WrappedHierarchyLookup<IServerExtensionProvider<ItemStack>> itemStorageProviders = new WrappedHierarchyLookup<>();
+ public static final WrappedHierarchyLookup<IServerExtensionProvider<ItemStack>> itemStorageProviders = WrappedHierarchyLookup.forAccessor();
+
+ @Contract("_ -> new")
+ public static @NotNull ResourceLocation id(String path) {
@@ -308,7 +299,8 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+ try {
+ shearableBlocks = Collections.unmodifiableList(LootTableMineableCollector.execute(
+ MinecraftServer.getServer().reloadableRegistries().lookup().lookupOrThrow(Registries.LOOT_TABLE),
+ Items.SHEARS.getDefaultInstance()));
+ Items.SHEARS.getDefaultInstance()
+ ));
+ } catch (Throwable ignore) {
+ shearableBlocks = List.of();
+ LeavesLogger.LOGGER.severe("Failed to collect shearable blocks");
@@ -330,40 +322,28 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+ return;
+ }
+
+ MinecraftServer server = MinecraftServer.getServer();
+ server.execute(() -> {
+ Level world = player.level();
+ boolean showDetails = payload.data().showDetails();
+ Entity entity = world.getEntity(payload.data().id());
+ double maxDistance = Mth.square(player.entityInteractionRange() + 21);
+ MinecraftServer.getServer().execute(() -> {
+ EntityAccessor accessor = payload.data().unpack(player);
+ if (accessor == null) {
+ return;
+ }
+
+ Entity entity = accessor.getEntity();
+ double maxDistance = Mth.square(player.entityInteractionRange() + 21);
+ if (entity == null || player.distanceToSqr(entity) > maxDistance) {
+ return;
+ }
+
+ if (payload.data().partIndex() >= 0 && entity instanceof EnderDragon dragon) {
+ EnderDragonPart[] parts = dragon.getSubEntities();
+ if (payload.data().partIndex() < parts.length) {
+ entity = parts[payload.data().partIndex()];
+ }
+ }
+
+ var providers = entityDataProviders.get(entity);
+ List<IServerDataProvider<EntityAccessor>> providers = entityDataProviders.get(entity);
+ if (providers.isEmpty()) {
+ return;
+ }
+
+ final Entity finalEntity = entity;
+ CompoundTag tag = new CompoundTag();
+ EntityAccessor accessor = new EntityAccessorImpl.Builder()
+ .level(world)
+ .player(player)
+ .showDetails(showDetails)
+ .entity(entity)
+ .hit(Suppliers.memoize(() -> new EntityHitResult(finalEntity, payload.data().hitVec())))
+ .build();
+
+ for (IServerDataProvider<EntityAccessor> provider : providers) {
+ if (!payload.dataProviders().contains(provider)) {
+ continue;
+ }
+ try {
+ provider.appendServerData(tag, accessor);
+ } catch (Exception e) {
@@ -384,21 +364,17 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+
+ MinecraftServer server = MinecraftServer.getServer();
+ server.execute(() -> {
+ Level world = player.level();
+ BlockState blockState = payload.data().blockState();
+ Block block = blockState.getBlock();
+ BlockHitResult result = payload.data().hit();
+ BlockPos pos = result.getBlockPos();
+ boolean showDetails = payload.data().showDetails();
+
+ double maxDistance = Mth.square(player.blockInteractionRange() + 21);
+ if (pos.distSqr(player.blockPosition()) > maxDistance || !world.isLoaded(pos)) {
+ BlockAccessor accessor = payload.data().unpack(player);
+ if (accessor == null) {
+ return;
+ }
+
+ BlockEntity blockEntity = null;
+ if (blockState.hasBlockEntity()) {
+ blockEntity = world.getBlockEntity(pos);
+ BlockPos pos = accessor.getPosition();
+ Block block = accessor.getBlock();
+ BlockEntity blockEntity = accessor.getBlockEntity();
+ double maxDistance = Mth.square(player.blockInteractionRange() + 21);
+ if (pos.distSqr(player.blockPosition()) > maxDistance || !accessor.getLevel().isLoaded(pos)) {
+ return;
+ }
+
+ List<IServerDataProvider<BlockAccessor>> providers;
@@ -409,25 +385,18 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+ }
+
+ if (providers.isEmpty()) {
+ player.getBukkitEntity().sendMessage("Provider is empty!");
+ return;
+ }
+
+ CompoundTag tag = new CompoundTag();
+ BlockAccessor accessor = new BlockAccessorImpl.Builder()
+ .level(world)
+ .player(player)
+ .showDetails(showDetails)
+ .hit(result)
+ .blockState(blockState)
+ .blockEntity(blockEntity)
+ .build();
+
+ for (IServerDataProvider<BlockAccessor> provider : providers) {
+ if (!payload.dataProviders().contains(provider)) {
+ continue;
+ }
+ try {
+ provider.appendServerData(tag, accessor);
+ } catch (Exception e) {
+ LeavesLogger.LOGGER.warning("Error while saving data for block " + blockState);
+ LeavesLogger.LOGGER.warning("Error while saving data for block " + accessor.getBlockState());
+ }
+ }
+ tag.putInt("x", pos.getX());
@@ -456,7 +425,6 @@ index 0000000000000000000000000000000000000000..41e4f98203b2e4392b0f76a560a4ed22
+ ProtocolUtils.sendPayloadPacket(player, new ServerPingPayload(Collections.emptyMap(), shearableBlocks, blockDataProviders.mappedIds(), entityDataProviders.mappedIds()));
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/accessor/Accessor.java b/src/main/java/org/leavesmc/leaves/protocol/jade/accessor/Accessor.java
new file mode 100644
index 0000000000000000000000000000000000000000..1a637045d9375ae357ca1e592ec0dc7b45fa47fa
@@ -1084,7 +1052,7 @@ index 0000000000000000000000000000000000000000..480ec35f28c850bfbe4f787d080fd7bb
\ No newline at end of file
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/payload/RequestEntityPayload.java b/src/main/java/org/leavesmc/leaves/protocol/jade/payload/RequestEntityPayload.java
new file mode 100644
index 0000000000000000000000000000000000000000..ef7ee32f0f2fd78b7e7891d622f76cddb8cb0680
index 0000000000000000000000000000000000000000..395138d427413e562a5a3df80b33b53cffacc637
--- /dev/null
+++ b/src/main/java/org/leavesmc/leaves/protocol/jade/payload/RequestEntityPayload.java
@@ -0,0 +1,53 @@
@@ -1119,8 +1087,8 @@ index 0000000000000000000000000000000000000000..ef7ee32f0f2fd78b7e7891d622f76cdd
+ ByteBufCodecs.<ByteBuf, IServerDataProvider<EntityAccessor>>list()
+ .apply(ByteBufCodecs.idMapper(
+ $ -> Objects.requireNonNull(entityDataProviders.idMapper()).byId($),
+ $ -> Objects.requireNonNull(entityDataProviders.idMapper())
+ .getIdOrThrow($))),
+ $ -> Objects.requireNonNull(entityDataProviders.idMapper()).getIdOrThrow($)
+ )),
+ RequestEntityPayload::dataProviders,
+ RequestEntityPayload::new);
+
@@ -1991,21 +1959,24 @@ index 0000000000000000000000000000000000000000..a70f4a81166221ec1971b1fbf06e4c73
+}
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/provider/block/ObjectNameProvider.java b/src/main/java/org/leavesmc/leaves/protocol/jade/provider/block/ObjectNameProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..e97fb13707365cceaf28f2624791d0472e56169c
index 0000000000000000000000000000000000000000..6a060c8a64f18a3bff232bcb43f20121b1da36b1
--- /dev/null
+++ b/src/main/java/org/leavesmc/leaves/protocol/jade/provider/block/ObjectNameProvider.java
@@ -0,0 +1,57 @@
@@ -0,0 +1,63 @@
+package org.leavesmc.leaves.protocol.jade.provider.block;
+
+import net.minecraft.core.component.DataComponents;
+import net.minecraft.network.RegistryFriendlyByteBuf;
+import net.minecraft.network.chat.Component;
+import net.minecraft.network.chat.ComponentSerialization;
+import net.minecraft.network.chat.contents.TranslatableContents;
+import net.minecraft.network.codec.StreamCodec;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.world.MenuProvider;
+import net.minecraft.world.Nameable;
+import net.minecraft.world.level.block.ChestBlock;
+import net.minecraft.world.level.block.entity.ChestBlockEntity;
+import net.minecraft.world.level.block.state.properties.ChestType;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.leavesmc.leaves.protocol.jade.JadeProtocol;
@@ -2025,15 +1996,18 @@ index 0000000000000000000000000000000000000000..e97fb13707365cceaf28f2624791d047
+ if (!(accessor.getBlockEntity() instanceof Nameable nameable)) {
+ return null;
+ }
+ if (nameable instanceof ChestBlockEntity && accessor.getBlock() instanceof ChestBlock) {
+ if (nameable instanceof ChestBlockEntity && accessor.getBlock() instanceof ChestBlock && accessor.getBlockState().getValue(ChestBlock.TYPE) != ChestType.SINGLE) {
+ MenuProvider menuProvider = accessor.getBlockState().getMenuProvider(accessor.getLevel(), accessor.getPosition());
+ if (menuProvider != null) {
+ return menuProvider.getDisplayName();
+ Component name = menuProvider.getDisplayName();
+ if (!(name.getContents() instanceof TranslatableContents contents) || !"container.chestDouble".equals(contents.getKey())) {
+ return name;
+ }
+ }
+ } else if (nameable.hasCustomName()) {
+ return nameable.getDisplayName();
+ }
+ return null;
+ return accessor.getBlockEntity().components().get(DataComponents.ITEM_NAME);
+ }
+
+ @Override
@@ -2747,7 +2721,7 @@ index 0000000000000000000000000000000000000000..0070fd22b096281a094d1cd19c93fdbc
\ No newline at end of file
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/util/IHierarchyLookup.java b/src/main/java/org/leavesmc/leaves/protocol/jade/util/IHierarchyLookup.java
new file mode 100644
index 0000000000000000000000000000000000000000..137cdf619879390477b4fc8c4b7ecee5b762dc30
index 0000000000000000000000000000000000000000..0536309cb016f05f296daaeb17dd9275777a7333
--- /dev/null
+++ b/src/main/java/org/leavesmc/leaves/protocol/jade/util/IHierarchyLookup.java
@@ -0,0 +1,66 @@
@@ -2809,7 +2783,7 @@ index 0000000000000000000000000000000000000000..137cdf619879390477b4fc8c4b7ecee5
+ idMapper = new IdMapper<>(list.size());
+ }
+ for (T provider : list) {
+ if (idMapper.getId(provider) == -1) {
+ if (idMapper.getId(provider) == IdMapper.DEFAULT) {
+ idMapper.add(provider);
+ }
+ }
@@ -2819,10 +2793,10 @@ index 0000000000000000000000000000000000000000..137cdf619879390477b4fc8c4b7ecee5
+
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/util/ItemCollector.java b/src/main/java/org/leavesmc/leaves/protocol/jade/util/ItemCollector.java
new file mode 100644
index 0000000000000000000000000000000000000000..8f57cb0714dc684bd90325a6d2e84d5b1b303d6e
index 0000000000000000000000000000000000000000..408c81a0d0762f7d4b32aedc9b67c7ff546b43f3
--- /dev/null
+++ b/src/main/java/org/leavesmc/leaves/protocol/jade/util/ItemCollector.java
@@ -0,0 +1,116 @@
@@ -0,0 +1,118 @@
+package org.leavesmc.leaves.protocol.jade.util;
+
+import it.unimi.dsi.fastutil.objects.Object2IntLinkedOpenHashMap;
@@ -2861,6 +2835,7 @@ index 0000000000000000000000000000000000000000..8f57cb0714dc684bd90325a6d2e84d5b
+ private final ItemIterator<T> iterator;
+ public long version;
+ public long lastTimeFinished;
+ public boolean lastTimeIsEmpty;
+ public List<ViewGroup<ItemStack>> mergedResult;
+
+ public ItemCollector(ItemIterator<T> iterator) {
@@ -2899,13 +2874,14 @@ index 0000000000000000000000000000000000000000..8f57cb0714dc684bd90325a6d2e84d5b
+ updateCollectingProgress(mergedResult.getFirst());
+ return mergedResult;
+ }
+ List<ItemStack> partialResult = items.object2IntEntrySet().stream().limit(54).map(entry -> {
+ List<ItemStack> partialResult = items.object2IntEntrySet().stream().limit(MAX_SIZE ).map(entry -> {
+ ItemDefinition def = entry.getKey();
+ return def.toStack(entry.getIntValue());
+ }).toList();
+ List<ViewGroup<ItemStack>> groups = List.of(updateCollectingProgress(new ViewGroup<>(partialResult)));
+ if (iterator.isFinished()) {
+ mergedResult = groups;
+ lastTimeIsEmpty = mergedResult.getFirst().views.isEmpty();
+ version = currentVersion;
+ lastTimeFinished = gameTime;
+ items.clear();
@@ -2914,12 +2890,12 @@ index 0000000000000000000000000000000000000000..8f57cb0714dc684bd90325a6d2e84d5b
+ }
+
+ protected ViewGroup<ItemStack> updateCollectingProgress(ViewGroup<ItemStack> group) {
+ if (lastTimeIsEmpty && group.views.isEmpty()) {
+ return group;
+ }
+ float progress = iterator.getCollectingProgress();
+ CompoundTag data = group.getExtraData();
+ if (Float.isNaN(progress)) {
+ progress = 0;
+ }
+ if (progress >= 1) {
+ if (Float.isNaN(progress) || progress >= 1) {
+ data.remove("Collecting");
+ } else {
+ data.putFloat("Collecting", progress);
@@ -3470,16 +3446,17 @@ index 0000000000000000000000000000000000000000..520eadbf6de55141524741b4e4063cd5
+}
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/util/WrappedHierarchyLookup.java b/src/main/java/org/leavesmc/leaves/protocol/jade/util/WrappedHierarchyLookup.java
new file mode 100644
index 0000000000000000000000000000000000000000..11d66b88327a954c8d530a002aa87c9abae8da12
index 0000000000000000000000000000000000000000..9b49efd3255e4521824e1b21b88e3625eedcc7a5
--- /dev/null
+++ b/src/main/java/org/leavesmc/leaves/protocol/jade/util/WrappedHierarchyLookup.java
@@ -0,0 +1,96 @@
@@ -0,0 +1,104 @@
+package org.leavesmc.leaves.protocol.jade.util;
+
+import com.google.common.collect.Lists;
+import net.minecraft.resources.ResourceLocation;
+import net.minecraft.world.level.block.Block;
+import org.apache.commons.lang3.tuple.Pair;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.leavesmc.leaves.protocol.jade.accessor.Accessor;
+import org.leavesmc.leaves.protocol.jade.accessor.BlockAccessor;
@@ -3496,13 +3473,20 @@ index 0000000000000000000000000000000000000000..11d66b88327a954c8d530a002aa87c9a
+ private boolean empty = true;
+
+ public WrappedHierarchyLookup() {
+ super(Object.class, true);
+ overrides.add(Pair.of(new HierarchyLookup<>(Block.class, true), accessor -> {
+ if (accessor instanceof BlockAccessor blockAccessor) {
+ return blockAccessor.getBlock();
+ }
+ return null;
+ }));
+ super(Object.class);
+ }
+
+ @NotNull
+ public static <T extends IJadeProvider> WrappedHierarchyLookup<T> forAccessor() {
+ WrappedHierarchyLookup<T> lookup = new WrappedHierarchyLookup<>();
+ lookup.overrides.add(Pair.of(
+ new HierarchyLookup<>(Block.class), accessor -> {
+ if (accessor instanceof BlockAccessor blockAccessor) {
+ return blockAccessor.getBlock();
+ }
+ return null;
+ }));
+ return lookup;
+ }
+
+ public List<T> wrappedGet(Accessor<?> accessor) {

View File

@@ -353,12 +353,12 @@ index 87b1502c1b980d33cae205ae35d336f7450e5e94..89cc2bc49c9a8d6ae5dd3ff10ac96e42
@Override
public void write(@NotNull FriendlyByteBuf buf) {
diff --git a/src/main/java/org/leavesmc/leaves/protocol/jade/JadeProtocol.java b/src/main/java/org/leavesmc/leaves/protocol/jade/JadeProtocol.java
index 41e4f98203b2e4392b0f76a560a4ed22db31adef..7777bfba21233625b21876ae55e09157ce84e04c 100644
index 3f21db1707c961242090f2edd54b72f233c59d79..a7d9bd324f8a83e0424194711af66f691172b3f6 100644
--- a/src/main/java/org/leavesmc/leaves/protocol/jade/JadeProtocol.java
+++ b/src/main/java/org/leavesmc/leaves/protocol/jade/JadeProtocol.java
@@ -98,6 +98,10 @@ public class JadeProtocol {
@@ -89,6 +89,10 @@ public class JadeProtocol {
public static final PairHierarchyLookup<IServerDataProvider<BlockAccessor>> blockDataProviders = new PairHierarchyLookup<>(new HierarchyLookup<>(Block.class), new HierarchyLookup<>(BlockEntity.class));
public static final WrappedHierarchyLookup<IServerExtensionProvider<ItemStack>> itemStorageProviders = new WrappedHierarchyLookup<>();
public static final WrappedHierarchyLookup<IServerExtensionProvider<ItemStack>> itemStorageProviders = WrappedHierarchyLookup.forAccessor();
+ public static boolean shouldEnable() {
+ return org.dreeam.leaf.config.modules.network.ProtocolSupport.jadeProtocol;
@@ -367,7 +367,7 @@ index 41e4f98203b2e4392b0f76a560a4ed22db31adef..7777bfba21233625b21876ae55e09157
@Contract("_ -> new")
public static @NotNull ResourceLocation id(String path) {
return new ResourceLocation(PROTOCOL_ID, path);
@@ -169,19 +173,11 @@ public class JadeProtocol {
@@ -161,19 +165,11 @@ public class JadeProtocol {
@ProtocolHandler.PlayerJoin
public static void onPlayerJoin(ServerPlayer player) {
@@ -384,10 +384,10 @@ index 41e4f98203b2e4392b0f76a560a4ed22db31adef..7777bfba21233625b21876ae55e09157
- return;
- }
-
MinecraftServer server = MinecraftServer.getServer();
server.execute(() -> {
Level world = player.level();
@@ -230,10 +226,6 @@ public class JadeProtocol {
MinecraftServer.getServer().execute(() -> {
EntityAccessor accessor = payload.data().unpack(player);
if (accessor == null) {
@@ -210,10 +206,6 @@ public class JadeProtocol {
@ProtocolHandler.PayloadReceiver(payload = RequestBlockPayload.class, payloadId = "request_block")
public static void requestBlockData(ServerPlayer player, RequestBlockPayload payload) {
@@ -397,7 +397,7 @@ index 41e4f98203b2e4392b0f76a560a4ed22db31adef..7777bfba21233625b21876ae55e09157
-
MinecraftServer server = MinecraftServer.getServer();
server.execute(() -> {
Level world = player.level();
BlockAccessor accessor = payload.data().unpack(player);
diff --git a/src/main/java/org/leavesmc/leaves/protocol/syncmatica/CommunicationManager.java b/src/main/java/org/leavesmc/leaves/protocol/syncmatica/CommunicationManager.java
index 0704ac7825c69e69097b3e7c77763044f9fa9e1e..c039765237d56def91a1e630a0510062305fd585 100644
--- a/src/main/java/org/leavesmc/leaves/protocol/syncmatica/CommunicationManager.java