I generally refrain from leaving poor reviews on resources but seeing as this one is premium and closed source, I will not hold back on leaving my gripes about this plugin.
This plugin breaks EVERY single Minecraft update because of terrible reflection and unnecessary NMS usage. Author takes excessively long to update this plugin whilst instead spending their time updating their other (more popular) resources and leaving this one to sit on MC 1.21.8 while 1.21.11 has been out for months now. Every single Minecraft version, I'm forced to decompile this plugin just to change one line and add the new version of NMS.
This plugin is so simple that I would not recommend buying this and instead look for more actively maintained ones that have similar features.
[18:40:39] [Server thread/WARN]: java.lang.ClassNotFoundException: org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemStack
[18:40:39] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:205)
[18:40:39] [Server thread/WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:172)
[18:40:39] [Server thread/WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526)
[18:40:39] [Server thread/WARN]: at java.base/java.lang.Class.forName0(Native Method)
[18:40:39] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:534)
[18:40:39] [Server thread/WARN]: at java.base/java.lang.Class.forName(Class.java:513)
[18:40:39] [Server thread/WARN]: at io.papermc.reflectionrewriter.runtime.AbstractDefaultRulesReflectionProxy.forName(AbstractDefaultRulesReflectionProxy.java:68)
[18:40:39] [Server thread/WARN]: at io.papermc.paper.pluginremap.reflect.PaperReflectionHolder.forName(Unknown Source)
[18:40:39] [Server thread/WARN]: at JetsRepairTokens-3.13.jar//me.jet315.repairtokens.utils.ReflectionUtils.getClass(ReflectionUtils.java:136)
[18:40:39] [Server thread/WARN]: at JetsRepairTokens-3.13.jar//me.jet315.repairtokens.utils.NBTUtils.getNMSItemStack(NBTUtils.java:380)
[18:40:39] [Server thread/WARN]: at JetsRepairTokens-3.13.jar//me.jet315.repairtokens.utils.NBTUtils.setNBTData(NBTUtils.java:31)
[18:40:39] [Server thread/WARN]: at JetsRepairTokens-3.13.jar//me.jet315.repairtokens.manager.RepairItem.getItemStack(RepairItem.java:46)
[18:40:39] [Server thread/WARN]: at JetsRepairTokens-3.13.jar//me.jet315.repairtokens.commands.admincommands.ListTokensCommand.execute(ListTokensCommand.java:50)
[18:40:39] [Server thread/WARN]: at JetsRepairTokens-3.13.jar//me.jet315.repairtokens.commands.CommandHandler.onCommand(CommandHandler.java:74)
[18:40:39] [Server thread/WARN]: at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45)
[18:40:39] [Server thread/WARN]: at io.papermc.paper.command.brigadier.bukkit.BukkitCommandNode$BukkitBrigCommand.run(BukkitCommandNode.java:83)
[18:40:39] [Server thread/WARN]: at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:29)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:13)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.execution.CommandQueueEntry.execute(CommandQueueEntry.java:5)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:437)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.Commands.performCommand(Commands.java:368)
[18:40:39] [Server thread/WARN]: at net.minecraft.commands.Commands.performCommand(Commands.java:357)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.network.ServerGamePacketListenerImpl.performUnsignedChatCommand(ServerGamePacketListenerImpl.java:2403)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$16(ServerGamePacketListenerImpl.java:2376)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.TickTask.run(TickTask.java:18)
[18:40:39] [Server thread/WARN]: at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:155)
[18:40:39] [Server thread/WARN]: at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1485)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:165)
[18:40:39] [Server thread/WARN]: at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:129)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1466)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1460)
[18:40:39] [Server thread/WARN]: at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:139)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1415)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1424)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1304)
[18:40:39] [Server thread/WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:298)
[18:40:39] [Server thread/WARN]: at java.base/java.lang.Thread.run(Thread.java:1583)
[18:40:39] [Server thread/ERROR]: Command exception: /jetsrepairtokens list
org.bukkit.command.CommandException: Unhandled exception executing command 'jetsrepairtokens' in plugin JetsRepairTokens v3.13
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[leaf-api-1.21.8-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.command.brigadier.bukkit.BukkitCommandNode$BukkitBrigCommand.run(BukkitCommandNode.java:83) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at com.mojang.brigadier.context.ContextChain.runExecutable(ContextChain.java:73) ~[brigadier-1.3.10.jar:?]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:29) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.commands.execution.tasks.ExecuteCommand.execute(ExecuteCommand.java:13) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.commands.execution.UnboundEntryAction.lambda$bind$0(UnboundEntryAction.java:8) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.commands.execution.CommandQueueEntry.execute(CommandQueueEntry.java:5) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.commands.execution.ExecutionContext.runCommandQueue(ExecutionContext.java:103) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.commands.Commands.executeCommandInContext(Commands.java:437) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.commands.Commands.performCommand(Commands.java:368) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.commands.Commands.performCommand(Commands.java:357) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.network.ServerGamePacketListenerImpl.performUnsignedChatCommand(ServerGamePacketListenerImpl.java:2403) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$16(ServerGamePacketListenerImpl.java:2376) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:155) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1485) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:165) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:129) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1466) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1460) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:139) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.managedBlock(MinecraftServer.java:1415) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1424) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1304) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:298) ~[leaf-1.21.8.jar:1.21.8-98-d36ed6c]
at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "java.lang.Class.getDeclaredMethods()" because "<parameter1>" is null
at JetsRepairTokens-3.13.jar/me.jet315.repairtokens.utils.ReflectionUtils.getMethod(ReflectionUtils.java:112) ~[JetsRepairTokens-3.13.jar:?]
at JetsRepairTokens-3.13.jar/me.jet315.repairtokens.utils.NBTUtils.getNMSItemStack(NBTUtils.java:382) ~[JetsRepairTokens-3.13.jar:?]
at JetsRepairTokens-3.13.jar/me.jet315.repairtokens.utils.NBTUtils.setNBTData(NBTUtils.java:31) ~[JetsRepairTokens-3.13.jar:?]
at JetsRepairTokens-3.13.jar/me.jet315.repairtokens.manager.RepairItem.getItemStack(RepairItem.java:46) ~[JetsRepairTokens-3.13.jar:?]
at JetsRepairTokens-3.13.jar/me.jet315.repairtokens.commands.admincommands.ListTokensCommand.execute(ListTokensCommand.java:50) ~[JetsRepairTokens-3.13.jar:?]
at JetsRepairTokens-3.13.jar/me.jet315.repairtokens.commands.CommandHandler.onCommand(CommandHandler.java:74) ~[JetsRepairTokens-3.13.jar:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[leaf-api-1.21.8-R0.1-SNAPSHOT.jar:?]
... 26 more
Everything works in 1.8 as long as you change the entity sound option to a sound for ur version. Default config does not work because of this but otherwise perfect
Superb plugin and amazing developer, he is very fast and responsive.
Plugin is very customisable and free from errors and even if there is an error the dev is super fast in fixing it. Should be on every survival server a must have plugin.
Perfect! This is exactly what I've been looking for. It's a feature in another plugin I have but they don't have it working. This is a plug and play plugin that starts working right away. All I had to do was change the sounds in the config, but between the informative message in my console, and the comments in the config that was something I figured out quickly. Thank you for the great resource.