From 0f73939bf02f3a496194c6bc9115a5f4fafa713f Mon Sep 17 00:00:00 2001 From: Lixfel Date: Thu, 26 Dec 2024 19:11:01 +0100 Subject: [PATCH] Move and rename Reflection fields --- .../bausystem/utils/NMSWrapper15.java | 22 +- .../utils/PlayerMovementWrapper15.java | 5 +- .../bausystem/utils/NMSWrapper18.java | 26 +- .../utils/PlayerMovementWrapper18.java | 3 +- .../bausystem/utils/NMSWrapper19.java | 27 +- .../utils/PlayerMovementWrapper19.java | 7 +- .../bausystem/utils/NMSWrapper20.java | 16 +- .../utils/PlayerMovementWrapper20.java | 8 +- .../bausystem/utils/NMSWrapper21.java | 8 +- .../features/observer/ObserverTracer.java | 2 +- .../features/simulator/SimulatorCursor.java | 2 +- .../smartplace/SmartPlaceListener.java | 2 +- .../features/tpslimit/PacketCache.java | 10 +- .../features/tpslimit/TPSFreezeUtils.java | 8 +- .../features/tpslimit/TPSLimitUtils.java | 5 +- .../features/util/NoClipCommand.java | 4 +- .../features/world/AntiCursorReCentering.java | 2 +- .../features/world/NoCreativeKnockback.java | 2 +- .../features/world/SignEditFrom20.java | 16 +- .../features/world/SignEditUntil19.java | 14 +- .../bausystem/features/xray/XrayCommand.java | 2 +- .../bausystem/utils/PlaceItemUtils.java | 8 +- .../utils/PlayerMovementWrapper.java | 5 +- .../bausystem/utils/WorldEditUtils.java | 4 +- .../fightsystem/utils/BlockIdWrapper14.java | 30 +- .../fightsystem/utils/BlockIdWrapper18.java | 4 +- .../utils/CraftbukkitWrapper18.java | 14 +- .../fightsystem/utils/HullHiderWrapper18.java | 4 +- .../fightsystem/utils/BlockIdWrapper8.java | 12 +- .../fightsystem/utils/HullHiderWrapper8.java | 6 +- .../fightsystem/utils/BountifulWrapper9.java | 4 +- .../de/steamwar/fightsystem/ai/AIManager.java | 2 +- .../fightsystem/commands/Commands.java | 4 +- .../de/steamwar/fightsystem/fight/Kit.java | 8 +- .../fightsystem/listener/ArrowStopper.java | 2 +- .../fightsystem/listener/ClickAnalyzer.java | 2 +- .../fightsystem/listener/Recording.java | 6 +- .../fightsystem/utils/BlockIdWrapper.java | 6 +- .../steamwar/fightsystem/utils/HullHider.java | 14 +- .../misslewars/slowmo/SlowMoUtils.java | 4 +- .../de/steamwar/core/FlatteningWrapper14.java | 18 +- .../src/de/steamwar/techhider/BlockIds14.java | 14 +- .../steamwar/techhider/ProtocolWrapper14.java | 6 +- .../steamwar/core/CraftbukkitWrapper18.java | 6 +- .../de/steamwar/core/ProtocolWrapper18.java | 10 +- .../de/steamwar/techhider/ChunkHider18.java | 18 +- .../steamwar/techhider/ProtocolWrapper18.java | 10 +- .../de/steamwar/core/ProtocolWrapper19.java | 10 +- .../steamwar/core/CraftbukkitWrapper20.java | 6 +- .../de/steamwar/core/BountifulWrapper21.java | 4 +- .../steamwar/core/CraftbukkitWrapper21.java | 6 +- .../de/steamwar/core/BountifulWrapper8.java | 25 +- .../src/de/steamwar/core/ChatWrapper8.java | 8 +- .../de/steamwar/core/FlatteningWrapper8.java | 16 +- .../de/steamwar/core/ProtocolWrapper8.java | 12 +- .../de/steamwar/scoreboard/SWScoreboard8.java | 18 +- .../de/steamwar/techhider/ChunkHider8.java | 2 +- .../steamwar/techhider/ProtocolWrapper8.java | 18 +- .../de/steamwar/core/BountifulWrapper9.java | 29 +- .../de/steamwar/core/CraftbukkitWrapper9.java | 6 +- .../de/steamwar/techhider/ChunkHider9.java | 14 +- .../comphenix/tinyprotocol/Reflection.java | 416 ------------------ .../comphenix/tinyprotocol/TinyProtocol.java | 15 +- .../src/de/steamwar/Reflection.java | 206 +++++++++ .../de/steamwar/core/CheckpointUtilsJ9.java | 6 +- .../src/de/steamwar/core/CommandRemover.java | 6 +- .../src/de/steamwar/core/Core.java | 5 +- .../src/de/steamwar/core/ErrorHandler.java | 4 +- .../de/steamwar/core/FlatteningWrapper.java | 2 +- .../src/de/steamwar/core/ProtocolWrapper.java | 4 +- .../src/de/steamwar/core/TPSWatcher.java | 6 +- .../core/authlib/AuthlibInjector.java | 4 +- .../de/steamwar/core/events/AntiNocom.java | 8 +- .../core/events/PartialChunkFixer.java | 8 +- .../src/de/steamwar/entity/REntity.java | 36 +- .../src/de/steamwar/entity/REntityServer.java | 8 +- .../src/de/steamwar/entity/RPlayer.java | 4 +- .../network/handlers/ServerDataHandler.java | 2 +- .../de/steamwar/techhider/ProtocolUtils.java | 2 +- .../src/de/steamwar/techhider/TechHider.java | 24 +- 80 files changed, 547 insertions(+), 805 deletions(-) delete mode 100644 SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/Reflection.java create mode 100644 SpigotCore/SpigotCore_Main/src/de/steamwar/Reflection.java diff --git a/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/NMSWrapper15.java b/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/NMSWrapper15.java index 3b56be55..f279980d 100644 --- a/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/NMSWrapper15.java +++ b/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/NMSWrapper15.java @@ -19,27 +19,21 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.bausystem.features.util.NoClipCommand; import net.minecraft.server.v1_15_R1.*; -import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.craftbukkit.v1_15_R1.entity.CraftEntity; import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_15_R1.inventory.CraftItemStack; import org.bukkit.entity.Player; -import org.bukkit.entity.TNTPrimed; import org.bukkit.inventory.ItemStack; -import java.util.ArrayList; import java.util.List; -import java.util.function.LongSupplier; public class NMSWrapper15 implements NMSWrapper { - private static final Reflection.FieldAccessor playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); + private static final Reflection.Field playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); @Override @SuppressWarnings("deprecation") @@ -63,7 +57,7 @@ public class NMSWrapper15 implements NMSWrapper { player.updateInventory(); } - private static final Reflection.FieldAccessor gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, int.class, 0); + private static final Reflection.Field gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, int.class, 0); @Override public void setGameStateChangeReason(Object packet) { @@ -121,11 +115,11 @@ public class NMSWrapper15 implements NMSWrapper { } private final Class explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion"); - private final Reflection.FieldAccessor a = Reflection.getField(explosionPacket, double.class, 0); - private final Reflection.FieldAccessor b = Reflection.getField(explosionPacket, double.class, 1); - private final Reflection.FieldAccessor c = Reflection.getField(explosionPacket, double.class, 2); - private final Reflection.FieldAccessor d = Reflection.getField(explosionPacket, float.class, 0); - private final Reflection.FieldAccessor e = Reflection.getField(explosionPacket, List.class, 0); + private final Reflection.Field a = Reflection.getField(explosionPacket, double.class, 0); + private final Reflection.Field b = Reflection.getField(explosionPacket, double.class, 1); + private final Reflection.Field c = Reflection.getField(explosionPacket, double.class, 2); + private final Reflection.Field d = Reflection.getField(explosionPacket, float.class, 0); + private final Reflection.Field e = Reflection.getField(explosionPacket, List.class, 0); @Override public Object resetExplosionKnockback(Object packet) { diff --git a/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/PlayerMovementWrapper15.java b/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/PlayerMovementWrapper15.java index 12f80cdb..f290f7dd 100644 --- a/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/PlayerMovementWrapper15.java +++ b/BauSystem/BauSystem_15/src/de/steamwar/bausystem/utils/PlayerMovementWrapper15.java @@ -19,12 +19,9 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; -import de.steamwar.bausystem.utils.PlayerMovementWrapper; +import de.steamwar.Reflection; import net.minecraft.server.v1_15_R1.EntityPlayer; import net.minecraft.server.v1_15_R1.PacketPlayInFlying; -import net.minecraft.server.v1_15_R1.PacketPlayOutEntity; -import net.minecraft.server.v1_15_R1.PacketPlayOutEntityTeleport; import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer; import org.bukkit.entity.Player; diff --git a/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/NMSWrapper18.java b/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/NMSWrapper18.java index c12ce0af..22438d02 100644 --- a/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/NMSWrapper18.java +++ b/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/NMSWrapper18.java @@ -19,36 +19,26 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; -import com.comphenix.tinyprotocol.TinyProtocol; +import de.steamwar.Reflection; import de.steamwar.bausystem.features.util.NoClipCommand; -import net.minecraft.SystemUtils; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.*; import net.minecraft.server.level.PlayerInteractManager; import net.minecraft.world.level.EnumGamemode; -import net.minecraft.world.phys.Vec3D; -import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack; import org.bukkit.entity.Player; -import org.bukkit.entity.TNTPrimed; import org.bukkit.inventory.ItemStack; -import java.util.ArrayList; import java.util.List; -import java.util.function.LongSupplier; public class NMSWrapper18 implements NMSWrapper { - private static final Reflection.FieldAccessor playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); + private static final Reflection.Field playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); @Override @SuppressWarnings("deprecation") @@ -73,7 +63,7 @@ public class NMSWrapper18 implements NMSWrapper { player.updateInventory(); } - private static final Reflection.FieldAccessor gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); + private static final Reflection.Field gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); @Override public void setGameStateChangeReason(Object packet) { @@ -131,11 +121,11 @@ public class NMSWrapper18 implements NMSWrapper { } private final Class explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion"); - private final Reflection.FieldAccessor a = Reflection.getField(explosionPacket, double.class, 0); - private final Reflection.FieldAccessor b = Reflection.getField(explosionPacket, double.class, 1); - private final Reflection.FieldAccessor c = Reflection.getField(explosionPacket, double.class, 2); - private final Reflection.FieldAccessor d = Reflection.getField(explosionPacket, float.class, 0); - private final Reflection.FieldAccessor e = Reflection.getField(explosionPacket, List.class, 0); + private final Reflection.Field a = Reflection.getField(explosionPacket, double.class, 0); + private final Reflection.Field b = Reflection.getField(explosionPacket, double.class, 1); + private final Reflection.Field c = Reflection.getField(explosionPacket, double.class, 2); + private final Reflection.Field d = Reflection.getField(explosionPacket, float.class, 0); + private final Reflection.Field e = Reflection.getField(explosionPacket, List.class, 0); @Override public Object resetExplosionKnockback(Object packet) { diff --git a/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/PlayerMovementWrapper18.java b/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/PlayerMovementWrapper18.java index d1e186d2..0f1ba669 100644 --- a/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/PlayerMovementWrapper18.java +++ b/BauSystem/BauSystem_18/src/de/steamwar/bausystem/utils/PlayerMovementWrapper18.java @@ -19,8 +19,7 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; -import de.steamwar.bausystem.utils.PlayerMovementWrapper; +import de.steamwar.Reflection; import net.minecraft.network.protocol.game.PacketPlayInFlying; import net.minecraft.server.level.EntityPlayer; import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer; diff --git a/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/NMSWrapper19.java b/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/NMSWrapper19.java index ecdc33be..2c5b2415 100644 --- a/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/NMSWrapper19.java +++ b/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/NMSWrapper19.java @@ -19,37 +19,26 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; -import com.comphenix.tinyprotocol.TinyProtocol; +import de.steamwar.Reflection; import de.steamwar.bausystem.features.util.NoClipCommand; -import net.minecraft.SystemUtils; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; -import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.game.*; -import net.minecraft.network.syncher.DataWatcher; import net.minecraft.server.level.PlayerInteractManager; import net.minecraft.world.level.EnumGamemode; -import net.minecraft.world.phys.Vec3D; -import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; -import org.bukkit.World; -import org.bukkit.craftbukkit.v1_19_R2.entity.CraftEntity; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer; import org.bukkit.craftbukkit.v1_19_R2.inventory.CraftItemStack; import org.bukkit.entity.Player; -import org.bukkit.entity.TNTPrimed; import org.bukkit.inventory.ItemStack; -import java.util.ArrayList; import java.util.List; -import java.util.function.LongSupplier; public class NMSWrapper19 implements NMSWrapper { - private static final Reflection.FieldAccessor playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); + private static final Reflection.Field playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); @Override @SuppressWarnings("deprecation") @@ -73,7 +62,7 @@ public class NMSWrapper19 implements NMSWrapper { player.updateInventory(); } - private static final Reflection.FieldAccessor gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); + private static final Reflection.Field gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); @Override public void setGameStateChangeReason(Object packet) { @@ -131,11 +120,11 @@ public class NMSWrapper19 implements NMSWrapper { } private final Class explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion"); - private final Reflection.FieldAccessor a = Reflection.getField(explosionPacket, double.class, 0); - private final Reflection.FieldAccessor b = Reflection.getField(explosionPacket, double.class, 1); - private final Reflection.FieldAccessor c = Reflection.getField(explosionPacket, double.class, 2); - private final Reflection.FieldAccessor d = Reflection.getField(explosionPacket, float.class, 0); - private final Reflection.FieldAccessor e = Reflection.getField(explosionPacket, List.class, 0); + private final Reflection.Field a = Reflection.getField(explosionPacket, double.class, 0); + private final Reflection.Field b = Reflection.getField(explosionPacket, double.class, 1); + private final Reflection.Field c = Reflection.getField(explosionPacket, double.class, 2); + private final Reflection.Field d = Reflection.getField(explosionPacket, float.class, 0); + private final Reflection.Field e = Reflection.getField(explosionPacket, List.class, 0); @Override public Object resetExplosionKnockback(Object packet) { diff --git a/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/PlayerMovementWrapper19.java b/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/PlayerMovementWrapper19.java index 9815023c..af152ea5 100644 --- a/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/PlayerMovementWrapper19.java +++ b/BauSystem/BauSystem_19/src/de/steamwar/bausystem/utils/PlayerMovementWrapper19.java @@ -19,17 +19,12 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import net.minecraft.network.protocol.game.PacketPlayInFlying; import net.minecraft.server.level.EntityPlayer; -import org.bukkit.Location; import org.bukkit.craftbukkit.v1_19_R2.entity.CraftPlayer; import org.bukkit.entity.Player; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - public class PlayerMovementWrapper19 implements PlayerMovementWrapper { @Override diff --git a/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/NMSWrapper20.java b/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/NMSWrapper20.java index 1cb81892..a6d0a8e5 100644 --- a/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/NMSWrapper20.java +++ b/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/NMSWrapper20.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.bausystem.features.util.NoClipCommand; import net.minecraft.nbt.NBTBase; import net.minecraft.nbt.NBTTagCompound; @@ -40,7 +40,7 @@ import java.util.List; public class NMSWrapper20 implements NMSWrapper { - private static final Reflection.FieldAccessor playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); + private static final Reflection.Field playerGameMode = Reflection.getField(PlayerInteractManager.class, EnumGamemode.class, 0); @Override @SuppressWarnings("deprecation") @@ -64,7 +64,7 @@ public class NMSWrapper20 implements NMSWrapper { player.updateInventory(); } - private static final Reflection.FieldAccessor gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); + private static final Reflection.Field gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); @Override public void setGameStateChangeReason(Object packet) { @@ -122,11 +122,11 @@ public class NMSWrapper20 implements NMSWrapper { } private final Class explosionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion"); - private final Reflection.FieldAccessor a = Reflection.getField(explosionPacket, double.class, 0); - private final Reflection.FieldAccessor b = Reflection.getField(explosionPacket, double.class, 1); - private final Reflection.FieldAccessor c = Reflection.getField(explosionPacket, double.class, 2); - private final Reflection.FieldAccessor d = Reflection.getField(explosionPacket, float.class, 0); - private final Reflection.FieldAccessor e = Reflection.getField(explosionPacket, List.class, 0); + private final Reflection.Field a = Reflection.getField(explosionPacket, double.class, 0); + private final Reflection.Field b = Reflection.getField(explosionPacket, double.class, 1); + private final Reflection.Field c = Reflection.getField(explosionPacket, double.class, 2); + private final Reflection.Field d = Reflection.getField(explosionPacket, float.class, 0); + private final Reflection.Field e = Reflection.getField(explosionPacket, List.class, 0); @Override public Object resetExplosionKnockback(Object packet) { diff --git a/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/PlayerMovementWrapper20.java b/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/PlayerMovementWrapper20.java index 75701471..f7866a4a 100644 --- a/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/PlayerMovementWrapper20.java +++ b/BauSystem/BauSystem_20/src/de/steamwar/bausystem/utils/PlayerMovementWrapper20.java @@ -19,18 +19,12 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import net.minecraft.network.protocol.game.PacketPlayInFlying; -import net.minecraft.network.protocol.game.PacketPlayOutEntityTeleport; import net.minecraft.server.level.EntityPlayer; -import org.bukkit.Location; import org.bukkit.craftbukkit.v1_20_R1.entity.CraftPlayer; import org.bukkit.entity.Player; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - public class PlayerMovementWrapper20 implements PlayerMovementWrapper { @Override diff --git a/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/NMSWrapper21.java b/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/NMSWrapper21.java index 1c3ce035..e6308e43 100644 --- a/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/NMSWrapper21.java +++ b/BauSystem/BauSystem_21/src/de/steamwar/bausystem/utils/NMSWrapper21.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.bausystem.features.util.NoClipCommand; import net.minecraft.core.component.DataComponents; import net.minecraft.nbt.NBTBase; @@ -45,7 +45,7 @@ import java.util.Optional; public class NMSWrapper21 implements NMSWrapper { - private static final Reflection.FieldAccessor playerInteractManager = Reflection.getField(EntityPlayer.class, null, PlayerInteractManager.class); + private static final Reflection.Field playerInteractManager = Reflection.getField(EntityPlayer.class, null, PlayerInteractManager.class); @Override public void setInternalGameMode(Player player, GameMode gameMode) { @@ -68,14 +68,14 @@ public class NMSWrapper21 implements NMSWrapper { player.updateInventory(); } - private static final Reflection.FieldAccessor gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); + private static final Reflection.Field gameStateChangeReason = Reflection.getField(NoClipCommand.gameStateChange, PacketPlayOutGameStateChange.a.class, 12); @Override public void setGameStateChangeReason(Object packet) { gameStateChangeReason.set(packet, PacketPlayOutGameStateChange.d); } - private static final Reflection.FieldAccessor playerAbilities = Reflection.getField(EntityHuman.class, null, PlayerAbilities.class); + private static final Reflection.Field playerAbilities = Reflection.getField(EntityHuman.class, null, PlayerAbilities.class); @Override public void setPlayerBuildAbilities(Player player) { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/observer/ObserverTracer.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/observer/ObserverTracer.java index 9f641e65..75cecff5 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/observer/ObserverTracer.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/observer/ObserverTracer.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.observer; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.bausystem.region.Point; import org.bukkit.Location; import org.bukkit.Material; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/SimulatorCursor.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/SimulatorCursor.java index a7664158..23261b62 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/SimulatorCursor.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/simulator/SimulatorCursor.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.simulator; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.Permission; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceListener.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceListener.java index 10916beb..36cb3847 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceListener.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/smartplace/SmartPlaceListener.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.smartplace; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.Permission; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/PacketCache.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/PacketCache.java index e9076382..fd8eb66b 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/PacketCache.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/PacketCache.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.tpslimit; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.BountifulWrapper; import de.steamwar.core.ChatWrapper; @@ -46,17 +46,17 @@ class PacketCache { private static BukkitTask task = null; private static Class vec3dClass = Reflection.getClass("{nms.world.phys}.Vec3D"); - private static Reflection.FieldAccessor zeroVec3d = (Reflection.FieldAccessor) Reflection.getField(vec3dClass, vec3dClass, 0); + private static Reflection.Field zeroVec3d = (Reflection.Field) Reflection.getField(vec3dClass, vec3dClass, 0); private static Object ZERO_VEC3D = zeroVec3d.get(null); private static Class velocityPacketClass = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityVelocity"); - private static Reflection.ConstructorInvoker velocityPacketConstructor = Reflection.getConstructor(velocityPacketClass, int.class, vec3dClass); + private static Reflection.Constructor velocityPacketConstructor = Reflection.getConstructor(velocityPacketClass, int.class, vec3dClass); private static Class teleportPacketClass = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityTeleport"); private static Class entityClass = Reflection.getClass("{nms.world.entity}.Entity"); - private static Reflection.ConstructorInvoker teleportPacketConstructor = Reflection.getConstructor(teleportPacketClass, entityClass); + private static Reflection.Constructor teleportPacketConstructor = Reflection.getConstructor(teleportPacketClass, entityClass); private static Class craftEntityClass = Reflection.getClass("{obc}.entity.CraftEntity"); - private static Reflection.MethodInvoker getHandle = Reflection.getMethod(craftEntityClass, "getHandle"); + private static Reflection.Method getHandle = Reflection.getMethod(craftEntityClass, "getHandle"); private static Object noGravityDataWatcher = BountifulWrapper.impl.getDataWatcherObject(5, Boolean.class); private static Object fuseDataWatcher = BountifulWrapper.impl.getDataWatcherObject(8, Integer.class); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSFreezeUtils.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSFreezeUtils.java index 34981161..45b6154f 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSFreezeUtils.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSFreezeUtils.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.tpslimit; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import lombok.Getter; import lombok.experimental.UtilityClass; import org.bukkit.Bukkit; @@ -28,11 +28,11 @@ import org.bukkit.World; @UtilityClass public class TPSFreezeUtils { - private static Reflection.FieldAccessor fieldAccessor; + private static Reflection.Field fieldAccessor; @Getter private static final boolean canFreeze; - private static final Reflection.MethodInvoker getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle", null); + private static final Reflection.Method getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle", null); @Getter private static boolean frozen = false; @@ -40,7 +40,7 @@ public class TPSFreezeUtils { private static final World world = Bukkit.getWorlds().get(0); static { - Reflection.FieldAccessor fieldAccessor; + Reflection.Field fieldAccessor; try { fieldAccessor = Reflection.getField(Reflection.getClass("{nms.server.level}.WorldServer"), "freezed", boolean.class); } catch (IllegalArgumentException e) { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSLimitUtils.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSLimitUtils.java index cdc38f2d..83b8e104 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSLimitUtils.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/tpslimit/TPSLimitUtils.java @@ -19,15 +19,12 @@ package de.steamwar.bausystem.features.tpslimit; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; -import de.steamwar.bausystem.SWUtils; import de.steamwar.bausystem.utils.PlayerMovementWrapper; import de.steamwar.core.Core; -import de.steamwar.core.TPSWatcher; import lombok.experimental.UtilityClass; import org.bukkit.Bukkit; -import org.bukkit.World; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitTask; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/util/NoClipCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/util/NoClipCommand.java index 867ad83d..565286a1 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/util/NoClipCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/util/NoClipCommand.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.util; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import com.mojang.authlib.GameProfile; import de.steamwar.bausystem.BauSystem; @@ -50,7 +50,7 @@ import java.util.function.BiFunction; public class NoClipCommand extends SWCommand implements Listener { public static final Class gameStateChange = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutGameStateChange"); - private static final Reflection.FieldAccessor floatFieldAccessor = Reflection.getField(gameStateChange, float.class, 0); + private static final Reflection.Field floatFieldAccessor = Reflection.getField(gameStateChange, float.class, 0); private static final Class position = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInFlying$PacketPlayInPosition"); private static final Class positionLook = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInFlying$PacketPlayInPositionLook"); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/AntiCursorReCentering.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/AntiCursorReCentering.java index ff04aa5f..646120d3 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/AntiCursorReCentering.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/AntiCursorReCentering.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.world; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.bausystem.BauSystem; import de.steamwar.linkage.Linked; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/NoCreativeKnockback.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/NoCreativeKnockback.java index 19417ec2..72146f9d 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/NoCreativeKnockback.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/NoCreativeKnockback.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.world; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.bausystem.utils.NMSWrapper; import de.steamwar.linkage.Linked; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java index 1ccfb014..4fc0cb31 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditFrom20.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.world; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.Permission; @@ -52,17 +52,17 @@ public class SignEditFrom20 implements Listener { private static final Class craftBlock = Reflection.getClass("{obc}.block.CraftBlock"); private static final Class craftWorld = Reflection.getClass("{obc}.CraftWorld"); private static final Class generatorAccess = Reflection.getClass("{nms.world.level}.GeneratorAccess"); - private static final Reflection.MethodInvoker getPosition = Reflection.getTypedMethod(craftBlock, "getPosition", blockPosition); - private static final Reflection.MethodInvoker getWorldHandle = Reflection.getTypedMethod(craftWorld, "getHandle", null); - private static final Reflection.MethodInvoker at = Reflection.getTypedMethod(craftBlock, "at", craftBlock, generatorAccess, blockPosition); + private static final Reflection.Method getPosition = Reflection.getTypedMethod(craftBlock, "getPosition", blockPosition); + private static final Reflection.Method getWorldHandle = Reflection.getTypedMethod(craftWorld, "getHandle", null); + private static final Reflection.Method at = Reflection.getTypedMethod(craftBlock, "at", craftBlock, generatorAccess, blockPosition); private static final Class openSign = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutOpenSignEditor"); - private static final Reflection.FieldAccessor blockPositionFieldAccessor = Reflection.getField(openSign, blockPosition, 0); - private static final Reflection.FieldAccessor sideFieldAccessor = Reflection.getField(openSign, boolean.class, 0); + private static final Reflection.Field blockPositionFieldAccessor = Reflection.getField(openSign, blockPosition, 0); + private static final Reflection.Field sideFieldAccessor = Reflection.getField(openSign, boolean.class, 0); private static final Class updateSign = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInUpdateSign"); - private static final Reflection.FieldAccessor getBlockPositionFieldAccessor = Reflection.getField(updateSign, blockPosition, 0); - private static final Reflection.FieldAccessor stringFieldAccessor = Reflection.getField(updateSign, String[].class, 0); + private static final Reflection.Field getBlockPositionFieldAccessor = Reflection.getField(updateSign, blockPosition, 0); + private static final Reflection.Field stringFieldAccessor = Reflection.getField(updateSign, String[].class, 0); @EventHandler public void editSign(PlayerInteractEvent event) { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditUntil19.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditUntil19.java index 7aebd4e9..81cf2786 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditUntil19.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/world/SignEditUntil19.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.world; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.Permission; @@ -44,16 +44,16 @@ public class SignEditUntil19 implements Listener { private static final Class craftBlock = Reflection.getClass("{obc}.block.CraftBlock"); private static final Class craftWorld = Reflection.getClass("{obc}.CraftWorld"); private static final Class generatorAccess = Reflection.getClass("{nms.world.level}.GeneratorAccess"); - private static final Reflection.MethodInvoker getPosition = Reflection.getTypedMethod(craftBlock, "getPosition", blockPosition); - private static final Reflection.MethodInvoker getWorldHandle = Reflection.getTypedMethod(craftWorld, "getHandle", null); - private static final Reflection.MethodInvoker at = Reflection.getTypedMethod(craftBlock, "at", craftBlock, generatorAccess, blockPosition); + private static final Reflection.Method getPosition = Reflection.getTypedMethod(craftBlock, "getPosition", blockPosition); + private static final Reflection.Method getWorldHandle = Reflection.getTypedMethod(craftWorld, "getHandle", null); + private static final Reflection.Method at = Reflection.getTypedMethod(craftBlock, "at", craftBlock, generatorAccess, blockPosition); private static final Class openSign = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutOpenSignEditor"); - private static final Reflection.FieldAccessor blockPositionFieldAccessor = Reflection.getField(openSign, blockPosition, 0); + private static final Reflection.Field blockPositionFieldAccessor = Reflection.getField(openSign, blockPosition, 0); private static final Class updateSign = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInUpdateSign"); - private static final Reflection.FieldAccessor getBlockPositionFieldAccessor = Reflection.getField(updateSign, blockPosition, 0); - private static final Reflection.FieldAccessor stringFieldAccessor = Reflection.getField(updateSign, String[].class, 0); + private static final Reflection.Field getBlockPositionFieldAccessor = Reflection.getField(updateSign, blockPosition, 0); + private static final Reflection.Field stringFieldAccessor = Reflection.getField(updateSign, String[].class, 0); @EventHandler public void editSign(PlayerInteractEvent event) { diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/xray/XrayCommand.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/xray/XrayCommand.java index 59e88ec5..da7981ae 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/xray/XrayCommand.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/features/xray/XrayCommand.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.features.xray; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.bausystem.BauSystem; import de.steamwar.bausystem.features.techhider.TechHiderCommand; diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlaceItemUtils.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlaceItemUtils.java index bec908a6..e235cae4 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlaceItemUtils.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlaceItemUtils.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.experimental.UtilityClass; @@ -82,11 +82,11 @@ public class PlaceItemUtils { } private static final Class blockPosition = Reflection.getClass("{nms.core}.BlockPosition"); - private static final Reflection.ConstructorInvoker blockPositionConstructor = Reflection.getConstructor(blockPosition, int.class, int.class, int.class); + private static final Reflection.Constructor blockPositionConstructor = Reflection.getConstructor(blockPosition, int.class, int.class, int.class); private static final Class craftBlock = Reflection.getClass("{obc}.block.CraftBlockState"); private static final Class craftWorld = Reflection.getClass("{obc}.CraftWorld"); - private static final Reflection.FieldAccessor positionAccessor = Reflection.getField(craftBlock, blockPosition, 0); - private static final Reflection.FieldAccessor worldAccessor = Reflection.getField(craftBlock, craftWorld, 0); + private static final Reflection.Field positionAccessor = Reflection.getField(craftBlock, blockPosition, 0); + private static final Reflection.Field worldAccessor = Reflection.getField(craftBlock, craftWorld, 0); /** * Attempt to place an {@link ItemStack} the {@link Player} is holding against a {@link Block} inside the World. diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlayerMovementWrapper.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlayerMovementWrapper.java index 15aea7f0..b0cebfdd 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlayerMovementWrapper.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/PlayerMovementWrapper.java @@ -19,17 +19,16 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.bausystem.BauSystem; import de.steamwar.core.BountifulWrapper; -import de.steamwar.core.Core; import de.steamwar.core.VersionDependent; import de.steamwar.entity.REntity; import org.bukkit.entity.Player; public interface PlayerMovementWrapper { Class teleportPacket = REntity.teleportPacket; - Reflection.FieldAccessor teleportEntity = REntity.teleportEntity; + Reflection.Field teleportEntity = REntity.teleportEntity; BountifulWrapper.PositionSetter teleportPosition = REntity.teleportPosition; PlayerMovementWrapper impl = VersionDependent.getVersionImpl(BauSystem.getInstance()); diff --git a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/WorldEditUtils.java b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/WorldEditUtils.java index 4d20f346..3fef4e48 100644 --- a/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/WorldEditUtils.java +++ b/BauSystem/BauSystem_Main/src/de/steamwar/bausystem/utils/WorldEditUtils.java @@ -19,7 +19,7 @@ package de.steamwar.bausystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.sk89q.worldedit.EditSession; import com.sk89q.worldedit.IncompleteRegionException; import com.sk89q.worldedit.LocalSession; @@ -100,7 +100,7 @@ public class WorldEditUtils { .getSessionManager() .get(BukkitAdapter.adapt(player)); - Reflection.ConstructorInvoker constructorInvoker = Reflection.getConstructor(clazz, com.sk89q.worldedit.world.World.class); + Reflection.Constructor constructorInvoker = Reflection.getConstructor(clazz, com.sk89q.worldedit.world.World.class); RegionSelector regionSelector = (RegionSelector) constructorInvoker.invoke(BukkitAdapter.adapt(player.getWorld())); localSession.setRegionSelector(BukkitAdapter.adapt(player.getWorld()), regionSelector); diff --git a/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/BlockIdWrapper14.java b/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/BlockIdWrapper14.java index 5030cb04..84eba7c4 100644 --- a/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/BlockIdWrapper14.java +++ b/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/BlockIdWrapper14.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.core.Core; import de.steamwar.fightsystem.Config; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; @@ -34,10 +34,10 @@ import java.util.Map; public class BlockIdWrapper14 implements BlockIdWrapper { private static final Class chunkProviderServer = Reflection.getClass("{nms.server.level}.ChunkProviderServer"); - private static final Reflection.MethodInvoker getChunkProvider = Reflection.getTypedMethod(worldServer, null, chunkProviderServer); + private static final Reflection.Method getChunkProvider = Reflection.getTypedMethod(worldServer, null, chunkProviderServer); private static final Class playerChunkMap = Reflection.getClass("{nms.server.level}.PlayerChunkMap"); - private static final Reflection.FieldAccessor getPlayerChunkMap = Reflection.getField(chunkProviderServer, playerChunkMap, 0); - private static final Reflection.FieldAccessor entityTrackers = Core.getVersion() > 15 ? Reflection.getField(playerChunkMap, Int2ObjectMap.class, 0) : Reflection.getField(playerChunkMap, org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.ints.Int2ObjectMap.class, 0); + private static final Reflection.Field getPlayerChunkMap = Reflection.getField(chunkProviderServer, playerChunkMap, 0); + private static final Reflection.Field entityTrackers = Core.getVersion() > 15 ? Reflection.getField(playerChunkMap, Int2ObjectMap.class, 0) : Reflection.getField(playerChunkMap, org.bukkit.craftbukkit.libs.it.unimi.dsi.fastutil.ints.Int2ObjectMap.class, 0); private static final Class block = Reflection.getClass("{nms.world.level.block}.Block"); private static final Class iBlockData = Reflection.getClass("{nms.world.level.block.state}.IBlockData"); private static final Class blockPosition = Reflection.getClass("{nms.core}.BlockPosition"); @@ -47,18 +47,18 @@ public class BlockIdWrapper14 implements BlockIdWrapper { trackers = entityTrackers.get(getPlayerChunkMap.get(getChunkProvider.invoke(getWorldHandle.invoke(Config.world)))); } - private static final Reflection.MethodInvoker getCombinedId = Reflection.getTypedMethod(block, null, int.class, iBlockData); - private static final Reflection.MethodInvoker getNMS = Reflection.getTypedMethod(Reflection.getClass("{obc}.block.CraftBlock"), "getNMS", iBlockData); + private static final Reflection.Method getCombinedId = Reflection.getTypedMethod(block, null, int.class, iBlockData); + private static final Reflection.Method getNMS = Reflection.getTypedMethod(Reflection.getClass("{obc}.block.CraftBlock"), "getNMS", iBlockData); @Override public int blockToId(Block block) { return (int) getCombinedId.invoke(null, getNMS.invoke(block)); } - private static final Reflection.MethodInvoker getByCombinedId = Reflection.getTypedMethod(block, null, iBlockData, int.class); - private static final Reflection.ConstructorInvoker newBlockPosition = Reflection.getConstructor(blockPosition, int.class, int.class, int.class); - private static final Reflection.MethodInvoker getTypeAndData = Reflection.getMethod(worldServer, null, blockPosition, iBlockData, int.class); - private static final Reflection.MethodInvoker removeTileEntity = Reflection.getMethod(worldServer, Core.getVersion() > 15 ? "m" : "removeTileEntity", blockPosition); - private static final Reflection.MethodInvoker flagDirty = Reflection.getMethod(chunkProviderServer, null, blockPosition); + private static final Reflection.Method getByCombinedId = Reflection.getTypedMethod(block, null, iBlockData, int.class); + private static final Reflection.Constructor newBlockPosition = Reflection.getConstructor(blockPosition, int.class, int.class, int.class); + private static final Reflection.Method getTypeAndData = Reflection.getMethod(worldServer, null, blockPosition, iBlockData, int.class); + private static final Reflection.Method removeTileEntity = Reflection.getMethod(worldServer, Core.getVersion() > 15 ? "m" : "removeTileEntity", blockPosition); + private static final Reflection.Method flagDirty = Reflection.getMethod(chunkProviderServer, null, blockPosition); @Override public void setBlock(World world, int x, int y, int z, int blockState) { Object blockData = getByCombinedId.invoke(null, blockState); @@ -71,7 +71,7 @@ public class BlockIdWrapper14 implements BlockIdWrapper { } private static final Class entityTracker = Reflection.getClass("{nms.server.level}.PlayerChunkMap$EntityTracker"); - private static final Reflection.MethodInvoker updatePlayer = Reflection.getMethod(entityTracker, Core.getVersion() > 15 ? "b" : "updatePlayer", entityPlayer); + private static final Reflection.Method updatePlayer = Reflection.getMethod(entityTracker, Core.getVersion() > 15 ? "b" : "updatePlayer", entityPlayer); @Override public void trackEntity(Player player, Entity entity) { Object tracker = trackers.get(entity.getEntityId()); @@ -79,7 +79,7 @@ public class BlockIdWrapper14 implements BlockIdWrapper { updatePlayer.invoke(tracker, getPlayer.invoke(player)); } - private static final Reflection.MethodInvoker clearPlayer = Reflection.getMethod(entityTracker, Core.getVersion() > 15 ? "a" : "clear", entityPlayer); + private static final Reflection.Method clearPlayer = Reflection.getMethod(entityTracker, Core.getVersion() > 15 ? "a" : "clear", entityPlayer); @Override public void untrackEntity(Player player, Entity entity) { Object tracker = trackers.get(entity.getEntityId()); @@ -87,8 +87,8 @@ public class BlockIdWrapper14 implements BlockIdWrapper { clearPlayer.invoke(tracker, getPlayer.invoke(player)); } - private static final Reflection.MethodInvoker getMaterialByBlock = Reflection.getTypedMethod(Reflection.getClass("{obc}.util.CraftMagicNumbers"), "getMaterial", Material.class, block); - private static final Reflection.MethodInvoker getBlockByBlockData = Reflection.getTypedMethod(iBlockData, null, block); + private static final Reflection.Method getMaterialByBlock = Reflection.getTypedMethod(Reflection.getClass("{obc}.util.CraftMagicNumbers"), "getMaterial", Material.class, block); + private static final Reflection.Method getBlockByBlockData = Reflection.getTypedMethod(iBlockData, null, block); @Override public Material idToMaterial(int blockState) { return (Material)getMaterialByBlock.invoke(null, getBlockByBlockData.invoke(getByCombinedId.invoke(null, blockState))); diff --git a/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/BlockIdWrapper18.java b/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/BlockIdWrapper18.java index c229353a..682fc30f 100644 --- a/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/BlockIdWrapper18.java +++ b/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/BlockIdWrapper18.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -27,7 +27,7 @@ import java.util.*; public class BlockIdWrapper18 extends BlockIdWrapper14 { - private static final Reflection.FieldAccessor hiddenEntities = Reflection.getField(Reflection.getClass("{obc}.entity.CraftPlayer"), Map.class, 0, UUID.class, Set.class); + private static final Reflection.Field hiddenEntities = Reflection.getField(Reflection.getClass("{obc}.entity.CraftPlayer"), Map.class, 0, UUID.class, Set.class); @Override public void trackEntity(Player player, Entity entity) { hiddenEntities.get(player).remove(entity.getUniqueId()); diff --git a/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/CraftbukkitWrapper18.java b/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/CraftbukkitWrapper18.java index 72c14f8f..31c17cf1 100644 --- a/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/CraftbukkitWrapper18.java +++ b/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/CraftbukkitWrapper18.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.Config; import net.minecraft.server.level.WorldServer; import net.minecraft.world.level.chunk.Chunk; @@ -33,9 +33,9 @@ import java.util.stream.StreamSupport; public class CraftbukkitWrapper18 implements CraftbukkitWrapper { - private static final Reflection.MethodInvoker getWorld = Reflection.getMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle"); - private static final Reflection.MethodInvoker getChunk = Reflection.getTypedMethod(net.minecraft.world.level.World.class, null, Chunk.class, int.class, int.class); - private static final Reflection.MethodInvoker getChunkSections = Reflection.getTypedMethod(Chunk.class, null, ChunkSection[].class); + private static final Reflection.Method getWorld = Reflection.getMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle"); + private static final Reflection.Method getChunk = Reflection.getTypedMethod(net.minecraft.world.level.World.class, null, Chunk.class, int.class, int.class); + private static final Reflection.Method getChunkSections = Reflection.getTypedMethod(Chunk.class, null, ChunkSection[].class); private ChunkSection[] getChunkSections(World world, int x, int z) { return (ChunkSection[]) getChunkSections.invoke(getChunk.invoke(getWorld.invoke(world), x, z)); } @@ -46,7 +46,7 @@ public class CraftbukkitWrapper18 implements CraftbukkitWrapper { System.arraycopy(getChunkSections(backup, x, z), 0, sections, 0, sections.length); } - private static final Reflection.MethodInvoker getEntity = Reflection.getTypedMethod(Reflection.getClass("{obc}.entity.CraftEntity"), "getHandle", net.minecraft.world.entity.Entity.class); + private static final Reflection.Method getEntity = Reflection.getTypedMethod(Reflection.getClass("{obc}.entity.CraftEntity"), "getHandle", net.minecraft.world.entity.Entity.class); protected net.minecraft.world.entity.Entity getEntity(Entity e) { return (net.minecraft.world.entity.Entity) getEntity.invoke(e); } @@ -56,8 +56,8 @@ public class CraftbukkitWrapper18 implements CraftbukkitWrapper { return getEntity(e).ce(); } - private static final Reflection.MethodInvoker getWorldEntities = Reflection.getTypedMethod(WorldServer.class, null, LevelEntityGetter.class); - private static final Reflection.MethodInvoker getIterable = Reflection.getTypedMethod(LevelEntityGetter.class, null, Iterable.class); + private static final Reflection.Method getWorldEntities = Reflection.getTypedMethod(WorldServer.class, null, LevelEntityGetter.class); + private static final Reflection.Method getIterable = Reflection.getTypedMethod(LevelEntityGetter.class, null, Iterable.class); @Override public Stream entityIterator() { return StreamSupport.stream(((Iterable) getIterable.invoke(getWorldEntities.invoke(getWorld.invoke(Config.world)))).spliterator(), false); diff --git a/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/HullHiderWrapper18.java b/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/HullHiderWrapper18.java index af5f83a1..7a378f43 100644 --- a/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/HullHiderWrapper18.java +++ b/FightSystem/FightSystem_18/src/de/steamwar/fightsystem/utils/HullHiderWrapper18.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.Config; import it.unimi.dsi.fastutil.shorts.Short2ObjectArrayMap; import net.minecraft.core.BlockPosition; @@ -33,7 +33,7 @@ import java.util.List; public class HullHiderWrapper18 implements HullHiderWrapper { - private static final Reflection.MethodInvoker getState = Reflection.getTypedMethod(Reflection.getClass("{obc}.block.data.CraftBlockData"), "getState", IBlockData.class); + private static final Reflection.Method getState = Reflection.getTypedMethod(Reflection.getClass("{obc}.block.data.CraftBlockData"), "getState", IBlockData.class); @Override public Object generateBlockChangePacket(List changes) { Object[] blockdata = new Object[changes.size()]; diff --git a/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java b/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java index 402f8e60..94633486 100644 --- a/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java +++ b/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/BlockIdWrapper8.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.Config; import org.bukkit.Material; import org.bukkit.World; @@ -30,9 +30,9 @@ import org.bukkit.entity.Player; public class BlockIdWrapper8 implements BlockIdWrapper { private static final Class entityTracker = Reflection.getClass("{nms}.EntityTracker"); - private static final Reflection.FieldAccessor getEntityTracker = Reflection.getField(worldServer, entityTracker, 0); + private static final Reflection.Field getEntityTracker = Reflection.getField(worldServer, entityTracker, 0); private static final Class intHashMap = Reflection.getClass("{nms}.IntHashMap"); - private static final Reflection.FieldAccessor getTrackedEntities = Reflection.getField(entityTracker, intHashMap, 0); + private static final Reflection.Field getTrackedEntities = Reflection.getField(entityTracker, intHashMap, 0); private final Object trackers; public BlockIdWrapper8() { @@ -55,8 +55,8 @@ public class BlockIdWrapper8 implements BlockIdWrapper { } private static final Class entityTrackerEntry = Reflection.getClass("{nms}.EntityTrackerEntry"); - private static final Reflection.MethodInvoker get = Reflection.getTypedMethod(intHashMap, "get", Object.class, int.class); - private static final Reflection.MethodInvoker updatePlayer = Reflection.getMethod(entityTrackerEntry, "updatePlayer", entityPlayer); + private static final Reflection.Method get = Reflection.getTypedMethod(intHashMap, "get", Object.class, int.class); + private static final Reflection.Method updatePlayer = Reflection.getMethod(entityTrackerEntry, "updatePlayer", entityPlayer); @Override public void trackEntity(Player player, Entity entity) { Object tracker = get.invoke(trackers, entity.getEntityId()); @@ -64,7 +64,7 @@ public class BlockIdWrapper8 implements BlockIdWrapper { updatePlayer.invoke(tracker, getPlayer.invoke(player)); } - private static final Reflection.MethodInvoker clearPlayer = Reflection.getMethod(entityTrackerEntry, "a", entityPlayer); + private static final Reflection.Method clearPlayer = Reflection.getMethod(entityTrackerEntry, "a", entityPlayer); @Override public void untrackEntity(Player player, Entity entity) { Object tracker = get.invoke(trackers, entity.getEntityId()); diff --git a/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/HullHiderWrapper8.java b/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/HullHiderWrapper8.java index af56e404..231a8d0a 100644 --- a/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/HullHiderWrapper8.java +++ b/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/HullHiderWrapper8.java @@ -19,15 +19,15 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.Config; import java.util.List; public class HullHiderWrapper8 implements HullHiderWrapper { - private static final Reflection.ConstructorInvoker newMultiBlockChange = Reflection.getConstructor("{nms}.PacketPlayOutMultiBlockChange", int.class, short[].class, Reflection.getClass("{nms}.Chunk")); - private static final Reflection.MethodInvoker getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle"); + private static final Reflection.Constructor newMultiBlockChange = Reflection.getConstructor("{nms}.PacketPlayOutMultiBlockChange", int.class, short[].class, Reflection.getClass("{nms}.Chunk")); + private static final Reflection.Method getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle"); @Override public Object generateBlockChangePacket(List changes) { Hull.IntVector chunk = changes.get(0); diff --git a/FightSystem/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java b/FightSystem/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java index 96cc9436..67ac4f21 100644 --- a/FightSystem/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java +++ b/FightSystem/FightSystem_9/src/de/steamwar/fightsystem/utils/BountifulWrapper9.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.fight.Fight; import de.steamwar.fightsystem.fight.FightTeam; import de.steamwar.fightsystem.listener.Recording; @@ -45,7 +45,7 @@ public class BountifulWrapper9 implements BountifulWrapper { private static final Class enumHand = Reflection.getClass("{nms.world}.EnumHand"); private static final Object mainHand = enumHand.getEnumConstants()[0]; - private static final Reflection.FieldAccessor blockPlaceHand = Reflection.getField(Recording.blockPlacePacket, enumHand, 0); + private static final Reflection.Field blockPlaceHand = Reflection.getField(Recording.blockPlacePacket, enumHand, 0); @Override public boolean mainHand(Object packet) { diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ai/AIManager.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ai/AIManager.java index 2cb13f65..3950a201 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ai/AIManager.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/ai/AIManager.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.ai; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.fight.FightTeam; diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/commands/Commands.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/commands/Commands.java index b880fa6d..90bca61b 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/commands/Commands.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/commands/Commands.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.commands; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.fight.Fight; @@ -39,7 +39,7 @@ import org.bukkit.entity.Player; @UtilityClass public class Commands { - private static final Reflection.FieldAccessor commandMap = Reflection.getField("{obc}.CraftServer", "commandMap", SimpleCommandMap.class); + private static final Reflection.Field commandMap = Reflection.getField("{obc}.CraftServer", "commandMap", SimpleCommandMap.class); public static void injectCommand(Command cmd) { commandMap.get(Bukkit.getServer()).register("FightSystem", cmd); } diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java index e3829099..08853b65 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/Kit.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.fight; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.FightSystem; import de.steamwar.fightsystem.commands.Commands; @@ -216,10 +216,10 @@ public class Kit { } private static final Class itemStack = Reflection.getClass("{nms.world.item}.ItemStack"); - private static final Reflection.MethodInvoker asNMSCopy = Reflection.getTypedMethod(Reflection.getClass("{obc}.inventory.CraftItemStack"), "asNMSCopy", itemStack, ItemStack.class); + private static final Reflection.Method asNMSCopy = Reflection.getTypedMethod(Reflection.getClass("{obc}.inventory.CraftItemStack"), "asNMSCopy", itemStack, ItemStack.class); private static final Class nbtTagCompound = Reflection.getClass("{nms.nbt}.NBTTagCompound"); - private static final Reflection.MethodInvoker getTag = Reflection.getTypedMethod(itemStack, null, nbtTagCompound); - private static final Reflection.MethodInvoker getKeys = Reflection.getTypedMethod(nbtTagCompound, null, Set.class); + private static final Reflection.Method getTag = Reflection.getTypedMethod(itemStack, null, nbtTagCompound); + private static final Reflection.Method getKeys = Reflection.getTypedMethod(nbtTagCompound, null, Set.class); public static boolean hasItems(ItemStack stack) { Set keys = new HashSet<>((Set) getKeys.invoke(getTag.invoke(asNMSCopy.invoke(null, stack)))); keys.remove("Enchantments"); diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArrowStopper.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArrowStopper.java index 3fd7f7dc..18bc11ac 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArrowStopper.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ArrowStopper.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.listener; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentTask; diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ClickAnalyzer.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ClickAnalyzer.java index 73e2afa9..4ceed83c 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ClickAnalyzer.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/ClickAnalyzer.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.listener; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.Core; import de.steamwar.fightsystem.Config; diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Recording.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Recording.java index b4040b74..31b26c5e 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Recording.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/listener/Recording.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.listener; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.TrickyTrialsWrapper; import de.steamwar.fightsystem.ArenaMode; @@ -78,7 +78,7 @@ public class Recording implements Listener { } public static final Class primedTnt = Reflection.getClass("{nms.world.entity.item}.EntityTNTPrimed"); - private static final Reflection.MethodInvoker getBukkitEntity = Reflection.getTypedMethod(Reflection.getClass("{nms.world.entity}.Entity"), "getBukkitEntity", null); + private static final Reflection.Method getBukkitEntity = Reflection.getTypedMethod(Reflection.getClass("{nms.world.entity}.Entity"), "getBukkitEntity", null); public static void iterateOverEntities(Predicate filter, Consumer consumer) { CraftbukkitWrapper.impl.entityIterator().filter(filter).map(entity -> (Entity) getBukkitEntity.invoke(entity)).forEach(consumer); } @@ -131,7 +131,7 @@ public class Recording implements Listener { private static final Class blockDigPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInBlockDig"); private static final Class playerDigType = blockDigPacket.getDeclaredClasses()[0]; - private static final Reflection.FieldAccessor blockDigType = Reflection.getField(blockDigPacket, playerDigType, 0); + private static final Reflection.Field blockDigType = Reflection.getField(blockDigPacket, playerDigType, 0); private static final Object releaseUseItem = playerDigType.getEnumConstants()[5]; private Object blockDig(Player p, Object packet) { if(!isNotSent(p) && blockDigType.get(packet) == releaseUseItem) diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/BlockIdWrapper.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/BlockIdWrapper.java index 354ff9fd..15d1b0f7 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/BlockIdWrapper.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/BlockIdWrapper.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.core.VersionDependent; import de.steamwar.fightsystem.FightSystem; import org.bukkit.Material; @@ -30,11 +30,11 @@ import org.bukkit.entity.Player; public interface BlockIdWrapper { Class worldServer = Reflection.getClass("{nms.server.level}.WorldServer"); - Reflection.MethodInvoker getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle", worldServer); + Reflection.Method getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle", worldServer); Class craftPlayer = Reflection.getClass("{obc}.entity.CraftPlayer"); Class entityPlayer = Reflection.getClass("{nms.server.level}.EntityPlayer"); - Reflection.MethodInvoker getPlayer = Reflection.getTypedMethod(craftPlayer, "getHandle", entityPlayer); + Reflection.Method getPlayer = Reflection.getTypedMethod(craftPlayer, "getHandle", entityPlayer); BlockIdWrapper impl = VersionDependent.getVersionImpl(FightSystem.getPlugin()); 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 c613a4ab..64ec3064 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/HullHider.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/HullHider.java @@ -19,7 +19,7 @@ package de.steamwar.fightsystem.utils; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.Core; import de.steamwar.entity.REntity; @@ -199,15 +199,15 @@ public class HullHider implements Listener { private static final Class packetPlayOutWorldEvent = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutWorldEvent"); - private static final Reflection.FieldAccessor worldEventPosition = Reflection.getField(packetPlayOutWorldEvent, TechHider.blockPosition, 0); - public static final Reflection.FieldAccessor blockPositionY = Reflection.getField("{nms.core}.BaseBlockPosition", int.class, 1); + private static final Reflection.Field worldEventPosition = Reflection.getField(packetPlayOutWorldEvent, TechHider.blockPosition, 0); + public static final Reflection.Field blockPositionY = Reflection.getField("{nms.core}.BaseBlockPosition", int.class, 1); private Object worldEventHider(Player player, Object packet) { Object baseBlock = worldEventPosition.get(packet); return packetHider(player, packet, new Location(Config.world, TechHider.blockPositionX.get(baseBlock), blockPositionY.get(baseBlock), TechHider.blockPositionZ.get(baseBlock))); } private static final Class packetPlayOutExplosion = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutExplosion"); - private static final Reflection.FieldAccessor explosionBlocks = Reflection.getField(packetPlayOutExplosion, List.class, 0); + private static final Reflection.Field explosionBlocks = Reflection.getField(packetPlayOutExplosion, List.class, 0); private static final Function explosionLocation = posPacketToLocation(packetPlayOutExplosion, double.class, 1.0); private Object explosionHider(Player player, Object packet) { if(explosionBlocks.get(packet).isEmpty()) @@ -223,9 +223,9 @@ public class HullHider implements Listener { } private static Function posPacketToLocation(Class type, Class posType, double factor) { - Reflection.FieldAccessor x = Reflection.getField(type, posType, 0); - Reflection.FieldAccessor y = Reflection.getField(type, posType, 1); - Reflection.FieldAccessor z = Reflection.getField(type, posType, 2); + Reflection.Field x = Reflection.getField(type, posType, 0); + Reflection.Field y = Reflection.getField(type, posType, 1); + Reflection.Field z = Reflection.getField(type, posType, 2); return packet -> new Location(Config.world, x.get(packet).doubleValue()/factor, y.get(packet).doubleValue()/factor, z.get(packet).doubleValue()/factor); } diff --git a/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java b/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java index dbde1f0f..457ae789 100644 --- a/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java +++ b/MissileWars/src/de/steamwar/misslewars/slowmo/SlowMoUtils.java @@ -21,7 +21,7 @@ package de.steamwar.misslewars.slowmo; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.Bukkit; import org.bukkit.World; @@ -32,7 +32,7 @@ public class SlowMoUtils { private static final Field field; public static final boolean freezeEnabled; - private static final Reflection.MethodInvoker getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle", null); + private static final Reflection.Method getWorldHandle = Reflection.getTypedMethod(Reflection.getClass("{obc}.CraftWorld"), "getHandle", null); private static boolean frozen = false; private static final World world; diff --git a/SpigotCore/SpigotCore_14/src/de/steamwar/core/FlatteningWrapper14.java b/SpigotCore/SpigotCore_14/src/de/steamwar/core/FlatteningWrapper14.java index b7a9bf7f..a1fac854 100644 --- a/SpigotCore/SpigotCore_14/src/de/steamwar/core/FlatteningWrapper14.java +++ b/SpigotCore/SpigotCore_14/src/de/steamwar/core/FlatteningWrapper14.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.NamespacedKey; @@ -226,14 +226,14 @@ public class FlatteningWrapper14 implements FlatteningWrapper.IFlatteningWrapper renamedLegacy.put("RECORD_12", Material.MUSIC_DISC_WAIT); } - private static final Reflection.FieldAccessor scoreboardName = Reflection.getField(FlatteningWrapper.scoreboardObjective, Reflection.getClass("{nms.network.chat}.IChatBaseComponent"), 0); + private static final Reflection.Field scoreboardName = Reflection.getField(FlatteningWrapper.scoreboardObjective, Reflection.getClass("{nms.network.chat}.IChatBaseComponent"), 0); @Override public void setScoreboardTitle(Object packet, String title) { scoreboardName.set(packet, ChatWrapper.impl.stringToChatComponent(title)); } private static final Class scoreActionEnum = Core.getVersion() < 21 ? Reflection.getClass("{nms.server}.ScoreboardServer$Action") : null; - private static final Reflection.FieldAccessor scoreAction = Core.getVersion() < 21 ? Reflection.getField(FlatteningWrapper.scoreboardScore, scoreActionEnum, 0) : null; + private static final Reflection.Field scoreAction = Core.getVersion() < 21 ? Reflection.getField(FlatteningWrapper.scoreboardScore, scoreActionEnum, 0) : null; private static final Object scoreActionChange = Core.getVersion() < 21 ? scoreActionEnum.getEnumConstants()[0] : null; @Override @@ -330,10 +330,10 @@ public class FlatteningWrapper14 implements FlatteningWrapper.IFlatteningWrapper private static final Class registryBlocks = Reflection.getClass("{nms.core}.RegistryBlocks"); private static final Class entityTypes = Reflection.getClass("{nms.world.entity}.EntityTypes"); private static final Object entityTypesRegistry = Reflection.getField(Reflection.getClass(Core.getVersion() > 18 ? "net.minecraft.core.registries.BuiltInRegistries" : "{nms.core}.IRegistry"), registryBlocks, 0, entityTypes).get(null); - private static final Reflection.MethodInvoker get = Reflection.getMethod(registryBlocks, null, Reflection.getClass("{nms.resources}.MinecraftKey")); - private static final Reflection.FieldAccessor spawnType = Reflection.getField(ProtocolWrapper.spawnPacket, entityTypes, 0); - private static final Reflection.FieldAccessor spawnLivingType = Core.getVersion() > 18 ? spawnType : Reflection.getField(ProtocolWrapper.spawnLivingPacket, int.class, 1); - private static final Reflection.MethodInvoker toMinecraft = Reflection.getMethod("{obc}.util.CraftNamespacedKey", "toMinecraft", NamespacedKey.class); + private static final Reflection.Method get = Reflection.getMethod(registryBlocks, null, Reflection.getClass("{nms.resources}.MinecraftKey")); + private static final Reflection.Field spawnType = Reflection.getField(ProtocolWrapper.spawnPacket, entityTypes, 0); + private static final Reflection.Field spawnLivingType = Core.getVersion() > 18 ? spawnType : Reflection.getField(ProtocolWrapper.spawnLivingPacket, int.class, 1); + private static final Reflection.Method toMinecraft = Reflection.getMethod("{obc}.util.CraftNamespacedKey", "toMinecraft", NamespacedKey.class); private static final Map types = new HashMap<>(); static { types.put(EntityType.ARMOR_STAND, 1); @@ -352,8 +352,8 @@ public class FlatteningWrapper14 implements FlatteningWrapper.IFlatteningWrapper return player.getClientViewDistance(); } - private static final Reflection.MethodInvoker getHandle = Reflection.getMethod("{obc}.CraftWorld", "getHandle"); - private static final Reflection.MethodInvoker save = Reflection.getMethod("{nms.server.level}.WorldServer", null, Reflection.getClass("{nms.util}.IProgressUpdate"), boolean.class, boolean.class); + private static final Reflection.Method getHandle = Reflection.getMethod("{obc}.CraftWorld", "getHandle"); + private static final Reflection.Method save = Reflection.getMethod("{nms.server.level}.WorldServer", null, Reflection.getClass("{nms.util}.IProgressUpdate"), boolean.class, boolean.class); @Override public void syncSave(World world) { save.invoke(getHandle.invoke(world), null, true, false); diff --git a/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/BlockIds14.java b/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/BlockIds14.java index 322ce206..102ab31a 100644 --- a/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/BlockIds14.java +++ b/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/BlockIds14.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.google.common.collect.ImmutableList; import org.bukkit.Material; @@ -32,17 +32,17 @@ public class BlockIds14 implements BlockIds { private static final Class fluidTypeFlowing = Reflection.getClass("{nms.world.level.material}.FluidTypeFlowing"); private static final Class fluid = Reflection.getClass("{nms.world.level.material}.Fluid"); - private static final Reflection.MethodInvoker getBlockData = Reflection.getTypedMethod(TechHider.block, null, TechHider.iBlockData); + private static final Reflection.Method getBlockData = Reflection.getTypedMethod(TechHider.block, null, TechHider.iBlockData); @Override public int materialToId(Material material) { return getCombinedId(getBlockData.invoke(getBlock(material))); } - private static final Reflection.MethodInvoker getStates = Reflection.getTypedMethod(TechHider.block, null, blockStateList); - private static final Reflection.MethodInvoker getStateList = Reflection.getTypedMethod(blockStateList, null, ImmutableList.class); + private static final Reflection.Method getStates = Reflection.getTypedMethod(TechHider.block, null, blockStateList); + private static final Reflection.Method getStateList = Reflection.getTypedMethod(blockStateList, null, ImmutableList.class); private static final Object water = Reflection.getTypedMethod(fluidTypeFlowing, null, fluid, boolean.class).invoke(Reflection.getField(Reflection.getClass("{nms.world.level.material}.FluidTypes"), fluidTypeFlowing, 1).get(null), false); private static final Iterable registryBlockId = (Iterable) Reflection.getField(TechHider.block, Reflection.getClass("{nms.core}.RegistryBlockID"), 0).get(null); - private static final Reflection.MethodInvoker getFluid = Reflection.getTypedMethod(TechHider.iBlockData, null, fluid); + private static final Reflection.Method getFluid = Reflection.getTypedMethod(TechHider.iBlockData, null, fluid); @Override public Set materialToAllIds(Material material) { Set ids = new HashSet<>(); @@ -61,12 +61,12 @@ public class BlockIds14 implements BlockIds { return ids; } - private static final Reflection.MethodInvoker getBlock = Reflection.getTypedMethod(TechHider.craftMagicNumbers, "getBlock", TechHider.block, Material.class); + private static final Reflection.Method getBlock = Reflection.getTypedMethod(TechHider.craftMagicNumbers, "getBlock", TechHider.block, Material.class); private Object getBlock(Material material) { return getBlock.invoke(null, material); } - private static final Reflection.MethodInvoker getCombinedId = Reflection.getTypedMethod(TechHider.block, null, int.class, TechHider.iBlockData); + private static final Reflection.Method getCombinedId = Reflection.getTypedMethod(TechHider.block, null, int.class, TechHider.iBlockData); private int getCombinedId(Object blockData) { return (int) getCombinedId.invoke(null, blockData); } diff --git a/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/ProtocolWrapper14.java b/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/ProtocolWrapper14.java index ea98d273..7c658dbd 100644 --- a/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/ProtocolWrapper14.java +++ b/SpigotCore/SpigotCore_14/src/de/steamwar/techhider/ProtocolWrapper14.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.entity.Player; import java.util.function.BiFunction; @@ -30,8 +30,8 @@ public class ProtocolWrapper14 extends ProtocolWrapper8 { @Override public BiFunction blockBreakHiderGenerator(Class blockBreakPacket, TechHider techHider) { UnaryOperator blockBreakCloner = ProtocolUtils.shallowCloneGenerator(blockBreakPacket); - Reflection.FieldAccessor blockBreakPosition = Reflection.getField(blockBreakPacket, TechHider.blockPosition, 0); - Reflection.FieldAccessor blockBreakBlockData = Reflection.getField(blockBreakPacket, TechHider.iBlockData, 0); + Reflection.Field blockBreakPosition = Reflection.getField(blockBreakPacket, TechHider.blockPosition, 0); + Reflection.Field blockBreakBlockData = Reflection.getField(blockBreakPacket, TechHider.iBlockData, 0); return (p, packet) -> { switch (techHider.getLocationEvaluator().checkBlockPos(p, blockBreakPosition.get(packet))) { diff --git a/SpigotCore/SpigotCore_18/src/de/steamwar/core/CraftbukkitWrapper18.java b/SpigotCore/SpigotCore_18/src/de/steamwar/core/CraftbukkitWrapper18.java index 1627791c..0f6e9d62 100644 --- a/SpigotCore/SpigotCore_18/src/de/steamwar/core/CraftbukkitWrapper18.java +++ b/SpigotCore/SpigotCore_18/src/de/steamwar/core/CraftbukkitWrapper18.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket; import net.minecraft.world.level.World; @@ -29,8 +29,8 @@ import org.bukkit.entity.Player; public class CraftbukkitWrapper18 implements CraftbukkitWrapper.ICraftbukkitWrapper { - private static final Reflection.MethodInvoker getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle"); - private static final Reflection.MethodInvoker getLightEngine = Reflection.getTypedMethod(World.class, null, LightEngine.class); + private static final Reflection.Method getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle"); + private static final Reflection.Method getLightEngine = Reflection.getTypedMethod(World.class, null, LightEngine.class); @Override public void sendChunk(Player p, int chunkX, int chunkZ) { diff --git a/SpigotCore/SpigotCore_18/src/de/steamwar/core/ProtocolWrapper18.java b/SpigotCore/SpigotCore_18/src/de/steamwar/core/ProtocolWrapper18.java index 54cc3030..98ae4bab 100644 --- a/SpigotCore/SpigotCore_18/src/de/steamwar/core/ProtocolWrapper18.java +++ b/SpigotCore/SpigotCore_18/src/de/steamwar/core/ProtocolWrapper18.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.mojang.authlib.GameProfile; import com.mojang.datafixers.util.Pair; import org.bukkit.GameMode; @@ -30,7 +30,7 @@ import java.util.List; public class ProtocolWrapper18 implements ProtocolWrapper { - private static final Reflection.FieldAccessor equipmentStack = Reflection.getField(equipmentPacket, List.class, 0); + private static final Reflection.Field equipmentStack = Reflection.getField(equipmentPacket, List.class, 0); @Override public void setEquipmentPacketStack(Object packet, Object slot, Object stack) { equipmentStack.set(packet, Collections.singletonList(new Pair<>(slot, stack))); @@ -38,8 +38,8 @@ public class ProtocolWrapper18 implements ProtocolWrapper { private static final Class playerInfoPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutPlayerInfo"); private static final Class playerInfoActionClass = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutPlayerInfo$EnumPlayerInfoAction"); - private static final Reflection.FieldAccessor playerInfoAction = Reflection.getField(playerInfoPacket, playerInfoActionClass, 0); - private static final Reflection.FieldAccessor playerInfoData = Reflection.getField(playerInfoPacket, List.class, 0); + private static final Reflection.Field playerInfoAction = Reflection.getField(playerInfoPacket, playerInfoActionClass, 0); + private static final Reflection.Field playerInfoData = Reflection.getField(playerInfoPacket, List.class, 0); private static final EnumMap actions = new EnumMap<>(PlayerInfoAction.class); static { Object[] nativeActions = playerInfoActionClass.getEnumConstants(); @@ -48,7 +48,7 @@ public class ProtocolWrapper18 implements ProtocolWrapper { actions.put(PlayerInfoAction.REMOVE, nativeActions[4]); } private static final Class iChatBaseComponent = Reflection.getClass("{nms.network.chat}.IChatBaseComponent"); - private static final Reflection.ConstructorInvoker playerInfoDataConstructor = Reflection.getConstructor("{nms.network.protocol.game}.PacketPlayOutPlayerInfo$PlayerInfoData", GameProfile.class, int.class, enumGamemode, iChatBaseComponent); + private static final Reflection.Constructor playerInfoDataConstructor = Reflection.getConstructor("{nms.network.protocol.game}.PacketPlayOutPlayerInfo$PlayerInfoData", GameProfile.class, int.class, enumGamemode, iChatBaseComponent); @Override @SuppressWarnings("deprecation") diff --git a/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ChunkHider18.java b/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ChunkHider18.java index 16cecb9b..4478a02b 100644 --- a/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ChunkHider18.java +++ b/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ChunkHider18.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.core.Core; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; @@ -46,12 +46,12 @@ public class ChunkHider18 implements ChunkHider { private static final UnaryOperator chunkPacketCloner = ProtocolUtils.shallowCloneGenerator(ClientboundLevelChunkWithLightPacket.class); private static final UnaryOperator chunkDataCloner = ProtocolUtils.shallowCloneGenerator(ClientboundLevelChunkPacketData.class); - private static final Reflection.FieldAccessor chunkXField = Reflection.getField(ClientboundLevelChunkWithLightPacket.class, int.class, 0); - private static final Reflection.FieldAccessor chunkZField = Reflection.getField(ClientboundLevelChunkWithLightPacket.class, int.class, 1); - private static final Reflection.FieldAccessor chunkData = Reflection.getField(ClientboundLevelChunkWithLightPacket.class, ClientboundLevelChunkPacketData.class, 0); + private static final Reflection.Field chunkXField = Reflection.getField(ClientboundLevelChunkWithLightPacket.class, int.class, 0); + private static final Reflection.Field chunkZField = Reflection.getField(ClientboundLevelChunkWithLightPacket.class, int.class, 1); + private static final Reflection.Field chunkData = Reflection.getField(ClientboundLevelChunkWithLightPacket.class, ClientboundLevelChunkPacketData.class, 0); - private static final Reflection.FieldAccessor dataField = Reflection.getField(ClientboundLevelChunkPacketData.class, byte[].class, 0); - private static final Reflection.FieldAccessor tileEntities = Reflection.getField(ClientboundLevelChunkPacketData.class, List.class, 0); + private static final Reflection.Field dataField = Reflection.getField(ClientboundLevelChunkPacketData.class, byte[].class, 0); + private static final Reflection.Field tileEntities = Reflection.getField(ClientboundLevelChunkPacketData.class, List.class, 0); @Override public BiFunction chunkHiderGenerator(TechHider techHider) { @@ -88,10 +88,10 @@ public class ChunkHider18 implements ChunkHider { } public static final Class tileEntity = Reflection.getClass("net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData$a"); - protected static final Reflection.FieldAccessor entityType = Reflection.getField(tileEntity, TileEntityTypes.class, 0); + protected static final Reflection.Field entityType = Reflection.getField(tileEntity, TileEntityTypes.class, 0); private static final IRegistry tileEntityTypes = Reflection.getField(Core.getVersion() > 18 ? Reflection.getClass("net.minecraft.core.registries.BuiltInRegistries") : IRegistry.class, IRegistry.class, 0, TileEntityTypes.class).get(null); - private static final Reflection.MethodInvoker getKey = Reflection.getTypedMethod(IRegistry.class, null, MinecraftKey.class, Object.class); - private static final Reflection.MethodInvoker getName = Reflection.getTypedMethod(MinecraftKey.class, null, String.class); + private static final Reflection.Method getKey = Reflection.getTypedMethod(IRegistry.class, null, MinecraftKey.class, Object.class); + private static final Reflection.Method getName = Reflection.getTypedMethod(MinecraftKey.class, null, String.class); protected boolean tileEntityVisible(Set hiddenBlockEntities, Object tile) { return !hiddenBlockEntities.contains((String) getName.invoke(getKey.invoke(tileEntityTypes, entityType.get(tile)))); } diff --git a/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ProtocolWrapper18.java b/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ProtocolWrapper18.java index 9fef09fd..1553806a 100644 --- a/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ProtocolWrapper18.java +++ b/SpigotCore/SpigotCore_18/src/de/steamwar/techhider/ProtocolWrapper18.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import net.minecraft.core.SectionPosition; import net.minecraft.network.protocol.game.PacketPlayOutBlockBreak; import net.minecraft.world.level.block.entity.TileEntitySign; @@ -32,9 +32,9 @@ import java.util.function.BiFunction; public class ProtocolWrapper18 implements ProtocolWrapper { - private static final Reflection.FieldAccessor multiBlockChangeChunk = Reflection.getField(TechHider.multiBlockChangePacket, SectionPosition.class, 0); - private static final Reflection.FieldAccessor multiBlockChangePos = Reflection.getField(TechHider.multiBlockChangePacket, short[].class, 0); - private static final Reflection.FieldAccessor multiBlockChangeBlocks = Reflection.getField(TechHider.multiBlockChangePacket, IBlockData[].class, 0); + private static final Reflection.Field multiBlockChangeChunk = Reflection.getField(TechHider.multiBlockChangePacket, SectionPosition.class, 0); + private static final Reflection.Field multiBlockChangePos = Reflection.getField(TechHider.multiBlockChangePacket, short[].class, 0); + private static final Reflection.Field multiBlockChangeBlocks = Reflection.getField(TechHider.multiBlockChangePacket, IBlockData[].class, 0); @Override public BiFunction multiBlockChangeGenerator(TechHider techHider) { return (p, packet) -> { @@ -81,7 +81,7 @@ public class ProtocolWrapper18 implements ProtocolWrapper { }; } - private static final Reflection.FieldAccessor tileEntityType = Reflection.getField(TechHider.tileEntityDataPacket, TileEntityTypes.class, 0); + private static final Reflection.Field tileEntityType = Reflection.getField(TechHider.tileEntityDataPacket, TileEntityTypes.class, 0); private static final TileEntityTypes signType = Reflection.getField(TileEntityTypes.class, TileEntityTypes.class, 0, TileEntitySign.class).get(null); @Override public boolean unfilteredTileEntityDataAction(Object packet) { diff --git a/SpigotCore/SpigotCore_19/src/de/steamwar/core/ProtocolWrapper19.java b/SpigotCore/SpigotCore_19/src/de/steamwar/core/ProtocolWrapper19.java index f4f399f3..f796dcdd 100644 --- a/SpigotCore/SpigotCore_19/src/de/steamwar/core/ProtocolWrapper19.java +++ b/SpigotCore/SpigotCore_19/src/de/steamwar/core/ProtocolWrapper19.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.mojang.authlib.GameProfile; import com.mojang.datafixers.util.Pair; import net.minecraft.SystemUtils; @@ -35,15 +35,15 @@ import java.util.function.LongSupplier; public class ProtocolWrapper19 implements ProtocolWrapper { - private static final Reflection.FieldAccessor equipmentStack = Reflection.getField(equipmentPacket, List.class, 0); + private static final Reflection.Field equipmentStack = Reflection.getField(equipmentPacket, List.class, 0); @Override public void setEquipmentPacketStack(Object packet, Object slot, Object stack) { equipmentStack.set(packet, Collections.singletonList(new Pair<>(slot, stack))); } - private static final Reflection.ConstructorInvoker removePacketConstructor = Reflection.getConstructor(ClientboundPlayerInfoRemovePacket.class, List.class); - private static final Reflection.FieldAccessor updateActions = Reflection.getField(ClientboundPlayerInfoUpdatePacket.class, EnumSet.class, 0); - private static final Reflection.FieldAccessor updatePlayers = Reflection.getField(ClientboundPlayerInfoUpdatePacket.class, List.class, 0); + private static final Reflection.Constructor removePacketConstructor = Reflection.getConstructor(ClientboundPlayerInfoRemovePacket.class, List.class); + private static final Reflection.Field updateActions = Reflection.getField(ClientboundPlayerInfoUpdatePacket.class, EnumSet.class, 0); + private static final Reflection.Field updatePlayers = Reflection.getField(ClientboundPlayerInfoUpdatePacket.class, List.class, 0); @Override @SuppressWarnings("deprecation") diff --git a/SpigotCore/SpigotCore_20/src/de/steamwar/core/CraftbukkitWrapper20.java b/SpigotCore/SpigotCore_20/src/de/steamwar/core/CraftbukkitWrapper20.java index 68963457..9d0490f5 100644 --- a/SpigotCore/SpigotCore_20/src/de/steamwar/core/CraftbukkitWrapper20.java +++ b/SpigotCore/SpigotCore_20/src/de/steamwar/core/CraftbukkitWrapper20.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket; import net.minecraft.world.level.World; @@ -30,8 +30,8 @@ import org.bukkit.entity.Player; public class CraftbukkitWrapper20 implements CraftbukkitWrapper.ICraftbukkitWrapper { - private static final Reflection.MethodInvoker getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle", ChunkStatus.class); - private static final Reflection.MethodInvoker getLightEngine = Reflection.getTypedMethod(World.class, null, LevelLightEngine.class); + private static final Reflection.Method getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle", ChunkStatus.class); + private static final Reflection.Method getLightEngine = Reflection.getTypedMethod(World.class, null, LevelLightEngine.class); @Override public void sendChunk(Player p, int chunkX, int chunkZ) { diff --git a/SpigotCore/SpigotCore_21/src/de/steamwar/core/BountifulWrapper21.java b/SpigotCore/SpigotCore_21/src/de/steamwar/core/BountifulWrapper21.java index d144c9b6..b749f834 100644 --- a/SpigotCore/SpigotCore_21/src/de/steamwar/core/BountifulWrapper21.java +++ b/SpigotCore/SpigotCore_21/src/de/steamwar/core/BountifulWrapper21.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import net.minecraft.world.entity.PositionMoveRotation; import net.minecraft.world.phys.Vec3D; @@ -28,7 +28,7 @@ public class BountifulWrapper21 extends BountifulWrapper9 { @Override public BountifulWrapper.PositionSetter getPositionSetter(Class packetClass, int fieldOffset) { try { - Reflection.FieldAccessor field = Reflection.getField(packetClass, PositionMoveRotation.class, 0); + Reflection.Field field = Reflection.getField(packetClass, PositionMoveRotation.class, 0); return (packet, x, y, z, pitch, yaw) -> { PositionMoveRotation pos = field.get(packet); diff --git a/SpigotCore/SpigotCore_21/src/de/steamwar/core/CraftbukkitWrapper21.java b/SpigotCore/SpigotCore_21/src/de/steamwar/core/CraftbukkitWrapper21.java index 2309a2a6..af3a3bd7 100644 --- a/SpigotCore/SpigotCore_21/src/de/steamwar/core/CraftbukkitWrapper21.java +++ b/SpigotCore/SpigotCore_21/src/de/steamwar/core/CraftbukkitWrapper21.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import net.minecraft.network.protocol.game.ClientboundLevelChunkWithLightPacket; import net.minecraft.world.level.World; @@ -30,8 +30,8 @@ import org.bukkit.entity.Player; public class CraftbukkitWrapper21 implements CraftbukkitWrapper.ICraftbukkitWrapper { - private static final Reflection.MethodInvoker getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle", ChunkStatus.class); - private static final Reflection.MethodInvoker getLightEngine = Reflection.getTypedMethod(World.class, null, LevelLightEngine.class); + private static final Reflection.Method getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle", ChunkStatus.class); + private static final Reflection.Method getLightEngine = Reflection.getTypedMethod(World.class, null, LevelLightEngine.class); @Override public void sendChunk(Player p, int chunkX, int chunkZ) { diff --git a/SpigotCore/SpigotCore_8/src/de/steamwar/core/BountifulWrapper8.java b/SpigotCore/SpigotCore_8/src/de/steamwar/core/BountifulWrapper8.java index 54ea45b3..14e84923 100644 --- a/SpigotCore/SpigotCore_8/src/de/steamwar/core/BountifulWrapper8.java +++ b/SpigotCore/SpigotCore_8/src/de/steamwar/core/BountifulWrapper8.java @@ -19,13 +19,12 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.BaseComponent; import net.minecraft.server.v1_8_R3.ChatComponentText; import net.minecraft.server.v1_8_R3.MathHelper; import net.minecraft.server.v1_8_R3.PacketPlayOutChat; -import net.minecraft.server.v1_8_R3.PacketPlayOutEntityTeleport; import org.bukkit.Sound; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Player; @@ -51,7 +50,7 @@ public class BountifulWrapper8 implements BountifulWrapper.IBountifulWrapper { } private static final Class watchableObject = Reflection.getClass("{nms}.DataWatcher$WatchableObject"); - private static final Reflection.ConstructorInvoker watchableObjectConstructor = Reflection.getConstructor(watchableObject, int.class, int.class, Object.class); + private static final Reflection.Constructor watchableObjectConstructor = Reflection.getConstructor(watchableObject, int.class, int.class, Object.class); private static final Map, Integer> watchableDatatypes = new HashMap<>(); static { watchableDatatypes.put(byte.class, 0); @@ -68,11 +67,11 @@ public class BountifulWrapper8 implements BountifulWrapper.IBountifulWrapper { @Override public BountifulWrapper.PositionSetter getPositionSetter(Class packetClass, int fieldOffset) { - Reflection.FieldAccessor posX = Reflection.getField(packetClass, int.class, fieldOffset); - Reflection.FieldAccessor posY = Reflection.getField(packetClass, int.class, fieldOffset +1); - Reflection.FieldAccessor posZ = Reflection.getField(packetClass, int.class, fieldOffset +2); - Reflection.FieldAccessor lookPitch = Reflection.getField(packetClass, byte.class, 0); - Reflection.FieldAccessor lookYaw = Reflection.getField(packetClass, byte.class, 1); + Reflection.Field posX = Reflection.getField(packetClass, int.class, fieldOffset); + Reflection.Field posY = Reflection.getField(packetClass, int.class, fieldOffset +1); + Reflection.Field posZ = Reflection.getField(packetClass, int.class, fieldOffset +2); + Reflection.Field lookPitch = Reflection.getField(packetClass, byte.class, 0); + Reflection.Field lookYaw = Reflection.getField(packetClass, byte.class, 1); return (packet, x, y, z, pitch, yaw) -> { posX.set(packet, MathHelper.floor(x * 32)); @@ -85,11 +84,11 @@ public class BountifulWrapper8 implements BountifulWrapper.IBountifulWrapper { @Override public BountifulWrapper.PositionSetter getRelMoveSetter(Class packetClass) { - Reflection.FieldAccessor moveX = Reflection.getField(packetClass, "b", byte.class); - Reflection.FieldAccessor moveY = Reflection.getField(packetClass, "c", byte.class); - Reflection.FieldAccessor moveZ = Reflection.getField(packetClass, "d", byte.class); - Reflection.FieldAccessor lookYaw = Reflection.getField(packetClass, "e", byte.class); - Reflection.FieldAccessor lookPitch = Reflection.getField(packetClass, "f", byte.class); + Reflection.Field moveX = Reflection.getField(packetClass, "b", byte.class); + Reflection.Field moveY = Reflection.getField(packetClass, "c", byte.class); + Reflection.Field moveZ = Reflection.getField(packetClass, "d", byte.class); + Reflection.Field lookYaw = Reflection.getField(packetClass, "e", byte.class); + Reflection.Field lookPitch = Reflection.getField(packetClass, "f", byte.class); return (packet, x, y, z, pitch, yaw) -> { moveX.set(packet, (byte)(x*32)); diff --git a/SpigotCore/SpigotCore_8/src/de/steamwar/core/ChatWrapper8.java b/SpigotCore/SpigotCore_8/src/de/steamwar/core/ChatWrapper8.java index 951cdc8a..4408679f 100644 --- a/SpigotCore/SpigotCore_8/src/de/steamwar/core/ChatWrapper8.java +++ b/SpigotCore/SpigotCore_8/src/de/steamwar/core/ChatWrapper8.java @@ -19,22 +19,22 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import java.util.ArrayList; import java.util.List; public class ChatWrapper8 implements ChatWrapper { - private static final Reflection.ConstructorInvoker chatComponentConstructor = Reflection.getConstructor(Reflection.getClass("{nms.network.chat}.ChatComponentText"), String.class); + private static final Reflection.Constructor chatComponentConstructor = Reflection.getConstructor(Reflection.getClass("{nms.network.chat}.ChatComponentText"), String.class); @Override public Object stringToChatComponent(String text) { return chatComponentConstructor.invoke(text); } private static final Class metadataPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityMetadata"); - private static final Reflection.FieldAccessor metadataEntity = Reflection.getField(metadataPacket, int.class, 0); - private static final Reflection.FieldAccessor metadataMetadata = Reflection.getField(metadataPacket, List.class, 0); + private static final Reflection.Field metadataEntity = Reflection.getField(metadataPacket, int.class, 0); + private static final Reflection.Field metadataMetadata = Reflection.getField(metadataPacket, List.class, 0); @Override public Object getDataWatcherPacket(int entityId, Object... dataWatcherKeyValues) { Object packet = Reflection.newInstance(metadataPacket); diff --git a/SpigotCore/SpigotCore_8/src/de/steamwar/core/FlatteningWrapper8.java b/SpigotCore/SpigotCore_8/src/de/steamwar/core/FlatteningWrapper8.java index 7d485286..eacf97e3 100644 --- a/SpigotCore/SpigotCore_8/src/de/steamwar/core/FlatteningWrapper8.java +++ b/SpigotCore/SpigotCore_8/src/de/steamwar/core/FlatteningWrapper8.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.EntityType; @@ -32,9 +32,9 @@ import java.util.Map; public class FlatteningWrapper8 implements FlatteningWrapper.IFlatteningWrapper { - private static final Reflection.FieldAccessor scoreboardName = Reflection.getField(FlatteningWrapper.scoreboardObjective, String.class, 1); + private static final Reflection.Field scoreboardName = Reflection.getField(FlatteningWrapper.scoreboardObjective, String.class, 1); private static final Class scoreActionEnum = Reflection.getClass("{nms}.PacketPlayOutScoreboardScore$EnumScoreboardAction"); - private static final Reflection.FieldAccessor scoreAction = Reflection.getField(FlatteningWrapper.scoreboardScore, scoreActionEnum, 0); + private static final Reflection.Field scoreAction = Reflection.getField(FlatteningWrapper.scoreboardScore, scoreActionEnum, 0); private static final Object scoreActionChange = scoreActionEnum.getEnumConstants()[0]; @Override @@ -78,9 +78,9 @@ public class FlatteningWrapper8 implements FlatteningWrapper.IFlatteningWrapper private static final Class dataWatcher = Reflection.getClass("{nms}.DataWatcher"); private static final Class namedSpawnPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutNamedEntitySpawn"); - private static final Reflection.FieldAccessor namedSpawnDataWatcher = Reflection.getField(namedSpawnPacket, dataWatcher, 0); + private static final Reflection.Field namedSpawnDataWatcher = Reflection.getField(namedSpawnPacket, dataWatcher, 0); private static final Class entity = Reflection.getClass("{nms}.Entity"); - private static final Reflection.ConstructorInvoker dataWatcherConstructor = Reflection.getConstructor(dataWatcher, entity); + private static final Reflection.Constructor dataWatcherConstructor = Reflection.getConstructor(dataWatcher, entity); @Override public void setNamedSpawnPacketDataWatcher(Object packet) { namedSpawnDataWatcher.set(packet, dataWatcherConstructor.invoke((Object) null)); @@ -92,8 +92,8 @@ public class FlatteningWrapper8 implements FlatteningWrapper.IFlatteningWrapper } - private static final Reflection.FieldAccessor spawnType = Reflection.getField(ProtocolWrapper.spawnPacket, int.class, Core.getVersion() > 8 ? 6 : 9); - private static final Reflection.FieldAccessor spawnLivingType = Reflection.getField(ProtocolWrapper.spawnLivingPacket, int.class, 1); + private static final Reflection.Field spawnType = Reflection.getField(ProtocolWrapper.spawnPacket, int.class, Core.getVersion() > 8 ? 6 : 9); + private static final Reflection.Field spawnLivingType = Reflection.getField(ProtocolWrapper.spawnLivingPacket, int.class, 1); private static final Map types = new HashMap<>(); static { types.put(TrickyTrialsWrapper.impl.getTntEntityType(), 50); @@ -113,7 +113,7 @@ public class FlatteningWrapper8 implements FlatteningWrapper.IFlatteningWrapper return 10; } - private static final Reflection.MethodInvoker save = Reflection.getMethod("{obc}.CraftWorld", "save", boolean.class); + private static final Reflection.Method save = Reflection.getMethod("{obc}.CraftWorld", "save", boolean.class); @Override public void syncSave(World world) { save.invoke(world, true); diff --git a/SpigotCore/SpigotCore_8/src/de/steamwar/core/ProtocolWrapper8.java b/SpigotCore/SpigotCore_8/src/de/steamwar/core/ProtocolWrapper8.java index 9f0b234b..24a924a0 100644 --- a/SpigotCore/SpigotCore_8/src/de/steamwar/core/ProtocolWrapper8.java +++ b/SpigotCore/SpigotCore_8/src/de/steamwar/core/ProtocolWrapper8.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.mojang.authlib.GameProfile; import org.bukkit.GameMode; @@ -29,7 +29,7 @@ import java.util.List; public class ProtocolWrapper8 implements ProtocolWrapper { - private static final Reflection.FieldAccessor equipmentSlot; + private static final Reflection.Field equipmentSlot; static { if(Core.getVersion() == 8) { equipmentSlot = Reflection.getField(equipmentPacket, int.class, 1); @@ -39,7 +39,7 @@ public class ProtocolWrapper8 implements ProtocolWrapper { } } - private static final Reflection.FieldAccessor equipmentStack = Reflection.getField(equipmentPacket, itemStack, 0); + private static final Reflection.Field equipmentStack = Reflection.getField(equipmentPacket, itemStack, 0); @Override public void setEquipmentPacketStack(Object packet, Object slot, Object stack) { equipmentSlot.set(packet, slot); @@ -48,8 +48,8 @@ public class ProtocolWrapper8 implements ProtocolWrapper { private static final Class playerInfoPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutPlayerInfo"); private static final Class playerInfoActionClass = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutPlayerInfo$EnumPlayerInfoAction"); - private static final Reflection.FieldAccessor playerInfoAction = Reflection.getField(playerInfoPacket, playerInfoActionClass, 0); - private static final Reflection.FieldAccessor playerInfoData = Reflection.getField(playerInfoPacket, List.class, 0); + private static final Reflection.Field playerInfoAction = Reflection.getField(playerInfoPacket, playerInfoActionClass, 0); + private static final Reflection.Field playerInfoData = Reflection.getField(playerInfoPacket, List.class, 0); private static final EnumMap actions = new EnumMap<>(PlayerInfoAction.class); static { Object[] nativeActions = playerInfoActionClass.getEnumConstants(); @@ -58,7 +58,7 @@ public class ProtocolWrapper8 implements ProtocolWrapper { actions.put(PlayerInfoAction.REMOVE, nativeActions[4]); } private static final Class iChatBaseComponent = Reflection.getClass("{nms.network.chat}.IChatBaseComponent"); - private static final Reflection.ConstructorInvoker playerInfoDataConstructor = Reflection.getConstructor("{nms.network.protocol.game}.PacketPlayOutPlayerInfo$PlayerInfoData", playerInfoPacket, GameProfile.class, int.class, enumGamemode, iChatBaseComponent); + private static final Reflection.Constructor playerInfoDataConstructor = Reflection.getConstructor("{nms.network.protocol.game}.PacketPlayOutPlayerInfo$PlayerInfoData", playerInfoPacket, GameProfile.class, int.class, enumGamemode, iChatBaseComponent); @Override @SuppressWarnings("deprecation") diff --git a/SpigotCore/SpigotCore_8/src/de/steamwar/scoreboard/SWScoreboard8.java b/SpigotCore/SpigotCore_8/src/de/steamwar/scoreboard/SWScoreboard8.java index d65cf989..2d4b607e 100644 --- a/SpigotCore/SpigotCore_8/src/de/steamwar/scoreboard/SWScoreboard8.java +++ b/SpigotCore/SpigotCore_8/src/de/steamwar/scoreboard/SWScoreboard8.java @@ -19,7 +19,7 @@ package de.steamwar.scoreboard; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.Core; import de.steamwar.core.FlatteningWrapper; @@ -30,15 +30,15 @@ import java.util.HashMap; import java.util.Map; public class SWScoreboard8 implements SWScoreboard { - private static final Reflection.FieldAccessor scoreboardName = Reflection.getField(FlatteningWrapper.scoreboardObjective, String.class, 0); - private static final Reflection.FieldAccessor scoreboardAction = Reflection.getField(FlatteningWrapper.scoreboardObjective, int.class, Core.getVersion() > 15 ? 3 : 0); + private static final Reflection.Field scoreboardName = Reflection.getField(FlatteningWrapper.scoreboardObjective, String.class, 0); + private static final Reflection.Field scoreboardAction = Reflection.getField(FlatteningWrapper.scoreboardObjective, int.class, Core.getVersion() > 15 ? 3 : 0); private static final Class scoreboardDisplayEnum = Reflection.getClass("{nms.world.scores.criteria}.IScoreboardCriteria$EnumScoreboardHealthDisplay"); - private static final Reflection.FieldAccessor scoreboardDisplayType = Reflection.getField(FlatteningWrapper.scoreboardObjective, scoreboardDisplayEnum, 0); + private static final Reflection.Field scoreboardDisplayType = Reflection.getField(FlatteningWrapper.scoreboardObjective, scoreboardDisplayEnum, 0); private static final Object displayTypeIntegers = scoreboardDisplayEnum.getEnumConstants()[0]; - private static final Reflection.FieldAccessor scoreName = Reflection.getField(FlatteningWrapper.scoreboardScore, String.class, 0); - private static final Reflection.FieldAccessor scoreScoreboardName = Reflection.getField(FlatteningWrapper.scoreboardScore, String.class, 1); - private static final Reflection.FieldAccessor scoreValue = Reflection.getField(FlatteningWrapper.scoreboardScore, int.class, 0); + private static final Reflection.Field scoreName = Reflection.getField(FlatteningWrapper.scoreboardScore, String.class, 0); + private static final Reflection.Field scoreScoreboardName = Reflection.getField(FlatteningWrapper.scoreboardScore, String.class, 1); + private static final Reflection.Field scoreValue = Reflection.getField(FlatteningWrapper.scoreboardScore, int.class, 0); private static final HashMap playerBoards = new HashMap<>(); //Object -> Scoreboard | Alle Versionen in der Map! private static int toggle = 0; // Scoreboard 0 updates while scoreboard 1 is presenting. toggle marks the current active scoreboard @@ -49,8 +49,8 @@ public class SWScoreboard8 implements SWScoreboard { static { Class scoreboardDisplayObjective = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutScoreboardDisplayObjective"); - Reflection.FieldAccessor scoreboardDisplayName = Reflection.getField(scoreboardDisplayObjective, String.class, 0); - Reflection.FieldAccessor scoreboardDisplaySlot = Reflection.getField(scoreboardDisplayObjective, int.class, 0); + Reflection.Field scoreboardDisplayName = Reflection.getField(scoreboardDisplayObjective, String.class, 0); + Reflection.Field scoreboardDisplaySlot = Reflection.getField(scoreboardDisplayObjective, int.class, 0); for(int id = 0; id < 2; id++) { DELETE_SCOREBOARD[id] = Reflection.newInstance(FlatteningWrapper.scoreboardObjective); scoreboardName.set(DELETE_SCOREBOARD[id], SIDEBAR + id); diff --git a/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ChunkHider8.java b/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ChunkHider8.java index 50adcaa3..600050ff 100644 --- a/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ChunkHider8.java +++ b/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ChunkHider8.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.entity.Player; import java.util.function.BiFunction; diff --git a/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ProtocolWrapper8.java b/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ProtocolWrapper8.java index b0de38c8..04b3c7c8 100644 --- a/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ProtocolWrapper8.java +++ b/SpigotCore/SpigotCore_8/src/de/steamwar/techhider/ProtocolWrapper8.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.entity.Player; import java.lang.reflect.Array; @@ -28,15 +28,15 @@ import java.util.function.BiFunction; public class ProtocolWrapper8 implements ProtocolWrapper { private static final Class chunkCoordinateIntPair = Reflection.getClass("{nms}.ChunkCoordIntPair"); - private static final Reflection.FieldAccessor multiBlockChangeChunk = Reflection.getField(TechHider.multiBlockChangePacket, chunkCoordinateIntPair, 0); - private static final Reflection.FieldAccessor chunkCoordinateX = Reflection.getField(chunkCoordinateIntPair, int.class, 0); - private static final Reflection.FieldAccessor chunkCoordinateZ = Reflection.getField(chunkCoordinateIntPair, int.class, 1); + private static final Reflection.Field multiBlockChangeChunk = Reflection.getField(TechHider.multiBlockChangePacket, chunkCoordinateIntPair, 0); + private static final Reflection.Field chunkCoordinateX = Reflection.getField(chunkCoordinateIntPair, int.class, 0); + private static final Reflection.Field chunkCoordinateZ = Reflection.getField(chunkCoordinateIntPair, int.class, 1); private static final Class multiBlockChangeInfo = Reflection.getClass("{nms}.PacketPlayOutMultiBlockChange$MultiBlockChangeInfo"); - private static final Reflection.ConstructorInvoker multiBlockChangeInfoConstructor = Reflection.getConstructor(multiBlockChangeInfo, TechHider.multiBlockChangePacket, short.class, TechHider.iBlockData); - private static final Reflection.FieldAccessor multiBlockChangeInfoBlock = Reflection.getField(multiBlockChangeInfo, TechHider.iBlockData, 0); - private static final Reflection.FieldAccessor multiBlockChangeInfoPos = Reflection.getField(multiBlockChangeInfo, short.class, 0); + private static final Reflection.Constructor multiBlockChangeInfoConstructor = Reflection.getConstructor(multiBlockChangeInfo, TechHider.multiBlockChangePacket, short.class, TechHider.iBlockData); + private static final Reflection.Field multiBlockChangeInfoBlock = Reflection.getField(multiBlockChangeInfo, TechHider.iBlockData, 0); + private static final Reflection.Field multiBlockChangeInfoPos = Reflection.getField(multiBlockChangeInfo, short.class, 0); private static final Class multiBlockChangeInfoArray = Reflection.getClass("[L{nms}.PacketPlayOutMultiBlockChange$MultiBlockChangeInfo;"); - private static final Reflection.FieldAccessor multiBlockChangeInfos = Reflection.getField(TechHider.multiBlockChangePacket, multiBlockChangeInfoArray, 0); + private static final Reflection.Field multiBlockChangeInfos = Reflection.getField(TechHider.multiBlockChangePacket, multiBlockChangeInfoArray, 0); @Override public BiFunction multiBlockChangeGenerator(TechHider techHider) { return (p, packet) -> { @@ -72,7 +72,7 @@ public class ProtocolWrapper8 implements ProtocolWrapper { }; } - private static final Reflection.FieldAccessor tileEntityDataAction = Reflection.getField(TechHider.tileEntityDataPacket, int.class, 0); + private static final Reflection.Field tileEntityDataAction = Reflection.getField(TechHider.tileEntityDataPacket, int.class, 0); @Override public boolean unfilteredTileEntityDataAction(Object packet) { return tileEntityDataAction.get(packet) != 9; diff --git a/SpigotCore/SpigotCore_9/src/de/steamwar/core/BountifulWrapper9.java b/SpigotCore/SpigotCore_9/src/de/steamwar/core/BountifulWrapper9.java index fa126698..43037fd3 100644 --- a/SpigotCore/SpigotCore_9/src/de/steamwar/core/BountifulWrapper9.java +++ b/SpigotCore/SpigotCore_9/src/de/steamwar/core/BountifulWrapper9.java @@ -19,11 +19,10 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.viaversion.viaversion.api.Via; import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.chat.BaseComponent; -import net.minecraft.server.v1_9_R2.PacketPlayOutEntity; import org.bukkit.Sound; import org.bukkit.entity.Player; @@ -47,14 +46,14 @@ public class BountifulWrapper9 implements BountifulWrapper.IBountifulWrapper { private static final Class dataWatcherObject = Reflection.getClass("{nms.network.syncher}.DataWatcherObject"); private static final Class dataWatcherRegistry = Reflection.getClass("{nms.network.syncher}.DataWatcherRegistry"); private static final Class dataWatcherSerializer = Reflection.getClass("{nms.network.syncher}.DataWatcherSerializer"); - private static final Reflection.ConstructorInvoker dataWatcherObjectConstructor = Reflection.getConstructor(dataWatcherObject, int.class, dataWatcherSerializer); + private static final Reflection.Constructor dataWatcherObjectConstructor = Reflection.getConstructor(dataWatcherObject, int.class, dataWatcherSerializer); @Override public Object getDataWatcherObject(int index, Class type) { return dataWatcherObjectConstructor.invoke(index, Reflection.getField(dataWatcherRegistry, dataWatcherSerializer, 0, type).get(null)); } private static final Class item = Reflection.getClass("{nms.network.syncher}.DataWatcher$Item"); - private static final Reflection.ConstructorInvoker itemConstructor = Reflection.getConstructor(item, dataWatcherObject, Object.class); + private static final Reflection.Constructor itemConstructor = Reflection.getConstructor(item, dataWatcherObject, Object.class); @Override public Object getDataWatcherItem(Object dwo, Object value) { return itemConstructor.invoke(dwo, value); @@ -62,13 +61,13 @@ public class BountifulWrapper9 implements BountifulWrapper.IBountifulWrapper { @Override public BountifulWrapper.PositionSetter getPositionSetter(Class packetClass, int fieldOffset) { - Reflection.FieldAccessor posX = Reflection.getField(packetClass, double.class, fieldOffset); - Reflection.FieldAccessor posY = Reflection.getField(packetClass, double.class, fieldOffset+1); - Reflection.FieldAccessor posZ = Reflection.getField(packetClass, double.class, fieldOffset+2); + Reflection.Field posX = Reflection.getField(packetClass, double.class, fieldOffset); + Reflection.Field posY = Reflection.getField(packetClass, double.class, fieldOffset+1); + Reflection.Field posZ = Reflection.getField(packetClass, double.class, fieldOffset+2); boolean isByteClass = packetClass.getSimpleName().contains("PacketPlayOutEntityTeleport") || packetClass.getSimpleName().contains("PacketPlayOutNamedEntitySpawn"); Class pitchYawType = isByteClass ? byte.class : int.class; - Reflection.FieldAccessor lookPitch = Reflection.getField(packetClass, pitchYawType, isByteClass ? 0 : 1); - Reflection.FieldAccessor lookYaw = Reflection.getField(packetClass, pitchYawType, isByteClass ? 1 : 2); + Reflection.Field lookPitch = Reflection.getField(packetClass, pitchYawType, isByteClass ? 0 : 1); + Reflection.Field lookYaw = Reflection.getField(packetClass, pitchYawType, isByteClass ? 1 : 2); return (packet, x, y, z, pitch, yaw) -> { posX.set(packet, x); @@ -87,11 +86,11 @@ public class BountifulWrapper9 implements BountifulWrapper.IBountifulWrapper { @Override public BountifulWrapper.PositionSetter getRelMoveSetter(Class packetClass) { Class type = Core.getVersion() > 12 ? short.class : int.class; - Reflection.FieldAccessor moveX = Reflection.getField(packetClass, "b", type); - Reflection.FieldAccessor moveY = Reflection.getField(packetClass, "c", type); - Reflection.FieldAccessor moveZ = Reflection.getField(packetClass, "d", type); - Reflection.FieldAccessor movePitch = Reflection.getField(packetClass, "e", byte.class); - Reflection.FieldAccessor moveYaw = Reflection.getField(packetClass, "f", byte.class); + Reflection.Field moveX = Reflection.getField(packetClass, "b", type); + Reflection.Field moveY = Reflection.getField(packetClass, "c", type); + Reflection.Field moveZ = Reflection.getField(packetClass, "d", type); + Reflection.Field movePitch = Reflection.getField(packetClass, "e", byte.class); + Reflection.Field moveYaw = Reflection.getField(packetClass, "f", byte.class); return (packet, x, y, z, pitch, yaw) -> { moveX.set(packet, (short)(x*4096)); @@ -104,7 +103,7 @@ public class BountifulWrapper9 implements BountifulWrapper.IBountifulWrapper { @Override public BountifulWrapper.UUIDSetter getUUIDSetter(Class packetClass) { - Reflection.FieldAccessor uuidField = Reflection.getField(packetClass, UUID.class, 0); + Reflection.Field uuidField = Reflection.getField(packetClass, UUID.class, 0); return uuidField::set; } diff --git a/SpigotCore/SpigotCore_9/src/de/steamwar/core/CraftbukkitWrapper9.java b/SpigotCore/SpigotCore_9/src/de/steamwar/core/CraftbukkitWrapper9.java index 8d111e31..eb036e22 100644 --- a/SpigotCore/SpigotCore_9/src/de/steamwar/core/CraftbukkitWrapper9.java +++ b/SpigotCore/SpigotCore_9/src/de/steamwar/core/CraftbukkitWrapper9.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import org.bukkit.entity.Player; @@ -27,8 +27,8 @@ public class CraftbukkitWrapper9 implements CraftbukkitWrapper.ICraftbukkitWrapp private static final Class chunk = Reflection.getClass("{nms.world.level.chunk}.Chunk"); private static final Class packetPlayOutMapChunk = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutMapChunk"); - private static final Reflection.ConstructorInvoker newPacketPlayOutMapChunk = Reflection.getConstructor(packetPlayOutMapChunk, chunk, int.class); - private static final Reflection.MethodInvoker getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle"); + private static final Reflection.Constructor newPacketPlayOutMapChunk = Reflection.getConstructor(packetPlayOutMapChunk, chunk, int.class); + private static final Reflection.Method getHandle = Reflection.getMethod("{obc}.CraftChunk", "getHandle"); @Override public void sendChunk(Player p, int chunkX, int chunkZ) { diff --git a/SpigotCore/SpigotCore_9/src/de/steamwar/techhider/ChunkHider9.java b/SpigotCore/SpigotCore_9/src/de/steamwar/techhider/ChunkHider9.java index 89f6570f..d305ca12 100644 --- a/SpigotCore/SpigotCore_9/src/de/steamwar/techhider/ChunkHider9.java +++ b/SpigotCore/SpigotCore_9/src/de/steamwar/techhider/ChunkHider9.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import org.bukkit.entity.Player; @@ -34,14 +34,14 @@ public class ChunkHider9 extends ChunkHider8 { private static final UnaryOperator mapChunkCloner = ProtocolUtils.shallowCloneGenerator(mapChunkPacket); - private static final Reflection.FieldAccessor mapChunkX = Reflection.getField(mapChunkPacket, int.class, 0); - private static final Reflection.FieldAccessor mapChunkZ = Reflection.getField(mapChunkPacket, int.class, 1); - private static final Reflection.FieldAccessor mapChunkBitMask = Reflection.getField(mapChunkPacket, int.class, 2); - private static final Reflection.FieldAccessor mapChunkBlockEntities = Reflection.getField(mapChunkPacket, List.class, 0); - private static final Reflection.FieldAccessor mapChunkData = Reflection.getField(mapChunkPacket, byte[].class, 0); + private static final Reflection.Field mapChunkX = Reflection.getField(mapChunkPacket, int.class, 0); + private static final Reflection.Field mapChunkZ = Reflection.getField(mapChunkPacket, int.class, 1); + private static final Reflection.Field mapChunkBitMask = Reflection.getField(mapChunkPacket, int.class, 2); + private static final Reflection.Field mapChunkBlockEntities = Reflection.getField(mapChunkPacket, List.class, 0); + private static final Reflection.Field mapChunkData = Reflection.getField(mapChunkPacket, byte[].class, 0); private static final Class nbtTagCompound = Reflection.getClass("{nms.nbt}.NBTTagCompound"); - private static final Reflection.MethodInvoker nbtTagGetString = Reflection.getTypedMethod(nbtTagCompound, null, String.class, String.class); + private static final Reflection.Method nbtTagGetString = Reflection.getTypedMethod(nbtTagCompound, null, String.class, String.class); @Override public BiFunction chunkHiderGenerator(TechHider techHider) { diff --git a/SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/Reflection.java b/SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/Reflection.java deleted file mode 100644 index 4bc66b5c..00000000 --- a/SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/Reflection.java +++ /dev/null @@ -1,416 +0,0 @@ -/* - * This file is a part of the SteamWar software. - * - * Copyright (C) 2024 SteamWar.de-Serverteam - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ - -package com.comphenix.tinyprotocol; - -import de.steamwar.core.Core; -import jdk.internal.misc.Unsafe; -import org.bukkit.Bukkit; - -import java.lang.reflect.*; -import java.util.Arrays; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * An utility class that simplifies reflection in Bukkit plugins. - * - * @author Kristian - */ -public final class Reflection { - /** - * An interface for invoking a specific constructor. - */ - public interface ConstructorInvoker { - /** - * Invoke a constructor for a specific class. - * - * @param arguments - the arguments to pass to the constructor. - * @return The constructed object. - */ - Object invoke(Object... arguments); - } - - /** - * An interface for invoking a specific method. - */ - public interface MethodInvoker { - /** - * Invoke a method on a specific target object. - * - * @param target - the target object, or NULL for a static method. - * @param arguments - the arguments to pass to the method. - * @return The return value, or NULL if is void. - */ - Object invoke(Object target, Object... arguments); - } - - /** - * An interface for retrieving the field content. - * - * @param - field type. - */ - public interface FieldAccessor { - /** - * Retrieve the content of a field. - * - * @param target - the target object, or NULL for a static field. - * @return The value of the field. - */ - T get(Object target); - - /** - * Set the content of a field. - * - * @param target - the target object, or NULL for a static field. - * @param value - the new value of the field. - */ - void set(Object target, Object value); - - /** - * Determine if the given object has this field. - * - * @param target - the object to test. - * @return TRUE if it does, FALSE otherwise. - */ - boolean hasField(Object target); - } - - // Deduce the net.minecraft.server.v* package - private static final String OBC_PREFIX = Bukkit.getServer().getClass().getPackage().getName(); - private static final String NMS_PREFIX = OBC_PREFIX.replace("org.bukkit.craftbukkit", "net.minecraft.server"); - private static final String VERSION = OBC_PREFIX.replace("org.bukkit.craftbukkit", "").replace(".", ""); - - // Variable replacement - private static final Pattern MATCH_VARIABLE = Pattern.compile("\\{([^\\}]+)\\}"); - - private Reflection() { - // Seal class - } - - /** - * Retrieve a field accessor for a specific field type and name. - * - * @param target - the target type. - * @param name - the name of the field, or NULL to ignore. - * @param fieldType - a compatible field type. - * @return The field accessor. - */ - public static FieldAccessor getField(Class target, String name, Class fieldType) { - return getField(target, name, fieldType, 0); - } - - /** - * Retrieve a field accessor for a specific field type and name. - * - * @param className - lookup name of the class, see {@link #getClass(String)}. - * @param name - the name of the field, or NULL to ignore. - * @param fieldType - a compatible field type. - * @return The field accessor. - */ - public static FieldAccessor getField(String className, String name, Class fieldType) { - return getField(getClass(className), name, fieldType, 0); - } - - /** - * Retrieve a field accessor for a specific field type and name. - * - * @param target - the target type. - * @param fieldType - a compatible field type. - * @param index - the number of compatible fields to skip. - * @return The field accessor. - */ - public static FieldAccessor getField(Class target, Class fieldType, int index) { - return getField(target, null, fieldType, index); - } - - /** - * Retrieve a field accessor for a specific field type and name. - * - * @param className - lookup name of the class, see {@link #getClass(String)}. - * @param fieldType - a compatible field type. - * @param index - the number of compatible fields to skip. - * @return The field accessor. - */ - public static FieldAccessor getField(String className, Class fieldType, int index) { - return getField(getClass(className), fieldType, index); - } - - public static FieldAccessor getField(Class target, Class fieldType, int index, Class... parameters) { - return getField(target, null, fieldType, index, parameters); - } - - private static FieldAccessor getField(Class target, String name, Class fieldType, int index, Class... parameters) { - for (final Field field : target.getDeclaredFields()) { - if(matching(field, name, fieldType, parameters) && index-- <= 0) { - field.setAccessible(true); - - return new FieldAccessor() { - @Override - @SuppressWarnings("unchecked") - public T get(Object target) { - try { - return (T) field.get(target); - } catch (IllegalAccessException e) { - throw new IllegalArgumentException("Cannot access reflection.", e); - } - } - - @Override - public void set(Object target, Object value) { - try { - field.set(target, value); - } catch (IllegalAccessException e) { - throw new IllegalArgumentException("Cannot access reflection.", e); - } - } - - @Override - public boolean hasField(Object target) { - // target instanceof DeclaringClass - return field.getDeclaringClass().isAssignableFrom(target.getClass()); - } - }; - } - } - - // Search in parent classes - if (target.getSuperclass() != null) - return getField(target.getSuperclass(), name, fieldType, index); - - throw new IllegalArgumentException("Cannot find field with type " + fieldType); - } - - private static boolean matching(Field field, String name, Class fieldType, Class... parameters) { - if(name != null && !field.getName().equals(name)) - return false; - - if(!fieldType.isAssignableFrom(field.getType())) - return false; - - if(parameters.length > 0) { - Type[] arguments = ((ParameterizedType)field.getGenericType()).getActualTypeArguments(); - - for(int i = 0; i < parameters.length; i++) { - if(arguments[i] instanceof ParameterizedType ? ((ParameterizedType) arguments[i]).getRawType() != parameters[i] : arguments[i] != parameters[i]) - return false; - } - } - return true; - } - - /** - * Search for the first publicly and privately defined method of the given name and parameter count. - * - * @param className - lookup name of the class, see {@link #getClass(String)}. - * @param methodName - the method name, or NULL to skip. - * @param params - the expected parameters. - * @return An object that invokes this specific method. - * @throws IllegalStateException If we cannot find this method. - */ - public static MethodInvoker getMethod(String className, String methodName, Class... params) { - return getTypedMethod(getClass(className), methodName, null, params); - } - - /** - * Search for the first publicly and privately defined method of the given name and parameter count. - * - * @param clazz - a class to start with. - * @param methodName - the method name, or NULL to skip. - * @param params - the expected parameters. - * @return An object that invokes this specific method. - * @throws IllegalStateException If we cannot find this method. - */ - public static MethodInvoker getMethod(Class clazz, String methodName, Class... params) { - return getTypedMethod(clazz, methodName, null, params); - } - - /** - * Search for the first publicly and privately defined method of the given name and parameter count. - * - * @param clazz - a class to start with. - * @param methodName - the method name, or NULL to skip. - * @param returnType - the expected return type, or NULL to ignore. - * @param params - the expected parameters. - * @return An object that invokes this specific method. - * @throws IllegalStateException If we cannot find this method. - */ - public static MethodInvoker getTypedMethod(Class clazz, String methodName, Class returnType, Class... params) { - for (final Method method : clazz.getDeclaredMethods()) { - if ((methodName == null || method.getName().equals(methodName)) - && (returnType == null || method.getReturnType().equals(returnType)) - && Arrays.equals(method.getParameterTypes(), params)) { - method.setAccessible(true); - - return (target, arguments) -> { - try { - return method.invoke(target, arguments); - } catch (Exception e) { - throw new IllegalArgumentException("Cannot invoke method " + method, e); - } - }; - } - } - - // Search in every superclass - if (clazz.getSuperclass() != null) - return getTypedMethod(clazz.getSuperclass(), methodName, returnType, params); - - throw new IllegalStateException(String.format("Unable to find method %s (%s).", methodName, Arrays.asList(params))); - } - - /** - * Search for the first publically and privately defined constructor of the given name and parameter count. - * - * @param className - lookup name of the class, see {@link #getClass(String)}. - * @param params - the expected parameters. - * @return An object that invokes this constructor. - * @throws IllegalStateException If we cannot find this method. - */ - public static ConstructorInvoker getConstructor(String className, Class... params) { - return getConstructor(getClass(className), params); - } - - /** - * Search for the first publically and privately defined constructor of the given name and parameter count. - * - * @param clazz - a class to start with. - * @param params - the expected parameters. - * @return An object that invokes this constructor. - * @throws IllegalStateException If we cannot find this method. - */ - public static ConstructorInvoker getConstructor(Class clazz, Class... params) { - for (final Constructor constructor : clazz.getDeclaredConstructors()) { - if (Arrays.equals(constructor.getParameterTypes(), params)) { - constructor.setAccessible(true); - - return arguments -> { - try { - return constructor.newInstance(arguments); - } catch (Exception e) { - throw new IllegalArgumentException("Cannot invoke constructor " + constructor, e); - } - }; - } - } - - throw new IllegalStateException(String.format("Unable to find constructor for %s (%s).", clazz, Arrays.asList(params))); - } - - /** - * Retrieve a class from its full name, without knowing its type on compile time. - *

- * This is useful when looking up fields by a NMS or OBC type. - *

- * - * @param lookupName - the class name with variables. - * @return The class. - */ - public static Class getUntypedClass(String lookupName) { - @SuppressWarnings({ "rawtypes", "unchecked" }) - Class clazz = (Class) getClass(lookupName); - return clazz; - } - - /** - * Retrieve a class from its full name. - *

- * Strings enclosed with curly brackets - such as {TEXT} - will be replaced according to the following table: - *

- * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
VariableContent
{nms}Actual package name of net.minecraft.server.VERSION
{obc}Actual pacakge name of org.bukkit.craftbukkit.VERSION
{version}The current Minecraft package VERSION, if any.
- * - * @param lookupName - the class name with variables. - * @return The looked up class. - * @throws IllegalArgumentException If a variable or class could not be found. - */ - public static Class getClass(String lookupName) { - try { - return Class.forName(expandVariables(lookupName)); - } catch (ClassNotFoundException e) { - throw new IllegalArgumentException("Cannot find " + expandVariables(lookupName), e); - } - } - - /** - * Expand variables such as "{nms}" and "{obc}" to their corresponding packages. - * - * @param name - the full name of the class. - * @return The expanded string. - */ - private static String expandVariables(String name) { - StringBuffer output = new StringBuffer(); - Matcher matcher = MATCH_VARIABLE.matcher(name); - - while (matcher.find()) { - String variable = matcher.group(1); - String replacement; - - // Expand all detected variables - if (variable.startsWith("nms")) { - if(Core.getVersion() >= 17) - replacement = "net.minecraft" + variable.substring(3); - else - replacement = NMS_PREFIX; - } else if ("obc".equals(variable)) - replacement = OBC_PREFIX; - else if ("version".equals(variable)) - replacement = VERSION; - else - throw new IllegalArgumentException("Unknown variable: " + variable); - - // Assume the expanded variables are all packages, and append a dot - if (replacement.length() > 0 && matcher.end() < name.length() && name.charAt(matcher.end()) != '.') - replacement += "."; - matcher.appendReplacement(output, Matcher.quoteReplacement(replacement)); - } - - matcher.appendTail(output); - return output.toString(); - } - - @SuppressWarnings("deprecation") - public static Object newInstance(Class clazz) { - try { - if (Core.getVersion() > 15) { - return Unsafe.getUnsafe().allocateInstance(clazz); - } else { - return clazz.newInstance(); - } - } catch (InstantiationException | IllegalAccessException e) { - throw new SecurityException("Could not create object", e); - } - } -} diff --git a/SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/TinyProtocol.java b/SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/TinyProtocol.java index 7019c26d..6997b3ef 100644 --- a/SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/TinyProtocol.java +++ b/SpigotCore/SpigotCore_Main/src/com/comphenix/tinyprotocol/TinyProtocol.java @@ -19,7 +19,8 @@ package com.comphenix.tinyprotocol; -import com.comphenix.tinyprotocol.Reflection.FieldAccessor; +import de.steamwar.Reflection; +import de.steamwar.Reflection.Field; import de.steamwar.core.Core; import io.netty.channel.Channel; import io.netty.channel.ChannelDuplexHandler; @@ -44,17 +45,17 @@ public class TinyProtocol implements Listener { private static final Class craftServer = Reflection.getClass("{obc}.CraftServer"); private static final Class dedicatedPlayerList = Reflection.getClass("{nms.server.dedicated}.DedicatedPlayerList"); - private static final FieldAccessor getPlayerList = Reflection.getField(craftServer, dedicatedPlayerList, 0); + private static final Field getPlayerList = Reflection.getField(craftServer, dedicatedPlayerList, 0); private static final Class playerList = Reflection.getClass("{nms.server.players}.PlayerList"); private static final Class minecraftServer = Reflection.getClass("{nms.server}.MinecraftServer"); - private static final FieldAccessor getMinecraftServer = Reflection.getField(playerList, minecraftServer, 0); + private static final Field getMinecraftServer = Reflection.getField(playerList, minecraftServer, 0); public static final Class serverConnection = Reflection.getClass("{nms.server.network}.ServerConnection"); - private static final FieldAccessor getServerConnection = Reflection.getField(minecraftServer, serverConnection, 0); + private static final Field getServerConnection = Reflection.getField(minecraftServer, serverConnection, 0); public static Object getServerConnection(Plugin plugin) { return getServerConnection.get(getMinecraftServer.get(getPlayerList.get(plugin.getServer()))); } private static final Class networkManager = Reflection.getClass("{nms.network}.NetworkManager"); - public static final FieldAccessor networkManagers = Reflection.getField(serverConnection, List.class, 0, networkManager); + public static final Field networkManagers = Reflection.getField(serverConnection, List.class, 0, networkManager); public static final TinyProtocol instance = new TinyProtocol(Core.getInstance()); private static int id = 0; @@ -136,8 +137,8 @@ public class TinyProtocol implements Listener { } } - private static final FieldAccessor getChannel = Reflection.getField(networkManager, Channel.class, 0); - private static final FieldAccessor getUUID = Reflection.getField(networkManager, UUID.class, 0); + private static final Field getChannel = Reflection.getField(networkManager, Channel.class, 0); + private static final Field getUUID = Reflection.getField(networkManager, UUID.class, 0); private final class PacketInterceptor extends ChannelDuplexHandler { private final Player player; diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/Reflection.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/Reflection.java new file mode 100644 index 00000000..26bf8bf2 --- /dev/null +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/Reflection.java @@ -0,0 +1,206 @@ +/* + * This file is a part of the SteamWar software. + * + * Copyright (C) 2024 SteamWar.de-Serverteam + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package de.steamwar; + +import de.steamwar.core.Core; +import jdk.internal.misc.Unsafe; +import lombok.AllArgsConstructor; +import lombok.experimental.UtilityClass; +import org.bukkit.Bukkit; + +import java.lang.reflect.ParameterizedType; +import java.lang.reflect.Type; +import java.util.Arrays; + + +@UtilityClass +public final class Reflection { + + private static final String ORG_BUKKIT_CRAFTBUKKIT = Bukkit.getServer().getClass().getPackage().getName(); + public static final int MAJOR_VERSION = Integer.parseInt(Bukkit.getServer().getClass().getPackage().getName().split("_", 3)[1]); + private static final String LEGACY_NET_MINECRAFT_SERVER = ORG_BUKKIT_CRAFTBUKKIT.replace("org.bukkit.craftbukkit", "net.minecraft.server"); + + public static Class getClass(String name) { + try { + if(name.startsWith("org.bukkit.craftbukkit")) { + return Class.forName(ORG_BUKKIT_CRAFTBUKKIT + name.substring(22)); + } else if(MAJOR_VERSION < 17 && name.startsWith("net.minecraft")) { + return Class.forName(LEGACY_NET_MINECRAFT_SERVER + "." + name.split("[.](?=[^.]*$)")[1]); + } else { + return Class.forName(name); + } + } catch (ClassNotFoundException e) { + throw new IllegalArgumentException("Cannot find " + name, e); + } + } + + @AllArgsConstructor + public static class Field { + private final java.lang.reflect.Field field; + + @SuppressWarnings("unchecked") + public T get(Object target) { + try { + return (T) field.get(target); + } catch (IllegalAccessException e) { + throw new IllegalArgumentException("Cannot read field", e); + } + } + + public void set(Object target, Object value) { + try { + field.set(target, value); + } catch (IllegalAccessException e) { + throw new IllegalArgumentException("Cannot write field", e); + } + } + } + + public static Field getField(Class target, String name, Class fieldType) { + return getField(target, name, fieldType, 0); + } + + public static Field getField(String className, String name, Class fieldType) { + return getField(getClass(className), name, fieldType, 0); + } + + public static Field getField(Class target, Class fieldType, int index) { + return getField(target, null, fieldType, index); + } + + public static Field getField(String className, Class fieldType, int index) { + return getField(getClass(className), fieldType, index); + } + + public static Field getField(Class target, Class fieldType, int index, Class... parameters) { + return getField(target, null, fieldType, index, parameters); + } + + private static Field getField(Class target, String name, Class fieldType, int index, Class... parameters) { + for (final java.lang.reflect.Field field : target.getDeclaredFields()) { + if(matching(field, name, fieldType, parameters) && index-- <= 0) { + field.setAccessible(true); + return new Field<>(field); + } + } + + // Search in parent classes + if (target.getSuperclass() != null) + return getField(target.getSuperclass(), name, fieldType, index); + + throw new IllegalArgumentException("Cannot find field with type " + fieldType); + } + + private static boolean matching(java.lang.reflect.Field field, String name, Class fieldType, Class... parameters) { + if(name != null && !field.getName().equals(name)) + return false; + + if(!fieldType.isAssignableFrom(field.getType())) + return false; + + if(parameters.length > 0) { + Type[] arguments = ((ParameterizedType)field.getGenericType()).getActualTypeArguments(); + + for(int i = 0; i < parameters.length; i++) { + if(arguments[i] instanceof ParameterizedType ? ((ParameterizedType) arguments[i]).getRawType() != parameters[i] : arguments[i] != parameters[i]) + return false; + } + } + return true; + } + + @AllArgsConstructor + public static class Method { + private final java.lang.reflect.Method method; + + public Object invoke(Object target, Object... arguments) { + try { + return method.invoke(target, arguments); + } catch (Exception e) { + throw new IllegalArgumentException("Cannot invoke method " + method, e); + } + } + } + + public static Method getMethod(String className, String methodName, Class... params) { + return getTypedMethod(getClass(className), methodName, null, params); + } + + public static Method getMethod(Class clazz, String methodName, Class... params) { + return getTypedMethod(clazz, methodName, null, params); + } + + public static Method getTypedMethod(Class clazz, String methodName, Class returnType, Class... params) { + for (final java.lang.reflect.Method method : clazz.getDeclaredMethods()) { + if ((methodName == null || method.getName().equals(methodName)) + && (returnType == null || method.getReturnType().equals(returnType)) + && Arrays.equals(method.getParameterTypes(), params)) { + method.setAccessible(true); + return new Method(method); + } + } + + // Search in every superclass + if (clazz.getSuperclass() != null) + return getTypedMethod(clazz.getSuperclass(), methodName, returnType, params); + + throw new IllegalArgumentException(String.format("Cannot find method %s (%s).", methodName, Arrays.asList(params))); + } + + @AllArgsConstructor + public static class Constructor { + private final java.lang.reflect.Constructor constructor; + + public Object invoke(Object... arguments) { + try { + return constructor.newInstance(arguments); + } catch (Exception e) { + throw new IllegalArgumentException("Cannot invoke constructor " + constructor, e); + } + } + } + + public static Constructor getConstructor(String className, Class... params) { + return getConstructor(getClass(className), params); + } + + public static Constructor getConstructor(Class clazz, Class... params) { + for (final java.lang.reflect.Constructor constructor : clazz.getDeclaredConstructors()) { + if (Arrays.equals(constructor.getParameterTypes(), params)) { + constructor.setAccessible(true); + return new Constructor(constructor); + } + } + + throw new IllegalStateException(String.format("Unable to find constructor for %s (%s).", clazz, Arrays.asList(params))); + } + + public static Object newInstance(Class clazz) { + try { + if (Core.getVersion() > 15) { + return Unsafe.getUnsafe().allocateInstance(clazz); + } else { + return clazz.newInstance(); + } + } catch (InstantiationException | IllegalAccessException e) { + throw new SecurityException("Could not create object", e); + } + } +} diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CheckpointUtilsJ9.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CheckpointUtilsJ9.java index cde82084..61788dfa 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CheckpointUtilsJ9.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CheckpointUtilsJ9.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import com.viaversion.viaversion.api.Via; import de.steamwar.sql.internal.Statement; @@ -91,8 +91,8 @@ class CheckpointUtilsJ9 { } - private static final Reflection.FieldAccessor channelFutures = Reflection.getField(TinyProtocol.serverConnection, List.class, 0, ChannelFuture.class); - private static final Reflection.MethodInvoker bind = Reflection.getMethod(TinyProtocol.serverConnection, null, InetAddress.class, int.class); + private static final Reflection.Field channelFutures = Reflection.getField(TinyProtocol.serverConnection, List.class, 0, ChannelFuture.class); + private static final Reflection.Method bind = Reflection.getMethod(TinyProtocol.serverConnection, null, InetAddress.class, int.class); private static void freezeInternal(Path path) throws Exception { Bukkit.getPluginManager().callEvent(new CRIUSleepEvent()); Bukkit.getWorlds().forEach(FlatteningWrapper.impl::syncSave); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CommandRemover.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CommandRemover.java index bbce1378..712ceaf7 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CommandRemover.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/CommandRemover.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import lombok.experimental.UtilityClass; import org.bukkit.Bukkit; import org.bukkit.command.Command; @@ -29,8 +29,8 @@ import java.util.Map; @UtilityClass public class CommandRemover { - private static final Reflection.FieldAccessor commandMap = Reflection.getField("{obc}.CraftServer", "commandMap", SimpleCommandMap.class); - private static final Reflection.FieldAccessor knownCommands = Reflection.getField(SimpleCommandMap.class, "knownCommands", Map.class); + private static final Reflection.Field commandMap = Reflection.getField("{obc}.CraftServer", "commandMap", SimpleCommandMap.class); + private static final Reflection.Field knownCommands = Reflection.getField(SimpleCommandMap.class, "knownCommands", Map.class); public static void removeAll(String... cmds) { Map knownCmds = knownCommands.get(commandMap.get(Bukkit.getServer())); for (String cmd : cmds) { diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java index 9c1e51ef..b17b2ca8 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/Core.java @@ -20,6 +20,7 @@ package de.steamwar.core; import com.comphenix.tinyprotocol.TinyProtocol; +import de.steamwar.Reflection; import de.steamwar.command.*; import de.steamwar.core.authlib.AuthlibInjector; import de.steamwar.core.events.*; @@ -44,10 +45,8 @@ public class Core extends JavaPlugin{ public static final Message MESSAGE = new Message("SpigotCore", Core.class.getClassLoader()); - private static final int VERSION = Integer.parseInt(Bukkit.getServer().getClass().getPackage().getName().split("_", 3)[1]); - public static int getVersion(){ - return VERSION; + return Reflection.MAJOR_VERSION; } private static JavaPlugin instance; diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ErrorHandler.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ErrorHandler.java index c9585847..5a801f11 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ErrorHandler.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ErrorHandler.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.sql.SWException; import java.io.ByteArrayOutputStream; @@ -40,7 +40,7 @@ public class ErrorHandler extends Handler { Logger.getLogger("").addHandler(this); Class watchdogThread = Reflection.getClass("org.spigotmc.WatchdogThread"); - Reflection.FieldAccessor getInstance = Reflection.getField(watchdogThread, watchdogThread, 0); + Reflection.Field getInstance = Reflection.getField(watchdogThread, watchdogThread, 0); Thread watchdog = (Thread) getInstance.get(null); watchdogThreadId = watchdog.getId(); } diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/FlatteningWrapper.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/FlatteningWrapper.java index 479760cf..0f7e9e47 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/FlatteningWrapper.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/FlatteningWrapper.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.entity.EntityType; diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java index e6787497..8706e2c6 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/ProtocolWrapper.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.mojang.authlib.GameProfile; import org.bukkit.GameMode; @@ -33,7 +33,7 @@ public interface ProtocolWrapper { Class equipmentPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityEquipment"); Class enumGamemode = Reflection.getClass(Core.getVersion() > 9 ? "{nms.world.level}.EnumGamemode" : "{nms}.WorldSettings$EnumGamemode"); - Reflection.MethodInvoker getGameModeById = Reflection.getTypedMethod(enumGamemode, null, enumGamemode, int.class); + Reflection.Method getGameModeById = Reflection.getTypedMethod(enumGamemode, null, enumGamemode, int.class); // 0: hand, 1: offhand, 2: feet, 3: legs, 4: chest, 5: head Object[] itemSlots = Core.getVersion() > 8 ? Reflection.getClass("{nms.world.entity}.EnumItemSlot").getEnumConstants() : new Integer[]{0, 0, 1, 2, 3, 4}; diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/TPSWatcher.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/TPSWatcher.java index 54a5f7e2..fefba9cd 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/TPSWatcher.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/TPSWatcher.java @@ -19,7 +19,7 @@ package de.steamwar.core; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import org.bukkit.Bukkit; public class TPSWatcher { @@ -80,8 +80,8 @@ public class TPSWatcher { } private static final Class minecraftServer = Reflection.getClass("{nms.server}.MinecraftServer"); - private static final Reflection.MethodInvoker getServer = Reflection.getTypedMethod(minecraftServer, "getServer", minecraftServer); - private static final Reflection.FieldAccessor recentTps = Reflection.getField(minecraftServer, "recentTps", double[].class); + private static final Reflection.Method getServer = Reflection.getTypedMethod(minecraftServer, "getServer", minecraftServer); + private static final Reflection.Field recentTps = Reflection.getField(minecraftServer, "recentTps", double[].class); private static double[] getSpigotTPS() { return recentTps.get(getServer.invoke(null)); } diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/authlib/AuthlibInjector.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/authlib/AuthlibInjector.java index 0c9c188b..7319f4d4 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/authlib/AuthlibInjector.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/authlib/AuthlibInjector.java @@ -19,7 +19,7 @@ package de.steamwar.core.authlib; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.mojang.authlib.GameProfileRepository; import com.mojang.authlib.yggdrasil.YggdrasilGameProfileRepository; @@ -28,7 +28,7 @@ public class AuthlibInjector { public static void inject() { Class minecraftServerClass = Reflection.getClass("{nms.server}.MinecraftServer"); - Reflection.FieldAccessor gameProfile = Reflection.getField(minecraftServerClass, GameProfileRepository.class, 0); + Reflection.Field gameProfile = Reflection.getField(minecraftServerClass, GameProfileRepository.class, 0); Object minecraftServer = Reflection.getTypedMethod(minecraftServerClass, "getServer", minecraftServerClass).invoke(null); gameProfile.set(minecraftServer, new SteamwarGameProfileRepository((YggdrasilGameProfileRepository) gameProfile.get(minecraftServer))); } diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java index ea7759da..cccdc38c 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/AntiNocom.java @@ -19,7 +19,7 @@ package de.steamwar.core.events; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.Core; import de.steamwar.sql.SWException; @@ -59,8 +59,8 @@ public class AntiNocom implements Listener { Function getPosition; if(Core.getVersion() > 12) { Class movingObjectPositionBlock = Reflection.getClass("{nms.world.phys}.MovingObjectPositionBlock"); - Reflection.FieldAccessor useItemPosition = Reflection.getField(useItem, movingObjectPositionBlock, 0); - Reflection.FieldAccessor movingBlockPosition = Reflection.getField(movingObjectPositionBlock, TechHider.blockPosition, 0); + Reflection.Field useItemPosition = Reflection.getField(useItem, movingObjectPositionBlock, 0); + Reflection.Field movingBlockPosition = Reflection.getField(movingObjectPositionBlock, TechHider.blockPosition, 0); getPosition = (packet) -> movingBlockPosition.get(useItemPosition.get(packet)); } else { @@ -74,7 +74,7 @@ public class AntiNocom implements Listener { } private static final Class blockDig = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInBlockDig"); - private static final Reflection.FieldAccessor digPosition = Reflection.getField(blockDig, TechHider.blockPosition, 0); + private static final Reflection.Field digPosition = Reflection.getField(blockDig, TechHider.blockPosition, 0); private Object onDig(Player player, Object packet) { Object pos = digPosition.get(packet); return isValid(player, "Dig", TechHider.blockPositionX.get(pos), TechHider.blockPositionZ.get(pos)) ? packet : null; diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/PartialChunkFixer.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/PartialChunkFixer.java index 6efab3c5..bca606ec 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/PartialChunkFixer.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/core/events/PartialChunkFixer.java @@ -19,7 +19,7 @@ package de.steamwar.core.events; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.ViaAPI; @@ -39,9 +39,9 @@ public class PartialChunkFixer { private static final int PROTOCOL1_17 = 755; private static final Class mapChunk = Reflection.getClass("{nms}.PacketPlayOutMapChunk"); - private static final Reflection.FieldAccessor fullChunkFlag = Reflection.getField(mapChunk, boolean.class, 0); - private static final Reflection.FieldAccessor chunkX = Reflection.getField(mapChunk, int.class, 0); - private static final Reflection.FieldAccessor chunkZ = Reflection.getField(mapChunk, int.class, 1); + private static final Reflection.Field fullChunkFlag = Reflection.getField(mapChunk, boolean.class, 0); + private static final Reflection.Field chunkX = Reflection.getField(mapChunk, int.class, 0); + private static final Reflection.Field chunkZ = Reflection.getField(mapChunk, int.class, 1); private final ViaAPI via = Via.getAPI(); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntity.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntity.java index 6948dc68..d4ffc19d 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntity.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntity.java @@ -19,7 +19,7 @@ package de.steamwar.entity; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import de.steamwar.core.*; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; @@ -161,8 +161,8 @@ public class REntity { } private static final Class animationPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutAnimation"); - private static final Reflection.FieldAccessor animationEntity = Reflection.getField(animationPacket, int.class, Core.getVersion() > 15 ? (Core.getVersion() > 19 ? 5 : 6) : 0); - private static final Reflection.FieldAccessor animationAnimation = Reflection.getField(animationPacket, int.class, Core.getVersion() > 15 ? (Core.getVersion() > 19 ? 6 : 7) : 1); + private static final Reflection.Field animationEntity = Reflection.getField(animationPacket, int.class, Core.getVersion() > 15 ? (Core.getVersion() > 19 ? 5 : 6) : 0); + private static final Reflection.Field animationAnimation = Reflection.getField(animationPacket, int.class, Core.getVersion() > 15 ? (Core.getVersion() > 19 ? 6 : 7) : 1); public void showAnimation(byte animation) { Object packet = Reflection.newInstance(animationPacket); animationEntity.set(packet, entityId); @@ -171,10 +171,10 @@ public class REntity { } private static final Class velocityPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityVelocity"); - private static final Reflection.FieldAccessor velocityEntity = Reflection.getField(velocityPacket, int.class, 0); - private static final Reflection.FieldAccessor velocityX = Reflection.getField(velocityPacket, int.class, 1); - private static final Reflection.FieldAccessor velocityY = Reflection.getField(velocityPacket, int.class, 2); - private static final Reflection.FieldAccessor velocityZ = Reflection.getField(velocityPacket, int.class, 3); + private static final Reflection.Field velocityEntity = Reflection.getField(velocityPacket, int.class, 0); + private static final Reflection.Field velocityX = Reflection.getField(velocityPacket, int.class, 1); + private static final Reflection.Field velocityY = Reflection.getField(velocityPacket, int.class, 2); + private static final Reflection.Field velocityZ = Reflection.getField(velocityPacket, int.class, 3); public void setVelocity(double dX, double dY, double dZ) { Object packet = Reflection.newInstance(velocityPacket); velocityEntity.set(packet, entityId); @@ -185,8 +185,8 @@ public class REntity { } private static final Class statusPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityStatus"); - private static final Reflection.FieldAccessor statusEntity = Reflection.getField(statusPacket, int.class, 0); - private static final Reflection.FieldAccessor statusStatus = Reflection.getField(statusPacket, byte.class, 0); + private static final Reflection.Field statusEntity = Reflection.getField(statusPacket, int.class, 0); + private static final Reflection.Field statusStatus = Reflection.getField(statusPacket, byte.class, 0); public void showDamage() { Object packet = Reflection.newInstance(statusPacket); statusEntity.set(packet, entityId); @@ -293,7 +293,7 @@ public class REntity { return 4; } } - private static final Reflection.FieldAccessor additionalData = Reflection.getField(ProtocolWrapper.spawnPacket, int.class, objectDataOffset()); + private static final Reflection.Field additionalData = Reflection.getField(ProtocolWrapper.spawnPacket, int.class, objectDataOffset()); private Object spawnPacketGenerator() { Object packet = spawnPacketGenerator.apply(this); additionalData.set(packet, objectData); @@ -347,7 +347,7 @@ public class REntity { } private static final Class destroyPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityDestroy"); - private static final Reflection.FieldAccessor destroyEntities; + private static final Reflection.Field destroyEntities; static { if(Core.getVersion() > 15) destroyEntities = Reflection.getField(destroyPacket, IntList.class, 0); @@ -394,7 +394,7 @@ public class REntity { } public static final Class teleportPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityTeleport"); - public static final Reflection.FieldAccessor teleportEntity = Reflection.getField(teleportPacket, int.class, 0); + public static final Reflection.Field teleportEntity = Reflection.getField(teleportPacket, int.class, 0); public static final BountifulWrapper.PositionSetter teleportPosition = BountifulWrapper.impl.getPositionSetter(teleportPacket, Core.getVersion() == 8 ? 1 : 0); private Object getTeleportPacket(){ Object packet = Reflection.newInstance(teleportPacket); @@ -404,7 +404,7 @@ public class REntity { } private static final Class entityPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntity"); - private static final Reflection.FieldAccessor moveEntityId = Reflection.getField(entityPacket, int.class, 0); + private static final Reflection.Field moveEntityId = Reflection.getField(entityPacket, int.class, 0); private static final BountifulWrapper.PositionSetter movePosition = BountifulWrapper.impl.getRelMoveSetter(entityPacket); private static final Class lookPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntity$PacketPlayOutEntityLook"); private static final Class movePacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntity$PacketPlayOutRelEntityMove"); @@ -429,8 +429,8 @@ public class REntity { } private static final Class headRotationPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutEntityHeadRotation"); - private static final Reflection.FieldAccessor headRotationEntity = Reflection.getField(headRotationPacket, int.class, 0); - private static final Reflection.FieldAccessor headRotationYaw = Reflection.getField(headRotationPacket, byte.class, 0); + private static final Reflection.Field headRotationEntity = Reflection.getField(headRotationPacket, int.class, 0); + private static final Reflection.Field headRotationYaw = Reflection.getField(headRotationPacket, byte.class, 0); private Object getHeadRotationPacket(){ Object packet = Reflection.newInstance(headRotationPacket); headRotationEntity.set(packet, entityId); @@ -438,10 +438,10 @@ public class REntity { return packet; } - private static final Reflection.FieldAccessor equipmentEntity = Reflection.getField(ProtocolWrapper.equipmentPacket, int.class, 0); + private static final Reflection.Field equipmentEntity = Reflection.getField(ProtocolWrapper.equipmentPacket, int.class, 0); private static final Class craftItemStack = Reflection.getClass("{obc}.inventory.CraftItemStack"); - private static final Reflection.MethodInvoker asNMSCopy = Reflection.getTypedMethod(REntity.craftItemStack, "asNMSCopy", ProtocolWrapper.itemStack, ItemStack.class); + private static final Reflection.Method asNMSCopy = Reflection.getTypedMethod(REntity.craftItemStack, "asNMSCopy", ProtocolWrapper.itemStack, ItemStack.class); protected Object getEquipmentPacket(Object slot, ItemStack stack){ Object packet = Reflection.newInstance(ProtocolWrapper.equipmentPacket); equipmentEntity.set(packet, entityId); @@ -462,7 +462,7 @@ public class REntity { } protected static Function spawnPacketGenerator(Class spawnPacket, int posOffset) { - Reflection.FieldAccessor entityId = Reflection.getField(spawnPacket, int.class, 0); + Reflection.Field entityId = Reflection.getField(spawnPacket, int.class, 0); BountifulWrapper.PositionSetter position = BountifulWrapper.impl.getPositionSetter(spawnPacket, posOffset); return entity -> { diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java index 442d05dd..59df0563 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/REntityServer.java @@ -19,7 +19,7 @@ package de.steamwar.entity; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.Core; import de.steamwar.core.FlatteningWrapper; @@ -48,13 +48,13 @@ public class REntityServer implements Listener { private static final HashSet emptyPlayers = new HashSet<>(0); private static final Class useEntity = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInUseEntity"); - private static final Reflection.FieldAccessor useEntityTarget = Reflection.getField(useEntity, int.class, 0); + private static final Reflection.Field useEntityTarget = Reflection.getField(useEntity, int.class, 0); private static final Class useEntityEnumAction = Reflection.getClass("{nms.network.protocol.game}.PacketPlayInUseEntity$EnumEntityUseAction"); - private static final Reflection.FieldAccessor useEntityAction = Reflection.getField(useEntity, useEntityEnumAction, 0); + private static final Reflection.Field useEntityAction = Reflection.getField(useEntity, useEntityEnumAction, 0); private static final Function getEntityAction; static { if(Core.getVersion() > 15) { - Reflection.MethodInvoker useEntityGetAction = Reflection.getMethod(useEntityEnumAction, "a"); + Reflection.Method useEntityGetAction = Reflection.getMethod(useEntityEnumAction, "a"); getEntityAction = value -> ((Enum) useEntityGetAction.invoke(value)).ordinal(); } else { getEntityAction = value -> ((Enum) value).ordinal(); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java index 1aa10d85..cb4e4638 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/entity/RPlayer.java @@ -19,7 +19,7 @@ package de.steamwar.entity; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.mojang.authlib.GameProfile; import de.steamwar.core.BountifulWrapper; import de.steamwar.core.Core; @@ -93,7 +93,7 @@ public class RPlayer extends REntity { private static final Class namedSpawnPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutNamedEntitySpawn"); private static final Function namedSpawnPacketGenerator = spawnPacketGenerator(namedSpawnPacket, Core.getVersion() == 8 ? 1 : 0); - private static final Reflection.FieldAccessor namedSpawnUUID = Reflection.getField(namedSpawnPacket, UUID.class, 0); + private static final Reflection.Field namedSpawnUUID = Reflection.getField(namedSpawnPacket, UUID.class, 0); private Object getNamedSpawnPacket() { Object packet = namedSpawnPacketGenerator.apply(this); namedSpawnUUID.set(packet, uuid); diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/network/handlers/ServerDataHandler.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/network/handlers/ServerDataHandler.java index bfcbbb5c..47b9a146 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/network/handlers/ServerDataHandler.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/network/handlers/ServerDataHandler.java @@ -19,7 +19,7 @@ package de.steamwar.network.handlers; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; public class ServerDataHandler { diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/ProtocolUtils.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/ProtocolUtils.java index fe7bc707..57f27921 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/ProtocolUtils.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/ProtocolUtils.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.google.common.primitives.Bytes; import io.netty.buffer.ByteBuf; diff --git a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java index 9f3ccf90..d29f082d 100644 --- a/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java +++ b/SpigotCore/SpigotCore_Main/src/de/steamwar/techhider/TechHider.java @@ -19,7 +19,7 @@ package de.steamwar.techhider; -import com.comphenix.tinyprotocol.Reflection; +import de.steamwar.Reflection; import com.comphenix.tinyprotocol.TinyProtocol; import de.steamwar.core.Core; import lombok.Getter; @@ -37,19 +37,19 @@ public class TechHider { public static final Class blockPosition = Reflection.getClass("{nms.core}.BlockPosition"); private static final Class baseBlockPosition = Reflection.getClass("{nms.core}.BaseBlockPosition"); - public static final Reflection.FieldAccessor blockPositionX = Reflection.getField(baseBlockPosition, int.class, 0); - public static final Reflection.FieldAccessor blockPositionY = Reflection.getField(baseBlockPosition, int.class, 1); - public static final Reflection.FieldAccessor blockPositionZ = Reflection.getField(baseBlockPosition, int.class, 2); + public static final Reflection.Field blockPositionX = Reflection.getField(baseBlockPosition, int.class, 0); + public static final Reflection.Field blockPositionY = Reflection.getField(baseBlockPosition, int.class, 1); + public static final Reflection.Field blockPositionZ = Reflection.getField(baseBlockPosition, int.class, 2); public static final Class iBlockData = Reflection.getClass("{nms.world.level.block.state}.IBlockData"); public static final Class block = Reflection.getClass("{nms.world.level.block}.Block"); - private static final Reflection.MethodInvoker getBlockDataByBlock = Reflection.getTypedMethod(block, null, iBlockData); + private static final Reflection.Method getBlockDataByBlock = Reflection.getTypedMethod(block, null, iBlockData); public static final Class craftMagicNumbers = Reflection.getClass("{obc}.util.CraftMagicNumbers"); - private static final Reflection.MethodInvoker getBlockByMaterial = Reflection.getTypedMethod(craftMagicNumbers, "getBlock", block, Material.class); + private static final Reflection.Method getBlockByMaterial = Reflection.getTypedMethod(craftMagicNumbers, "getBlock", block, Material.class); - private static final Reflection.MethodInvoker getBlockByBlockData = Reflection.getTypedMethod(iBlockData, null, block); - private static final Reflection.MethodInvoker getMaterialByBlock = Reflection.getTypedMethod(craftMagicNumbers, "getMaterial", Material.class, block); + private static final Reflection.Method getBlockByBlockData = Reflection.getTypedMethod(iBlockData, null, block); + private static final Reflection.Method getMaterialByBlock = Reflection.getTypedMethod(craftMagicNumbers, "getMaterial", Material.class, block); public boolean iBlockDataHidden(Object iBlockData) { return obfuscate.contains((Material) getMaterialByBlock.invoke(null, getBlockByBlockData.invoke(iBlockData))); } @@ -110,8 +110,8 @@ public class TechHider { private static final Class blockChangePacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutBlockChange"); private static final Function blockChangeCloner = ProtocolUtils.shallowCloneGenerator(blockChangePacket); - private static final Reflection.FieldAccessor blockChangePosition = Reflection.getField(blockChangePacket, blockPosition, 0); - private static final Reflection.FieldAccessor blockChangeBlockData = Reflection.getField(blockChangePacket, iBlockData, 0); + private static final Reflection.Field blockChangePosition = Reflection.getField(blockChangePacket, blockPosition, 0); + private static final Reflection.Field blockChangeBlockData = Reflection.getField(blockChangePacket, iBlockData, 0); private Object blockChangeHider(Player p, Object packet) { switch (locationEvaluator.checkBlockPos(p, blockChangePosition.get(packet))) { case SKIP: @@ -132,7 +132,7 @@ public class TechHider { } private static final Class blockActionPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutBlockAction"); - private static final Reflection.FieldAccessor blockActionPosition = Reflection.getField(blockActionPacket, blockPosition, 0); + private static final Reflection.Field blockActionPosition = Reflection.getField(blockActionPacket, blockPosition, 0); private Object blockActionHider(Player p, Object packet) { if (locationEvaluator.checkBlockPos(p, blockActionPosition.get(packet)) == State.SKIP) return packet; @@ -140,7 +140,7 @@ public class TechHider { } public static final Class tileEntityDataPacket = Reflection.getClass("{nms.network.protocol.game}.PacketPlayOutTileEntityData"); - private static final Reflection.FieldAccessor tileEntityDataPosition = Reflection.getField(tileEntityDataPacket, blockPosition, 0); + private static final Reflection.Field tileEntityDataPosition = Reflection.getField(tileEntityDataPacket, blockPosition, 0); private Object tileEntityDataHider(Player p, Object packet) { switch (locationEvaluator.checkBlockPos(p, tileEntityDataPosition.get(packet))) { case SKIP: