[Essentials] Version mismatch! Please update EssentialsExtras to the same version.
smmmadden opened this issue · 26 comments
Seems like someone added a name check starting with "Essentials" and assumed they all belong to the same plugin here. That's not the case as there is an EssentialsExtras which expand and support multiple homes, kits and warps by another developer. There is also Essentials by Spigot and Essentials versus EssentialX. Possibly others, but the name shouldn't be the the validation portion. So if the name is important to make sure all named plugins belong to the currently named/versioned plugin, it should at least verify if the owner of the plugin and not only by the name or don't have the validation to verify if the versions are the same. You can easily achieve this by adding all the plugins together in one file. I've seen others do it this way, and it makes senses and ensures the customer has everything from one download. What do you/others think?
I guess I'm not understanding what the bloat is. If essentials is checking for essentials*.jar as the name of the file, it will cause problems (like the one reported) where someone else has a similar named file. That's really the issue, not whether the other plugins or used or not. As each plugin is loaded, my understanding is that the contents of the plugin.yml is what should be used, not the filename itself? Am I misunderstanding something?
Essentials itself is pretty much bloatware. To not bloat it up too much some functionality was split. I personally only use the base Essentials, I certainly don't want the other stuff in there. So no, they won't be merged, as I'm not the only one who doesn't need EssentialsProtect/Chat/XMPP etc.
The version check at the moment just checks if the plugin name starts with Essentials, which is certainly not the most intelligent way to do it. But since it only does this on enable, I don't see the issue. Just ignore the message if it doesn't apply.
Okay, that makes sense and I certainly don't want to make it more difficult to manage. Most people I know who use Essentials are using all but the XMPP (and I'm not either). They each provide a lot of value to a server. The message in the server startups is a warning about the version mismatches because they are in fact different plugins (the one reported above).
What I was suggesting and I would hope all plugins do the same is to check the name in the plugin.yml, not what the filename is called which is a better practice to use IMO.
This is from Essentials Extras - an enhancement to base essentials to offer multiple homes, kits & warps.
This is from the base Essentials plugin.yml
Validation of the project name / version or main class is unique to each plugin.
The problem is that combining the plugins bloats the main file - I don't use AntiBuild, Chat, Spawn, Protect, XMPP or GeoIP as I don't need these features, and some of these plugins have undesirable defaults (AntiBuild's perms, Spawn's spawning behaviour) or won't be used at all by many people (XMPP).
I still don't get the issue. The mismatch information is merely a warning and doesn't matter in most cases. It helps developers to pin point the issue, if somebody reports a bug and has this mismatch message in their logs, while making people aware of keeping them updated. You are not supposed to manually edit the version number of other plugins either way, as that might break them, if they use their version number programmatically.
To fix this the check would have to manually go over every known Essentials plugin one by one. The current setup is cleaner, with this unimportant downside. Technically a bug, yes, but why even bother. This plugin has enough issues right now, this would be very far down on the priority list.
Your last statement in the first paragraph. "You are not supposed to manually edit the version number of other plugins either way, as that might break them, if they use their version number programmatically."
There are two options - ignore it and hope the warning is only a warning and not a bigger issue or two, update the version manually to get rid of the message from all your servers. That latter is not recommended, not advised and in many cases not legal to do. Leaving users to either ignore it or fix it so no one has to deal with it to begin with. :-)
You stated it very well, but what's the point? The point is, it is the right thing to do and yes I do agree, there are far more serious bugs to be working on. This should be lowered in priority but certainly not ignored. Minecraft is only about 8-9 years old - this is only going to get more complicated as new releases come out and shifts in programming directions come up.
So we can fix it now or later as it isn't technically difficult of a change to implement - just not high on priority yet. I'm merely the messenger. :-)
I guess I'm just a bit confused as to why you put so much time into talking about this issue when it's not worth much more than one or two short sentences to describe it, and one day in the future somebody might take care of it. Looked to me like this was more critical to you than just letting people on here know that this is wrongful behaviour.
Offtopic, but I don't understand why you would think that manually editing the version number with an archiver tool might be illegal if there is no redistribution process.
if after reading everything I've stated you don't understand, I'm sorry that you don't. I started with a single paragraph and had to reply because of not getting the point or the issue. Somethings can't always be simply explained - I see x when I do y. You should understand that part with all the variables out there and not getting a bigger picture.
I pointed out a flaw in the logic when the plugin loads, clearly stated what it was doing and why it was wrong for doing it the way it is. If you don't get basic principles of licensing, copyrights, software distribution or best business practices, you may want to do your own investigation on it. Try looking at the bigger picture if you can, Java Code A reported that Java Code B is wrong when its Java Code A that's wrong. That's a simple as it gets.
What I find annoyingly frustrating is that someone (like me in this case) takes the time out of his already busy day to report an issue they found or were made aware of, to the owner of that program and they dismiss it at trivial or not their problem b/c it doesn't affect them or care to fix it. What message is that sending to everyone else reporting issues? With an attitude like that, why bother reporting any issue? Because it's what we do to help each other be better in what we do. Sorry again, not much more I can add on to this topic. End of story. :-(
This discussion is completely derailing. I just stated that I didn't get your issue, as the mismatch warning is just a warning you may ignore. You explained yourself and I understood, I just wanted to explain where my confusion came from, as I thought that you may think this causes further issues.
The licensing part was completely offtopic from my side obviously, at least where I live you can freely edit a file for personal use in most cases. Redistribution is what may cause issues with the licence. I was made aware that America has very weird laws when it comes to decompilation (even though editing plugin.yml doesn't require decompilation, you can do that with 7zip/WinRAR).
Also, the owner didn't respond to you. @md678685 is a contributor and I'm just a ticket lurker who does free support every now and then. No need to get defensive or anything. Your issue was understood, just don't expect an immediate fix as it is super low priority. This is a community project.
got it, understood and yes US Laws can be and often are prickly to deal with. I do offer support as well for a lot of plugin users, so not surprised and I do appreciate the candor and promptness of your replies.
Thanks again - Steve
This is what it does already, it checks if the value under name
starts with Essentials. If it does and the value under version
doesn't match, it will print a (ignorable) warning to console.
so "starts with" as opposed to "equal to" when it loads the plugin. The starts with in that case, will always be an issue if someone comes out with another Essentials named plugin or forks off the main one and changes the latter part of the name (e.g. EssentialsPortal, EssentialsChairs, EssentialsX, Essentials2x, etc.) which could very well happen since we already have multiple Essentials* plugins now.
before anyone replies, consider this first :-)
No plugin server owner has permissions to disassemble, reassemble or change the plugin in anyway without expressed permission by the plugin owners. This means that while the plugin.yml file could be exported, manipulated and changed to match a version of someone else's plugin (here) is violating this very scenario. It would also mean the process has to be repeated every time said plugin(s) updates to another version.
This is just not a best business practice for programming. If the plugin.yml was visible after loading, that's one thing - but it is hidden by design to prevent manipulation of the file itself and should never be updated by the server owner/manager. This btw, is coming from my 35+ years in this industry - so not saying anything you all don't already know. :-)
What are the individual versions of the plugin then? Are you sure that this is not caused by another plugin?
@Kakifrucht All are the most recent 2.0.1 because I just downloaded them today. And I'm positive, as they are the only Essentials plugins I have. If you'd like, I could list my actual plugins I use.
Can you verify via /version EssentialsChat etc. that the version numbers match? What is the startup error you see?
It all showed the same. And, it just says about an essentials version mismatch. It's the only error I have from console, minus like player things.
@KnightGx3 when I reported this, I was using all the EssentialsX plugins except for the XMPP on the latest build 491. The problem was that during startup, the version mismatch wasn't (for me) because of the EssentialsX-aaaaaa plugin, it was complaining that EssentialsExtra (a different plugin extending 3 features of EssentialsX) didn't have the same version as the base EssentialsX plugins. Rightfully so, the other plugin is v1.6.7 so it will be different - not the same plugin owners. So I think when they are asking you for the message and plugin versions, it could be a similar scenario so seeing what is on the console or logs will be very help here. For example, here is mine:
[08:00:39 INFO]: [Essentials] Version mismatch! Please update EssentialsExtras to the same version.
As a habit, when I deploy the jar files, I always rename them to include the build (e.g. EssentialsX-2.0.1b491.jar) so there is no mistaking what version I'm using (to avoid this very issue).
@smmmadden But I'm not using that plugin you're talking about. I just did a fresh start on my server so you can see the console startup https://pastebin.com/LRytKhFg .... My only problem is with Essentials, and I'm using the same builds. I don't have anything additional on Essentials. And it's my only error.
@SupaHam If the issue is solved due to build 488 not 491, then it's because the Spigot page isn't updated. Because I got the one from Spigot for EssentialsX and it's VERSION 2.0.1-B488. I downloaded the newest one from Jenkins directly. We will see.
Spigot is not updated every time we create a new build. The CI server has the LATEST builds not the most STABLE builds.
@SupaHam That did fix the mismatch, but every time I start the server fresh, Essentials is always broken it says "Command fly is improperly loaded" and says that for everything Essentials related such as kit fly spawn, etc. A reload fixes it, but I hate using /reload. Is this something with Essentials, or what?
@Kakifrucht This actually does cause a problem. I have EssentialsX, EssentialsChat, and EssentialsSpawn I just downloaded today. (After a year and a half, regular Essentials broke on me) so I had to update. I, do, use the chat and spawn. I stopped my server, put in EssentialsX, Chat, and Spawn, and started my server. I have the version mismatch. The problem this caused for me is, Essentials was broken completely and wouldn't work. It didn't work until I went in and did /reload. It does cause a problem, as I hate doing /reload