diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java index f94e093..2197d1a 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/commands/PaperBrigadierCommand.java @@ -18,8 +18,8 @@ import fr.pandacube.lib.paper.reflect.wrapper.craftbukkit.CraftVector; import fr.pandacube.lib.paper.reflect.wrapper.craftbukkit.VanillaCommandWrapper; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.commands.Coordinates; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.commands.Vec3Argument; +import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.APICommandMeta; import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.BukkitCommandNode; -import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.PluginCommandMeta; import fr.pandacube.lib.players.standalone.AbstractOffPlayer; import fr.pandacube.lib.players.standalone.AbstractOnlinePlayer; import fr.pandacube.lib.players.standalone.AbstractPlayerManager; @@ -227,8 +227,8 @@ public abstract class PaperBrigadierCommand extends BrigadierCommand wrappedCommandNode = wrap(actualNode, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); if (actualNode != null) { - if (wrappedCommandNode.pluginCommandMeta() != null) { - PluginCommandMeta meta = wrappedCommandNode.pluginCommandMeta(); + if (wrappedCommandNode.apiCommandMeta() != null) { + APICommandMeta meta = wrappedCommandNode.apiCommandMeta(); if (meta.plugin().equals(plugin)) return; } @@ -246,7 +246,7 @@ public abstract class PaperBrigadierCommand extends BrigadierCommand newPCN = getAliasNode(commandNode, aliasToForce); @SuppressWarnings("unchecked") fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode wrappedNewPCN = wrap(newPCN, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); - wrappedNewPCN.pluginCommandMeta(registeredNode.pluginCommandMeta()); + wrappedNewPCN.apiCommandMeta(registeredNode.apiCommandMeta()); vanillaPaperDispatcher.getRoot().addChild(newPCN); } }); @@ -326,8 +326,8 @@ public abstract class PaperBrigadierCommand extends BrigadierCommand wrappedCommandNode = wrap(command, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); - if (wrappedCommandNode.pluginCommandMeta() != null) { - PluginCommandMeta meta = wrappedCommandNode.pluginCommandMeta(); + if (wrappedCommandNode.apiCommandMeta() != null) { + APICommandMeta meta = wrappedCommandNode.apiCommandMeta(); return "Node /" + command.getName() + " from plugin " + meta.plugin().getName(); } else { @@ -358,7 +358,7 @@ public abstract class PaperBrigadierCommand extends BrigadierCommand wrappedCommandNode = wrap(command, fr.pandacube.lib.paper.reflect.wrapper.brigadier.CommandNode.class); - return wrappedCommandNode.pluginCommandMeta() != null; + return wrappedCommandNode.apiCommandMeta() != null; } } diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/players/PaperOffPlayer.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/players/PaperOffPlayer.java index 1541cde..0abe1a6 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/players/PaperOffPlayer.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/players/PaperOffPlayer.java @@ -1,5 +1,6 @@ package fr.pandacube.lib.paper.players; +import fr.pandacube.lib.paper.reflect.wrapper.minecraft.util.ProblemReporter; import fr.pandacube.lib.paper.world.PrimaryWorlds; import fr.pandacube.lib.paper.reflect.wrapper.craftbukkit.CraftServer; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.nbt.CompoundTag; @@ -166,7 +167,7 @@ public interface PaperOffPlayer extends AbstractOffPlayer { .getServer() .getPlayerList() .playerIo() - .load(getName(), getUniqueId().toString()).orElse(null); + .load(getName(), getUniqueId().toString(), ProblemReporter.DISCARDING()).orElse(null); } catch (Exception|LinkageError e) { throw new PlayerDataLoadException(getName(), getUniqueId(), e); } diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/PandalibPaperReflect.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/PandalibPaperReflect.java index 71d5a89..17a6e06 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/PandalibPaperReflect.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/PandalibPaperReflect.java @@ -14,9 +14,7 @@ import fr.pandacube.lib.paper.reflect.wrapper.craftbukkit.VanillaCommandWrapper; import fr.pandacube.lib.paper.reflect.wrapper.dataconverter.MCDataConverter; import fr.pandacube.lib.paper.reflect.wrapper.dataconverter.MCDataType; import fr.pandacube.lib.paper.reflect.wrapper.dataconverter.MCTypeRegistry; -import fr.pandacube.lib.paper.reflect.wrapper.minecraft.DetectedVersion; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.SharedConstants; -import fr.pandacube.lib.paper.reflect.wrapper.minecraft.WorldVersion; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.commands.CommandSourceStack; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.commands.Commands; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.commands.Coordinates; @@ -54,11 +52,11 @@ import fr.pandacube.lib.paper.reflect.wrapper.minecraft.server.ServerGamePacketL import fr.pandacube.lib.paper.reflect.wrapper.minecraft.server.ServerLevel; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.server.ServerPlayer; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.server.Settings; +import fr.pandacube.lib.paper.reflect.wrapper.minecraft.util.ProblemReporter; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.util.ProgressListener; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.AABB; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.ChunkPos; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.ChunkStorage; -import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.DataVersion; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.Entity; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.ItemStack; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.Level; @@ -73,9 +71,9 @@ import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.block.Block; import fr.pandacube.lib.paper.reflect.wrapper.netty.ByteBuf; import fr.pandacube.lib.paper.reflect.wrapper.netty.Unpooled; import fr.pandacube.lib.paper.reflect.wrapper.paper.PaperAdventure; +import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.APICommandMeta; import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.BukkitCommandNode; import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.PaperBrigadier; -import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.PluginCommandMeta; import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.ShadowBrigNode; import fr.pandacube.lib.paper.reflect.wrapper.paper.configuration.FallbackValue_Int; import fr.pandacube.lib.paper.reflect.wrapper.paper.configuration.WorldConfiguration; @@ -180,6 +178,7 @@ public class PandalibPaperReflect { thAcc.catchThrowable(() -> initWrapper(ServerPlayer.class, ServerPlayer.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(Settings.class, Settings.REFLECT.get())); // minecraft.util + thAcc.catchThrowable(() -> initWrapper(ProblemReporter.class, ProblemReporter.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(ProgressListener.class, ProgressListener.REFLECT.get())); // minecraft.world.block thAcc.catchThrowable(() -> initWrapper(Block.class, Block.REFLECT.get())); @@ -188,7 +187,6 @@ public class PandalibPaperReflect { thAcc.catchThrowable(() -> initWrapper(AABB.class, AABB.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(ChunkPos.class, ChunkPos.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(ChunkStorage.class, ChunkStorage.REFLECT.get())); - thAcc.catchThrowable(() -> initWrapper(DataVersion.class, DataVersion.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(Entity.class, Entity.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(ItemStack.class, ItemStack.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(Level.class, Level.REFLECT.get())); @@ -199,18 +197,16 @@ public class PandalibPaperReflect { thAcc.catchThrowable(() -> initWrapper(Vec3.class, Vec3.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(VoxelShape.class, VoxelShape.REFLECT.get())); // minecraft - thAcc.catchThrowable(() -> initWrapper(DetectedVersion.class, DetectedVersion.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(SharedConstants.class, SharedConstants.REFLECT.get())); - thAcc.catchThrowable(() -> initWrapper(WorldVersion.class, WorldVersion.REFLECT.get())); // netty thAcc.catchThrowable(() -> initWrapper(ByteBuf.class, ByteBuf.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(Unpooled.class, Unpooled.REFLECT.get())); // paper.commands + thAcc.catchThrowable(() -> initWrapper(APICommandMeta.class, APICommandMeta.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(BukkitCommandNode.class, BukkitCommandNode.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(PaperBrigadier.class, PaperBrigadier.REFLECT.get())); - thAcc.catchThrowable(() -> initWrapper(PluginCommandMeta.class, PluginCommandMeta.REFLECT.get())); thAcc.catchThrowable(() -> initWrapper(ShadowBrigNode.class, ShadowBrigNode.REFLECT.get())); // paper.configuration thAcc.catchThrowable(() -> initWrapper(FallbackValue_Int.class, FallbackValue_Int.REFLECT.get())); diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/util/BedrockBambooCollisionFixer.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/util/BedrockBambooCollisionFixer.java index dbc3894..fe03aa5 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/util/BedrockBambooCollisionFixer.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/util/BedrockBambooCollisionFixer.java @@ -34,7 +34,7 @@ public final class BedrockBambooCollisionFixer implements Listener { public BedrockBambooCollisionFixer() { // Make the bamboo block have zero collision. try { - BambooStalkBlock.COLLISION_SHAPE(Block.box(8, 0, 8, 8, 0, 8)); + BambooStalkBlock.SHAPE_COLLISION(Block.box(8, 0, 8, 8, 0, 8)); Log.info("Bamboo block collision box removed successfully."); } catch (Exception e) { Log.severe("Unable to remove the collision box of the Bamboo block.", e); diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/brigadier/CommandNode.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/brigadier/CommandNode.java index e6adc0b..b0355c7 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/brigadier/CommandNode.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/brigadier/CommandNode.java @@ -1,6 +1,6 @@ package fr.pandacube.lib.paper.reflect.wrapper.brigadier; -import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.PluginCommandMeta; +import fr.pandacube.lib.paper.reflect.wrapper.paper.commands.APICommandMeta; import fr.pandacube.lib.reflect.Reflect; import fr.pandacube.lib.reflect.ReflectField; import fr.pandacube.lib.reflect.wrapper.ReflectWrapperTyped; @@ -13,18 +13,18 @@ import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; public class CommandNode extends ReflectWrapperTyped> { public static final ReflectClass REFLECT = Reflect.ofClass(com.mojang.brigadier.tree.CommandNode.class); private static final ReflectMethod removeCommand = wrapEx(() -> REFLECT.method("removeCommand", String.class)); - private static final ReflectField pluginCommandMeta = wrapEx(() -> REFLECT.field("pluginCommandMeta")); + private static final ReflectField apiCommandMeta = wrapEx(() -> REFLECT.field("apiCommandMeta")); public void removeCommand(String cmd) { wrapReflectEx(() -> removeCommand.invoke(__getRuntimeInstance(), cmd)); } - public PluginCommandMeta pluginCommandMeta() { - return wrap(wrapReflectEx(() -> pluginCommandMeta.getValue(__getRuntimeInstance())), PluginCommandMeta.class); + public APICommandMeta apiCommandMeta() { + return wrap(wrapReflectEx(() -> apiCommandMeta.getValue(__getRuntimeInstance())), APICommandMeta.class); } - public void pluginCommandMeta(PluginCommandMeta meta) { - wrapReflectEx(() -> pluginCommandMeta.setValue(__getRuntimeInstance(), unwrap(meta))); + public void apiCommandMeta(APICommandMeta meta) { + wrapReflectEx(() -> apiCommandMeta.setValue(__getRuntimeInstance(), unwrap(meta))); } protected CommandNode(Object obj) { diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/CraftVector.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/CraftVector.java index 4362781..10b97c4 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/CraftVector.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/CraftVector.java @@ -1,12 +1,10 @@ package fr.pandacube.lib.paper.reflect.wrapper.craftbukkit; import fr.pandacube.lib.paper.reflect.OBCReflect; -import fr.pandacube.lib.reflect.wrapper.ReflectWrapper; -import fr.pandacube.lib.paper.reflect.wrapper.minecraft.core.BlockPos; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.Vec3; import fr.pandacube.lib.reflect.ReflectClass; import fr.pandacube.lib.reflect.ReflectMethod; - +import fr.pandacube.lib.reflect.wrapper.ReflectWrapper; import fr.pandacube.lib.util.ThrowableUtil; import org.bukkit.util.Vector; @@ -16,26 +14,11 @@ import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; public class CraftVector extends ReflectWrapper { public static final ReflectClass REFLECT = wrapEx(() -> OBCReflect.ofClass("util.CraftVector")); public static final ReflectMethod toBukkit_Vec3 = ThrowableUtil.wrapEx(() -> REFLECT.method("toBukkit", Vec3.REFLECT.get())); - public static final ReflectMethod toBukkit_BlockPos = ThrowableUtil.wrapEx(() -> REFLECT.method("toBukkit", BlockPos.REFLECT.get())); - public static final ReflectMethod toNMS = wrapEx(() -> REFLECT.method("toNMS", Vector.class)); - public static final ReflectMethod toBlockPos = wrapEx(() -> REFLECT.method("toNMS", Vector.class)); public static Vector toBukkit(Vec3 nms) { return (Vector) wrapReflectEx(() -> toBukkit_Vec3.invokeStatic(unwrap(nms))); } - public static Vector toBukkit(BlockPos blockPos) { - return (Vector) wrapReflectEx(() -> toBukkit_BlockPos.invokeStatic(unwrap(blockPos))); - } - - public static Vec3 toNMS(Vector bukkit) { - return wrap(wrapReflectEx(() -> toNMS.invokeStatic(bukkit)), Vec3.class); - } - - public static BlockPos toBlockPos(Vector bukkit) { - return wrap(wrapReflectEx(() -> toBlockPos.invokeStatic(bukkit)), BlockPos.class); - } - protected CraftVector(Object obj) { super(obj); diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/VanillaCommandWrapper.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/VanillaCommandWrapper.java index 8b36f32..d6ae148 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/VanillaCommandWrapper.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/craftbukkit/VanillaCommandWrapper.java @@ -17,13 +17,9 @@ import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; public class VanillaCommandWrapper extends ReflectWrapperTyped { public static final ReflectClass REFLECT = wrapEx(() -> OBCReflect.ofClass("command.VanillaCommandWrapper")); - public static final ReflectConstructor CONSTRUCTOR = wrapEx(() -> REFLECT.constructor(Commands.REFLECT.get(), CommandNode.class)); public static final ReflectField vanillaCommand = wrapEx(() -> REFLECT.field("vanillaCommand")); public static final ReflectMethod getListener = wrapEx(() -> REFLECT.method("getListener", CommandSender.class)); - public VanillaCommandWrapper(Commands dispatcher, CommandNode vanillaCommand) { - this(wrapReflectEx(() -> CONSTRUCTOR.instantiate(unwrap(dispatcher), vanillaCommand))); - } @SuppressWarnings("unchecked") public CommandNode vanillaCommand() { diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/DetectedVersion.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/DetectedVersion.java deleted file mode 100644 index 1ed861a..0000000 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/DetectedVersion.java +++ /dev/null @@ -1,15 +0,0 @@ -package fr.pandacube.lib.paper.reflect.wrapper.minecraft; - -import fr.pandacube.lib.reflect.Reflect; -import fr.pandacube.lib.reflect.ReflectClass; -import fr.pandacube.lib.reflect.wrapper.ReflectWrapper; - -import static fr.pandacube.lib.util.ThrowableUtil.wrapEx; - -public class DetectedVersion extends ReflectWrapper implements WorldVersion { - public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.DetectedVersion")); - - protected DetectedVersion(Object obj) { - super(obj); - } -} diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/SharedConstants.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/SharedConstants.java index ebd62b4..4880097 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/SharedConstants.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/SharedConstants.java @@ -10,15 +10,10 @@ import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; public class SharedConstants extends ReflectWrapper { public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.SharedConstants")); - private static final ReflectMethod getCurrentVersion = wrapEx(() -> REFLECT.method("getCurrentVersion")); private static final ReflectMethod getProtocolVersion = wrapEx(() -> REFLECT.method("getProtocolVersion")); - public static WorldVersion getCurrentVersion() { - return wrap(wrapReflectEx(() -> getCurrentVersion.invokeStatic()), WorldVersion.class); - } - public static int getProtocolVersion() { return (int) wrapReflectEx(() -> getProtocolVersion.invokeStatic()); } diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/WorldVersion.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/WorldVersion.java deleted file mode 100644 index b644736..0000000 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/WorldVersion.java +++ /dev/null @@ -1,31 +0,0 @@ -package fr.pandacube.lib.paper.reflect.wrapper.minecraft; - -import fr.pandacube.lib.paper.reflect.wrapper.minecraft.world.DataVersion; -import fr.pandacube.lib.reflect.Reflect; -import fr.pandacube.lib.reflect.ReflectClass; -import fr.pandacube.lib.reflect.ReflectMethod; -import fr.pandacube.lib.reflect.wrapper.ConcreteWrapper; -import fr.pandacube.lib.reflect.wrapper.ReflectWrapper; -import fr.pandacube.lib.reflect.wrapper.ReflectWrapperI; - -import static fr.pandacube.lib.reflect.wrapper.ReflectWrapper.wrap; -import static fr.pandacube.lib.util.ThrowableUtil.wrapEx; -import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; - -@ConcreteWrapper(WorldVersion.__concrete.class) -public interface WorldVersion extends ReflectWrapperI { - ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.WorldVersion")); - ReflectMethod getDataVersion = wrapEx(() -> REFLECT.method("getDataVersion")); - - default DataVersion getDataVersion() { - return wrap(wrapReflectEx(() -> getDataVersion.invoke(__getRuntimeInstance())), DataVersion.class); - } - - - - class __concrete extends ReflectWrapper implements WorldVersion { - private __concrete(Object obj) { - super(obj); - } - } -} diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/nbt/Tag.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/nbt/Tag.java index b5e5274..2b7a2d2 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/nbt/Tag.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/nbt/Tag.java @@ -8,20 +8,23 @@ import fr.pandacube.lib.reflect.wrapper.ConcreteWrapper; import fr.pandacube.lib.reflect.wrapper.ReflectWrapper; import fr.pandacube.lib.reflect.wrapper.ReflectWrapperI; +import java.util.Optional; + import static fr.pandacube.lib.util.ThrowableUtil.wrapEx; import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; @ConcreteWrapper(Tag.__concrete.class) public interface Tag extends ReflectWrapperI { ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.nbt.Tag")); - ReflectMethod getAsString = wrapEx(() -> REFLECT.method("getAsString")); + ReflectMethod asString = wrapEx(() -> REFLECT.method("asString")); ReflectField TAG_LIST = wrapEx(() -> REFLECT.field("TAG_LIST")); ReflectField TAG_COMPOUND = wrapEx(() -> REFLECT.field("TAG_COMPOUND")); ReflectField TAG_ANY_NUMERIC = wrapEx(() -> REFLECT.field("TAG_ANY_NUMERIC")); - default String getAsString() { - return wrapReflectEx(() -> (String) getAsString.invoke(__getRuntimeInstance())); + @SuppressWarnings("unchecked") + default Optional asString() { + return wrapReflectEx(() -> (Optional) asString.invoke(__getRuntimeInstance())); } static byte TAG_LIST() { diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/util/ProblemReporter.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/util/ProblemReporter.java new file mode 100644 index 0000000..c0724f9 --- /dev/null +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/util/ProblemReporter.java @@ -0,0 +1,31 @@ +package fr.pandacube.lib.paper.reflect.wrapper.minecraft.util; + +import fr.pandacube.lib.reflect.Reflect; +import fr.pandacube.lib.reflect.ReflectClass; +import fr.pandacube.lib.reflect.ReflectField; +import fr.pandacube.lib.reflect.wrapper.ConcreteWrapper; +import fr.pandacube.lib.reflect.wrapper.ReflectWrapper; +import fr.pandacube.lib.reflect.wrapper.ReflectWrapperI; + +import static fr.pandacube.lib.reflect.wrapper.ReflectWrapper.wrap; +import static fr.pandacube.lib.util.ThrowableUtil.wrapEx; +import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; + +@ConcreteWrapper(ProblemReporter.__concrete.class) +public interface ProblemReporter extends ReflectWrapperI { + ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.util.ProblemReporter")); + ReflectField DISCARDING = wrapEx(() -> REFLECT.field("DISCARDING")); + + static ProblemReporter DISCARDING() { + return wrap(wrapReflectEx(DISCARDING::getStaticValue), ProblemReporter.class); + } + + + + + class __concrete extends ReflectWrapper implements ProblemReporter { + protected __concrete(Object obj) { + super(obj); + } + } +} diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/DataVersion.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/DataVersion.java deleted file mode 100644 index 5c61dff..0000000 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/DataVersion.java +++ /dev/null @@ -1,32 +0,0 @@ -package fr.pandacube.lib.paper.reflect.wrapper.minecraft.world; - -import fr.pandacube.lib.reflect.Reflect; -import fr.pandacube.lib.reflect.ReflectClass; -import fr.pandacube.lib.reflect.ReflectMethod; -import fr.pandacube.lib.reflect.wrapper.ReflectWrapper; - -import static fr.pandacube.lib.util.ThrowableUtil.wrapEx; -import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; - -public class DataVersion extends ReflectWrapper { - public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.world.level.storage.DataVersion")); - private static final ReflectMethod getVersion = wrapEx(() -> REFLECT.method("getVersion")); - private static final ReflectMethod getSeries = wrapEx(() -> REFLECT.method("getSeries")); - - - - public int getVersion() { - return (int) wrapReflectEx(() -> getVersion.invoke(__getRuntimeInstance())); - } - - public String getSeries() { - return (String) wrapReflectEx(() -> getSeries.invoke(__getRuntimeInstance())); - } - - - - - protected DataVersion(Object obj) { - super(obj); - } -} diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/Level.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/Level.java index 19a5b09..a3e1699 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/Level.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/Level.java @@ -12,17 +12,12 @@ import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; public class Level extends ReflectWrapper { public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.world.level.Level")); public static final ReflectMethod getGameTime = wrapEx(() -> REFLECT.method("getGameTime")); - public static final ReflectMethod getFreeMapId = wrapEx(() -> REFLECT.method("getFreeMapId")); public static final ReflectMethod paperConfig = wrapEx(() -> REFLECT.method("paperConfig")); // paper method public long getGameTime() { return (long) wrapReflectEx(() -> getGameTime.invoke(__getRuntimeInstance())); } - public int getFreeMapId() { - return (int) wrapReflectEx(() -> getFreeMapId.invoke(__getRuntimeInstance())); - } - public WorldConfiguration paperConfig() { return wrap(wrapReflectEx(() -> paperConfig.invoke(__getRuntimeInstance())), WorldConfiguration.class); } diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/PlayerDataStorage.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/PlayerDataStorage.java index a17d922..7b3d6b4 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/PlayerDataStorage.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/PlayerDataStorage.java @@ -1,6 +1,7 @@ package fr.pandacube.lib.paper.reflect.wrapper.minecraft.world; import fr.pandacube.lib.paper.reflect.wrapper.minecraft.nbt.CompoundTag; +import fr.pandacube.lib.paper.reflect.wrapper.minecraft.util.ProblemReporter; import fr.pandacube.lib.reflect.Reflect; import fr.pandacube.lib.reflect.ReflectClass; import fr.pandacube.lib.reflect.ReflectMethod; @@ -13,15 +14,15 @@ import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; public class PlayerDataStorage extends ReflectWrapper { public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.world.level.storage.PlayerDataStorage")); - public static final ReflectMethod load = wrapEx(() -> REFLECT.method("load", String.class, String.class)); + public static final ReflectMethod load = wrapEx(() -> REFLECT.method("load", String.class, String.class, ProblemReporter.REFLECT.get())); /** * @param playerName the name of the player: used for loading error message and for offline UUID generation. * @param playerId UUID of a player as it is used to name the player data file (UUID.toString()). */ @SuppressWarnings("unchecked") - public Optional load(String playerName, String playerId) { - return wrapOptional((Optional) wrapReflectEx(() -> load.invoke(__getRuntimeInstance(), playerName, playerId)), CompoundTag.class); + public Optional load(String playerName, String playerId, ProblemReporter problemReporter) { + return wrapOptional((Optional) wrapReflectEx(() -> load.invoke(__getRuntimeInstance(), playerName, playerId, unwrap(problemReporter))), CompoundTag.class); } diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/block/BambooStalkBlock.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/block/BambooStalkBlock.java index 2509b82..69b40af 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/block/BambooStalkBlock.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/minecraft/world/block/BambooStalkBlock.java @@ -10,14 +10,14 @@ import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; public class BambooStalkBlock extends Block { public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("net.minecraft.world.level.block.BambooStalkBlock")); - public static final ReflectField COLLISION_SHAPE = wrapEx(() -> REFLECT.field("COLLISION_SHAPE")); + public static final ReflectField SHAPE_COLLISION = wrapEx(() -> REFLECT.field("SHAPE_COLLISION")); - public static VoxelShape COLLISION_SHAPE() { - return wrap(wrapReflectEx(COLLISION_SHAPE::getStaticValue), VoxelShape.class); + public static VoxelShape SHAPE_COLLISION() { + return wrap(wrapReflectEx(SHAPE_COLLISION::getStaticValue), VoxelShape.class); } - public static void COLLISION_SHAPE(VoxelShape shape) { - wrapReflectEx(() -> COLLISION_SHAPE.setStaticValue(unwrap(shape))); + public static void SHAPE_COLLISION(VoxelShape shape) { + wrapReflectEx(() -> SHAPE_COLLISION.setStaticValue(unwrap(shape))); } protected BambooStalkBlock(Object obj) { diff --git a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/paper/commands/PluginCommandMeta.java b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/paper/commands/APICommandMeta.java similarity index 87% rename from pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/paper/commands/PluginCommandMeta.java rename to pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/paper/commands/APICommandMeta.java index 5cd1865..0c44964 100644 --- a/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/paper/commands/PluginCommandMeta.java +++ b/pandalib-paper/src/main/java/fr/pandacube/lib/paper/reflect/wrapper/paper/commands/APICommandMeta.java @@ -11,8 +11,8 @@ import java.util.List; import static fr.pandacube.lib.util.ThrowableUtil.wrapEx; import static fr.pandacube.lib.util.ThrowableUtil.wrapReflectEx; -public class PluginCommandMeta extends ReflectWrapper { - public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("io.papermc.paper.command.brigadier.PluginCommandMeta")); +public class APICommandMeta extends ReflectWrapper { + public static final ReflectClass REFLECT = wrapEx(() -> Reflect.ofClass("io.papermc.paper.command.brigadier.APICommandMeta")); private static final ReflectMethod plugin = wrapEx(() -> REFLECT.method("plugin")); private static final ReflectMethod description = wrapEx(() -> REFLECT.method("description")); private static final ReflectMethod aliases = wrapEx(() -> REFLECT.method("aliases")); @@ -33,7 +33,7 @@ public class PluginCommandMeta extends ReflectWrapper { - protected PluginCommandMeta(Object obj) { + protected APICommandMeta(Object obj) { super(obj); } } diff --git a/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java b/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java index b5cf339..b2f9a82 100644 --- a/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java +++ b/pandalib-reflect/src/main/java/fr/pandacube/lib/reflect/wrapper/ReflectWrapper.java @@ -198,16 +198,20 @@ public abstract class ReflectWrapper implements ReflectWrapperI { @Override public boolean equals(Object obj) { if (obj instanceof ReflectWrapper wr) { - return Objects.equals(reflectObject, wr.reflectObject); + return reflectObject.equals(wr.reflectObject); } return false; } @Override public int hashCode() { - return Objects.hashCode(reflectObject); + return reflectObject.hashCode(); + } + + @Override + public String toString() { + return reflectObject.toString(); } - }