mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2026-01-06 15:52:03 +00:00
添加展示架物品映射
This commit is contained in:
@@ -85,7 +85,7 @@ public class SimpleStorageBlockEntity extends BlockEntity {
|
||||
}
|
||||
if (VersionHelper.isOrAbove1_20_5()) {
|
||||
CoreReflections.instance$ItemStack$CODEC.parse(MRegistryOps.SPARROW_NBT, itemTag)
|
||||
.resultOrPartial((s) -> CraftEngine.instance().logger().severe("Tried to load invalid item: '" + itemTag + "'. " + s))
|
||||
.resultOrPartial((error) -> CraftEngine.instance().logger().severe("Tried to load invalid item: '" + itemTag + "'. " + error))
|
||||
.ifPresent(nmsStack -> storageContents[slot] = FastNMS.INSTANCE.method$CraftItemStack$asCraftMirror(nmsStack));
|
||||
} else {
|
||||
Object nmsTag = MRegistryOps.SPARROW_NBT.convertTo(MRegistryOps.NBT, itemTag);
|
||||
|
||||
@@ -148,7 +148,7 @@ public class BukkitItemManager extends AbstractItemManager<ItemStack> {
|
||||
jsonObject.addProperty("count", result.count());
|
||||
jsonObject.add("components", result.components());
|
||||
Object nmsStack = CoreReflections.instance$ItemStack$CODEC.parse(MRegistryOps.JSON, jsonObject)
|
||||
.resultOrPartial((itemId) -> plugin.logger().severe("Tried to load invalid item: '" + itemId + "'")).orElse(null);
|
||||
.resultOrPartial((error) -> plugin.logger().severe("Tried to load invalid item: '" + error + "'")).orElse(null);
|
||||
if (nmsStack == null) {
|
||||
return this.emptyItem;
|
||||
}
|
||||
|
||||
@@ -94,6 +94,7 @@ import net.momirealms.craftengine.core.world.chunk.packet.BlockEntityData;
|
||||
import net.momirealms.craftengine.core.world.chunk.packet.MCSection;
|
||||
import net.momirealms.craftengine.core.world.collision.AABB;
|
||||
import net.momirealms.sparrow.nbt.CompoundTag;
|
||||
import net.momirealms.sparrow.nbt.ListTag;
|
||||
import net.momirealms.sparrow.nbt.Tag;
|
||||
import net.momirealms.sparrow.nbt.adventure.NBTDataComponentValue;
|
||||
import org.bukkit.*;
|
||||
@@ -365,6 +366,7 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes
|
||||
registerC2SGamePacketListener(new CustomPayloadListener1_20(), VersionHelper.isOrAbove1_20_2() ? -1 : this.packetIds.serverboundCustomPayloadPacket(), "ServerboundCustomPayloadPacket");
|
||||
registerS2CGamePacketListener(VersionHelper.isOrAbove1_20_5() ? new MerchantOffersListener1_20_5() : new MerchantOffersListener1_20(), this.packetIds.clientBoundMerchantOffersPacket(), "ClientboundMerchantOffersPacket");
|
||||
registerS2CGamePacketListener(new AddEntityListener(RegistryUtils.currentEntityTypeRegistrySize()), this.packetIds.clientboundAddEntityPacket(), "ClientboundAddEntityPacket");
|
||||
registerS2CGamePacketListener(new BlockEntityDataListener(), this.packetIds.clientboundBlockEntityDataPacket(), "ClientboundBlockEntityDataPacket");
|
||||
registerS2CGamePacketListener(
|
||||
VersionHelper.isOrAbove1_20_3() ?
|
||||
new OpenScreenListener1_20_3() :
|
||||
@@ -4102,4 +4104,61 @@ public class BukkitNetworkManager implements NetworkManager, Listener, PluginMes
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static class BlockEntityDataListener implements ByteBufferPacketListener {
|
||||
|
||||
@Override
|
||||
public void onPacketSend(NetWorkUser user, ByteBufPacketEvent event) {
|
||||
if (!Config.interceptItem()) return;
|
||||
FriendlyByteBuf buf = event.getBuffer();
|
||||
boolean changed = false;
|
||||
BlockPos pos = buf.readBlockPos();
|
||||
int entityType = buf.readVarInt();
|
||||
boolean named = !VersionHelper.isOrAbove1_20_2();
|
||||
CompoundTag tag = (CompoundTag) buf.readNbt(named);
|
||||
// todo 刷怪笼里的物品?
|
||||
|
||||
// 展示架
|
||||
if (VersionHelper.isOrAbove1_21_9() && tag != null && tag.containsKey("Items")) {
|
||||
BukkitItemManager itemManager = BukkitItemManager.instance();
|
||||
ListTag itemsTag = tag.getList("Items");
|
||||
List<Pair<Byte, ItemStack>> items = new ArrayList<>();
|
||||
for (Tag itemTag : itemsTag) {
|
||||
if (itemTag instanceof CompoundTag itemCompoundTag) {
|
||||
byte slot = itemCompoundTag.getByte("Slot");
|
||||
Object nmsStack = CoreReflections.instance$ItemStack$CODEC.parse(MRegistryOps.SPARROW_NBT, itemCompoundTag)
|
||||
.resultOrPartial((error) -> CraftEngine.instance().logger().severe("Tried to parse invalid item: '" + error + "'")).orElse(null);
|
||||
ItemStack bukkitStack = FastNMS.INSTANCE.method$CraftItemStack$asCraftMirror(nmsStack);
|
||||
Optional<ItemStack> optional = itemManager.s2c(bukkitStack, (BukkitServerPlayer) user);
|
||||
if (optional.isPresent()) {
|
||||
changed = true;
|
||||
items.add(new Pair<>(slot, optional.get()));
|
||||
} else {
|
||||
items.add(Pair.of(slot, bukkitStack));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
ListTag newItemsTag = new ListTag();
|
||||
for (Pair<Byte, ItemStack> pair : items) {
|
||||
CompoundTag newItemCompoundTag = (CompoundTag) CoreReflections.instance$ItemStack$CODEC.encodeStart(MRegistryOps.SPARROW_NBT, FastNMS.INSTANCE.field$CraftItemStack$handle(pair.right()))
|
||||
.resultOrPartial((error) -> CraftEngine.instance().logger().severe("Tried to encode invalid item: '" + error + "'")).orElse(null);
|
||||
if (newItemCompoundTag != null) {
|
||||
newItemCompoundTag.putByte("Slot", pair.left());
|
||||
newItemsTag.add(newItemCompoundTag);
|
||||
}
|
||||
}
|
||||
tag.put("Items", newItemsTag);
|
||||
}
|
||||
}
|
||||
if (changed) {
|
||||
event.setChanged(true);
|
||||
buf.clear();
|
||||
buf.writeVarInt(event.packetID());
|
||||
buf.writeBlockPos(pos);
|
||||
buf.writeVarInt(entityType);
|
||||
buf.writeNbt(tag, named);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,6 +62,8 @@ public interface PacketIds {
|
||||
|
||||
int clientBoundMerchantOffersPacket();
|
||||
|
||||
int clientboundBlockEntityDataPacket();
|
||||
|
||||
int serverboundContainerClickPacket();
|
||||
|
||||
int serverboundSetCreativeModeSlotPacket();
|
||||
|
||||
@@ -166,6 +166,11 @@ public class PacketIds1_20 implements PacketIds {
|
||||
return PlayPacketIdHelper.byClazz(NetworkReflections.clazz$ClientboundMerchantOffersPacket, PacketFlow.CLIENTBOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int clientboundBlockEntityDataPacket() {
|
||||
return PlayPacketIdHelper.byClazz(NetworkReflections.clazz$ClientboundBlockEntityDataPacket, PacketFlow.CLIENTBOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int serverboundContainerClickPacket() {
|
||||
return PlayPacketIdHelper.byClazz(NetworkReflections.clazz$ServerboundContainerClickPacket, PacketFlow.SERVERBOUND);
|
||||
|
||||
@@ -165,6 +165,11 @@ public class PacketIds1_20_5 implements PacketIds {
|
||||
return PlayPacketIdHelper.byName("minecraft:merchant_offers", PacketFlow.CLIENTBOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int clientboundBlockEntityDataPacket() {
|
||||
return PlayPacketIdHelper.byName("minecraft:block_entity_data", PacketFlow.CLIENTBOUND);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int serverboundContainerClickPacket() {
|
||||
return PlayPacketIdHelper.byName("minecraft:container_click", PacketFlow.SERVERBOUND);
|
||||
|
||||
@@ -4491,4 +4491,9 @@ public final class CoreReflections {
|
||||
"world.item.trading.IMerchant",
|
||||
"world.item.trading.Merchant"
|
||||
));
|
||||
|
||||
public static final Class <?> clazz$BlockEntityType = requireNonNull(BukkitReflectionUtils.findReobfOrMojmapClass(
|
||||
"world.level.block.entity.TileEntityTypes",
|
||||
"world.level.block.entity.BlockEntityType"
|
||||
));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package net.momirealms.craftengine.bukkit.plugin.reflection.minecraft;
|
||||
|
||||
import net.momirealms.craftengine.bukkit.nms.FastNMS;
|
||||
import net.momirealms.craftengine.core.util.MiscUtils;
|
||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||
|
||||
public final class MBlockEntityTypes {
|
||||
private MBlockEntityTypes() {}
|
||||
|
||||
// 1.21.9+
|
||||
public static final Object SHELF ;
|
||||
public static final int SHELF$registryId;
|
||||
|
||||
private static Object getById(String id) {
|
||||
Object rl = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", id);
|
||||
return FastNMS.INSTANCE.method$Registry$getValue(MBuiltInRegistries.BLOCK_ENTITY_TYPE, rl);
|
||||
}
|
||||
|
||||
private static int getRegistryId(Object type) {
|
||||
if (type == null) return -1;
|
||||
return FastNMS.INSTANCE.method$Registry$getId(MBuiltInRegistries.BLOCK_ENTITY_TYPE, type);
|
||||
}
|
||||
|
||||
static {
|
||||
SHELF = MiscUtils.requireNonNullIf(getById("shelf"), VersionHelper.isOrAbove1_21_9());
|
||||
SHELF$registryId = getRegistryId("shelf"); // fixme 有问题,怎么是-1
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@ public final class MBuiltInRegistries {
|
||||
public static final Object MOB_EFFECT;
|
||||
public static final Object SOUND_EVENT;
|
||||
public static final Object ENTITY_TYPE;
|
||||
public static final Object BLOCK_ENTITY_TYPE;
|
||||
public static final Object FLUID;
|
||||
public static final Object RECIPE_TYPE;
|
||||
public static final Object PARTICLE_TYPE;
|
||||
@@ -35,6 +36,7 @@ public final class MBuiltInRegistries {
|
||||
Object registries$SoundEvent = null;
|
||||
Object registries$ParticleType = null;
|
||||
Object registries$EntityType = null;
|
||||
Object registries$BlockEntityType = null;
|
||||
Object registries$Item = null;
|
||||
Object registries$Fluid = null;
|
||||
Object registries$RecipeType = null;
|
||||
@@ -42,6 +44,7 @@ public final class MBuiltInRegistries {
|
||||
Object registries$DataComponentPredicateType = null;
|
||||
Object registries$LootPoolEntryType = null;
|
||||
Object registries$GameEvent = null;
|
||||
|
||||
for (Field field : fields) {
|
||||
Type fieldType = field.getGenericType();
|
||||
if (fieldType instanceof ParameterizedType paramType) {
|
||||
@@ -54,6 +57,8 @@ public final class MBuiltInRegistries {
|
||||
registries$EntityType = field.get(null);
|
||||
} else if (rawType == CoreReflections.clazz$RecipeType) {
|
||||
registries$RecipeType = field.get(null);
|
||||
} else if (rawType == CoreReflections.clazz$BlockEntityType) {
|
||||
registries$BlockEntityType = field.get(null);
|
||||
} else if (VersionHelper.isOrAbove1_20_5() && rawType == CoreReflections.clazz$DataComponentType && registries$DataComponentType == null) {
|
||||
registries$DataComponentType = field.get(null);
|
||||
} else if (VersionHelper.isOrAbove1_21_5() && rawType == CoreReflections.clazz$DataComponentPredicate$Type) {
|
||||
@@ -87,6 +92,7 @@ public final class MBuiltInRegistries {
|
||||
SOUND_EVENT = requireNonNull(registries$SoundEvent);
|
||||
PARTICLE_TYPE = requireNonNull(registries$ParticleType);
|
||||
ENTITY_TYPE = requireNonNull(registries$EntityType);
|
||||
BLOCK_ENTITY_TYPE = requireNonNull(registries$BlockEntityType);
|
||||
FLUID = requireNonNull(registries$Fluid);
|
||||
RECIPE_TYPE = requireNonNull(registries$RecipeType);
|
||||
LOOT_POOL_ENTRY_TYPE = requireNonNull(registries$LootPoolEntryType);
|
||||
|
||||
@@ -1,81 +1,80 @@
|
||||
package net.momirealms.craftengine.bukkit.plugin.reflection.minecraft;
|
||||
|
||||
import net.momirealms.craftengine.bukkit.nms.FastNMS;
|
||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||
|
||||
public final class MEntityTypes {
|
||||
private MEntityTypes() {}
|
||||
|
||||
public static final Object TEXT_DISPLAY;
|
||||
public static final int TEXT_DISPLAY$registryId;
|
||||
public static final Object ITEM_DISPLAY;
|
||||
public static final int ITEM_DISPLAY$registryId;
|
||||
public static final Object BLOCK_DISPLAY;
|
||||
public static final int BLOCK_DISPLAY$registryId;
|
||||
public static final Object ARMOR_STAND;
|
||||
public static final int ARMOR_STAND$registryId;
|
||||
public static final Object FALLING_BLOCK;
|
||||
public static final int FALLING_BLOCK$registryId;
|
||||
public static final Object INTERACTION;
|
||||
public static final int INTERACTION$registryId;
|
||||
public static final Object SHULKER;
|
||||
public static final int SHULKER$registryId;
|
||||
public static final Object OAK_BOAT;
|
||||
public static final int OAK_BOAT$registryId;
|
||||
public static final Object TRIDENT;
|
||||
public static final int TRIDENT$registryId;
|
||||
public static final Object ARROW;
|
||||
public static final int ARROW$registryId;
|
||||
public static final Object SPECTRAL_ARROW;
|
||||
public static final int SPECTRAL_ARROW$registryId;
|
||||
public static final Object SNOWBALL;
|
||||
public static final int SNOWBALL$registryId;
|
||||
public static final Object FIREBALL;
|
||||
public static final int FIREBALL$registryId;
|
||||
public static final Object EYE_OF_ENDER;
|
||||
public static final int EYE_OF_ENDER$registryId;
|
||||
public static final Object FIREWORK_ROCKET;
|
||||
public static final int FIREWORK_ROCKET$registryId;
|
||||
public static final Object ITEM;
|
||||
public static final int ITEM$registryId;
|
||||
public static final Object ITEM_FRAME;
|
||||
public static final int ITEM_FRAME$registryId;
|
||||
public static final Object GLOW_ITEM_FRAME;
|
||||
public static final int GLOW_ITEM_FRAME$registryId;
|
||||
public static final Object OMINOUS_ITEM_SPAWNER;
|
||||
public static final int OMINOUS_ITEM_SPAWNER$registryId;
|
||||
public static final Object SMALL_FIREBALL;
|
||||
public static final int SMALL_FIREBALL$registryId;
|
||||
public static final Object EGG;
|
||||
public static final int EGG$registryId;
|
||||
public static final Object ENDER_PEARL;
|
||||
public static final int ENDER_PEARL$registryId;
|
||||
public static final Object EXPERIENCE_BOTTLE;
|
||||
public static final int EXPERIENCE_BOTTLE$registryId;
|
||||
public static final Object POTION;
|
||||
public static final int POTION$registryId;
|
||||
public static final Object HAPPY_GHAST;
|
||||
public static final int HAPPY_GHAST$registryId;
|
||||
public static final Object PLAYER;
|
||||
public static final int PLAYER$registryId;
|
||||
public static final Object ENDERMAN;
|
||||
public static final int ENDERMAN$registryId;
|
||||
public static final Object TNT;
|
||||
public static final int TNT$registryId;
|
||||
public static final Object CHEST_MINECART;
|
||||
public static final int CHEST_MINECART$registryId;
|
||||
public static final Object COMMAND_BLOCK_MINECART;
|
||||
public static final int COMMAND_BLOCK_MINECART$registryId;
|
||||
public static final Object FURNACE_MINECART;
|
||||
public static final int FURNACE_MINECART$registryId;
|
||||
public static final Object HOPPER_MINECART;
|
||||
public static final int HOPPER_MINECART$registryId;
|
||||
public static final Object MINECART;
|
||||
public static final int MINECART$registryId;
|
||||
public static final Object SPAWNER_MINECART;
|
||||
public static final int SPAWNER_MINECART$registryId;
|
||||
public static final Object TNT_MINECART;
|
||||
public static final int TNT_MINECART$registryId;
|
||||
public static final Object TEXT_DISPLAY = getById("text_display");
|
||||
public static final int TEXT_DISPLAY$registryId = getRegistryId(TEXT_DISPLAY);
|
||||
public static final Object ITEM_DISPLAY = getById("item_display");
|
||||
public static final int ITEM_DISPLAY$registryId = getRegistryId(ITEM_DISPLAY);
|
||||
public static final Object BLOCK_DISPLAY = getById("block_display");
|
||||
public static final int BLOCK_DISPLAY$registryId = getRegistryId(BLOCK_DISPLAY);
|
||||
public static final Object ARMOR_STAND = getById("armor_stand");
|
||||
public static final int ARMOR_STAND$registryId = getRegistryId(ARMOR_STAND);
|
||||
public static final Object FALLING_BLOCK = getById("falling_block");
|
||||
public static final int FALLING_BLOCK$registryId = getRegistryId(FALLING_BLOCK);
|
||||
public static final Object INTERACTION = getById("interaction");
|
||||
public static final int INTERACTION$registryId = getRegistryId(INTERACTION);
|
||||
public static final Object SHULKER = getById("shulker");
|
||||
public static final int SHULKER$registryId = getRegistryId(SHULKER);
|
||||
public static final Object OAK_BOAT = getById("oak_boat");
|
||||
public static final int OAK_BOAT$registryId = getRegistryId(OAK_BOAT);
|
||||
public static final Object TRIDENT = getById("trident");
|
||||
public static final int TRIDENT$registryId = getRegistryId(TRIDENT);
|
||||
public static final Object ARROW = getById("arrow");
|
||||
public static final int ARROW$registryId = getRegistryId(ARROW);
|
||||
public static final Object SPECTRAL_ARROW = getById("spectral_arrow");
|
||||
public static final int SPECTRAL_ARROW$registryId = getRegistryId(SPECTRAL_ARROW);
|
||||
public static final Object SNOWBALL = getById("snowball");
|
||||
public static final int SNOWBALL$registryId = getRegistryId(SNOWBALL);
|
||||
public static final Object FIREBALL = getById("fireball");
|
||||
public static final int FIREBALL$registryId = getRegistryId(FIREBALL);
|
||||
public static final Object EYE_OF_ENDER = getById("eye_of_ender");
|
||||
public static final int EYE_OF_ENDER$registryId = getRegistryId(EYE_OF_ENDER);
|
||||
public static final Object FIREWORK_ROCKET = getById("firework_rocket");
|
||||
public static final int FIREWORK_ROCKET$registryId = getRegistryId(FIREWORK_ROCKET);
|
||||
public static final Object ITEM = getById("item");
|
||||
public static final int ITEM$registryId = getRegistryId(ITEM);
|
||||
public static final Object ITEM_FRAME = getById("item_frame");
|
||||
public static final int ITEM_FRAME$registryId = getRegistryId(ITEM_FRAME);
|
||||
public static final Object GLOW_ITEM_FRAME = getById("glow_item_frame");
|
||||
public static final int GLOW_ITEM_FRAME$registryId = getRegistryId(GLOW_ITEM_FRAME);
|
||||
public static final Object OMINOUS_ITEM_SPAWNER = getById("ominous_item_spawner");
|
||||
public static final int OMINOUS_ITEM_SPAWNER$registryId = getRegistryId(OMINOUS_ITEM_SPAWNER);
|
||||
public static final Object SMALL_FIREBALL = getById("small_fireball");
|
||||
public static final int SMALL_FIREBALL$registryId = getRegistryId(SMALL_FIREBALL);
|
||||
public static final Object EGG = getById("egg");
|
||||
public static final int EGG$registryId = getRegistryId(EGG);
|
||||
public static final Object ENDER_PEARL = getById("ender_pearl");
|
||||
public static final int ENDER_PEARL$registryId = getRegistryId(ENDER_PEARL);
|
||||
public static final Object EXPERIENCE_BOTTLE = getById("experience_bottle");
|
||||
public static final int EXPERIENCE_BOTTLE$registryId = getRegistryId(EXPERIENCE_BOTTLE);
|
||||
public static final Object POTION = getById("potion");
|
||||
public static final int POTION$registryId = getRegistryId(POTION);
|
||||
public static final Object HAPPY_GHAST = getById("happy_ghast");
|
||||
public static final int HAPPY_GHAST$registryId = getRegistryId(HAPPY_GHAST);
|
||||
public static final Object PLAYER = getById("player");
|
||||
public static final int PLAYER$registryId = getRegistryId(PLAYER);
|
||||
public static final Object ENDERMAN = getById("enderman");
|
||||
public static final int ENDERMAN$registryId = getRegistryId(ENDERMAN);
|
||||
public static final Object TNT = getById("tnt");
|
||||
public static final int TNT$registryId = getRegistryId(TNT);
|
||||
public static final Object CHEST_MINECART = getById("chest_minecart");
|
||||
public static final int CHEST_MINECART$registryId = getRegistryId(CHEST_MINECART);
|
||||
public static final Object COMMAND_BLOCK_MINECART = getById("command_block_minecart");
|
||||
public static final int COMMAND_BLOCK_MINECART$registryId = getRegistryId(COMMAND_BLOCK_MINECART);
|
||||
public static final Object FURNACE_MINECART = getById("furnace_minecart");
|
||||
public static final int FURNACE_MINECART$registryId = getRegistryId(FURNACE_MINECART);
|
||||
public static final Object HOPPER_MINECART = getById("hopper_minecart");
|
||||
public static final int HOPPER_MINECART$registryId = getRegistryId(HOPPER_MINECART);
|
||||
public static final Object MINECART = getById("minecart");
|
||||
public static final int MINECART$registryId = getRegistryId(MINECART);
|
||||
public static final Object SPAWNER_MINECART = getById("spawner_minecart");
|
||||
public static final int SPAWNER_MINECART$registryId = getRegistryId(SPAWNER_MINECART);
|
||||
public static final Object TNT_MINECART = getById("tnt_minecart");
|
||||
public static final int TNT_MINECART$registryId = getRegistryId(TNT_MINECART);
|
||||
|
||||
private static Object getById(String id) {
|
||||
Object rl = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", id);
|
||||
@@ -86,77 +85,4 @@ public final class MEntityTypes {
|
||||
if (type == null) return -1;
|
||||
return FastNMS.INSTANCE.method$Registry$getId(MBuiltInRegistries.ENTITY_TYPE, type);
|
||||
}
|
||||
|
||||
static {
|
||||
TEXT_DISPLAY = getById("text_display");
|
||||
TEXT_DISPLAY$registryId = getRegistryId(TEXT_DISPLAY);
|
||||
ITEM_DISPLAY = getById("item_display");
|
||||
ITEM_DISPLAY$registryId = getRegistryId(ITEM_DISPLAY);
|
||||
BLOCK_DISPLAY = getById("block_display");
|
||||
BLOCK_DISPLAY$registryId = getRegistryId(BLOCK_DISPLAY);
|
||||
FALLING_BLOCK = getById("falling_block");
|
||||
FALLING_BLOCK$registryId = getRegistryId(FALLING_BLOCK);
|
||||
INTERACTION = getById("interaction");
|
||||
INTERACTION$registryId = getRegistryId(INTERACTION);
|
||||
SHULKER = getById("shulker");
|
||||
SHULKER$registryId = getRegistryId(SHULKER);
|
||||
ARMOR_STAND = getById("armor_stand");
|
||||
ARMOR_STAND$registryId = getRegistryId(ARMOR_STAND);
|
||||
OAK_BOAT = getById(VersionHelper.isOrAbove1_21_2() ? "oak_boat" : "boat");
|
||||
OAK_BOAT$registryId = getRegistryId(OAK_BOAT);
|
||||
TRIDENT = getById("trident");
|
||||
TRIDENT$registryId = getRegistryId(TRIDENT);
|
||||
SNOWBALL = getById("snowball");
|
||||
SNOWBALL$registryId = getRegistryId(SNOWBALL);
|
||||
FIREBALL = getById("fireball");
|
||||
FIREBALL$registryId = getRegistryId(FIREBALL);
|
||||
EYE_OF_ENDER = getById("eye_of_ender");
|
||||
EYE_OF_ENDER$registryId = getRegistryId(EYE_OF_ENDER);
|
||||
FIREWORK_ROCKET = getById("firework_rocket");
|
||||
FIREWORK_ROCKET$registryId = getRegistryId(FIREWORK_ROCKET);
|
||||
ITEM = getById("item");
|
||||
ITEM$registryId = getRegistryId(ITEM);
|
||||
ITEM_FRAME = getById("item_frame");
|
||||
ITEM_FRAME$registryId = getRegistryId(ITEM_FRAME);
|
||||
GLOW_ITEM_FRAME = getById("glow_item_frame");
|
||||
GLOW_ITEM_FRAME$registryId = getRegistryId(GLOW_ITEM_FRAME);
|
||||
SMALL_FIREBALL = getById("small_fireball");
|
||||
SMALL_FIREBALL$registryId = getRegistryId(SMALL_FIREBALL);
|
||||
EGG = getById("egg");
|
||||
EGG$registryId = getRegistryId(EGG);
|
||||
ENDER_PEARL = getById("ender_pearl");
|
||||
ENDER_PEARL$registryId = getRegistryId(ENDER_PEARL);
|
||||
EXPERIENCE_BOTTLE = getById("experience_bottle");
|
||||
EXPERIENCE_BOTTLE$registryId = getRegistryId(EXPERIENCE_BOTTLE);
|
||||
POTION = getById("potion");
|
||||
POTION$registryId = getRegistryId(POTION);
|
||||
OMINOUS_ITEM_SPAWNER = VersionHelper.isOrAbove1_20_5() ? getById("ominous_item_spawner") : null;
|
||||
OMINOUS_ITEM_SPAWNER$registryId = getRegistryId(OMINOUS_ITEM_SPAWNER);
|
||||
HAPPY_GHAST = VersionHelper.isOrAbove1_21_6() ? getById("happy_ghast") : null;
|
||||
HAPPY_GHAST$registryId = getRegistryId(HAPPY_GHAST);
|
||||
PLAYER = getById("player");
|
||||
PLAYER$registryId = getRegistryId(PLAYER);
|
||||
ARROW = getById("arrow");
|
||||
ARROW$registryId = getRegistryId(ARROW);
|
||||
SPECTRAL_ARROW = getById("spectral_arrow");
|
||||
SPECTRAL_ARROW$registryId = getRegistryId(SPECTRAL_ARROW);
|
||||
ENDERMAN = getById("enderman");
|
||||
ENDERMAN$registryId = getRegistryId(ENDERMAN);
|
||||
TNT = getById("tnt");
|
||||
TNT$registryId = getRegistryId(TNT);
|
||||
CHEST_MINECART = getById("chest_minecart");
|
||||
CHEST_MINECART$registryId = getRegistryId(CHEST_MINECART);
|
||||
COMMAND_BLOCK_MINECART = getById("command_block_minecart");
|
||||
COMMAND_BLOCK_MINECART$registryId = getRegistryId(COMMAND_BLOCK_MINECART);
|
||||
FURNACE_MINECART = getById("furnace_minecart");
|
||||
FURNACE_MINECART$registryId = getRegistryId(FURNACE_MINECART);
|
||||
HOPPER_MINECART = getById("hopper_minecart");
|
||||
HOPPER_MINECART$registryId = getRegistryId(HOPPER_MINECART);
|
||||
MINECART = getById("minecart");
|
||||
MINECART$registryId = getRegistryId(MINECART);
|
||||
SPAWNER_MINECART = getById("spawner_minecart");
|
||||
SPAWNER_MINECART$registryId = getRegistryId(SPAWNER_MINECART);
|
||||
TNT_MINECART = getById("tnt_minecart");
|
||||
TNT_MINECART$registryId = getRegistryId(TNT_MINECART);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1713,4 +1713,11 @@ public final class NetworkReflections {
|
||||
throw new ReflectionInitException("Failed to initialize ItemCost$STREAM_CODEC", e);
|
||||
}
|
||||
}
|
||||
|
||||
public static final Class<?> clazz$ClientboundBlockEntityDataPacket = requireNonNull(
|
||||
BukkitReflectionUtils.findReobfOrMojmapClass(
|
||||
"network.protocol.game.PacketPlayOutTileEntityData",
|
||||
"network.protocol.game.ClientboundBlockEntityDataPacket"
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user