Error loading the plugin with CMI
DarkObscurity opened this issue ยท 42 comments
Hello!
I just installed a clean version of SignShop and I get this error:
[21:06:50] [Server thread/ERROR]: Error occurred while enabling SignShop v3.4.4 (Is it up to date?)
java.lang.NullPointerException: null
at org.wargamer2010.signshop.worth.CMIWorthHandler.(CMIWorthHandler.java:16) ~[?:?]
at org.wargamer2010.signshop.SignShop.onEnable(SignShop.java:189) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.15.2.jar:git-Paper-118]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) ~[patched_1.15.2.jar:git-Paper-118]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:435) ~[patched_1.15.2.jar:git-Paper-118]
at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:470) ~[patched_1.15.2.jar:git-Paper-118]
at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:384) ~[patched_1.15.2.jar:git-Paper-118]
at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:482) ~[patched_1.15.2.jar:git-Paper-118]
at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:298) ~[patched_1.15.2.jar:git-Paper-118]
at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:885) ~[patched_1.15.2.jar:git-Paper-118]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
The server version is 1.15.2
Signshop version is 3.4.4
Vault version: 1.7.3 (CMI Version)
Economy plugin: CMI
I think it has something to do with CMI not being compatible, looking at the error, but I have no idea if it's my fault or just a compatibility issue...
@Multitallented I will try that, thanks!
@DarkObscurity does Multitallented's fix work for you as well? I have a dev version that I have added CMIPaperLib to the dependency list to see if that helps. My theory is CMI is waiting for CMIPaperLib and SignShop is waiting for CMI and the server just happens to pick the wrong order. I have still not been able to reproduce this issue on any of my test setups though. If this dev version does not work and Multitallented's fix does work for both of you I may just have to add it in myself to see if it works in spite of it not being documented anywhere. @Multitallented could you try the dev version as well?
Sorry for the extremely late reply, our server network and maintenance work has been put on hold for a while because of some personal stuff...
But now I just wanted to upgrade our survival server to 1.16.2, so i took the latest version of Paper spigot, CMI and Signshop and I am getting this error again...;
09.09 13:34:38 [Server] ERROR Error occurred while enabling SignShop v3.5.0 (Is it up to date?) 09.09 13:34:38 [Server] INFO java.lang.NullPointerException: null 09.09 13:34:38 [Server] INFO at org.wargamer2010.signshop.worth.CMIWorthHandler.<init>(CMIWorthHandler.java:16) ~[?:?] 09.09 13:34:38 [Server] INFO at org.wargamer2010.signshop.SignShop.onEnable(SignShop.java:189) ~[?:?] 09.09 13:34:38 [Server] INFO at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:380) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugin(CraftServer.java:499) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at org.bukkit.craftbukkit.v1_16_R2.CraftServer.enablePlugins(CraftServer.java:413) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at net.minecraft.server.v1_16_R2.MinecraftServer.loadWorld(MinecraftServer.java:468) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at net.minecraft.server.v1_16_R2.DedicatedServer.init(DedicatedServer.java:241) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at net.minecraft.server.v1_16_R2.MinecraftServer.w(MinecraftServer.java:939) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at net.minecraft.server.v1_16_R2.MinecraftServer.lambda$a$0(MinecraftServer.java:177) ~[patched_1.16.2.jar:git-Paper-186] 09.09 13:34:38 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_265] 09.09 13:34:38 [Server] INFO [SignShop] Disabling SignShop v3.5.0
And it is still happening even after adding trying to add the following lines to the plugin.yml file;
loadafter: [CMI]
loadafter: [CMI, CMIPaperLib]
I have tried both (not at the same time but first I tried the first line and then I tried the second line)
And the funny part is, that in the console, this error pops up, right before CMI starts to load, so like the first line directly after the
[Server] INFO [SignShop] Disabling SignShop v3.5.0
Is:
[Server] INFO [CMI] Enabling CMI v8.7.6.10
And it is still happening even after adding trying to add the following lines to the plugin.yml file;
loadafter: [CMI]
loadafter: [CMI, CMIPaperLib]
I have tried both (not at the same time but first I tried the first line and then I tried the second line)And the funny part is, that in the console, this error pops up, right before CMI starts to load, so like the first line directly after the
[Server] INFO [SignShop] Disabling SignShop v3.5.0
Is:
[Server] INFO [CMI] Enabling CMI v8.7.6.10
I still have no idea why this is happening. Please include a paste of the entire new startup log.
@DarkObscurity For some reason CMI loaded after SignShop. SignShop must load after CMI and SignShop tells the server that. I think you either loaded one of the plugins and then did /reload or you used PlugMan. If this is the case do not do it that way. You must use /restart or /stop then start the server again. Remove PlugMan(do this anyway it will cause you nothing but problems) then /restart the server. If it happens again then reply with a new latest.log paste link. Let me know either way how it goes.
It was a fresh start, So I stopped the server, placed the jar file in the plugins folder and started the server. I just tried stopping the server and starting it again. I never use /reload because it can mess up a lot of things or even break stuff, besides that, /reload is disabled on all my servers.
But even after another restart, the plugin still does not load...
(BTW I know plugman is a disliked plugin, but I use it to quickly disable plugins which cause trouble or appear to be introducing exploits so that I can wait with a server restart when a lot of people are online, I know this is bad, but it's a choice we made... Sorry :x )
I just want to rule out paper being an issue. A fresh install will generate files yes. The first pasted error was because cmi loaded after signshop. The second one is a known signshop bug that you get when you restart and don't have shops yet. It is already fixed in the next release. But if it wasn't there the first cmi error would have shown up again. Delete/rename the signshop folder and try with spigot, if you would please. You could also join the Signshop discord on the spigot page if you would like.
I'll try it, I think tomorrow, so I'll give you an update then (If no players are playing on the server tho :P ) And I'll join the discord yes!
I did just test it on a different server running paper and CMI and everything worked fine... first try it loaded... could it maybe have something to do with bentobox?... I can see thats a softdepend aswell so...
I use bentobox and cmi and have not had a problem. I don't use paper though. Does it work with a restart?
Hmm weird, and yes I tried restart it just now, still the CMI error... And we're relying on some features from paper so i'm somewhat hesitant in just swapping paper out for spigot for a test since I don't know for sure if something might break so to say... Is the plugin build on a specific version of bentobox? Maybe I need to update or something?
Try loading spigot and restarting. I just want to find the problem. Then try to fix it. If it errors on cmi then it is a cmi issue or paper or signshop. Just need to figure out which.
As long as you are not using plugman during bug chasing. Have you tried it with Spigot? And if you don't have any shops made it causes the error with the data update. It will be fixed in the next release. In the mean time you can just delete the sellers.yml when you restart.
I don't use plugman during bug chasing no, and what do you mean have you tried it with spigot, can this be a paper spigot issue?
And this was a fresh install, so all files should be generated then right?
I did just test it on a different server running paper and CMI and everything worked fine... first try it loaded... could it maybe have something to do with bentobox?... I can see thats a softdepend aswell so...
Later you said that it breaks again when you restart it. Can I have a paste of that? I tried running cmi vault and signshop on paper and never got an error with multiple restarts. One thing I noticed was you were running build 118 of paper whereas their latest is 208. I tried with 118 and still no error. You should probably still update it. I assume you meant that the second server where you tried it didn't have any other plugins?
Alright, so i tried and you where right, it does work on spigot.. how odd....
I literally tried running it on a different paper server with CMI in it as well and there it works as well... is there maybe a specific setting that might be causing issues?
Could be, pastebin your latest.log paper.yml spigot.yml bukkit.yml server properties and the configs from signshop and cmi from the server that fails.
Sure!
Spigot.yml, paper.yml, server.properties, bukkit,yml: https://pastebin.com/2mvGUgis
Latest.log: https://pastebin.com/dgxG90J5
cmi config: https://pastebin.com/yTh3BP7V
Let me know of you want me to test anything!
You forgot the Signshop config. I will try to use these settings to see if I can reproduce the issue after work. In the mean time see if you can stop the hikaripool ssl warnings. It is not from signshop. And is probably from multiple plugins that use a database If the plugin does not have a seperate option you should be able to append useSSL=false to the database host, iirc. You will have to Google the details or ask the plugin authors.
@DarkObscurity I have not been able to reproduce this even with your configs. I am beginning to think that one of the other plugins may be interfering. You should try removing a few plugins at a time from the server that gives that error until it works. Once you can figure out which plugin it is then let me know. If you get down to only SignShop Vault and CMI and it still doesn't work then try temporarily swapping to Spigot with those three. You could also try downloading fresh jars of everything including paper in case one is corrupted. Are any of your plugins leaked versions? Once we figure out the problem it can be fixed then you can start adding things back. Also go ahead and try to fix the ssl warning. Do you actually want to use worth from CMI? Is it enabled in the SignShop config? Oh, and take a full backup in case something breaks you can revert completely.
I'll try that but it will take some time since it is the only server right now experiencing this issue and there are a few players who play on it. I already tried loading up the config with spigot and then use it with paper, but no luck there either. The SSL messages I already tried fixing them, but these plugins have a weird connection string so when I add the ?useSSL=false in whatever way, it can't connect to the database anymore so yeah, thats a bummer... And what do you mean with CMI worth? The only thing in that server that has a "Value" are the enchantments, those where set with /cmi setenchantmentworth or something, and a few items.. And the singshop configs I tried loading where only the ones generated by the plugin, no edits made, so all fresh configs so to say.
I have this exact issue. Reloading SignShop using plugman gets it to work.
That works since it reloads Signshop after CMI has enabled. This is only a bandaid fix and does not address the real problem. Something is preventing Signshop and CMI from loading in the correct order. Could you please post a full log from when you had the problem so perhaps we could see what you two have in common?
Any feedback on this? @Multitallented
I'm using paper too. I have no items configured with CMI worth. Isn't this a simple null pointer?
Alright, something really random popped up in my head, and I have no idea if it's possible or not or something, but is it possible that CMI is waiting for something to load that causes signshop to load before CMI? Like a third plugin or something?
I'm using paper too. I have no items configured with CMI worth. Isn't this a simple null pointer?
It is a simple NPE but what is strange here is that it is null because something is causing the plugins to enable out of order in spite of SignShop telling the server to enable CMI first in the plugin.yml.(unless your error is different, I would still like a latest.log from you). Also I have setup a test server using paper and I was not able to reproduce the error. DarkObscurity also setup a test server and was not able to reproduce the error. I don't think it is a simple paper issue either since according to bstats there are well over 180 servers using paper and only 2 people have reported this issue. I doubt only 2 people are using SignShop and CMI with paper. There has to be a setting or plugin that is interfering but I cannot figure out what since I cannot duplicate your setups exactly. I really need one of you to try disabling some other plugins and restarting to rule them out. I have tried it with a blank CMI worth.yml and it loads just fine with or without the feature enabled in SignShop.
[08:47:54] [Server thread/INFO]: [SignShop] Enabling SignShop v3.4.4 [08:47:54] [Server thread/INFO]: [SignShop] Checking data version. [08:47:54] [Server thread/INFO]: [SignShop] Your data is current. [08:47:54] [Server thread/ERROR]: Error occurred while enabling SignShop v3.4.4 (Is it up to date?) java.lang.NullPointerException: null at org.wargamer2010.signshop.worth.CMIWorthHandler.<init>(CMIWorthHandler.java:16) ~[?:?] at org.wargamer2010.signshop.SignShop.onEnable(SignShop.java:189) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[Server.jar:git-Paper-228] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:364) ~[Server.jar:git-Paper-228] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[Server.jar:git-Paper-228] at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:471) ~[Server.jar:git-Paper-228] at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:385) ~[Server.jar:git-Paper-228] at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:488) ~[Server.jar:git-Paper-228] at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:298) ~[Server.jar:git-Paper-228] at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:895) ~[Server.jar:git-Paper-228] at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242] [08:47:54] [Server thread/INFO]: [SignShop] Disabling SignShop v3.4.4 [08:47:54] [Server thread/INFO]: [SignShop] Successfully cancelled Async Storage task with ID: 50 [08:47:54] [Server thread/INFO]: [SignShop] Disabled
So ya same issue. In the future please use a pastebin and provide the full log. In fact I could still use the full log to compare your setups.
Edit: You can join the discord if you would rather dm it.
Yes that is why I said this:
I am beginning to think that one of the other plugins may be interfering. You should try removing a few plugins at a time from the server that gives that error until it works. Once you can figure out which plugin it is then let me know. If you get down to only SignShop Vault and CMI and it still doesn't work then try temporarily swapping to Spigot with those three. You could also try downloading fresh jars of everything including paper in case one is corrupted. Are any of your plugins leaked versions? Once we figure out the problem it can be fixed then you can start adding things back.
Any update on this?... I still haven't found anything, I've been messing around with the server a little but until now no luck... @Multitallented Did you find anything or @weaves7 ?
@DarkObscurity I added loadafter: [ CMI ]
to the plugin.yml inside SignShop.jar. It has been working for me ever since. loadafter isn't mentioned in Paper's docs, and I don't know why it works for me.
@Multitallented I will try that, thanks!
With SS v3.5.0 and Paper 1.16.3, the error hasn't changed. I tried loadafter before coming here and it did not work.
After making CMI a hard depend and removing CMIPaperLib (since it is a lib that is loaded independently by CMI)...everything loads fine in Paper 1.16.3. Just FYI...simply removing CMIPaperLib as a softdepend made no change. I had to make CMI a hard dependency. While this is not a solution for the masses, it is a temporary solution for those who use CMI.
With SS v3.5.0 and Paper 1.16.3, the error hasn't changed. I tried loadafter before coming here and it did not work.
After making CMI a hard depend and removing CMIPaperLib (since it is a lib that is loaded independently by CMI)...everything loads fine in Paper 1.16.3. Just FYI...simply removing CMIPaperLib as a softdepend made no change. I had to make CMI a hard dependency. While this is not a solution for the masses, it is a temporary solution for those who use CMI.
If you still have it would you be willing to provide me with the SignShop jar you compiled with this change? I am having this issue too but am unable to compile from source due to issues with the dependencies & lack of knowledge on the subject.
I have this error as well and I do not use /reload or any plugins that do similar things.
The issue started occurring after I updated CMI I believe. Yet- even after I tried downgrading again it did not solve the issue so I have no clue why it started happening.
Paper 1.16.5
Latest.log: https://pastebin.com/4sbuTSbm
Thanks!
Also for anyone who comes after me and has trouble compiling the code by themselves you can unzip the jar file, edit the plugin.yml, rezip the jar file, and rename it to .jar if it was .zip.
A dev also compiled the plugin for me with the fix.
https://drive.google.com/file/d/10UE2FMU95AZ4EHKeGpYBEsT0iEy4azm6/view?usp=sharing
Though of course it is ideal to obtain it via (in order):
- Get it from an official jar release if one ever comes.
- Or compile source code yourself
- If you can't, do the zip method explained above. (7zip is a good zip program)
- If you don't want to, then & only then use the download above. General rule of thumb- don't download from third-parties. :P
This change did solve the issue by the way. This ticket could be marked as solved if the code gets compiled & released.
A dev also compiled the plugin for me with the fix.
https://drive.google.com/file/d/10UE2FMU95AZ4EHKeGpYBEsT0iEy4azm6/view?usp=sharing
This version is more officially available here and will be included in a future release once I get more feedback about whether it works in all cases or not, since I cannot reproduce the issue myself.
https://github.com/weaves7/SignShop/releases/tag/v3.5.2-dev