mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-28 03:19:14 +00:00
refactor(nms): 优化代码
This commit is contained in:
@@ -70,7 +70,7 @@ public class BlockEventListener implements Listener {
|
||||
try {
|
||||
Object soundType = Reflections.field$BlockBehaviour$soundType.get(ownerBlock);
|
||||
Object placeSound = Reflections.field$SoundType$placeSound.get(soundType);
|
||||
player.playSound(block.getLocation(), Reflections.field$SoundEvent$location.get(placeSound).toString(), SoundCategory.BLOCKS, 1f, 0.8f);
|
||||
player.playSound(block.getLocation(), FastNMS.INSTANCE.field$SoundEvent$location(placeSound).toString(), SoundCategory.BLOCKS, 1f, 0.8f);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
this.plugin.logger().warn("Failed to get sound type", e);
|
||||
}
|
||||
@@ -87,7 +87,7 @@ public class BlockEventListener implements Listener {
|
||||
Object ownerBlock = BlockStateUtils.getBlockOwner(blockState);
|
||||
Object soundType = Reflections.field$BlockBehaviour$soundType.get(ownerBlock);
|
||||
Object placeSound = Reflections.field$SoundType$placeSound.get(soundType);
|
||||
player.playSound(block.getLocation(), Reflections.field$SoundEvent$location.get(placeSound).toString(), SoundCategory.BLOCKS, 1f, 0.8f);
|
||||
player.playSound(block.getLocation(), FastNMS.INSTANCE.field$SoundEvent$location(placeSound).toString(), SoundCategory.BLOCKS, 1f, 0.8f);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
this.plugin.logger().warn("Failed to get sound type", e);
|
||||
}
|
||||
@@ -179,7 +179,7 @@ public class BlockEventListener implements Listener {
|
||||
try {
|
||||
Object soundType = Reflections.field$BlockBehaviour$soundType.get(ownerBlock);
|
||||
Object breakSound = Reflections.field$SoundType$breakSound.get(soundType);
|
||||
block.getWorld().playSound(block.getLocation(), Reflections.field$SoundEvent$location.get(breakSound).toString(), SoundCategory.BLOCKS, 1f, 0.8f);
|
||||
block.getWorld().playSound(block.getLocation(), FastNMS.INSTANCE.field$SoundEvent$location(breakSound).toString(), SoundCategory.BLOCKS, 1f, 0.8f);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
this.plugin.logger().warn("Failed to get sound type", e);
|
||||
}
|
||||
@@ -251,7 +251,7 @@ public class BlockEventListener implements Listener {
|
||||
try {
|
||||
Object soundType = Reflections.field$BlockBehaviour$soundType.get(ownerBlock);
|
||||
Object stepSound = Reflections.field$SoundType$stepSound.get(soundType);
|
||||
player.playSound(playerLocation, Reflections.field$SoundEvent$location.get(stepSound).toString(), SoundCategory.BLOCKS, 0.15f, 1f);
|
||||
player.playSound(playerLocation, FastNMS.INSTANCE.field$SoundEvent$location(stepSound).toString(), SoundCategory.BLOCKS, 0.15f, 1f);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
plugin.logger().warn("Failed to get sound type", e);
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import dev.dejvokep.boostedyaml.YamlDocument;
|
||||
import net.momirealms.craftengine.bukkit.compatibility.worldedit.WorldEditBlockRegister;
|
||||
import net.momirealms.craftengine.bukkit.nms.FastNMS;
|
||||
import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
|
||||
import net.momirealms.craftengine.bukkit.plugin.injector.BukkitInjector;
|
||||
import net.momirealms.craftengine.bukkit.plugin.network.PacketConsumers;
|
||||
@@ -327,7 +328,7 @@ public class BukkitBlockManager extends AbstractBlockManager {
|
||||
for (Object soundType : affectedSounds) {
|
||||
for (Field field : List.of(Reflections.field$SoundType$placeSound, Reflections.field$SoundType$fallSound, Reflections.field$SoundType$hitSound, Reflections.field$SoundType$stepSound, Reflections.field$SoundType$breakSound)) {
|
||||
Object soundEvent = field.get(soundType);
|
||||
Key previousId = Key.of(Reflections.field$SoundEvent$location.get(soundEvent).toString());
|
||||
Key previousId = Key.of(FastNMS.INSTANCE.field$SoundEvent$location(soundEvent).toString());
|
||||
soundMapperBuilder.put(previousId, Key.of(previousId.namespace(), "replaced." + previousId.value()));
|
||||
}
|
||||
}
|
||||
@@ -832,8 +833,8 @@ public class BukkitBlockManager extends AbstractBlockManager {
|
||||
return counter;
|
||||
}
|
||||
|
||||
private Object createResourceLocation(Key key) throws Exception {
|
||||
return Reflections.method$ResourceLocation$fromNamespaceAndPath.invoke(null, key.namespace(), key.value());
|
||||
private Object createResourceLocation(Key key) {
|
||||
return FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath(key.namespace(), key.value());
|
||||
}
|
||||
|
||||
private Object getBlockFromRegistry(Object resourceLocation) throws Exception {
|
||||
|
||||
@@ -117,7 +117,7 @@ public class LeavesBlockBehavior extends WaterLoggedBlockBehavior {
|
||||
if (event.isCancelled()) {
|
||||
return;
|
||||
}
|
||||
Reflections.method$Level$removeBlock.invoke(level, blockPos, false);
|
||||
FastNMS.INSTANCE.method$Level$removeBlock(level, blockPos, false);
|
||||
if (isWaterLogged(immutableBlockState)) {
|
||||
bukkitWorld.setBlockData(pos.x(), pos.y(), pos.z(), Material.WATER.createBlockData());
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public class SugarCaneBlockBehavior extends BushBlockBehavior {
|
||||
ImmutableBlockState currentState = BukkitBlockManager.instance().getImmutableBlockState(stateId);
|
||||
if (currentState != null && !currentState.isEmpty()) {
|
||||
// break the sugar cane
|
||||
Reflections.method$Level$removeBlock.invoke(level, blockPos, false);
|
||||
FastNMS.INSTANCE.method$Level$removeBlock(level, blockPos, false);
|
||||
Vec3d vec3d = Vec3d.atCenterOf(LocationUtils.fromBlockPos(blockPos));
|
||||
net.momirealms.craftengine.core.world.World world = new BukkitWorld(FastNMS.INSTANCE.method$Level$getCraftWorld(level));
|
||||
ContextHolder.Builder builder = ContextHolder.builder()
|
||||
|
||||
@@ -32,9 +32,7 @@ import org.bukkit.inventory.meta.BookMeta;
|
||||
import org.bukkit.inventory.view.AnvilView;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.*;
|
||||
|
||||
public class BukkitFontManager extends AbstractFontManager implements Listener {
|
||||
private final BukkitCraftEngine plugin;
|
||||
@@ -57,11 +55,11 @@ public class BukkitFontManager extends AbstractFontManager implements Listener {
|
||||
|
||||
@Override
|
||||
public void delayedLoad() {
|
||||
Map<UUID, String> oldCachedEmojiSuggestions = this.oldCachedEmojiSuggestions();
|
||||
List<String> oldCachedEmojiSuggestions = this.oldCachedEmojiSuggestions();
|
||||
super.delayedLoad();
|
||||
this.oldCachedEmojiSuggestions.putAll(this.cachedEmojiSuggestions());
|
||||
this.oldCachedEmojiSuggestions.addAll(this.cachedEmojiSuggestions());
|
||||
Bukkit.getOnlinePlayers().forEach(player -> {
|
||||
FastNMS.INSTANCE.method$ChatSuggestions$remove(oldCachedEmojiSuggestions.keySet(), player);
|
||||
player.removeCustomChatCompletions(oldCachedEmojiSuggestions);
|
||||
this.addEmojiSuggestions(player);
|
||||
});
|
||||
}
|
||||
@@ -73,18 +71,17 @@ public class BukkitFontManager extends AbstractFontManager implements Listener {
|
||||
}
|
||||
|
||||
private void addEmojiSuggestions(Player player) {
|
||||
Map<UUID, String> hasPermissions = new HashMap<>();
|
||||
Map<UUID, String> cachedEmojiSuggestions = this.cachedEmojiSuggestions();
|
||||
for (UUID uuid : cachedEmojiSuggestions.keySet()) {
|
||||
String keyword = cachedEmojiSuggestions.get(uuid);
|
||||
List<String> hasPermissions = new ArrayList<>();
|
||||
List<String> cachedEmojiSuggestions = this.cachedEmojiSuggestions();
|
||||
for (String keyword : cachedEmojiSuggestions) {
|
||||
Emoji emoji = super.emojiMapper.get(keyword);
|
||||
if (emoji == null) continue;
|
||||
if (emoji.permission() != null && !player.hasPermission(Objects.requireNonNull(emoji.permission()))) {
|
||||
continue;
|
||||
}
|
||||
hasPermissions.put(uuid, keyword);
|
||||
hasPermissions.add(keyword);
|
||||
}
|
||||
FastNMS.INSTANCE.method$ChatSuggestions$add(hasPermissions, player);
|
||||
player.addCustomChatCompletions(hasPermissions);
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
|
||||
|
||||
@@ -655,7 +655,7 @@ public class BukkitRecipeManager extends AbstractRecipeManager<ItemStack> {
|
||||
jsonObject.add("components", result.components());
|
||||
Object nmsStack = ItemObject.newItem(TagCompound.newTag(jsonObject.toString()));
|
||||
try {
|
||||
itemStack = (ItemStack) Reflections.method$CraftItemStack$asCraftMirror.invoke(null, nmsStack);
|
||||
itemStack = FastNMS.INSTANCE.method$CraftItemStack$asCraftMirror(nmsStack);
|
||||
} catch (Exception e) {
|
||||
this.plugin.logger().warn("Failed to create ItemStack mirror", e);
|
||||
return new ItemStack(Material.STICK);
|
||||
|
||||
@@ -43,7 +43,6 @@ import java.lang.reflect.InvocationTargetException;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
public class PacketConsumers {
|
||||
private static int[] mappings;
|
||||
@@ -1118,7 +1117,7 @@ public class PacketConsumers {
|
||||
if (!user.isOnline()) return;
|
||||
BukkitServerPlayer player = (BukkitServerPlayer) user;
|
||||
if (!player.isMiningBlock()) return;
|
||||
Object hand = Reflections.field$ServerboundSwingPacket$hand.get(packet);
|
||||
Object hand = FastNMS.INSTANCE.field$ServerboundSwingPacket$hand(packet);
|
||||
if (hand == Reflections.instance$InteractionHand$MAIN_HAND) {
|
||||
player.onSwingHand();
|
||||
}
|
||||
@@ -1150,7 +1149,7 @@ public class PacketConsumers {
|
||||
Object commonInfo = Reflections.field$ClientboundRespawnPacket$commonPlayerSpawnInfo.get(packet);
|
||||
dimensionKey = Reflections.field$CommonPlayerSpawnInfo$dimension.get(commonInfo);
|
||||
}
|
||||
Object location = Reflections.field$ResourceKey$location.get(dimensionKey);
|
||||
Object location = FastNMS.INSTANCE.field$ResourceKey$location(dimensionKey);
|
||||
World world = Bukkit.getWorld(Objects.requireNonNull(NamespacedKey.fromString(location.toString())));
|
||||
if (world != null) {
|
||||
int sectionCount = (world.getMaxHeight() - world.getMinHeight()) / 16;
|
||||
@@ -1175,7 +1174,7 @@ public class PacketConsumers {
|
||||
Object commonInfo = Reflections.field$ClientboundLoginPacket$commonPlayerSpawnInfo.get(packet);
|
||||
dimensionKey = Reflections.field$CommonPlayerSpawnInfo$dimension.get(commonInfo);
|
||||
}
|
||||
Object location = Reflections.field$ResourceKey$location.get(dimensionKey);
|
||||
Object location = FastNMS.INSTANCE.field$ResourceKey$location(dimensionKey);
|
||||
World world = Bukkit.getWorld(Objects.requireNonNull(NamespacedKey.fromString(location.toString())));
|
||||
if (world != null) {
|
||||
int sectionCount = (world.getMaxHeight() - world.getMinHeight()) / 16;
|
||||
@@ -1219,7 +1218,7 @@ public class PacketConsumers {
|
||||
if (bukkitPlayer.getGameMode() != GameMode.CREATIVE) return;
|
||||
int slot = VersionHelper.isVersionNewerThan1_20_5() ? Reflections.field$ServerboundSetCreativeModeSlotPacket$slotNum.getShort(packet) : Reflections.field$ServerboundSetCreativeModeSlotPacket$slotNum.getInt(packet);
|
||||
if (slot < 36 || slot > 44) return;
|
||||
ItemStack item = (ItemStack) Reflections.method$CraftItemStack$asCraftMirror.invoke(null, Reflections.field$ServerboundSetCreativeModeSlotPacket$itemStack.get(packet));
|
||||
ItemStack item = FastNMS.INSTANCE.method$CraftItemStack$asCraftMirror(Reflections.field$ServerboundSetCreativeModeSlotPacket$itemStack.get(packet));
|
||||
if (ItemUtils.isEmpty(item)) return;
|
||||
if (slot - 36 != bukkitPlayer.getInventory().getHeldItemSlot()) {
|
||||
return;
|
||||
|
||||
@@ -424,7 +424,7 @@ public class BukkitServerPlayer extends Player {
|
||||
Object blockOwner = Reflections.field$StateHolder$owner.get(this.destroyedState);
|
||||
Object soundType = Reflections.field$BlockBehaviour$soundType.get(blockOwner);
|
||||
Object soundEvent = Reflections.field$SoundType$hitSound.get(soundType);
|
||||
Object soundId = Reflections.field$SoundEvent$location.get(soundEvent);
|
||||
Object soundId = FastNMS.INSTANCE.field$SoundEvent$location(soundEvent);
|
||||
player.playSound(location, soundId.toString(), SoundCategory.BLOCKS, 0.5F, 0.5F);
|
||||
this.lastHitBlockTime = currentTick;
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ public class BlockStateUtils {
|
||||
public static int physicsEventToId(BlockPhysicsEvent event) throws ReflectiveOperationException {
|
||||
Object blockData = Reflections.field$BlockPhysicsEvent$changed.get(event);
|
||||
Object blockState = Reflections.field$CraftBlockData$data.get(blockData);
|
||||
return (int) Reflections.method$IdMapper$getId.invoke(Reflections.instance$BLOCK_STATE_REGISTRY, blockState);
|
||||
return FastNMS.INSTANCE.method$IdMapper$getId(Reflections.instance$BLOCK_STATE_REGISTRY, blockState);
|
||||
}
|
||||
|
||||
public static Object physicsEventToState(BlockPhysicsEvent event) throws ReflectiveOperationException {
|
||||
|
||||
@@ -11,6 +11,7 @@ import io.netty.handler.codec.ByteToMessageDecoder;
|
||||
import io.netty.handler.codec.MessageToByteEncoder;
|
||||
import io.papermc.paper.event.player.AsyncChatDecorateEvent;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.momirealms.craftengine.bukkit.nms.FastNMS;
|
||||
import net.momirealms.craftengine.core.util.ReflectionUtils;
|
||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||
import org.bukkit.Location;
|
||||
@@ -405,18 +406,21 @@ public class Reflections {
|
||||
BukkitReflectionUtils.assembleMCClass("core.HolderLookup$b")
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$Component$Serializer$fromJson0 = ReflectionUtils.getMethod(
|
||||
clazz$Component$Serializer,
|
||||
new String[] { "fromJson" },
|
||||
String.class, clazz$HolderLookup$Provider
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$Component$Serializer$fromJson1 = ReflectionUtils.getMethod(
|
||||
clazz$Component$Serializer,
|
||||
new String[] { "fromJson" },
|
||||
JsonElement.class, clazz$HolderLookup$Provider
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$Component$Serializer$toJson = ReflectionUtils.getMethod(
|
||||
clazz$Component$Serializer,
|
||||
new String[] { "toJson" },
|
||||
@@ -488,6 +492,7 @@ public class Reflections {
|
||||
ReflectionUtils.getInstanceDeclaredField(clazz$ServerPlayer, clazz$ServerGamePacketListenerImpl, 0)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$ServerGamePacketListenerImpl$sendPacket = requireNonNull(
|
||||
ReflectionUtils.getMethods(clazz$ServerGamePacketListenerImpl, void.class, clazz$Packet).get(0)
|
||||
);
|
||||
@@ -547,12 +552,14 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ClientboundAddEntityPacket$data = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ClientboundAddEntityPacket, int.class, 4
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ClientboundAddEntityPacket$type = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ClientboundAddEntityPacket, clazz$EntityType, 0
|
||||
@@ -577,6 +584,7 @@ public class Reflections {
|
||||
// )
|
||||
// );
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ClientboundAddEntityPacket$entityId = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ClientboundAddEntityPacket, int.class, 0
|
||||
@@ -595,18 +603,21 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$Vec3$x = requireNonNull(
|
||||
ReflectionUtils.getInstanceDeclaredField(
|
||||
clazz$Vec3, double.class, 0
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$Vec3$y = requireNonNull(
|
||||
ReflectionUtils.getInstanceDeclaredField(
|
||||
clazz$Vec3, double.class, 1
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$Vec3$z = requireNonNull(
|
||||
ReflectionUtils.getInstanceDeclaredField(
|
||||
clazz$Vec3, double.class, 2
|
||||
@@ -1086,6 +1097,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ResourceKey$location = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ResourceKey, clazz$ResourceLocation, 1
|
||||
@@ -1454,10 +1466,12 @@ public class Reflections {
|
||||
ReflectionUtils.getMethod(clazz$IdMapper, int.class)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$IdMapper$getId = requireNonNull(
|
||||
ReflectionUtils.getMethod(clazz$IdMapper, int.class, Object.class)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$IdMapper$byId = requireNonNull(
|
||||
ReflectionUtils.getMethod(clazz$IdMapper, Object.class, int.class)
|
||||
);
|
||||
@@ -1643,6 +1657,7 @@ public class Reflections {
|
||||
BukkitReflectionUtils.assembleMCClass("network.RegistryFriendlyByteBuf")
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Constructor<?> constructor$RegistryFriendlyByteBuf = Optional.ofNullable(clazz$RegistryFriendlyByteBuf)
|
||||
.map(it -> ReflectionUtils.getConstructor(it, 0))
|
||||
.orElse(null);
|
||||
@@ -1751,6 +1766,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ClientboundLevelChunkWithLightPacket$chunkData = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ClientboundLevelChunkWithLightPacket, clazz$ClientboundLevelChunkPacketData, 0
|
||||
@@ -1787,6 +1803,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$CraftChunk$worldServer = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$CraftChunk, clazz$ServerLevel, 0
|
||||
@@ -2165,6 +2182,7 @@ public class Reflections {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$ResourceLocation$fromNamespaceAndPath = requireNonNull(
|
||||
ReflectionUtils.getStaticMethod(
|
||||
clazz$ResourceLocation, clazz$ResourceLocation, String.class, String.class
|
||||
@@ -2443,6 +2461,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Constructor<?> constructor$AABB = requireNonNull(
|
||||
ReflectionUtils.getConstructor(
|
||||
clazz$AABB, double.class, double.class, double.class, double.class, double.class, double.class
|
||||
@@ -2562,12 +2581,14 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ClientboundLevelParticlesPacket$particle = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ClientboundLevelParticlesPacket, clazz$ParticleOptions, 0
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$BlockParticleOption$blockState = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$BlockParticleOption, clazz$BlockState, 0
|
||||
@@ -2634,6 +2655,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$SoundEvent$location = requireNonNull(
|
||||
ReflectionUtils.getInstanceDeclaredField(
|
||||
clazz$SoundEvent, clazz$ResourceLocation, 0
|
||||
@@ -2673,6 +2695,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Constructor<?> constructor$ClientboundLightUpdatePacket = requireNonNull(
|
||||
ReflectionUtils.getConstructor(
|
||||
clazz$ClientboundLightUpdatePacket, clazz$ChunkPos, clazz$LevelLightEngine, BitSet.class, BitSet.class
|
||||
@@ -2713,6 +2736,7 @@ public class Reflections {
|
||||
);
|
||||
|
||||
// 1.20 ~ 1.21.4 moonrise
|
||||
@Deprecated
|
||||
public static final Method method$ChunkHolder$getPlayers =
|
||||
ReflectionUtils.getMethod(
|
||||
clazz$ChunkHolder, List.class, boolean.class
|
||||
@@ -2792,12 +2816,14 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ServerboundPlayerActionPacket$pos = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ServerboundPlayerActionPacket, clazz$BlockPos, 0
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ServerboundPlayerActionPacket$action = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ServerboundPlayerActionPacket, clazz$ServerboundPlayerActionPacket$Action, 0
|
||||
@@ -2832,17 +2858,17 @@ public class Reflections {
|
||||
static {
|
||||
try {
|
||||
if (VersionHelper.isVersionNewerThan1_20_5()) {
|
||||
Object block_break_speed = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "block_break_speed" : "player.block_break_speed");
|
||||
Object block_break_speed = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "block_break_speed" : "player.block_break_speed");
|
||||
@SuppressWarnings("unchecked")
|
||||
Optional<Object> breakSpeedHolder = (Optional<Object>) method$Registry$getHolder0.invoke(instance$BuiltInRegistries$ATTRIBUTE, block_break_speed);
|
||||
instance$Holder$Attribute$block_break_speed = breakSpeedHolder.orElse(null);
|
||||
|
||||
Object block_interaction_range = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "block_interaction_range" : "player.block_interaction_range");
|
||||
Object block_interaction_range = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "block_interaction_range" : "player.block_interaction_range");
|
||||
@SuppressWarnings("unchecked")
|
||||
Optional<Object> blockInteractionRangeHolder = (Optional<Object>) method$Registry$getHolder0.invoke(instance$BuiltInRegistries$ATTRIBUTE, block_interaction_range);
|
||||
instance$Holder$Attribute$block_interaction_range = blockInteractionRangeHolder.orElse(null);
|
||||
|
||||
Object scale = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "scale" : "generic.scale");
|
||||
Object scale = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", VersionHelper.isVersionNewerThan1_21_2() ? "scale" : "generic.scale");
|
||||
@SuppressWarnings("unchecked")
|
||||
Optional<Object> scaleHolder = (Optional<Object>) method$Registry$getHolder0.invoke(instance$BuiltInRegistries$ATTRIBUTE, scale);
|
||||
instance$Holder$Attribute$scale = scaleHolder.orElse(null);
|
||||
@@ -2986,6 +3012,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$ServerboundSwingPacket$hand = requireNonNull(
|
||||
ReflectionUtils.getDeclaredField(
|
||||
clazz$ServerboundSwingPacket, clazz$InteractionHand, 0
|
||||
@@ -3198,11 +3225,11 @@ public class Reflections {
|
||||
// for 1.20.1-1.20.4
|
||||
static {
|
||||
try {
|
||||
Object mining_fatigue = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "mining_fatigue");
|
||||
Object mining_fatigue = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "mining_fatigue");
|
||||
instance$MobEffecr$mining_fatigue = method$Registry$get.invoke(instance$BuiltInRegistries$MOB_EFFECT, mining_fatigue);
|
||||
Object haste = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "haste");
|
||||
Object haste = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "haste");
|
||||
instance$MobEffecr$haste = method$Registry$get.invoke(instance$BuiltInRegistries$MOB_EFFECT, haste);
|
||||
Object invisibility = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "invisibility");
|
||||
Object invisibility = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "invisibility");
|
||||
instance$MobEffecr$invisibility = method$Registry$get.invoke(instance$BuiltInRegistries$MOB_EFFECT, invisibility);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
@@ -3289,7 +3316,7 @@ public class Reflections {
|
||||
|
||||
static {
|
||||
try {
|
||||
Object key = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "intentionally_empty");
|
||||
Object key = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "intentionally_empty");
|
||||
instance$SoundEvent$EMPTY = method$Registry$get.invoke(instance$BuiltInRegistries$SOUND_EVENT, key);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
@@ -3361,6 +3388,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$CraftItemStack$asCraftMirror = requireNonNull(
|
||||
ReflectionUtils.getStaticMethod(
|
||||
clazz$CraftItemStack, clazz$CraftItemStack, new String[]{"asCraftMirror"}, clazz$ItemStack
|
||||
@@ -3531,17 +3559,17 @@ public class Reflections {
|
||||
|
||||
static {
|
||||
try {
|
||||
Object air = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "air");
|
||||
Object air = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "air");
|
||||
instance$Blocks$AIR = method$Registry$get.invoke(instance$BuiltInRegistries$BLOCK, air);
|
||||
instance$Blocks$AIR$defaultState = method$Block$defaultBlockState.invoke(instance$Blocks$AIR);
|
||||
Object fire = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "fire");
|
||||
Object fire = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "fire");
|
||||
instance$Blocks$FIRE = method$Registry$get.invoke(instance$BuiltInRegistries$BLOCK, fire);
|
||||
Object soulFire = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "soul_fire");
|
||||
Object soulFire = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "soul_fire");
|
||||
instance$Blocks$SOUL_FIRE = method$Registry$get.invoke(instance$BuiltInRegistries$BLOCK, soulFire);
|
||||
Object stone = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "stone");
|
||||
Object stone = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "stone");
|
||||
instance$Blocks$STONE = method$Registry$get.invoke(instance$BuiltInRegistries$BLOCK, stone);
|
||||
instance$Blocks$STONE$defaultState = method$Block$defaultBlockState.invoke(instance$Blocks$STONE);
|
||||
Object ice = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "ice");
|
||||
Object ice = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "ice");
|
||||
instance$Blocks$ICE = method$Registry$get.invoke(instance$BuiltInRegistries$BLOCK, ice);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
@@ -3554,6 +3582,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$Level$removeBlock = requireNonNull(
|
||||
ReflectionUtils.getMethod(
|
||||
clazz$Level, boolean.class, clazz$BlockPos, boolean.class
|
||||
@@ -3723,19 +3752,19 @@ public class Reflections {
|
||||
|
||||
static {
|
||||
try {
|
||||
Object textDisplay = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "text_display");
|
||||
Object textDisplay = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "text_display");
|
||||
instance$EntityType$TEXT_DISPLAY = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, textDisplay);
|
||||
Object itemDisplay = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "item_display");
|
||||
Object itemDisplay = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "item_display");
|
||||
instance$EntityType$ITEM_DISPLAY = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, itemDisplay);
|
||||
Object blockDisplay = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "block_display");
|
||||
Object blockDisplay = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "block_display");
|
||||
instance$EntityType$BLOCK_DISPLAY = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, blockDisplay);
|
||||
Object fallingBlock = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "falling_block");
|
||||
Object fallingBlock = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "falling_block");
|
||||
instance$EntityType$FALLING_BLOCK = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, fallingBlock);
|
||||
Object interaction = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "interaction");
|
||||
Object interaction = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "interaction");
|
||||
instance$EntityType$INTERACTION = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, interaction);
|
||||
Object shulker = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "shulker");
|
||||
Object shulker = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "shulker");
|
||||
instance$EntityType$SHULKER = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, shulker);
|
||||
Object armorStand = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "armor_stand");
|
||||
Object armorStand = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "armor_stand");
|
||||
instance$EntityType$ARMOR_STAND = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ENTITY_TYPE, armorStand);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
@@ -3752,13 +3781,13 @@ public class Reflections {
|
||||
|
||||
static {
|
||||
try {
|
||||
instance$RecipeType$CRAFTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "crafting"));
|
||||
instance$RecipeType$SMELTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "smelting"));
|
||||
instance$RecipeType$BLASTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "blasting"));
|
||||
instance$RecipeType$SMOKING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "smoking"));
|
||||
instance$RecipeType$CAMPFIRE_COOKING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "campfire_cooking"));
|
||||
instance$RecipeType$STONECUTTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "stonecutting"));
|
||||
instance$RecipeType$SMITHING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "smithing"));
|
||||
instance$RecipeType$CRAFTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "crafting"));
|
||||
instance$RecipeType$SMELTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "smelting"));
|
||||
instance$RecipeType$BLASTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "blasting"));
|
||||
instance$RecipeType$SMOKING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "smoking"));
|
||||
instance$RecipeType$CAMPFIRE_COOKING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "campfire_cooking"));
|
||||
instance$RecipeType$STONECUTTING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "stonecutting"));
|
||||
instance$RecipeType$SMITHING = Reflections.method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$RECIPE_TYPE, FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "smithing"));
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
@@ -3813,6 +3842,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$BlockStateBase$onPlace = requireNonNull(
|
||||
ReflectionUtils.getMethod(
|
||||
clazz$BlockStateBase, void.class, clazz$Level, clazz$BlockPos, clazz$BlockState, boolean.class
|
||||
@@ -3858,10 +3888,10 @@ public class Reflections {
|
||||
|
||||
static {
|
||||
try {
|
||||
Object air = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "air");
|
||||
Object air = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "air");
|
||||
instance$Items$AIR = method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ITEM, air);
|
||||
instance$ItemStack$Air = constructor$ItemStack.newInstance(instance$Items$AIR);
|
||||
Object waterBucket = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "water_bucket");
|
||||
Object waterBucket = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "water_bucket");
|
||||
instance$Items$WATER_BUCKET = method$Registry$get.invoke(Reflections.instance$BuiltInRegistries$ITEM, waterBucket);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
@@ -4088,15 +4118,15 @@ public class Reflections {
|
||||
|
||||
static {
|
||||
try {
|
||||
Object waterId = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "water");
|
||||
Object waterId = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "water");
|
||||
instance$Fluids$WATER = method$Registry$get.invoke(instance$BuiltInRegistries$FLUID, waterId);
|
||||
Object flowingWaterId = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "flowing_water");
|
||||
Object flowingWaterId = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "flowing_water");
|
||||
instance$Fluids$FLOWING_WATER = method$Registry$get.invoke(instance$BuiltInRegistries$FLUID, flowingWaterId);
|
||||
Object lavaId = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "lava");
|
||||
Object lavaId = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "lava");
|
||||
instance$Fluids$LAVA = method$Registry$get.invoke(instance$BuiltInRegistries$FLUID, lavaId);
|
||||
Object flowingLavaId = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "flowing_lava");
|
||||
Object flowingLavaId = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "flowing_lava");
|
||||
instance$Fluids$FLOWING_LAVA = method$Registry$get.invoke(instance$BuiltInRegistries$FLUID, flowingLavaId);
|
||||
Object emptyId = method$ResourceLocation$fromNamespaceAndPath.invoke(null, "minecraft", "empty");
|
||||
Object emptyId = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", "empty");
|
||||
instance$Fluids$EMPTY = method$Registry$get.invoke(instance$BuiltInRegistries$FLUID, emptyId);
|
||||
} catch (ReflectiveOperationException e) {
|
||||
throw new RuntimeException(e);
|
||||
@@ -4509,6 +4539,7 @@ public class Reflections {
|
||||
.map(it -> ReflectionUtils.getDeclaredField(it, 1))
|
||||
.orElse(null);
|
||||
|
||||
@Deprecated
|
||||
public static final Field field$RecipeHolder$id = Optional.ofNullable(clazz$RecipeHolder)
|
||||
.map(it -> ReflectionUtils.getDeclaredField(it, 0))
|
||||
.orElse(null);
|
||||
@@ -5967,6 +5998,7 @@ public class Reflections {
|
||||
)
|
||||
);
|
||||
|
||||
@Deprecated
|
||||
public static final Method method$Entity$getId = requireNonNull(
|
||||
VersionHelper.isVersionNewerThan1_20_5()
|
||||
? ReflectionUtils.getMethod(clazz$Entity, int.class, new String[]{"getId"})
|
||||
|
||||
Reference in New Issue
Block a user