i upgraded it for my 1.21.4 server.
and it doesn't work
here's the wrong
[14:06:05 WARN]: java.lang.NullPointerException: Cannot invoke "java.lang.Class.cast(Object)" because "this.CraftServerClass" is null
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.initialize(Reflections.java:161)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.<init>(Reflections.java:137)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.CMILib.getReflectionManager(CMILib.java:92)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Version.Version.<clinit>(Version.java:74)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Items.ItemManager.load(ItemManager.java:78)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.CMILib.onEnable(CMILib.java:217)
[14:06:05 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:288)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109)
[14:06:05 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:655)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:604)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:769)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:531)
[14:06:05 WARN]: at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:326)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1236)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:341)
[14:06:05 WARN]: at java.base/java.lang.Thread.run(Thread.java:1570)
[14:06:05 WARN]: java.lang.NullPointerException: Cannot invoke "java.lang.Class.cast(Object)" because "this.CraftWorldClass" is null
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.getCraftWorld(Reflections.java:859)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.getServerName(Reflections.java:850)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Version.Version.<clinit>(Version.java:74)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Items.ItemManager.load(ItemManager.java:78)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.CMILib.onEnable(CMILib.java:217)
[14:06:05 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:288)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109)
[14:06:05 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:655)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:604)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:769)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:531)
[14:06:05 WARN]: at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:326)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1236)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:341)
[14:06:05 WARN]: at java.base/java.lang.Thread.run(Thread.java:1570)
[14:06:05 WARN]: java.lang.ClassNotFoundException: org.bukkit.craftbukkit.v1_21_R1.inventory.CraftItemStack
[14:06:05 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:197)
[14:06:05 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:164)
[14:06:05 WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
[14:06:05 WARN]: at java.base/java.lang.Class.forName0(Native Method)
[14:06:05 WARN]: at java.base/java.lang.Class.forName(Class.java:529)
[14:06:05 WARN]: at java.base/java.lang.Class.forName(Class.java:508)
[14:06:05 WARN]: at io.papermc.reflectionrewriter.runtime.AbstractDefaultRulesReflectionProxy.forName(AbstractDefaultRulesReflectionProxy.java:68)
[14:06:05 WARN]: at io.papermc.paper.pluginremap.reflect.PaperReflectionHolder.forName(Unknown Source)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.NBT.CMINBT.getBukkitClass(CMINBT.java:1609)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.NBT.CMINBT.<clinit>(CMINBT.java:121)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.asNMSCopy(Reflections.java:1163)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.getItemMinecraftName(Reflections.java:952)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Items.ItemManager.load(ItemManager.java:97)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.CMILib.onEnable(CMILib.java:217)
[14:06:05 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:288)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109)
[14:06:05 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:655)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:604)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:769)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:531)
[14:06:05 WARN]: at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:326)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1236)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:341)
[14:06:05 WARN]: at java.base/java.lang.Thread.run(Thread.java:1570)
[14:06:05 WARN]: java.lang.ClassNotFoundException: org.bukkit.craftbukkit.v1_21_R1.entity.CraftEntity
[14:06:05 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:197)
[14:06:05 WARN]: at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:164)
[14:06:05 WARN]: at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
[14:06:05 WARN]: at java.base/java.lang.Class.forName0(Native Method)
[14:06:05 WARN]: at java.base/java.lang.Class.forName(Class.java:529)
[14:06:05 WARN]: at java.base/java.lang.Class.forName(Class.java:508)
[14:06:05 WARN]: at io.papermc.reflectionrewriter.runtime.AbstractDefaultRulesReflectionProxy.forName(AbstractDefaultRulesReflectionProxy.java:68)
[14:06:05 WARN]: at io.papermc.paper.pluginremap.reflect.PaperReflectionHolder.forName(Unknown Source)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.NBT.CMINBT.getBukkitClass(CMINBT.java:1609)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.NBT.CMINBT.<clinit>(CMINBT.java:123)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.asNMSCopy(Reflections.java:1163)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Reflections.getItemMinecraftName(Reflections.java:952)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.Items.ItemManager.load(ItemManager.java:97)
[14:06:05 WARN]: at CMILib1.5.2.3.jar//net.Zrips.CMILib.CMILib.onEnable(CMILib.java:217)
[14:06:05 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:288)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202)
[14:06:05 WARN]: at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109)
[14:06:05 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:655)
[14:06:05 WARN]: at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:604)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:769)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:531)
[14:06:05 WARN]: at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:326)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1236)
[14:06:05 WARN]: at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:341)
[14:06:05 WARN]: at java.base/java.lang.Thread.run(Thread.java:1570)
Several patches ago, everything on my server broke because forcing an update ended up corrupting several configuration and files. It wasn’t a major loss, but it was frustrating to have to set everything up from scratch. I hope this gets better in the future.
The highlight of CMILib is its ability to manage features that simplify server setup and management, including command management, message setup, and database management, all of which can be done through an easy-to-use GUI.
Thanks for keeping this up to date, works great on 1.21. Glad a few fixes and all the other plugins magically work on 1.21, makes upgrading a lot easier.
I don’t know why everyone is mad that the author is taking care of the bugs and new features of this plugin.. you don’t have to update every single time you know
Great plugin! Love it, very easy to use once you know how to handle basic server knowledge
Please everyone don't be mad about so many updated releasing, it means that the developer is working hard to make all of us happy. Also this plugin if you don't know is used for plugin called "Jobs" So this plugin is very very very important, without it you can't enjoy the jobs plugin at all, and Allah knows best.
History of Exploits, bugs and terrible Support. Fixing single bug takes several days or weeks or in worst case isn't fixed at all (for example autoupdate file removing). Some updates introduce bugs in existing code that worked fine before because of poor testing of it. Frequent updates make hell of managing it and it can and will cause bugs on updates on production server.
The support is very mid and the plugin doing very weird stuff in my server, causing problems and i think its really opposite of optimized.
But i don't think its that bad, for like 20-30players its good, useable but nothing more.
EN: Causes a lot of inconvenience to servers if your online is 100 or more players. No matter how you configure the plugin, it is very poorly optimized, no one and never advise this plugin. Even if you update to the most current version, it will not help, you will always be tormented with this plugin. I advise everyone to choose another one! Very much regretted the purchase, not even talking about money. Users of this plugin, as if children who have the number of players 20 maximum!
RU: Доставляет много неудобств для серверов если ваш онлайн 100 и более игроков. Как бы вы не настраивали плагин, он очень слабо оптимизирован, никому и никогда не советую данный плагин. Даже если вы обновляетесь на самую актуальную версию, это не поможет, вы будете всегда мучаться с данным плагином. Всем советую выбрать другой! Очень сильно пожалел о покупке, даже речь не идет о деньгах. Пользователи данного плагина, как буд-то дети, у которых кол-во игроков 20 максимум!
The Worst support ever
i wasted 4 months with them asking for help was ignored to point i left 1 star review in 09 of 23 on here that they also deleted to keep there star rating up. For 4 months i had to almost everyday push them to try to even get help to the point that in other discords I got better help about there plugin then they EVER gave me ROFL they closed my first ticket in there discord without even saying a word for no reason, then the second one i opened took 4 months to the day till i snapped about it to not get ANYWARE, If they would have helped at all i would have loved to give them a 5 star review I use to think it was an amazing plugin tbh.... But the support makes it not even worth 1 star what's a plugin with 0 support, & rude staff when & if you can get ahold of one. *Will continue to repost until it is left up*
I reached out to the support team on the Discord server but unfortunately received no response initially. In an attempt to get assistance for my straightforward question, I asked it once more and received a response from an admin with a rather sassy attitude, who showed no genuine effort to assist me. As my frustration mounted, I was unexpectedly banned, even though I had not engaged in any inappropriate behavior. I've been a loyal customer for two years and truly value this plugin, as I'm eager to stay updated. It's disheartening to be treated this way, and I'm more than willing to reconsider my rating and provide a 5-star review if I am reinstated and receive the proper support that I initially sought and deserve.
I concur with cL3v3r's perspective. Releasing plugin updates every three days seems unprofessional for Minecraft server owners, and it elevates the risk of encountering bugs and errors. The frequent updates don't appear to bring substantial changes, and I'm hesitant about having to code another plugin for personal use. It would be preferable to consolidate updates and release them together, rather than having incremental releases like 1.11.01 to 1.11.02.
Been using CMI for quite a few years and we rely on many features that it has! It should be packaged with CMI together to make it easier to install but what ever is what it is
Even after two years (github issue #5881), the author is not able to fix the problem when the old .jar is not overwritten with the new one during the automatic update.
Hello friend, I have this error on my console, how can I fix it?
[20:45:49 ERROR]: Could not pass event EntityDeathEvent to CMI v9.1.1.1
java.lang.NullPointerException: Cannot invoke "org.bukkit.entity.Player.getInventory()" because "player" is null
at net.Zrips.CMILib.Reflections.getItemInMainHand(Reflections.java:1015) ~[CMILib1.1.1.0.jar:?]
at com.Zrips.CMI.Containers.CMIUser.getEntityHeadDropChance(CMIUser.java:3176) ~[CMI9.1.1.1.jar:?]
at com.Zrips.CMI.Modules.PlayerCombat.HeadDropListener.onEntityDeath(HeadDropListener.java:229) ~[CMI9.1.1.1.jar:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor938.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:git-Purpur-1533]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:630) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R1.event.CraftEventFactory.callEntityDeathEvent(CraftEventFactory.java:877) ~[purpur-1.18.1.jar:git-Purpur-1533]
at net.minecraft.world.entity.LivingEntity.dropAllDeathLoot(LivingEntity.java:1769) ~[?:?]
at net.minecraft.world.entity.LivingEntity.die(LivingEntity.java:1674) ~[?:?]
at net.minecraft.world.entity.LivingEntity.hurt(LivingEntity.java:1489) ~[?:?]
at net.minecraft.world.entity.Mob.a(Mob.java:360) ~[?:?]
at net.minecraft.world.entity.monster.Zombie.hurt(Zombie.java:354) ~[?:?]
at org.bukkit.craftbukkit.v1_18_R1.entity.CraftLivingEntity.damage(CraftLivingEntity.java:363) ~[purpur-1.18.1.jar:git-Purpur-1533]
at org.mcmonkey.sentinel.SentinelWeaponHelper.punch(SentinelWeaponHelper.java:345) ~[Sentinel-2.4.0-SNAPSHOT-b453.jar:?]
at org.mcmonkey.sentinel.SentinelAttackHelper.tryAttackInternal(SentinelAttackHelper.java:376) ~[Sentinel-2.4.0-SNAPSHOT-b453.jar:?]
at org.mcmonkey.sentinel.SentinelAttackHelper.tryAttack(SentinelAttackHelper.java:139) ~[Sentinel-2.4.0-SNAPSHOT-b453.jar:?]
at org.mcmonkey.sentinel.SentinelTrait.runUpdate(SentinelTrait.java:1555) ~[Sentinel-2.4.0-SNAPSHOT-b453.jar:?]
at org.mcmonkey.sentinel.SentinelTrait.run(SentinelTrait.java:1746) ~[Sentinel-2.4.0-SNAPSHOT-b453.jar:?]
at net.citizensnpcs.api.npc.AbstractNPC.update(AbstractNPC.java:497) ~[Citizens-2.0.29-b2456.jar:?]
at net.citizensnpcs.npc.CitizensNPC.update(CitizensNPC.java:359) ~[Citizens-2.0.29-b2456.jar:?]
at net.citizensnpcs.nms.v1_18_R1.entity.EntityHumanNPC.k(EntityHumanNPC.java:498) ~[Citizens-2.0.29-b2456.jar:?]
at net.minecraft.server.level.ServerLevel.tickNonPassenger(ServerLevel.java:1216) ~[?:?]
at net.minecraft.server.level.ServerLevel.lambda$tick$5(ServerLevel.java:698) ~[?:?]
at net.minecraft.world.level.entity.EntityTickList.forEach(EntityTickList.java:43) ~[purpur-1.18.1.jar:git-Purpur-1533]
at net.minecraft.server.level.ServerLevel.tick(ServerLevel.java:676) ~[?:?]
at net.minecraft.server.MinecraftServer.tickChildren(MinecraftServer.java:1635) ~[purpur-1.18.1.jar:git-Purpur-1533]
at net.minecraft.server.dedicated.DedicatedServer.tickChildren(DedicatedServer.java:519) ~[purpur-1.18.1.jar:git-Purpur-1533]
at net.minecraft.server.MinecraftServer.tickServer(MinecraftServer.java:1497) ~[purpur-1.18.1.jar:git-Purpur-1533]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1285) ~[purpur-1.18.1.jar:git-Purpur-1533]
at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:322) ~[purpur-1.18.1.jar:git-Purpur-1533]
at java.lang.Thread.run(Thread.java:833) ~[?:?]
Nice to see the footprint of all the plugins go down by kilobytes, and that they run a lot smoother with all the new stuff - especially on 1.17.1. Thank you for switching to cmilib. I know some ppl feel it's quite a change. it was an easy transition for me.
I really like plugins that make the server owner aware of updates. I cannot tell of its properties, only that it runs, and it runs without any hassel, so, 5 stars for the effort. We use it on two different plugins and I am glad this works perfect. Thanks Zrips.
Author gives no care to what we tell him in the Discussion section or in the issues of its GitHub repositories.
There is no easy way for developers to access a jar file (maven repo for instance).
No source code is available to take a look at, and the terms and conditions do not allow us to decompile the plugin. There is no javadoc as well.
How are we supposed to create extensions of your plugins (i.e. CMI) if we can't take a look at the inside of the API? This is nonsense.
From a pure programming point of view, there is no respect of Java conventions, and I doubt that this plugin is very performant.
I promise I won't disclose your plug-in source code, just introduce and translate them.
I must say that all your plugins work good on my server, you're quite a good developer, and I wanna introduce all your plugins to the Chinese Minecraft forum MCBBS, I want to ask you for permission first.(like what I have just said above, no leaking, just introducing)