Open mbax opened 2 years ago
Hello @mbax, thank you for this complete feedback, really appreciated! :+1:
I always had trouble understanding the versions and forks of all Factions plugin, it's quite a mess! But I understand your needs and it seems legit to also support your updated version of Factions plugin.
Based on plugin statistics, some server owners are still using a really old version of Factions indeed..
So, technically speaking, what I propose:
So there will be
factions1
(legacy),factions2
andfactionsuuid
.
DependencyResolver
to also match plugin authors if provided.
If no author matched, use module that does not check for author if provided.
I can start to work on it next week, as some server owners need it quickly. But this feature is also open to PR if you have already worked on it. Thank you for your time! 😁
it's quite a mess!
This is an excellent summary of the factions ecosystem as a whole. 🤣
I'd absolutely love to have FUUID report a different plugin name, but since around half its users run 1.8 and plugins that were abandoned half a dozen years ago, I can't drop that for compatibility reasons currently. (Looking to do a split where I operate a 'legacy' version of the plugin and a 'modern' version that is sane, and would happily PR any additional changes then)
I'm not sure if I'll be able to beat your timeline on getting started, myself, but if a week or two passes and you haven't had the chance to work on it yet I could start some work. 😄
Thanks for the quick response!
Filling out the template for funsies:
Versions EnderContainers version: 2.2.2 Platform version: git-Paper-349 (MC: 1.17.1) [but literally anything, really]
Describe the bug FactionsUUID support fails, throwing an exception to console instead.
To Reproduce
Profit!Exception!Expected behavior Not throwing an exception to console.
Screenshots Nope!
Additional context Alright, time to talk! 😁
Basically, since 2019 there have been a few changes that break the built-in support for FactionsUUID (aka a 1.x fork).
PermissibleAction
became an interface, withPermissibleActions
being an enum implementation of it, soPermissibleActions.CONTAINER
would be the new referenced action.Faction#hasAccess
returns a boolean, because returning an enum was dumb.Faction#hasAccess
gained an optional, but really preferred, parameter. New method to call takes anFLocation
at the end. This will be used for an upcoming feature of defining different access for different claims in a faction.So the new line would be overall:
(Though you could just create that FLocation once by reusing the one from the earlier use in getting the currentFac value)
However, this would break support for people inexplicably running a 2011 version of 1.x, and more importantly for folks running forks of FUUID. Those forks generally broke off in 2018 or earlier so they won't have this code. FactionsUUID forks are an absolute nightmare for managing support, so I'm sorry in advance. Some of them do hilarious things like continue to use our versioning system so you can't even easily check versions.
One thought I had was adding a matchAuthor to your DependencyResolver and just checking for me (
mbaxter
, not mbax - someone beat me to the username here) in the author list.I'm happy to provide a PR for this if you want, but I wanted to bring it up first since it's your codebase.
For building, if you want to do it:
For a less formal back and forth discussion, which I welcome, I can be found on Discord as
mbaxter#1592
(and we share Spigot's discord as a common ground so you should be able to find me and friend me 😄 ), but I'm happy to limit discussion to here as well.