Yottabyte AntiCraft is hands-down one of the most reliable and forward-thinking anti-crafting plugins available today. Supporting a wide range of versions from 1.8 all the way to 1.21, it delivers exceptional versatility and stability across both legacy and modern servers — a rare achievement in the plugin ecosystem.
Version 2.2.4-RELEASE brings impressive improvements, offering seamless integration and rock-solid performance with zero bloat. Whether you're managing a competitive PvP server, an economy-based network, or a custom gamemode environment, AntiCraft gives you full control over what players can craft — without breaking immersion or causing compatibility headaches.
Configuration is intuitive and well-documented, with powerful features that let you block or restrict specific recipes, items, or categories. Its performance impact is negligible, even under load, and updates are consistently well-maintained.
If you're serious about fine-tuning your gameplay experience and want a plugin that "just works" across nearly every Minecraft version — Yottabyte AntiCraft is the gold standard. Highly recommended!
Thank you so much for the kind words! I'm really glad to hear Yottabyte AntiCraft is working well for you across so many versions. Version 2.2.4-RELEASE was all about refining performance and ease of use, so it's great to know those improvements are making a difference. I appreciate the recommendation - and if you ever have suggestions or ideas, feel free to reach out!
~Weky
Version: 2.2.4-RELEASE
ver 1.20.1 not work
potionsplash fix pls
[07:42:03 ERROR]: Could not pass event PotionSplashEvent to Yottabyte-AntiCraft v2.2.4-RELEASE
java.lang.NoSuchMethodError: 'org.bukkit.potion.PotionType org.bukkit.inventory.meta.PotionMeta.getBasePotionType()'
at com.wekylend.anticraft.module.potion.module.ModulePotionHelper_1_20.getPotionInfo(ModulePotionHelper_1_20.java:16) ~[Yottabyte-AntiCraft-2.2.4.jar:?]
at com.wekylend.anticraft.module.potion.module.ModulePotionListener.getPotionInfo(ModulePotionListener.java:98) ~[Yottabyte-AntiCraft-2.2.4.jar:?]
at com.wekylend.anticraft.module.potion.PotionListener.onPotionSplash(PotionListener.java:49) ~[Yottabyte-AntiCraft-2.2.4.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor383.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:77) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:77) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:git-Purpur-2062]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at io.papermc.paper.plugin.manager.PaperEventManager.callEvent(PaperEventManager.java:54) ~[purpur-1.20.1.jar:git-Purpur-2062]
at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.callEvent(PaperPluginManagerImpl.java:126) ~[purpur-1.20.1.jar:git-Purpur-2062]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:617) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.event.CraftEventFactory.callPotionSplashEvent(CraftEventFactory.java:860) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.world.entity.projectile.ThrownPotion.applySplash(ThrownPotion.java:214) ~[?:?]
at net.minecraft.world.entity.projectile.ThrownPotion.splash(ThrownPotion.java:120) ~[?:?]
at net.minecraft.world.entity.projectile.ThrownPotion.onHit(ThrownPotion.java:103) ~[?:?]
at net.minecraft.world.entity.projectile.Projectile.preOnHit(Projectile.java:224) ~[?:?]
at net.minecraft.world.entity.projectile.ThrowableProjectile.tick(ThrowableProjectile.java:69) ~[?:?]
at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1435) ~[?:?]
at net.minecraft.server.level.ServerLevel.lambda$tick$12(ServerLevel.java:896) ~[?:?]
at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:42) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:873) ~[?:?]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1585) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:486) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1420) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1191) ~[purpur-1.20.1.jar:git-Purpur-2062]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:322) ~[purpur-1.20.1.jar:git-Purpur-2062]
at java.lang.Thread.run(Thread.java:840) ~[?:?]
great plugin, but if you block upgrading tools such as diamond swords to netherite swords, upgrading MAX durability tools isnt possible, but if you try to upgrade tools with less durability, they can still be upgraded
I don't know if I'm doing something wrong, but if I try to block the creation of "BLACK_DYE", it can still be created with "WITHER ROSE", it complicates things a bit for me, but other than that it's a mega plugin
Hello, please open a ticket on our support Discord for help! :)
Version: 2.2.2-RELEASE
I don't know if I'm doing something wrong, but if I try to block crafting “BLACK_DYE”, it can still be crafted with “WITHER_ROSE”, but otherwise awesome plugin
было бы неплохо добавлять еще и NBT тэги или CustomModelData, еще и белый список бы, я к примеру запретил ванильную Незеритовую броню а вместо нее использую кастомную Незеритовую броню, и она теперь тоже под запретом на крафт. Возьмите для идеи себе это :)
[12:14:03] [Server thread/ERROR]: Could not load 'plugins\Yottabyte-AntiCraft.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Unsupported API version 1.16
at org.bukkit.craftbukkit.v1_14_R1.util.CraftMagicNumbers.checkSupported(CraftMagicNumbers.java:261) ~[spigot.jar:git-Spigot-cbd1a1b-009d8af]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot.jar:git-Spigot-cbd1a1b-009d8af]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:334) ~[spigot.jar:git-Spigot-cbd1a1b-009d8af]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:253) [spigot.jar:git-Spigot-cbd1a1b-009d8af]
at org.bukkit.craftbukkit.v1_14_R1.CraftServer.loadPlugins(CraftServer.java:350) [spigot.jar:git-Spigot-cbd1a1b-009d8af]
at net.minecraft.server.v1_14_R1.DedicatedServer.init(DedicatedServer.java:202) [spigot.jar:git-Spigot-cbd1a1b-009d8af]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:775) [spigot.jar:git-Spigot-cbd1a1b-009d8af]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
[12:14:03]
Could not pass event CraftItemEvent to Yottabyte-AntiCraft v1.0
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.PlayerConnection.a(PlayerConnection.java:2186) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.PacketPlayInWindowClick.a(SourceFile:32) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.PacketPlayInWindowClick.a(SourceFile:10) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.TickTask.run(SourceFile:18) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeTask(SourceFile:144) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.executeNext(SourceFile:118) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.MinecraftServer.ba(MinecraftServer.java:941) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.MinecraftServer.executeNext(MinecraftServer.java:934) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.IAsyncTaskHandler.awaitTasks(SourceFile:127) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.MinecraftServer.sleepForTick(MinecraftServer.java:918) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:850) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_271]
Caused by: java.lang.IllegalArgumentException: No enum constant org.bukkit.Material.LEGACY_HOPPER - LEGACY_HOPPER - PISTON
at java.lang.Enum.valueOf(Unknown Source) ~[?:1.8.0_271]
at org.bukkit.Material.valueOf(Material.java:1) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at org.bukkit.craftbukkit.v1_16_R2.legacy.CraftLegacy.valueOf(CraftLegacy.java:227) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
at com.wekylend.yottabyteanticraft.listeners.CraftingListener.onPlayerCrafting(CraftingListener.java:40) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_271]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_271]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_271]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot.jar:git-Spigot-379750e-43c7ff9]
... 18 more
>