Commit Graph

1523 Commits

Author SHA1 Message Date
Luck
2dc6902001
Fix deadlock when lots of commands are executed at the same time (#2951) 2021-03-23 11:10:18 +00:00
Luck
6b2c4bca58
Change command manager lock handling to avoid non-fair tryLock call 2021-03-20 15:28:45 +00:00
Luck
1c7e2dfb8c
Fix very lenient duration parsing (#2940) 2021-03-19 19:59:15 +00:00
Daniil
a17b441165
Don't rely on getPackage to determine generated class name (#2937) 2021-03-15 12:12:02 +00:00
Luck
e3138eb94c
Make console detection more resilient against spoofed UUIDs 2021-03-13 14:25:33 +00:00
Luck
53bb61f9b2
Allow server name to be specified by a system property 2021-03-13 14:16:02 +00:00
Luck
370e2aed0d
Add some missing null annotations 2021-03-13 14:14:59 +00:00
Luck
c948632dfa
Create a copy of args for command timeout catcher 2021-03-02 17:53:10 +00:00
Luck
9647b7de43
Translation file fixes 2021-03-01 13:20:47 +00:00
Luck
e7f2a8d713
Add config option to disable built-in contexts 2021-03-01 11:18:21 +00:00
Luck
bf0ac1a867
Micro-optimise some frequently iterated lists 2021-03-01 10:38:48 +00:00
Luck
89894353b6
Add web editor deletion cause 2021-03-01 10:16:21 +00:00
Luck
ca65e2175d
Add getMetaValue API method that accepts a value transformer function 2021-02-28 12:04:23 +00:00
Luck
84c5b818b8
Add cancellable UserUnloadEvent 2021-02-27 18:24:39 +00:00
Luck
4ff2c75538
Add config option to set Hikari keepalive property 2021-02-22 23:02:43 +00:00
Luck
734b011dc7
Some minor tidying 2021-02-22 22:51:45 +00:00
Federico López
4018493285
Fix holder type and name on hover and click events in meta info entries (#2906) 2021-02-22 11:14:45 +00:00
Hai-tun
435e039b38
Bump PostgreSQL version (#2903) 2021-02-20 11:09:07 +00:00
Luck
16ee500054
Fix NoClassDefFoundError when loading extensions on non-JiJ platforms 2021-02-19 16:33:59 +00:00
Luck
88f040e822
Allow extensions to opt to be added to the parent classloader instead 2021-02-19 16:25:11 +00:00
Luck
a766c0e9aa
Support the web editor payload format in /lp import
This means that if a user accidentally deletes data locally but still has a working web editor session, they can automatically recover the data contained in the session by importing it with the --upload flag.

Of course, this will only be able to recover the data present in the session. The sensible thing would be to create proper backups (using /lp export or otherwise) - but hey, people are dumb.
2021-02-19 14:33:54 +00:00
Luck
40e8038604
Fix non-lower-case meta lookups via the API (#2900) 2021-02-19 09:43:37 +00:00
lucko
75d8f00400
Implement jar-in-jar loader system (#2899)
This fixes an issue that prevented LuckPerms from loading on Java 16
2021-02-18 12:21:17 +00:00
Luck
997e3c7ef7
Add timeout for command executions (#2887) 2021-02-10 11:38:35 +00:00
Luck
cb9e0899fc
Misc refactoring and tidying up 2021-02-10 11:12:30 +00:00
Luck
ab009ed110
Don't use pretty-printed JSON when uploading to bytebin for web apps 2021-02-05 12:44:48 +00:00
Luck
c8b89f245e
Tidy up RabbitMQMessenger a bit 2021-02-05 12:00:16 +00:00
Callum Seabrook
d8aefd23d3
Added virtual host support for RabbitMQ (#2877) 2021-02-05 11:38:13 +00:00
ruViolence
a8dfd38fe6
RabbitMQ messenger support (#2874) 2021-02-04 17:10:30 +00:00
Federico López
d485017744
Fix trailing period in translation bundle (#2868) 2021-01-31 11:00:55 +00:00
Luck
35f5944d7b
Make separated flat-file read/writes atomic (#2860)
This has become an issue as a result of removing the global per user/group/track IO locks in 478fddc486
2021-01-29 11:42:48 +00:00
Federico López
d12be01ecd
Fix checking for table existence on SQL storage types (#2864) 2021-01-29 09:34:55 +00:00
Luck
284e260bc2
Fix node change events not being called for web editor changes (#2857) 2021-01-26 11:41:38 +00:00
Luck
ec296460b2
Always allow console to use LP commands (#2841) 2021-01-22 19:16:53 +00:00
Luck
20fee360fb
Don't use a WeakReference to hold platform sender objects (#2838) 2021-01-21 12:58:59 +00:00
Luck
f9030825fd
Add some more annotations to mark API methods 2021-01-19 14:29:49 +00:00
Luck
6c34da6b32
Catch another Hikari/classloading issue 2021-01-18 13:18:05 +00:00
Luck
2a44572fb2
Fix non-daemon command manager thread sometimes preventing shutdown 2021-01-16 18:24:10 +00:00
Luck
73230bc9b6
Tidy up node + context comparators a bit 2021-01-14 20:45:51 +00:00
Luck
be1b9d45fa
Show the full redis exception in logger output 2021-01-14 20:43:39 +00:00
Luck
238a4fba75
Rename MapProcessor to DirectProcessor 2021-01-13 18:25:02 +00:00
Luck
33e412f663
Include info about wildcards in permission check command output 2021-01-13 17:55:41 +00:00
Luck
c904ede972
Improve & consolidate permission check commands 2021-01-13 16:40:57 +00:00
Luck
489c09ddfc
Add /lp track <track> editor command (#2752) 2021-01-13 14:33:01 +00:00
Luck
505c073c8e
Add config to control whether display names are returned by the Vault hook 2021-01-09 20:36:08 +00:00
Luck
848c36928f
Fix logging in on Fabric using offline mode (#2810) 2021-01-05 10:30:28 +00:00
i509VCB
21abb94796
Fabric (#2029) 2021-01-04 15:23:54 +00:00
Luck
0a99a96188
Tidy up Node add/remove/clear API events 2021-01-02 21:16:45 +00:00
Luck
a8b1dc8c07
Only store ids of received messages for 1 hour to prevent high memory usage on instances with high uptime (#2807) 2021-01-02 20:08:56 +00:00
Luck
c3581c00d3
Fix verbose command no checks message format 2021-01-02 00:50:18 +00:00
Luck
8124a17adb
Conserve expiry time when promoting/demoting (#2794) 2021-01-01 20:25:47 +00:00
Luck
d83559b949
Change permission tree size limits to be less restrictive 2021-01-01 18:17:56 +00:00
Luck
8167fbf73f
Give false default permissions priority over wildcards
I think this is a good compromise. It won't apply to registered permissions that are defaulted to 'op' (Bukkit) or 'undefined' (Sponge), only to those that are specifically set to false.

The change is configurable, enabled by default for new installs of LP.

Will hopefully go some way to resolving:
- #2787
- https://v2.nucleuspowered.org/docs/nowildcard.html
- NucleusPowered/Nucleus#1093 (and related)

cc: @dualspiral @slipcor
2020-12-23 14:36:31 +00:00
Luck
8dfeef9575
Some misc tidying up 2020-12-23 12:16:14 +00:00
Luck
5c44333892
Move migration commands to a separate jar 2020-12-22 14:53:22 +00:00
Luck
142cdc8e89
Add some unit tests
This is a start at least.. I have some catching up to do!
2020-12-22 14:40:29 +00:00
Luck
abb608b856
Support Bukkit-Forge hacks which add enum constants at runtime (#2779) 2020-12-20 15:45:57 +00:00
Luck
c28b1949a9
Process 'give default if needed' when saving instead of after each change made in the API (#2775) 2020-12-18 19:17:01 +00:00
Luck
8ef871f6db
Fix bug with NodeMap#remove (#2772) 2020-12-15 14:31:04 +00:00
Federico López
fa89236e48
Fix translation key used for parent clear (#2773) 2020-12-14 21:49:25 +00:00
Luck
e6a5cb06af
Include note in verbose command-exec-as response if there were no matches (#2734) 2020-12-14 15:11:49 +00:00
lucko
478fddc486
Track individual changes to users/groups instead of writing in full on each save (#2767) 2020-12-13 13:08:15 +00:00
Luck
97d1deec9c
Slightly optimize weight and display name lookups 2020-12-11 10:38:57 +00:00
Luck
45188c6334
Fix NPE from null path in AbstractFileWatcher (#2759) 2020-12-09 18:21:54 +00:00
Luck
17f67f6e13
Use case insensitive LIKE command on H2 databases (#2760) 2020-12-09 18:08:17 +00:00
Luck
39a5ccf9a9
Some tidying up 2020-12-09 10:46:22 +00:00
Luck
5fbb80f16a
Ensure meta keys are always lowercase, and fix 'similar' comparison case sensitivity (#2760) 2020-12-09 10:38:22 +00:00
Luck
798a539024
Fix saving to flatfile storage when sections become empty (#2755) 2020-12-05 14:28:54 +00:00
Luck
645efb0e5b
Cleanup applying bulkupdates to Node objects directly 2020-12-05 14:27:32 +00:00
Luck
7d7d40b087
Add some missing arg-based permission checks 2020-12-04 14:12:36 +00:00
Luck
e183f520d6
Cleanup EventDispatcher and some other minor tidying 2020-12-01 23:31:20 +00:00
Sven Arends
727c2f92c3
PowerRanks migration (#2718) 2020-11-26 17:52:31 +00:00
Luck
fdd3b117f1
Reduce translation cache refresh slightly to 23 hours 2020-11-26 17:24:37 +00:00
Luck
8a38c5f4b7
Properly open URLClassLoader module on Java 9+ to allow reflection and avoid access warning (#952) 2020-11-26 15:52:39 +00:00
Luck
53fb46ee85
Expose uuid/username lookups and validity checks as events in the API 2020-11-23 23:54:02 +00:00
powercas_gamer
e851234723
Remove debug command & add more usages to commands (#2725) 2020-11-18 23:52:26 +00:00
Federico López
26f7dfcb24
Fix .verbose.enabled and enabled-recording args (#2732) 2020-11-18 23:51:32 +00:00
Luck
d1b53f65ae
Cleanup flatfile database handling 2020-11-16 01:17:24 +00:00
Luck
c39749e526
Use a better approach for avoiding MySQL driver sharing 2020-11-14 14:10:54 +00:00
Luck
23c7eb79d0
Fix leftover code in MariaDbConnectionFactory 2020-11-14 13:50:37 +00:00
Luck
9af6dccd9d
Use the non-registering MySQL driver and revert to using DataSource for MariaDB 2020-11-14 13:44:32 +00:00
Luck
129a10aa60
Automatically install translation bundles 2020-11-12 00:28:02 +00:00
Luck
62270bfd93
Set serverTimezone property on MySQL driver 2020-11-11 13:00:02 +00:00
Luck
00d4a2a1da
Update MySQL driver to 8.0, cleanup Hikari usage 2020-11-10 16:00:36 +00:00
Luck
4ce8ea21f9
Sort users with no known username to the bottom of the editor menu 2020-11-10 15:04:36 +00:00
Luck
9796d2421f
Player context calculator fixes, fix compat with Sponge API 7 (#2703) 2020-11-07 11:40:26 +00:00
Luck
0ea0ce9d26
Provide 'gamemode' and 'dimension-type' contexts by default
Also, optimize world rewrites
2020-11-07 00:57:57 +00:00
Luck
3f04d439b4
Fix permission check message arg ordering 2020-11-03 12:17:05 +00:00
Federico López
5bdc798237
Allow creategroup command to take weight and display name as optional arguments (#2698) 2020-11-02 09:48:02 +00:00
Federico López
5d0c578da1
Fix bulk update command failing on SQL based storages when tracking operation stats with multiple constraints (#2699) 2020-11-02 09:46:45 +00:00
MrMicky
7854de8991
Move exception printing to logger (#2695) 2020-10-31 22:25:11 +00:00
Luck
4c23f93a67
Improve locale display names 2020-10-30 13:14:52 +00:00
Luck
7b3beae57f
Change wiki links from GitHub to luckperms.net 2020-10-28 11:58:41 +00:00
Luck
15d3000fc1
Make storage meta keys translatable 2020-10-28 10:42:47 +00:00
Luck
ad174742e9
Implement localisation for displaying durations 2020-10-25 13:39:14 +00:00
Luck
ab0e25a56d
Fix loading custom en based translations 2020-10-22 09:17:30 +01:00
Luck
6b05e47deb
Include expiry in meta info command (#2663) 2020-10-20 13:10:39 +01:00
Luck
b9eb022011
Fix null player locale causing NPE (#2678) 2020-10-20 12:25:35 +01:00
Federico López
f3857090fa
Format group info prefix and suffix (#2677) 2020-10-19 14:47:36 +01:00
Luck
d7fa9e08f3
Fix various translation issues 2020-10-19 13:24:44 +01:00
Luck
2c7ff2120c
Fix legacy codes in formatted holder display names 2020-10-19 12:37:27 +01:00
Federico López
703b18e51c
Make bulk update operations a bit more verbose (#2647) 2020-10-16 12:11:30 +01:00
Luck
3b779dbbd3
Add note to build scripts about our repackaged version of the adventure library 2020-10-16 00:17:42 +01:00
Luck
9af397c2bc
Change some of the wording slightly in the translations command 2020-10-15 23:47:51 +01:00
Luck
b6e5b0bd47
Fix sending messages on Velocity proxies 2020-10-15 23:35:59 +01:00
Luck
6e7c49488d
Add /lp translations command 2020-10-15 23:02:11 +01:00
Underscore11
c5841b58a7
Fix some formatting issues (#2671) 2020-10-15 00:50:00 +01:00
Federico López
e8b1214219
Make import take 3 args max so lp import <code> --upload --replace is possible (#2651) 2020-10-14 12:38:05 +01:00
Luck
4811129ab1
Convert to text components and implement new translation system 2020-10-14 12:26:09 +01:00
Luck
63878166db
Release 5.2 2020-10-14 12:18:50 +01:00
Luck
2ea43d4b2e
Some misc refactoring and cleanup 2020-09-10 21:13:12 +01:00
Luck
442c7d46f9
Ensure that player data is removed even if a corresponding user doesn't exist 2020-09-07 18:16:25 +01:00
Luck
971bb67b51
Add support for user deletion from the web editor 2020-09-07 18:13:33 +01:00
Luck
020aff66aa
Refactor web editor session handling 2020-09-07 18:06:40 +01:00
Luck
198b86d7c3
Implement the basis for deleting player uuid data from storage 2020-09-07 17:22:42 +01:00
Luck
84e7fd4d09
Update usage string for /lp import 2020-09-07 16:55:08 +01:00
Luck
4027129052
Default to merge when using /lp import (#2601) 2020-09-07 16:54:27 +01:00
Luck
63f67ca72c
Default use-vault-server to false (#2599) 2020-09-07 16:51:07 +01:00
Luck
2adaea2dac
Avoid calling JsonObject#size for compat with older gson versions (#2598) 2020-09-05 22:00:56 +01:00
Luck
5e48224c78
Use a map factory when resolving permissions for cached data 2020-08-30 09:14:33 +01:00
Luck
cc1d8984da
Config option for registering brigadier command list data 2020-08-30 09:13:59 +01:00
Luck
4d5a24f2c4
ContextSetJsonSerializer output should be sorted 2020-08-14 16:25:55 +01:00
Luck
e2b575dd24
Handle null or empty server/world field in SQL (#2553) 2020-08-13 11:40:33 +01:00
Luck
6f90e545fc
Don't attempt further poll operations after SQL messenger has closed (#2516) 2020-08-13 10:49:18 +01:00
Luck
361a4d66bc
Refactor exporter into separate classes 2020-08-13 10:12:36 +01:00
Luck
e1bac438aa
Add /lp export --without-groups (#2498) 2020-08-13 10:00:49 +01:00
Luck
ac9706b83f
Ignore FileAlreadyExistsException in MoreFiles#createDirectories (#2525) 2020-08-10 22:29:12 +01:00
Luck
fea757887c
Use official configurate 3.7 branch 2020-08-01 11:08:46 +01:00
Luck
92e008ff0a
Fix bug in PermissionHolder#hasNode (#2490)
Regression introduced in bd6d3ab7c0
2020-07-26 14:14:41 +01:00
Luck
9659333d0e
Some misc cleanup for migration commands 2020-07-25 16:56:52 +01:00
Larry
d8020e77fe
Fix import with no users object (#2488, #2489) 2020-07-24 11:43:49 +01:00
Luck
232d17436c
Rename config based static calculator 2020-07-21 11:26:16 +01:00
Luck
1461651e22
Include a wider range of potential contexts in web editor payload (#2470) 2020-07-21 11:25:50 +01:00
Luck
ef556f7cf7
Pre-generate event classes (#2463) 2020-07-16 21:00:17 +01:00
Luck
47ca6b162b
Catch throwable instead of exception when handling hikari errors (#2444) 2020-07-16 20:26:54 +01:00
Luck
f72a5cb6b5
Ensure group/track names are always lowercase'd when created via the API (#2440) 2020-07-16 20:19:33 +01:00
Luck
cd0fd80b33
Impose 15 second timeout on all http calls (#2436) 2020-07-16 20:15:53 +01:00
Sam Goodger
0fd7f643a7
Add option to use bytebin for exports/imports (#2432) 2020-07-04 20:41:34 +01:00
Mark
6c7c1b67b8
Try to reopen Redis pub-sub connection on failure (#2430) 2020-07-04 20:08:58 +01:00
Luck
4514a17eaf
Remove MRUCache
Now we're using ConcurrentHashMap, it's usefulness in terms of performance is debatable
2020-07-03 18:23:34 +01:00
Luck
adbd2fc81f
Use ConcurrentHashMap instead of Caffeine in CachedDataManager
The behaviour of Caffeine cache invalidation calls is "undefined for an entry that is being loaded (or reloaded)" - this causes a nasty race condition in CachedDataManager, because we rely on the call to #invalidate to completely clear the cache and prevent old/outdated data from sticking around & being used for permission queries.

This is an unfortunate characteristic of Caffeine, because other than that, it is perfect for our use-case.
2020-07-03 17:57:53 +01:00
Luck
8b506b6a95
Don't re-use PermissionCache instances 2020-07-03 15:18:58 +01:00
Luck
426c8565fd
Small optimization to processExportedPermissions 2020-07-03 14:57:46 +01:00
Luck
bd6d3ab7c0
Optimize PermissionHolder#hasNode 2020-07-02 12:28:30 +01:00
Luck
d12d13d6ea
Fix NodeMap#size method and rename some things 2020-07-02 12:16:13 +01:00
Luck
cc08390abe
Remove NodeMap immutable cache 2020-07-02 12:06:37 +01:00
Luck
b460e282b1
Add ConstraintNodeMatcher toString method for use in commands 2020-07-02 10:44:52 +01:00
Luck
21ae1dbac0
Fix potential race condition in MRUCache 2020-06-21 22:07:53 +01:00
Luck
6cb0f5e810
Use a non-async cache in CachedDataManager 2020-06-21 21:23:57 +01:00
Luck
2ac7d3dfe6
Refactor command argument parsing 2020-06-21 19:58:17 +01:00