Fix LimboAPI login injection on Velocity-CTD #236
Conversation
…LVER fallback) Velocity-CTD does not expose ConnectedPlayer.DEFAULT_PERMISSIONS (it uses DEFAULT_PERMISSION_RESOLVER instead), which caused LoginTasksQueue static initialization to fail with NoSuchFieldException during player connect. Update LoginTasksQueue to prefer DEFAULT_PERMISSIONS when present (standard Velocity), and when absent, reflect DEFAULT_PERMISSION_RESOLVER and wrap it into a PermissionProvider so PermissionsSetupEvent can still run. This restores LimboAPI login injection compatibility with Velocity-CTD.
|
Thanks! |
|
Why on earth is the developer of this mess making changes like that in the first place? By the same logic, i could create my own fork, add a bunch of useless features that could be implemented via plugins anyway (even if with some hacky workarounds using reflection), rename classes just because i don't like their names, and also add a shit ton of pointless formatting and javadocs so that making a diff against upstream becomes impossible because the diff ends up being 50k lines long, and then blame the compatibility issues on the plugin developers. |
…ION_RESO…" (#239) This reverts commit 1de2601. #236 (comment)
We had a permission check that took up to 86.400 See: https://github.com/GemstoneGG/Velocity-CTD/blob/libdeflate/proxy/src/main/java/com/velocityctd/proxy/permission/PermissionUtils.java Instead of assuming a feature like this was implemented in bad faith, please skim the source code in the future before making comments like that, which doesn't help anything. With the same logic I can ask why reflection is being used to grab internal fields in LimboAPI. But I'm not going to, because I understand that sometimes you need an approach like this, especially in a heavily integrated plugin like this. |
|
Instead of shouting at each other, please open an issue on our side to re-introduce We had also kept |
Velocity-CTD does not expose ConnectedPlayer.DEFAULT_PERMISSIONS (it uses DEFAULT_PERMISSION_RESOLVER instead), which caused LoginTasksQueue static initialization to fail with NoSuchFieldException during player connect.
Update LoginTasksQueue to prefer DEFAULT_PERMISSIONS when present (standard Velocity), and when absent,
reflect DEFAULT_PERMISSION_RESOLVER and wrap it into a PermissionProvider so PermissionsSetupEvent can still run.
This restores LimboAPI login injection compatibility with Velocity-CTD.
Fixes: #232