9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-26 02:19:23 +00:00

移除碰撞实体掉落物

This commit is contained in:
XiaoMoMi
2025-04-07 23:54:00 +08:00
parent 1d3c9e5fff
commit 49960e1b6a
4 changed files with 40 additions and 33 deletions

View File

@@ -55,7 +55,7 @@ public class FurnitureEventListener implements Listener {
if (entity instanceof ItemDisplay itemDisplay) {
this.manager.handleBaseEntityLoadLate(itemDisplay, 0);
} else if (entity instanceof Shulker shulker) {
this.manager.handleCollisionEntityLoadLate(shulker, 0);
//this.manager.handleCollisionEntityLoadLate(shulker, 0);
}
}

View File

@@ -156,7 +156,7 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes
registerByteBufPacketConsumer(PacketConsumers.BLOCK_UPDATE, this.packetIds.clientboundBlockUpdatePacket());
registerByteBufPacketConsumer(PacketConsumers.LEVEL_PARTICLE, this.packetIds.clientboundLevelParticlesPacket());
registerByteBufPacketConsumer(PacketConsumers.LEVEL_EVENT, this.packetIds.clientboundLevelEventPacket());
registerByteBufPacketConsumer(PacketConsumers.OPEN_SCREEN, this.packetIds.clientboundOpenScreenPacket());
registerByteBufPacketConsumer(VersionHelper.isVersionNewerThan1_20_3() ? PacketConsumers.OPEN_SCREEN_1_20_3 : PacketConsumers.OPEN_SCREEN_1_20, this.packetIds.clientboundOpenScreenPacket());
// registerByteBufPacketConsumer(PacketConsumers.REMOVE_ENTITY, this.packetIds.clientboundRemoveEntitiesPacket());
registerByteBufPacketConsumer(PacketConsumers.ADD_ENTITY_BYTEBUFFER, this.packetIds.clientboundAddEntityPacket());
// registerByteBufPacketConsumer(PacketConsumers.SOUND, this.packetIds.clientboundSoundPacket());

View File

@@ -242,40 +242,47 @@ public class PacketConsumers {
}
};
public static final BiConsumer<NetWorkUser, ByteBufPacketEvent> OPEN_SCREEN = (user, event) -> {
public static final BiConsumer<NetWorkUser, ByteBufPacketEvent> OPEN_SCREEN_1_20 = (user, event) -> {
try {
FriendlyByteBuf buf = event.getBuffer();
int containerId = buf.readVarInt();
int type = buf.readVarInt();
if (VersionHelper.isVersionNewerThan1_20_3()) {
Tag nbt = buf.readNbt(false);
if (nbt == null) return;
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
if (tokens.isEmpty()) return;
Component component = NBTComponentSerializer.nbt().deserialize(nbt);
for (Map.Entry<String, String> token : tokens.entrySet()) {
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
}
buf.clear();
buf.writeVarInt(event.packetID());
buf.writeVarInt(containerId);
buf.writeVarInt(type);
buf.writeNbt(NBTComponentSerializer.nbt().serialize(component), false);
} else {
String json = buf.readUtf();
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
if (tokens.isEmpty()) return;
event.setChanged(true);
Component component = AdventureHelper.jsonToComponent(json);
for (Map.Entry<String, String> token : tokens.entrySet()) {
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
}
buf.clear();
buf.writeVarInt(event.packetID());
buf.writeVarInt(containerId);
buf.writeVarInt(type);
buf.writeUtf(AdventureHelper.componentToJson(component));
String json = buf.readUtf();
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(json);
if (tokens.isEmpty()) return;
event.setChanged(true);
Component component = AdventureHelper.jsonToComponent(json);
for (Map.Entry<String, String> token : tokens.entrySet()) {
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
}
buf.clear();
buf.writeVarInt(event.packetID());
buf.writeVarInt(containerId);
buf.writeVarInt(type);
buf.writeUtf(AdventureHelper.componentToJson(component));
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to handle ClientboundOpenScreenPacket", e);
}
};
public static final BiConsumer<NetWorkUser, ByteBufPacketEvent> OPEN_SCREEN_1_20_3 = (user, event) -> {
try {
FriendlyByteBuf buf = event.getBuffer();
int containerId = buf.readVarInt();
int type = buf.readVarInt();
Tag nbt = buf.readNbt(false);
if (nbt == null) return;
Map<String, String> tokens = CraftEngine.instance().imageManager().matchTags(nbt.getAsString());
if (tokens.isEmpty()) return;
Component component = NBTComponentSerializer.nbt().deserialize(nbt);
for (Map.Entry<String, String> token : tokens.entrySet()) {
component = component.replaceText(b -> b.matchLiteral(token.getKey()).replacement(AdventureHelper.miniMessage().deserialize(token.getValue())));
}
buf.clear();
buf.writeVarInt(event.packetID());
buf.writeVarInt(containerId);
buf.writeVarInt(type);
buf.writeNbt(NBTComponentSerializer.nbt().serialize(component), false);
} catch (Exception e) {
CraftEngine.instance().logger().warn("Failed to handle ClientboundOpenScreenPacket", e);
}

View File

@@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx1G
# Project settings
# Rule: [major update].[feature update].[bug fix]
project_version=0.0.45
project_version=0.0.46
config_version=22
lang_version=4
project_group=net.momirealms
@@ -51,7 +51,7 @@ byte_buddy_version=1.17.5
ahocorasick_version=0.6.3
snake_yaml_version=2.4
anti_grief_version=0.13
nms_helper_version=0.44
nms_helper_version=0.44.2
# Ignite Dependencies
mixinextras_version=0.4.1
mixin_version=0.15.2+mixin.0.8.7