815 Commits

Author SHA1 Message Date
ljacqu
1da74cb987 #1005 Improve restricted user feature (performance, error handling)
- Move check for restricted user into validation service
- Keep restrictions in a map by name for fast lookup, avoid splitting Strings on every call
- Gracefully handle case when entry does not have the expected ';' and log exception
2017-03-14 22:26:19 +01:00
ljacqu
84acc4557a #1125 Limbo persistence: convert old segments, add tests
- On startup / reload the playerdata folder is scanned for old segment files, whose data is migrated before they are deleted
- Add tests for segment files persistence holder
2017-03-14 20:46:28 +01:00
ljacqu
9c3baa7f14 #1125 Create persistence of LimboPlayers in segment files (work in progress)
- Instead of one huge file or a file for each player, allow the user to define how many files he wants to distribute the LimboPlayers over. This is based on a function that creates a String (segment ID) based on the player's UUID.
2017-03-13 20:29:08 +01:00
ljacqu
8557621c02 #1125 Create infrastructure for Limbo persistence + restore 5.2 JSON storage
- Introduce configurable storage mechanism
  - LimboPersistence wraps a LimboPersistenceHandler, of which there are multiple implementations
  - Outside of the limbo.persistence package, classes only talk to LimboPersistence
  - Restore the way of persisting to JSON from 5.2 (SeparateFilePersistenceHandler)

- Add handling for stored limbo players
  - Merge any existing LimboPlayers together with the goal of only keeping one version of a LimboPlayer: there is no way for a player to be online without triggering the creation of a LimboPlayer first, so we can guarantee that the in-memory LimboPlayer is the most up-to-date, i.e. when restoring limbo data we don't have to check against the disk.
  - Create and delete LimboPlayers at the same time when LimboPlayers are added or removed from the in-memory map

- Catch all exceptions in LimboPersistence so a handler throwing an unexpected exception does not stop the limbo process (#1070)

- Extend debug command /authme debug limbo to show LimboPlayer information on disk, too
2017-03-12 18:43:37 +01:00
ljacqu
1678901e02 #1113 Attempt to merge new LimboPlayer with an existing one
- Extract some logic into LimboServiceHelper to keep LimboService slim
- Create LimboServiceHelper#merge to merge two LimboPlayers associated with a Player. E.g. if an admin unregisters an online player that has not logged in, the creation of a LimboPlayer is triggered while there already is one in LimboService
2017-03-12 15:56:08 +01:00
ljacqu
689e5eeccc Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into limbo
# Conflicts:
#	src/main/java/fr/xephi/authme/command/executable/authme/debug/DebugCommand.java
2017-03-12 14:54:25 +01:00
ljacqu
10d8f00c92 Various minor changes
- AsynchronousLogin: call common permission methods through CommonService instead of PermissionsManager
- CommandManager: remove superfluous replacement of %p (handled by lazy tag replacer)
- Remove unused method in CommonService
- Create DebugSectionConsistencyTest
- SendMailSSL: Enable debug output if AuthMe log level is set to debug
- Add Utils#logAndSendMessage and replace existing, separate implementations
2017-03-12 14:04:39 +01:00
ljacqu
c766b5c259 #1036 Add restoration options for Limbo allowFlight / fly speed / walk speed
- Introduce options to define how allow flight, fly & walk speed should be restored from LimboPlayer
- Create consistency tests for line length in SectionComments methods and to ensure that all SettingsHolder classes are part of the returned ConfigurationData
2017-03-12 13:51:03 +01:00
ljacqu
c79ba49ca8 #1113 Don't restore OP to unregistered player; add tests for LimboService 2017-03-11 08:47:58 +01:00
ljacqu
7eadb7f7f9 #1034 Add debug sections for viewing DB data and Limbo data 2017-03-07 22:08:04 +01:00
ljacqu
4bb10c5d6d #1113 Handle LimboPlayer tasks via LimboService
- Add methods to LimboService for handling messages to make it the only relevant Limbo class for outside classes
  - Move LimboPlayerTaskManager to limbo package and make it package-private
- Create MessageTask and TimeoutTask immediately when LimboPlayer is created
- #1112 MessageTask: improve efficiency by keeping reference to Player
2017-03-07 20:35:48 +01:00
EbonJaguar
7d4bfcd99d - Introduce /email code
- Add max tries for /email code
- Introduce a PasswordRecoveryService
2017-03-06 13:54:46 -05:00
ljacqu
021497b9e6 #1113 Handle LimboPlayers within LimboService (remove LimboCache) (work in progress)
- Delete LimboCache and LimboPlayerStorage: LimboService now handles all LimboPlayer actions
- Revoke player rights when creating a LimboPlayer, within the LimboService
- Various fixes and improvements
2017-03-05 21:47:46 +01:00
ljacqu
22ccf582b8 #1113 Create LimboService (work in progress)
- Introduce new LimboService with a higher level abstraction for outside classes to trigger LimboPlayer actions
- Add methods to LimboPlayerTaskManager for muting the MessagesTask safely
2017-03-05 19:25:35 +01:00
ljacqu
009d82c0a9 #1120 Use empty "realname" when converting from flatfile
- FlatFile doesn't store the "realname" - all names are always in all-lowercase. Converting from flatfile to other data source should therefore not take over an auth's realname
- Adjust sample flatfile file to only have all-lowercase usernames
2017-03-04 17:52:08 +01:00
Maxetto
41b6c34b6b Transform values into constants
(cherry picked from commit 20d83e5 et al.)
2017-02-27 19:55:16 +01:00
ljacqu
57903f1c08 Merge pull request #220 from AuthMe/1073-email-cooldown
Configurable cooldown for /email recovery
2017-02-26 22:44:39 +01:00
ljacqu
a2b8ca683d Add tests for lazy tag replacement 2017-02-25 23:37:15 +01:00
ljacqu
c197a330f3 #1073 Add delay to email recovery command
- Add configurable cooldown period after sending an email for /email recovery
- Change ExpiringMap to remove expired entries (like ExpiringSet)
- Create method to translate durations via the messages file
2017-02-25 22:41:49 +01:00
ljacqu
a4b440bcca Separate email preparation and email sending into separate classes
- SendMailSSL keeps on handling the technical details for sending mails, while EmailService offers methods to other classes and worries about generating the correct email content
2017-02-25 20:14:58 +01:00
ljacqu
72c5cfac68 Create Duration class and ExpiringSet#getExpiration (prep for #1073)
- Move expiring collections to util.expiring package
- Change ExpiringSet to remove expired entries during normal calls
2017-02-25 17:25:25 +01:00
ljacqu
4edb4e68c2 #1104 Whitelist sensitive commands also when used with "authme:" prefix 2017-02-21 22:51:45 +01:00
ljacqu
ee51bb3971 Minor cleanups
- Remove forgotten test assertion
- Make utils class final
- Change RandomString to use char array
2017-02-20 22:20:48 +01:00
ljacqu
922101d755 #1104 Filter all sensitive command aliases in console filters 2017-02-20 22:09:36 +01:00
ljacqu
57ca81f2ba #1102 commands.yml file should not have any commands by default 2017-02-20 21:11:57 +01:00
ljacqu
39395836b4 #949 Add configurable timeout for captcha count 2017-02-19 11:50:06 +01:00
ljacqu
ca708e23cd #949 Create ExpiringSet, integrate into SessionManager 2017-02-19 09:06:15 +01:00
ljacqu
152d1dc216 #949 Created TimedCounter + implement it in TempbanManager 2017-02-18 22:50:30 +01:00
ljacqu
ef1d006cdf #949 Create expiring map type + integrate it into recovery code service 2017-02-18 21:31:37 +01:00
ljacqu
c9b66183de Fix command mapping for /authme:unregister etc. 2017-02-18 15:56:08 +01:00
ljacqu
d2fccdeb80 Update Injector and create injectable object factory
- Using e.g. Factory<Converter> instead of the injector directly makes its purpose more specific and disallows any future abuse of the injector's functions
2017-02-05 16:52:35 +01:00
ljacqu
2b1a97e959 #761 Fix removal and restoration of primary permission group
- Improve how a player is being switched between permission groups (add new group before removing old one)
- Remove group handling logic from LimboCache: AuthGroupHandler is now solely responsible for changing the player's permission group
2017-02-05 13:12:04 +01:00
ljacqu
49f7e47645 Add more debug log flavors to ConsoleLogger 2017-02-05 13:09:38 +01:00
ljacqu
f6c560cbbe Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 761-permission-groups 2017-02-04 23:05:31 +01:00
ljacqu
20cd9e9588 #1085 Improve of help translation files
- Avoid logging an error if a help_{lang}.yml file does not exist in the JAR
- No longer suggest /authme messages for updating the help translation
- Create consistency test to ensure that all help_{lang}.yml files in the JAR have entries for all help sections / messages / default permissions
2017-02-04 22:00:53 +01:00
ljacqu
5ad528d5d9 Fix Javadoc errors (as seen in Jenkins build) 2017-02-04 11:35:43 +01:00
ljacqu
f6b08ece68 Trivial code householding
- Convert field to local variable
- Remove unused constructor parameter
- Move limbo class into limbo package
2017-01-30 21:53:00 +01:00
ljacqu
24162ad94b #1034 Create debug command structure + utility to see permission groups
- Relevant to current work... :)
2017-01-29 19:47:14 +01:00
ljacqu
95945ffd22 #761 Improve permissions group support
- Drop one auth group type in favor of three: logged in, registered but not logged in, and unregistered
- Move  properties to same parent path
2017-01-29 17:44:06 +01:00
ljacqu
bba35944b9 Merge branch '5.3-DEV' of https://github.com/AuthMe-Team/AuthMeReloaded
Conflicts:
	pom.xml
2017-01-29 14:45:42 +01:00
ljacqu
89c70ff447 #1026 Add more tags for forced commands (lazily replaced) (#214)
* #1026 Add more tags for forced commands (lazily replaced)
- Extract lazy replacement of tags to its own class
- Implement wrapper to replace a String property within an object
  - Use wrapper in command manager and add new tags

* Make argument type generic in lazy tags util
2017-01-29 13:54:37 +01:00
Gabriele C
f46dd9445c Fix #1079 2017-01-29 13:46:52 +01:00
ljacqu
7578247085 Write tests for BukkitService 2017-01-24 21:39:01 +01:00
ljacqu
367380265e #1015 Distinguish player-dependent tags from "simple" tags 2017-01-22 10:52:51 +01:00
ljacqu
811bdee128 #1015 Implement lazy replace of tags for welcome message
- Check which tags are used when loading the welcome message and only apply their replacements afterwards
- Moves AuthMe#replaceAllInfo to a more appropriate place
- Avoid fetching data again for each line
2017-01-22 10:52:51 +01:00
ljacqu
666e242212 Delete CollectionUtils (unused) 2017-01-21 14:47:18 +01:00
ljacqu
d761b0ee5c #1055 Fix verifyMessages task not to shift comments up 2017-01-14 12:13:48 +01:00
ljacqu
d81592512e #1055 Reorder message files and update translations page 2017-01-11 21:31:01 +01:00
ljacqu
d68c73799b #1055 Grouping and sorting of text messages (PR #198)
* Initial grouping of messages_en.yml (thanks to input by @Twonox)
* Change MessageFileVerifier to only do verification - no writing
* Create classes for sorting and grouping messages as per the messages_en file
2017-01-11 21:09:17 +01:00
ljacqu
cc0d16c7e1 Remove redundant and unused message
- Remove 'reg_voluntarily'
- Remove 'user_unknown' in favor of 'unknown_user' - but move text from old 'user_unknown' to 'unknown_user'

Found by @Twonox
2017-01-09 21:16:53 +01:00