From a100d2d798f3a57aaae8cc6d8ad65aa80a17e729 Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Sat, 16 May 2026 13:02:20 +0200 Subject: [PATCH] Remove more Reflection stuff --- .../steamwar/fightsystem/utils/HullHider.java | 12 ++++----- MissileWars/build.gradle.kts | 2 +- .../misslewars/slowmo/SlowMoUtils.java | 8 +++--- .../src/de/steamwar/core/ProtocolWrapper.java | 3 +-- .../src/de/steamwar/core/WorldIdentifier.java | 3 ++- .../src/de/steamwar/entity/RPlayer.java | 26 ++++--------------- 6 files changed, 18 insertions(+), 36 deletions(-) diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/HullHider.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/HullHider.java index 49aaf4dd..29751f50 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/HullHider.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/HullHider.java @@ -21,7 +21,6 @@ package de.steamwar.fightsystem.utils; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.Reflection; -import de.steamwar.core.Core; import de.steamwar.entity.REntity; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.fight.Fight; @@ -37,6 +36,8 @@ import lombok.Getter; import net.minecraft.core.Vec3i; import net.minecraft.network.protocol.game.ClientboundExplodePacket; import net.minecraft.network.protocol.game.ClientboundLevelEventPacket; +import net.minecraft.network.protocol.game.ClientboundLevelParticlesPacket; +import net.minecraft.network.protocol.game.ClientboundSoundPacket; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -76,10 +77,8 @@ public class HullHider implements Listener { packetHiders.put(packetPlayOutWorldEvent, this::worldEventHider); packetHiders.put(packetPlayOutExplosion, this::explosionHider); - posHiderGenerator("net.minecraft.network.protocol.game.ClientboundLevelParticlesPacket", Core.getVersion() >= 18 ? double.class : float.class, 1.0); - posHiderGenerator("net.minecraft.network.protocol.game.ClientboundSoundPacket", int.class, 8.0); - if(Core.getVersion() >= 9 && Core.getVersion() < 18) - posHiderGenerator("net.minecraft.network.protocol.game.PacketPlayOutCustomSoundEffect", int.class, 8.0); + posHiderGenerator(ClientboundLevelParticlesPacket.class, double.class, 1.0); + posHiderGenerator(ClientboundSoundPacket.class, int.class, 8.0); new StateDependentListener(TechHiderWrapper.ENABLED, FightState.Schem, this); new StateDependent(TechHiderWrapper.ENABLED, FightState.Schem) { @@ -215,8 +214,7 @@ public class HullHider implements Listener { return ReflectionWrapper.impl.explosionHider(player, packet, this::packetHider); } - private void posHiderGenerator(String typeName, Class posType, double factor) { - Class type = Reflection.getClass(typeName); + private void posHiderGenerator(Class type, Class posType, double factor) { Function location = posPacketToLocation(type, posType, factor); packetHiders.put(type, (player, packet) -> packetHider(player, packet, location.apply(packet))); } diff --git a/MissileWars/build.gradle.kts b/MissileWars/build.gradle.kts index 16dc6622..c6b757e1 100644 --- a/MissileWars/build.gradle.kts +++ b/MissileWars/build.gradle.kts @@ -33,6 +33,6 @@ dependencies { compileOnly(libs.spigotapi) - compileOnly(libs.nms20) + compileOnly(libs.nms21) compileOnly(libs.fawe21) } diff --git a/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java b/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java index 4630784d..c5e01cc4 100644 --- a/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java +++ b/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java @@ -19,9 +19,10 @@ package de.steamwar.misslewars.slowmo; -import de.steamwar.Reflection; +import net.minecraft.server.level.ServerLevel; import org.bukkit.Bukkit; import org.bukkit.World; +import org.bukkit.craftbukkit.CraftWorld; import java.lang.reflect.Field; @@ -30,7 +31,6 @@ public class SlowMoUtils { private static final Field field; public static final boolean freezeEnabled; - private static final Reflection.Method getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("org.bukkit.craftbukkit.CraftWorld"), "getHandle", null); private static boolean frozen = false; private static final World world; @@ -38,7 +38,7 @@ public class SlowMoUtils { static { Field temp; try { - temp = Reflection.getClass("net.minecraft.server.level.ServerLevel").getField("freezed"); + temp = ServerLevel.class.getField("freezed"); } catch (NoSuchFieldException e) { temp = null; } @@ -64,7 +64,7 @@ public class SlowMoUtils { if (freezeEnabled) { if (frozen == state) return; try { - field.set(getWorldHandle.invoke(world), state); + field.set(((CraftWorld) world).getHandle(), state); frozen = state; } catch (IllegalAccessException e) { // Ignored; diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java index 3c2d8a2c..d6fdd3f2 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java @@ -21,7 +21,6 @@ package de.steamwar.core; import com.mojang.authlib.GameProfile; import com.mojang.datafixers.util.Pair; -import de.steamwar.Reflection; import net.minecraft.network.protocol.game.ClientboundAddEntityPacket; import net.minecraft.network.protocol.game.ClientboundPlayerInfoRemovePacket; import net.minecraft.network.protocol.game.ClientboundPlayerInfoUpdatePacket; @@ -42,7 +41,7 @@ public class ProtocolWrapper { public static final Class equipmentPacket = ClientboundSetEquipmentPacket.class; // 0: hand, 1: offhand, 2: feet, 3: legs, 4: chest, 5: head - public static final Object[] itemSlots = Core.getVersion() > 8 ? Reflection.getClass("net.minecraft.world.entity.EnumItemSlot").getEnumConstants() : new Integer[]{0, 0, 1, 2, 3, 4}; + public static final EquipmentSlot[] itemSlots = EquipmentSlot.values(); public static final ProtocolWrapper impl = new ProtocolWrapper(); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldIdentifier.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldIdentifier.java index ebd7c699..d9edd2c7 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldIdentifier.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/WorldIdentifier.java @@ -25,6 +25,7 @@ import de.steamwar.linkage.Linked; import net.minecraft.network.protocol.game.ClientboundLoginPacket; import net.minecraft.network.protocol.game.CommonPlayerSpawnInfo; import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.Level; @Linked @@ -33,7 +34,7 @@ public class WorldIdentifier { private static ResourceKey resourceKey = null; private static final Class resourceKeyClass = ResourceKey.class; - private static final Class minecraftKeyClass = Reflection.getClass("net.minecraft.resources.MinecraftKey"); + private static final Class minecraftKeyClass = ResourceLocation.class; private static final Reflection.Constructor resourceKeyConstructor = Reflection.getConstructor(resourceKeyClass, minecraftKeyClass, minecraftKeyClass); private static final Reflection.Constructor minecraftKeyConstructor = Reflection.getConstructor(minecraftKeyClass, String.class, String.class); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java index 9883cdde..fec92cae 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java @@ -21,8 +21,10 @@ package de.steamwar.entity; import com.mojang.authlib.GameProfile; import com.mojang.authlib.properties.Property; -import de.steamwar.Reflection; -import de.steamwar.core.*; +import de.steamwar.core.BountifulWrapper; +import de.steamwar.core.Core; +import de.steamwar.core.ProtocolWrapper; +import de.steamwar.core.TrickyTrialsWrapper; import de.steamwar.network.CoreNetworkHandler; import de.steamwar.network.NetworkSender; import de.steamwar.network.packets.common.PlayerSkinRequestPacket; @@ -36,7 +38,6 @@ import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.UUID; import java.util.function.Consumer; -import java.util.function.Function; public class RPlayer extends REntity { @@ -114,24 +115,7 @@ public class RPlayer extends REntity { packetSink.accept(ProtocolWrapper.impl.playerInfoPacketConstructor(ProtocolWrapper.PlayerInfoAction.REMOVE, saved, GameMode.CREATIVE)); } - private static Class namedSpawnPacket = null; - private static Function namedSpawnPacketGenerator = null; - private static Reflection.Field namedSpawnUUID = null; - - static { - try { - namedSpawnPacket = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundAddPlayerPacket"); - namedSpawnPacketGenerator = spawnPacketGenerator(namedSpawnPacket, Core.getVersion() == 8 ? 1 : 0); - namedSpawnUUID = Reflection.getField(namedSpawnPacket, UUID.class, 0); - } catch (IllegalArgumentException e) { } - } - private Object getNamedSpawnPacket() { - if (Core.getVersion() >= 21) return PacketConstructor.impl.createRPlayerSpawn(this); - - Object packet = namedSpawnPacketGenerator.apply(this); - namedSpawnUUID.set(packet, uuid); - FlatteningWrapper.impl.setNamedSpawnPacketDataWatcher(packet); - return packet; + return PacketConstructor.impl.createRPlayerSpawn(this); } }