/plugman check name | all | -f not working
smmmadden opened this issue ยท 21 comments
Hi, I'm testing out each of the command options and finding that the checking for the version does not work for a plugin or all plugins. They either show Out-of-date or unable to get the version. Note, that all the plugins are actually up-to-date. I'm using Spigot 1.11 (latest build)
Out-of-date:
ChestShop(null -> null)CraftBook(null -> null)EditableSign(null -> null)Essentials(null -> null)EssentialsAntiBuild(null -> null)EssentialsChat(null -> null)EssentialsExtras(null -> null)EssentialsGeoIP(null -> null)EssentialsProtect(null -> null)EssentialsSpawn(null -> null)Fe(null -> null)FeatherBoard(null -> null)FirstJoinPlus(null -> null)HeadDatabase(null -> null)HorseTpWithMe(null -> null)Jobs(null -> null)LWC(null -> null)LagMonitor(null -> null)MassiveBooks(null -> null)MassiveCore(null -> null)OpenInv(null -> null)PermissionsEx(null -> null)PermissionsExTabColors(null -> null)PlaceholderAPI(null -> null)PlugMan(null -> null)PluginsBaker(null -> null)ProtocolLib(null -> null)Residence(null -> null)SelectionVisualizer(null -> null)SpigotUpdater(null -> null)TitleMotd(null -> null)Vault(null -> null)WorldBorder(null -> null)WorldEdit(null -> null)dynmap(null -> null)iGates(null -> null)
no errors in the logs, just checking for updates it returns null for all the plugins. I would have expected the latest version to appear when the latest version is greater than the current version and shown in the Out-of-date list. For those not out of date, the list should appear in the up-to-date (note it shows as "Up-do-date:" which is incorrect.
It looks like the BukGet API, the API that I use to fetch the plugin versions from dev.bukkit.org, isn't available anymore - http://bukget.org/news/
There looks to be another project called SpiGet (https://spiget.org/) being started that deals with resources on the Spigot website, I'll look into using that instead of BukGet to fetch plugin versions.
Thanks - I appreciate that. I've also added this plugin to a list of Spigot Compatible Plugins to give it some more exposure. https://www.spigotmc.org/wiki/spigot-1-11-plugin-compatibility-list
478d37e uses the SpiGet API rather than the BukGet API to fetch plugin versions. Not all of the plugins people use will be from Spigot, so there's an "unknown" result for those plugins that are only on DBO.
Let me know if there are any issues with it, I've done a little bit of testing already on it - http://ci.ryan-clancy.com/job/PlugMan/job/dev/6/artifact/target/PlugMan.jar
Thanks for the quick turnaround. It is looking much better now and seeing results. Though I'm wondering if some are timing out as I'd expect them to also be in the Up-to-date or Out-to-date sections and not in the "Unknown:". Many of them are Spigot plugins. May I also suggest the 3 categories: "Current", "Outdated" & "Unknown"? I tried uploading the full file, but doesn't seem to want to upload it. The list in Out-of-date is incorrect as is the list in "Unknown". But at least the versions appear to be correctly being read from the server. I also only seem to have "Close and comment" as an option so I had to select that.
Out-of-date:
FirstJoinPlus(2.4.1 -> v2.4.1) Jobs(3.7.2 -> 1.0) LWC(1.7.6 -> 4.5.0-SNAPSHOT (#929)) PermissionsExTabColors(1.7 -> 1.7.2 - 1.7.9) dynmap(2.3-1142 -> Version 2.3)
Unknown:
ArmorStandTools(2.2.1) ChestShop(3.8.12) CraftBook(3.9-SNAPSHOT) EditableSign(2.4.1) Essentials(2.0.1-b439) EssentialsAntiBuild(2.0.1-b439) EssentialsChat(2.0.1-b439) EssentialsExtras(1.6.3) EssentialsGeoIP(2.0.1-b439) EssentialsProtect(2.0.1-b439) EssentialsSpawn(2.0.1-b439) FeatherBoard(3.15.0) HeadDatabase(2.3.2) OpenInv(2.4.0-vk-0.5) PermissionsEx(1.23.4) PlugMan(2.1.1) PluginsBaker(0.3) Residence(4.5.12.2) SelectionVisualizer(1.7.1.0) SpigotUpdater(1.0.1) Vault(1.5.6-b49) WorldBorder(1.8.6) WorldEdit(6.1.5;4651611) iGates(0.6)
Only those plugins that are listed as a resource on the Spigot website (https://www.spigotmc.org/resources/) will be able to have their version checked. For example, WorldEdit and Vault are not on there (I haven't looked for all of the plugins listed in Unknown, but I suspect they aren't either).
I can change the wording around on the categories, sure. I'll also make it so the version returned from SpiGet is stripped from some characters to improve the matching (leading "v", the word "Version", etc.), but the ability to correctly detect which plugins are current or outdated will depend on how the author has decided to label the version when they upload it to the website vs. the version in the plugin.yml
I probably won't get a chance to look at this for a few days, however.
Thanks - I've gone through the plugins that I have and split them up into 4 resources where they are located. I don't know if each have an API to use for your plugin or not, but knowing where they are to confirm whether the data returned is correct is part of the equation. I am not aware of any other sites that have plugins available, but I would think if the purpose of the plugin is to check for updated versions, it would need to check multiple resources, right? Also, if the results were returned in a similar fashion as below that would be a plus to users so they know where to look. Especially server owners with 60+ plugins, it gets complicated trying to remember where they are. :-)
I appreciate the work you've done in this plugin, it has already made a big difference to me on my servers.
www.spigot.org/resources
ArmorStandTools(2.2.1) - Current
ChestShop(3.8.12) - Current
CraftBook(3.9u12) - Outdated (3.9u13)
Dynmap (2.3) - Current
EditableSign(2.4.1) - Current
FeatherBoard(3.15.0) - Current
JobsReborn (3.7.2) - Current
HeadDatabase(2.3.2) - Current
HorseTpwithMe (1.5.3 BETA) - Current
LagMonitor (1.11.6) - Outdated
LWC (1.7.6) - Current
MassiveBooks (2.9.0) - Current
MassiveCore (2.9.0) - Current
OpenInv(2.4.0-vk-0.5) - Current
PermissionsExTabColors (1.7-1.7.2-1.7.9) - Current
PlaceholderAPI (2.6.0) - Current
Residence(4.5.12.2) - Current
SelectionVisualizer(1.7.1.0) - Current
SpigotUpdater(1.0.1) - Current
TitleMotd (1.5.0) - Current
github.com/drtshock (repository - https://ci.drtshock.net/job/EssentialsX)
Essentials(2.0.1-b439) - Outdated (2.0.1-b460)
EssentialsAntiBuild(2.0.1-b439) - Outdated (2.0.1-b460)
EssentialsChat(2.0.1-b439) - Outdated (2.0.1-b460)
EssentialsExtras(1.6.3) - Outdated (2.0.1-b460)
EssentialsGeoIP(2.0.1-b439) - Outdated (2.0.1-b460)
EssentialsProtect(2.0.1-b439) - Outdated (2.0.1-b460)
EssentialsSpawn(2.0.1-b439) - Outdated (2.0.1-b460)
dev.bukkit.org/projects
FirstJoinPlus (2.4.1) - Current
iGates(0.6.1) - current
PermissionsEx(1.23.4) - Current
PluginsBaker(0.3) - Current
PlugMan(2.1.1) - Current
Vault(1.5.6-b49) - Current
WorldBorder(1.8.6) - Current
WorldEdit(6.1.5;4651611) - Current
Hey there, hope you're having a great holiday and New Year to come. :-) Just checking in to see where you are with the update? - Steve
Holidays are going well, thanks, hope you enjoyed yours as well.
At this point in time, only Spigot resources will be supported by the check command. Those on dev.bukkit.org won't be supported anymore due to the BukGet project shutting down, and those plugins that are on various Jenkins servers won't be supported (although it appears that EssentialsX is available as a Spigot resource - https://www.spigotmc.org/resources/essentialsx.9089/).
I have been thinking about removing the check command, however, as plugin versions between the plugin's own plugin.yml and the version listed on Spigot aren't standardized. For example:
Out-of-date:
LWC(4.5.0-SNAPSHOT -> 4.5.0-SNAPSHOT (#929)) dynmap(2.2-1118 -> Version 2.3).
This leads to results that are inconsistent - LWC is up-to-date in this scenario. This is true for many other plugins as well - this makes the check command very fragile. Although it is a useful command, it was really BukGet that made the command work well.
Currently this means that of the subset of plugins that are on actually on Spigot, only those that have the version numbers that same in their plugin.yml will be correctly classified by the check command. Perhaps removing the "current" and "outdated" labels and just showing the installed version along with the latest version in an alphabetical list and allowing the user to decide what is up-to-date or not would be a suitable compromise.
Thoughts?
That raises one of the concerns I had as well because of all the inconsistencies across plugins. I realize it is open source, but it seems everyone feels their doing it their way and not looking at the bigger picture. If the plugins are created with some standards - naming conventions, versioning, plugin.yml containing name, version, creator, date, etc. and the most important is long-term support. Is this just a one-time, I need/want the game to do xyz so I created a plugin for it but lost interest in it later or never had intentions to build on it with each release of Minecraft. I'm happy to start pushing back on developers to get them into a systematic and reproducible method so it benefits everyone in the end.
There are key things that each plugin have in common and setting up a page where folks can go to that clearly state how to do things, may help educate the NOOBS. There will be some resistance, in fact a lot of it which is fine. I've been doing this for many years and getting some common traits built in now is only going to make it better later. Minecraft is still an infant child with only being about 7 years old. But with 25+ million players - the field is wide open for improvements.
With your plugin, it can benefit a lot of players once it works across all the different environments and becomes reliable. I know some plugins I was unable to disable/re-enable without throwing some stack traces in the server or having to restart the server itself. But I chalk that up to not knowing the correct sequence to do it. But if you are game for trying, I'm more than willing to help you get your plugin on the map and used by more server owners. It'll take a bit of testing and patience, but it needs to start somewhere, right? What do you think? I've taken a stab at what to share with developers and is shared here: http://www.TakeMeToMinecraft.com:8075/pluginformat.html
I haven't been active in the Minecraft community for a little over two years now, and that won't be changing in the future. At this point, PlugMan is really just in maintainence mode - the APIs that it uses are very stable and should never break (if they do, I will fix the plugin).
If you want to pursue this, feel free - the real issue is that the versions listed on the Spigot Resources don't always match what's in the plugin.yml (whether it has the word "version", prefixed with a "v", has a build number, etc.). I am going to make it so that when using the check command it will flag plugins as either matching the current version or different than it. If a scheme (between Spigot Resource version strings and plugin.yml verions) is adopted by other plugin developers in the future, PlugMan will properly flag the plugin.
The next release will have the check command working again. There will be 3 categories: up-to-date, outdate (version mismatch), and unknown (those plugins not listed on Spigot).
If you wanted to give the new build a shot before the release, it is available on my Jenkins (just make sure to disable the updater in the config file).
Just tried to download now and my antivirus flagged it as dangerous. Not something it typically warns me but wanted to let you know in case someone hacked your account. I'm using paid version of McAfee LiveSafe Antivirus.
Hmm, that's odd - the JAR looks fine to me.
Can you give the latest build (https://ci.ryan-clancy.com/job/PlugMan/job/master/10/) and try to see if you get the same results?
@smmmadden I just tested this on two Windows machines, one running Avast and the other running Avira, and neither of them marked the file as dangerous - looks like it might just be McAfee.
@IsaiahPatton I'm going to redo the check command in the next version using that API. The only problem with using Curse over the old BukGet API is that we're only able to search by the plugin's slug rather than the plugin's name - this could cause us to miss some plugins when doing a search.
Not familiar with either of those AV programs and I'm using McAfee which is a paid service. I tried using Chrome & IE11 so it isn't browser specific, it is either this page it is downloading from or the file itself. Like I said with the https://dev.bukkit.org/projects/plugman page, the download works perfectly fine. Once you post it over there, I'll give it a shot to at least rule out the file being flagged. As the owner of the file, you would need to report it to McAfee if they are improperly flagging the file in case it does turn out to be something in the file. Otherwise, McAfee will try to quarantine the file once the scans kick off and don't want to add unnecessary exceptions. So to be clear, no problems with the download on bukkit, just here. :-)
Just tried again and it still flags it as dangerous. I added the version to the file as habit, but it does the same thing with or without the version.
For what it's worth, I just tried from the main page and it downloads without warning. Seems like it's flagging some content in both build 9 & 10 that it believes is unsafe. https://dev.bukkit.org/projects/plugman