Commit Graph

426 Commits

Author SHA1 Message Date
Gabriele C
b439a0391c Add option to apply the protection also to registered users #860 2016-07-16 21:10:29 +02:00
ljacqu
674a051586 #762 Clear all stored sessions if feature gets disabled on reload 2016-07-15 19:47:42 +02:00
ljacqu
3b06524796 #762 Use timestamps for session + #816 Logout should invalidate a player's session 2016-07-15 19:35:35 +02:00
ljacqu
10392d0d65 #856 Handle null Location on PlayerCache object
- Location may null when read from file
2016-07-15 18:49:01 +02:00
ljacqu
160cbc6aa4 #849 Catch exception in TwoFactor hash and write unit tests 2016-07-15 18:23:18 +02:00
ljacqu
dccbd5262f Don't update IP twice
- IP is updated in datasource#updateSession after successful login
- Remove no longer used DataSource#updateIp
2016-07-12 21:45:05 +02:00
ljacqu
8d54557f3d Add tests for PlayerDataStorage and LimboCache 2016-07-11 21:09:15 +02:00
ljacqu
a6d885e0bb Write tests for PlayerDataStorage 2016-07-10 23:00:58 +02:00
ljacqu
8e91636fbd Create tests for LimboCache 2016-07-10 17:15:27 +02:00
ljacqu
491853e0c8 Change github URLs from AuthMe-Team/ to AuthMe/
- Change README sections to use more markdown
2016-07-10 11:42:40 +02:00
ljacqu
aa6fe3e874 Rename method on SettingsDependent
- Rename loadSettings to reload
- Make ProtocolLibService only implement SettingsDependent, not Relaodable alongside
2016-07-09 09:24:25 +02:00
ljacqu
d8f6fb085e Cleanup - remove unused elements in code 2016-07-04 21:53:22 +02:00
ljacqu
2867ebaddd Fix failing test 2016-07-04 20:31:40 +02:00
ljacqu
c040623739 Merge 765-teleport-handling into jsoncache-fix 2016-07-04 18:47:34 +02:00
DNx5
140275f366 - Add restore method in LimboCache
* Apply it to process that have use of it
- Fix fly & walk speed not get restored
2016-07-04 13:21:57 +07:00
ljacqu
7788ad6230 #765 Replace Utils usages with TeleportService + misc householding
- Remove some legacy settings
- Move Utils "addNormal" method to AuthGroupHandler

(Reapplied changes from orphaned fe29089)
2016-07-03 19:55:31 +02:00
DNx5
deffcb3e2b - Renamed JsonCache to PlayerDataStorage
* the methods inside it renamed to fit with class name
  * cache folder changed into playerdata
- Renamed LimboPlayer to PlayerData
- Added fly speed to PlayerData
- Removed player's name from PlayerData object
- Added getPlayerLocationOrSpawn method in spawn loader.
2016-07-03 21:52:46 +07:00
DNx5
7ea0763966 Merge remote-tracking branch 'origin/master' into jsoncache-fix
Conflicts:
	src/main/java/fr/xephi/authme/settings/Settings.java
2016-07-03 19:53:55 +07:00
ljacqu
8f5817883e Testing - check return value of Set#add instead of separately checking Set#contains 2016-07-03 11:47:37 +02:00
ljacqu
3984208548 #797 Make two messages translatable 2016-07-02 21:52:50 +02:00
ljacqu
9a5c432509 #655 Encapsulate mail service
- Change SendMailSSL to be injected into classes and created regardless of settings
- Various minor cleanups (remove accidentally committed test, add more precise logging statement)
2016-07-02 20:56:53 +02:00
ljacqu
22911a0bb9 Remove duplicate column initialization code, add datasource integration tests
- Drop initialization of all columns on table create in favor of checking each column individually. This is slower but guarantees that each column is only defined once in the code. Columns are only created once so having clean code outweighs performance.
- Write more datasource integration tests
2016-07-02 19:16:26 +02:00
ljacqu
0283395da4 Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into jsoncache-fix
Conflicts:
	src/main/java/fr/xephi/authme/listener/protocollib/ProtocolLibService.java
2016-07-02 11:01:46 +02:00
ljacqu
70226f7ddb #813 Move test resources to conform to package structure 2016-07-02 10:57:30 +02:00
ljacqu
1f35ccd841 Improve bat helpers / minor changes to logging and todo messages 2016-07-02 10:17:52 +02:00
ljacqu
6585b68749 Fix TeleportationService tests + rename methods
- Fix and supplement unit tests for TeleportationService
- Rename methods as to avoid confusion (login vs. LoginEvent when player joins)
- Add javadoc with note about Player#hasPlayedBefore always being false
2016-06-30 22:38:36 +02:00
DNx5
abf6645620 Fix test 2016-06-29 22:31:10 +07:00
Gabriele C
b1b56f2d51 Cleanup, updated some settings 2016-06-29 15:56:55 +02:00
ljacqu
1361174892 Encapsulate GeoLiteAPI class 2016-06-27 21:32:52 +02:00
Gnat008
1326606f37 #762 - Move all sessions stuff to new SessionManager class 2016-06-27 13:50:16 -04:00
ljacqu
d72d6ddf5a AntiBot - make public field private 2016-06-26 09:25:52 +02:00
ljacqu
6812cfa4db Add utility for safe pattern compiling 2016-06-24 23:50:11 +02:00
ljacqu
e7ba579960 #778 Delayed runner: add support for annotations, add validation
- Add support for dependencies identified by annotations
- Add some more usage validation
- Change a few test classes to use the DelayedInjectionRunner
2016-06-19 22:54:12 +02:00
ljacqu
4b3ab4b116 #769 Create integration test for service initialization in onEnable()
- Test that services can be instantiated (e.g. no circular dependencies)
- Instantiate Messages via injection instead of manually
2016-06-19 21:16:46 +02:00
ljacqu
a0abe3d19d Minor householding
- Remove getter for NewSetting
- Reduce visibility of classes used by DelayedRunner
2016-06-19 16:13:00 +02:00
ljacqu
fb5e7d40c6 Change delayed injection to only change behavior of its own elements
- Introduce new BeforeInjecting annotation to not modify the (expected) order of annotations that do not belong to us
  - Avoids using hacky way of first initializing field to an Answer that will delegate on demand to the proper class...
- Remove PostConstruct support for Mockito's InjectMocks: we should not change the established behavior of external elements
2016-06-18 15:31:11 +02:00
ljacqu
a1c62e7c04 Create delayed injection test runner
- Test runner supporting new "DelayedInjection" annotation: such fields are only initialized with instantiation right before the first time they're used in tests, allowing to set up mock behavior beforehand
2016-06-18 13:19:07 +02:00
ljacqu
cd1acfde1b #674 Create tests for purge commands and purge service 2016-06-18 11:13:17 +02:00
ljacqu
3629c51fc1 #674 PurgeService: Always register if purging, reduce code duplication
- Rename autoPurging to isPurging: we should always register if a purge task is in progress (regardless if autopurge or not) and deny any new requests
- Reduce the same logic being coded multiple times by calling through the methods
- DataSource: remove purgeBanned in favor of purgeRecords, both do exactly the same thing
2016-06-16 22:52:11 +02:00
ljacqu
acd4a772e8 Minor householding in tests
- Add missing test for injector
- Remove redundant Mock fields
2016-06-15 21:24:57 +02:00
ljacqu
ac484345a2 Change password task to async process
- Perform async change password task just like other async processes: via Management
- Remove legacy setting
- Remove now unused service getter (#736)
2016-06-15 20:56:34 +02:00
ljacqu
15886fb517 #723 Let LimboPlayer task manager decide which message key to use
- Pass boolean (is registered) value and determine internally which message key (email registration vs. regular) to use in the message task
2016-06-15 20:37:00 +02:00
ljacqu
5cbb83e153 Code householding, add tests to TempbanManager
- Delegate event firing to BukkitService
- Write tests for IP banning function
- Update comments on tempban properties in config.yml
2016-06-14 21:52:43 +02:00
ljacqu
3411450ff1 #760 Fix single session feature
- Move the check from PlayerLoginEvent to AsyncPlayerPreLoginEvent. Single session can only be implemented with PreLoginEvent; it is already to late to check this in the PlayerLoginEvent. Ergo, we cannot offer this for CraftBukkit.
- Remove interactions with LimboCache - no interactions with LimboCache expected until after OnJoinVerification checks. (Thanks sgdc3!)
2016-06-14 21:03:32 +02:00
EbonJaguar
367f785610 count login failures by ip address and not by name 2016-06-13 15:58:03 -04:00
ljacqu
98bbf51594 Update dependency graph 2016-06-12 22:31:11 +02:00
ljacqu
89bbfc48ee #723 Create provider for TimeoutTask and MessageTask, remove LimboCache#getInstance
- Create class to handle the creation of "LimboPlayer tasks" (adds encapsulation, reduces duplication)
- Move group setting into its own class because (mutual dependency between LimboCache and PermissionsManager otherwise)
2016-06-12 22:00:05 +02:00
Gnat008
67c72dc46d fix TempbanManager injecting 2016-06-12 15:17:37 -04:00
ljacqu
69100daba5 Get jar files via URI objects in tests to prevent issue with spaces 2016-06-12 20:54:39 +02:00
Gnat008
ac4add9f54 add ability to tempban users after x wrong logins - ref #520 #192 2016-06-12 13:40:34 -04:00
ljacqu
d6e1fd5ceb Use injection in and for LimboCache, migrate some legacy settings, remove setGroup from Utils
- New injector method allows to retrieve services if they've already been instantiated -> useful for onDisable() which might be run after aborted initialization
- Deprecate various methods that need to be removed
2016-06-12 16:14:34 +02:00
ljacqu
5ef62784b5 #729 Use world from LimboPlayer for "spawn after login" feat., simplify teleport event constructors 2016-06-12 14:10:38 +02:00
ljacqu
68d5145cd7 #729 Refactor spawn handling into separate service (work in progress) 2016-06-12 12:46:03 +02:00
ljacqu
4d75542594 Remove unused fields instead of suppressing warnings 2016-06-11 19:05:10 +02:00
Gabriele C
01f297919d 1.10 API + cleanup 2016-06-11 17:46:24 +02:00
ljacqu
2e269b6f5e Add missing unit tests for commands 2016-06-05 13:21:05 +02:00
ljacqu
3753a0ef96 #565 Allow to skip extended encryption methods
- Set system property via surefire plugin and create profile that modifies the property
- Check for the new property in AbstractEncryptionMethodTest and shorten/skip the tests when necessary
2016-06-05 00:29:31 +02:00
ljacqu
4fe26f08d4 #612 Check if plugin is permission system within method itself
- Iterate over all values within the method
- Bug fix: change method to use pluginName field, and not name
2016-06-04 22:40:30 +02:00
ljacqu
26ac466035 #727 Instantiate ExecutableCommand objects in CommandHandler
- Change CommandDescription to contain a reference to ExecutableCommand class only
- Instantiate the actual ExecutableCommand objects in CommandHandler
2016-06-04 21:13:38 +02:00
ljacqu
c6778b566d #727 Remove CommandService from ExecutableCommand interface
(work in progress)
- Inject CommandService like other classes instead of passing it as method parameter
- Not solved: cyclic dependency CommandInitializer > ExecutableCommand > CommandService > CommandInitializer...
2016-06-04 11:02:15 +02:00
ljacqu
12703d1613 #601 Integrate plugin manager
- Encapsulate captcha functionality into a class instead of two public fields on the AuthMe main class(!)
   - Let CaptchaManager worry about whether it is enabled or not -> no need to check on the outside
- Implement full reloading support to enable/disable captchas + parameters
- Add unit tests
2016-06-03 22:47:17 +02:00
ljacqu
1f2a823f99 Add tests for PluginHooks - Multiverse interactions 2016-06-03 13:36:33 +02:00
ljacqu
55f7e8097a #743 Add proper error message for "invalid chars in password"
- Change password validation to return a ValidationResult object for passing message arguments
- Remove wrapping methods in ProcessService and CommandService and use ValidationService directly
2016-06-03 12:51:49 +02:00
Gabriele C
eafb3b6653 cleanup 2016-06-03 00:07:25 +02:00
ljacqu
6d2597a980 #739 Fix command unit tests; adjust default handling
(cherry picked from commit 61c119b)
2016-06-02 23:12:01 +02:00
Gnat008
73272b5931 Remove all but one hasPermission() method in the PermissionsManager
#739 (cherry picked from commit 65f3347)
2016-06-02 23:11:47 +02:00
ljacqu
9b5009eb8c #742 Create test that plugin.yml corresponds to command definitions
- Create test
- Fix definitions to correspond
2016-06-02 15:49:21 +02:00
ljacqu
e75cff5fb8 Remove static injections in ListenerService
- Get other classes via Inject annotation
- Remove no longer needed Utils methods (relates to #736)
- Create tests for ListenerService and AuthMeBlockListener
- Performance improvement: keep unrestricted names as Set instead of List for faster contains() method
2016-06-02 12:46:54 +02:00
ljacqu
408e8dd0dd #739 Create unit tests for PermissionsManager#hasPermission 2016-06-02 00:03:02 +02:00
ljacqu
0977558924 #736 Remove use of service getters and deprecate them 2016-05-31 11:14:03 +02:00
ljacqu
3b6677ce99 Merge branch '604-default-permissions-on-nodes' of https://github.com/AuthMe-Team/AuthMeReloaded 2016-05-31 09:15:36 +02:00
ljacqu
30b72bec4c #604 Fix HelpProvider tests 2016-05-30 23:49:59 +02:00
EbonJaguar
3ad00a45f9 Move default permissions out of Commands and into PermissionNode - fixes #606 2016-05-30 16:47:48 -04:00
ljacqu
f5b4071abf Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into playerjoin-listener-cleanup 2016-05-30 17:53:42 +02:00
Gabriele C
8a0655e333 Merge pull request #134 from Gnat008/602-create-lowercase-string-list-propertytype
Add a lowercase String list property - fixes #602
2016-05-30 17:53:14 +02:00
EbonJaguar
f94f4643cf Add a lowercase String list property - fixes #602 2016-05-30 11:08:01 -04:00
ljacqu
9b1ee86b2f Trivial code householding
- Replace `if (!x) ... else ...` with `if(x) ... else ...`
- Avoid throwing RuntimeException; use children
2016-05-30 12:18:55 +02:00
Gabriele C
52c0c7dd64 playerlistener cleanup 2016-05-29 16:34:03 +02:00
ljacqu
64aacb12db Unit test verifications done on joining
- Write unit tests for checks done when a player joins
- Move join event handler methods back to PlayerListener; move join check logic to new separate class
2016-05-29 15:00:16 +02:00
ljacqu
39d8a88142 Structure checks done in PlayerJoinListener as individual methods 2016-05-29 11:45:12 +02:00
ljacqu
2c92a8b52f Move logic for join events in its own listener 2016-05-28 22:32:45 +02:00
ljacqu
25f5fdb45c Code householding (PlayerListener / Settings)
- Use field on PlayerListener for storing nickname pattern -> repeatedly parsing pattern is expensive
- Remove unused legacy setting fields
- ForceFlatToSqlite cannot be run from converter command -> remove Converter interface to create more natural method signatures
2016-05-28 22:04:55 +02:00
ljacqu
eee06dad50 Dependency graph - allow to summarize dependencies by super type 2016-05-27 23:25:11 +02:00
ljacqu
cb10854612 Minor - fix failing build (cannot use method from Java 8) 2016-05-27 23:05:03 +02:00
ljacqu
87331d116c Revise converter architecture + add integration test for CrazyLogin converter 2016-05-27 23:00:44 +02:00
ljacqu
67511e3b45 Create task which draws AuthMe dependency graph 2016-05-25 19:24:12 +02:00
ljacqu
8de1897412 Minor - Use explicit dependencies in ProcessService
- Replace AuthMe in favor of PermissionsManager
- Create missing tests for ProcessService
2016-05-24 18:25:38 +02:00
Gabriele C
da6431b4fc Suppress injection test warnings 2016-05-23 23:16:40 +02:00
ljacqu
30f62547d8 Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 707-process-as-service 2016-05-23 21:41:41 +02:00
ljacqu
53043ddc0d Create tool task that checks Mock fields of test classes 2016-05-21 11:54:54 +02:00
ljacqu
c1885a381b Merge branch 'master' of https://github.com/AuthMe-Team/AuthMeReloaded into 707-process-as-service
Conflicts:
	src/main/java/fr/xephi/authme/process/join/AsynchronousJoin.java
	src/main/java/fr/xephi/authme/process/login/AsynchronousLogin.java
2016-05-20 19:48:41 +02:00
ljacqu
3f039d641a #707 Convert sync processes into services 2016-05-20 19:42:30 +02:00
ljacqu
244e1a2b7d Injector - don't use instantiation fallback if PostConstruct method is present
- Do not instantiate classes with instantiation fallback if they have a PostConstruct method - thanks @sgdc3 for the hint
- Change Injector test to check exception messages also
2016-05-20 17:57:14 +02:00
ljacqu
a355c325c5 #513 Allow to run updateDocs task from command line 2016-05-20 17:15:53 +02:00
Gabriele C
6abad1970c Revert "Cleanup"
This reverts commit 95b65ae20a.
2016-05-20 14:58:41 +02:00
Gabriele C
95b65ae20a Cleanup 2016-05-19 23:06:55 +02:00
ljacqu
9a72fe53b0 Minor - code householding
- Update inaccurate javadoc
- Remove unnecessary require call in PHP integration sample
2016-05-19 21:55:42 +02:00
ljacqu
f014485789 Service injector - implement stricter requirements for PostConstruct methods
- Implement similar restrictions as prescribed by the PostConstruct documentation:
   - Class may have at most one method annotated with PostConstruct
   - PostConstruct method must return void
- Javadoc: replace mentions of injector construction where any injection method was meant
2016-05-19 21:50:48 +02:00
ljacqu
14002ee75c #704 Reload settings of ConsoleLogger on /authme reload 2016-05-19 19:46:02 +02:00
ljacqu
f5c89e897f #707 Convert async processes as services
(work in progress - rough, untested changes)
2016-05-17 19:49:06 +02:00