Commit Graph

440 Commits

Author SHA1 Message Date
BONNe
99c920fe8f Fixes #264
Challenges Menu will be opened only if player is in correct world.
2021-09-19 15:14:28 +03:00
BONNe
670513e37a Update all commands.
Commands now will have an option to change their call values.
2021-09-19 15:02:15 +03:00
BONNe
5da823c7e5 Update Main addon class.
Move vault and level detection after everything is loaded.
Update command names.
2021-09-19 14:21:29 +03:00
BONNe
4826b5fec7 Change settings file.
Add ability to change commands for addon.
Change default mode from player challenges to island challenges.
2021-09-19 14:20:11 +03:00
BONNe
29565538c3 Implements Template reading.
Add template loading via Admin Panel.
Improve LibraryPanel so it could find json and yml files.
2021-09-18 21:37:30 +03:00
BONNe
dae779ea1a Adds panel saving to the /challenges/panels directory. 2021-09-18 13:02:22 +03:00
BONNe
edc6d1a5b6 Fixes ChallengesManager and Completer. 2021-09-18 13:01:35 +03:00
BONNe
c8177adb9e Update Settings file.
Remove unused parts.
2021-09-18 13:01:04 +03:00
BONNe
bfc5cefd69 Update commands.
Commands will now call correct GUI.
2021-09-18 13:00:31 +03:00
BONNe
d1f15aed8b Remove unused adapters.
Updates Challenges and ChallengesLevel objects.
Add TypeMigrationAdapter that will fix issue with renamed challenge type.
2021-09-18 12:58:52 +03:00
BONNe
3ee89af5df Update all admin panels.
Admin panels will not contain better locales codding and easier-to-improve design.

Remove old and unused GUIs.
2021-09-18 12:56:44 +03:00
BONNe
09a30f00db Implement customizable user panels.
Server owners can customize 3 panels:
- main panel
- gamemode selector
- multiple completions

Panel functions will be explained in docs later.
2021-09-18 12:54:17 +03:00
BONNe
3bb0a30657 Rename classes to Selectors.
Split single and multiple item selectors for easier implementation.
Update proper locales.
2021-09-18 12:51:00 +03:00
BONNe
703658eccc Move managers to a separate directory. 2021-08-14 21:43:42 +03:00
BONNe
7c2be91be9 Switch to annotations instead of plugin.yml file. 2021-08-14 21:42:45 +03:00
BONNe
c63087c5af Create Statistic Requirement for Challenges addon.
Statistic requirement is a new type of challenge that is based on Statistic page for clients.
2021-08-14 19:25:04 +03:00
BONNe
9ca674d2b9 Upgrade to BentoBox 1.17 API changes.
Implement Pladdon functionality.
Compile against java 16 and Spigot 1.17
2021-06-23 19:50:58 +03:00
BONNe
227138a689 Fixes a mistaken permission for completing multiple challenges at once. 2021-04-16 20:38:32 +03:00
tastybento
462c27f2df Fix sonar cloud bugs 2021-03-07 11:15:09 -08:00
BONNe
8ad527b462 Update to BentoBox 1.15.4 API 2021-01-02 13:32:59 +02:00
BONNe
2a31fc9f67 Add proper Bukkit API event usage. 2020-12-27 21:12:38 +02:00
BONNe
e1f27c88bd Fixes #265 2020-12-16 10:32:06 +02:00
BONNe
93f07b95ed Fixes #263
Thanks to @sgdc3 who found my mistake with checking if challenges exists when opening GUI.
2020-11-29 00:25:02 +02:00
BONNe
27d10f2d16 Fix a bug with Vault Economy not found in loading process.
If plugin that enables Vault do it after BentoBox, then a lot of addons disabled their economy settings. This should fix it.
2020-10-02 13:47:35 +03:00
BONNe
504c0b410e Add validation methods to challenge and challengeLevel.
Do not load into local cache invalid data. Add error warnings about it.
2020-07-26 12:10:35 +03:00
tastybento
7060799bcc
Rewards lore (#248)
* Ignore failing test because method now doesn't do anything.

* Add spaces after color codes to make gitLocalize more accurate.

* Added a rewards title and made the lore prettier.
2020-07-12 14:43:15 +03:00
BONNe
15655b821d Fixes #222 2020-07-10 00:55:11 +03:00
BONNe
d3094053eb Fixes #239 2020-07-09 23:25:25 +03:00
BONNe
6a79351685 Add 1.15.2 Compaitbility issue with pig_zombie egg. 2020-07-09 23:03:52 +03:00
BONNe
fcb7634079 Downgrade to 0.8.3 version.
Added 1.16 entities to HeadLib.
Update to released BentoBox version.
2020-07-09 22:45:23 +03:00
BONNe
129f692045 Comment out code that removes player from local cache on leaving server.
It is done due #246 reported that relog could be done faster than async saving.
2020-07-08 09:56:55 +03:00
BONNe
ce14c20126 Update to BentoBox 1.14-SNAPSHOT API.
Implement new API features.
Replace deprecated methods.

Add compatibility layer with Minecraft 1.16 version.
2020-07-07 11:58:09 +03:00
BONNe
e85b687e36 Fixes #244
Implement 2 new placeholders.
2020-06-19 11:36:26 +03:00
BONNe
dd8834f1df Fixes #243
Challenges level status for unlocking should look on previous level waiver amount, not on its value.
Also, if second level is marked as locked, then all next levels should also be marked as locked.
2020-06-17 08:32:15 +03:00
BONNe
679fe48871 Fix issue when challenges are not saved in database after importing from web or default file set. 2020-05-26 10:19:32 +03:00
BONNe
da5fab8558 Remove settings saving on addon disabling.
Settings are saved on each Settings GUI building.
2020-05-08 10:20:44 +03:00
BONNe
ffac90f84c Add NULL protection in challenge and level loading.
Remove Challenge and Level saving on server stop, as it is done in GUI after editing. Reduce load on database.
Use saveAsync, as saveObject is deprecated.
2020-05-08 10:20:01 +03:00
BONNe
fdafce0b86 Add bee head in HeadLib 2020-05-08 09:48:07 +03:00
BONNe
e32799a1fb Fix config issues.
Populate challenge lore and level lore with all enum values on initialization, instead of leaving them empty.

Fix wrong message about reset for some config options.
2020-05-08 09:40:13 +03:00
BONNe
ce6aa4ef55 Fixes #231
It should return previous level instead of current one.
2020-05-07 19:27:59 +03:00
BONNe
67971e44e8 Fix placeholder names.
Used naming scheme: [gamemode]_[addon]_[placeholder].
2020-05-07 00:26:12 +03:00
BONNe
d11226d504 Fixes #231
Logic issue.
2020-05-07 00:19:21 +03:00
BONNe
8d5514325c Fix issue when AbandonedListener targeted correct input values.
I did not understand correctly how that listener worked.
2020-04-29 23:15:24 +03:00
BONNe
5a0d63a272 Add option to quit from conversation by writing "cancel" in chat.
Move sanitizeInput to a GuiUtil class.
2020-04-22 01:12:46 +03:00
BONNe
b5ecffb725 Add 2 new placeholders:
- `[gamemode]_challenge_latest_level_name` returns latest unlocked challenge level name
- `[gamemode]_challenge_latest_level_id` returns latest unlocked challenge level id

Fixes #226
2020-04-06 20:14:34 +03:00
BONNe
2958ca8b6c Add 7 new placeholders for Challenges Addon.
- `[gamemode]_challenge_total_completion_count` returns number of sum of challenge completions for user.
- `[gamemode]_challenge_completed_count` returns number of completed challenges (at least once) for user.
- `[gamemode]_challenge_uncompleted_count` returns number of uncompleted challenges for user.
- `[gamemode]_challenge_completed_level_count` returns number of completed levels for user.
- `[gamemode]_challenge_uncompleted_level_count` returns number of uncompleted levels for user.
- `[gamemode]_challenge_unlocked_level_count` returns number of unlocked levels for user.
- `[gamemode]_challenge_locked_level_count` returns number of locked levels for user.

Fixes #224
2020-04-05 21:27:09 +03:00
tastybento
6368585a57
Fixes bug with checking entities in nether and end (#219)
https://github.com/BentoBoxWorld/Challenges/issues/218

Adds test case to check for compliance.
2020-03-09 11:39:59 +02:00
Florian CUNY
db971d81ab Added a uniqueId sanitization when creating challenges/levels
This will help fixing issues with spaces, hyphens and accents in non-English languages.
2020-02-08 22:28:57 +01:00
BONNe
4cae1ed267 Fix LevelListRequestHandler.
This handler did not return list of strings but list of challenge levels, that is incorrect.
Not it should work correctly.
2019-11-13 16:16:59 +02:00
tastybento
4cb4c7e3fb Fixes tests 2019-11-03 14:12:09 -08:00
BONNe
e3e3191e6c Fix a bug with challenge deletion.
If challenge has been left in a level, then system did not remove challenge from it and was kept as ghost challenge, preventing from completing level.
2019-11-03 22:45:24 +02:00
tastybento
9d45f08fb1 Test coverage (#199)
* Test coverage for Challenges Command

* Added CompleteChallengeCommand test class

* Added Utils test class

* Added ChallengesGUI test class

* Fix code smells from sonarcloud analysis

* Added .gitignore

* Added Travis CI config file

* WIP ChallengesManager Test class

* Added ChallengesManager test class

* Removed debug

* Removed code smells.

* Added ChallengesAddon test class.

* Added onDisbale test

* Added new TryToComplete test class - WIP

Covers inventory challenges.

* Added Island Challenge entity tests to TryToComplete test class
2019-10-30 08:44:26 +02:00
tastybento
2aa437f071 English update (#193)
* Organized imports

* Minor code cleanup

* Updated English locale file.
2019-10-10 08:35:25 +03:00
BONNe
0c47f811dc Fix issue when users could not select non-block items as icons for challenges and levels. (#190) 2019-09-28 20:09:21 +03:00
BONNe
c74fa42770 Change challenges addon status to incompatible, if it tries to run with YAML 2019-09-09 01:02:34 +03:00
BONNe
902a1993a2 Add UTF-8 CharSet for file writer to avoid issues with incorrect char saving. 2019-09-08 20:33:19 +03:00
BONNe
449890def5 Drop Depricated 1.13 SIGN object.
Update to 1.7 BentoBox.
2019-09-08 20:15:30 +03:00
BONNe
4e6d37cd90 Rework Challenge Object Data storing.
Requires MIGRATION if upgrade from older version.
2019-09-08 20:03:46 +03:00
BONNe
09036a28f0 Fix typos. 2019-09-06 18:45:55 +03:00
BONNe
3501db7002 Work on fixing some crashes related to incorrect data.
Optimize some lambda functions.
Add method that validates challenge's levels. If level does not exits in database, then challenge's level is set to FREE.
Fix crash with migration: Free challenges level does not require migration.

This relates to issue #181
2019-09-06 00:14:06 +03:00
BONNe
643c5e8f7c Add an option to hide undeployed challenges from challenge list (#175)
Added new config option "gui-settings.undeployed-view-mode" with 3 values
- 'VISIBLE' - all challenges are visible
- 'HIDDEN' - only deployed challenges are visible
- 'TOGGLEABLE' - users will be able to choose option for themself (not implemented)

Implement functionality in ChallengesGUI, where if option hidden is set, then all undeployed challenges are removed.
Implement ability to edit this option via admin Settings panel.
2019-09-05 15:52:14 +03:00
BONNe
e5ec5d5825 Apply new Utils methods in EditChallengesGUI 2019-09-05 13:24:03 +03:00
BONNe
e900f1e665 Add generic methods that allows to get next or previous elements in given array. 2019-09-05 13:23:19 +03:00
BONNe
28d61870a7 Fix issue when complete wipe did not work, even when selected. 2019-09-05 13:10:02 +03:00
BONNe
a5022bea7a Improve Wipe Button behaviour.
Add 2 new buttons:
- User wipe - deletes all challenges addon player data.
- challenges wipe - deletes only challenges and levels.

By clicking on challenges wipe with right click, it will switch to compelte wipe, and via versa.
2019-09-05 12:19:05 +03:00
BONNe1704
ecbb8ef1f2 Merge branch 'develop' of https://github.com/BentoBoxWorld/addon-challenges into develop 2019-09-05 12:01:41 +03:00
BONNe
ae614a13d4 Merge remote-tracking branch 'origin/develop' into develop 2019-09-05 09:37:05 +03:00
BONNe
5f1ea920f5 Add download button in Challenges Libraries panel.
Disable access to Library panel if github api is disabled.
2019-09-05 09:36:53 +03:00
NotMyFault
68e09d6946 Fix typos and make challenge descriptions looking a bit nicer (#177) 2019-09-04 18:21:39 +03:00
BONNe
fd4a19bcb1 Add 1.14 mob types to HeadLib. 2019-09-04 09:49:58 +03:00
BONNe
40e34e7999 Add better challenge sorting in AdminGUI's
Now challenges will be sorted by their level order number, their order number, their unique id. All free challenges will always be at the start.
2019-09-04 09:30:11 +03:00
BONNe
e854bbd294 Fix issue when Lore GUI buttons were not colored and splitted. 2019-09-03 11:14:26 +03:00
BONNe
c7fe138d78 Add GUI for editing Challenge and Challenge Level lore messages.
Rework Lore message construction.
2019-09-03 09:03:21 +03:00
BONNe
747c12f1a6 Remove all references to GitHubWebAPI4Java and use lambda instead. 2019-09-02 19:24:30 +03:00
BONNe1704
f611727d4e Implement WebManager that will download Challenges Libraries from GitHub.
Implement GUI for selecting and downloading Challenges Libraries.
2019-09-02 17:56:24 +03:00
BONNe
29a77147b5 Fix issue when each save added unnecessary "|" at the end of rewards and unlock message. (#123)
Algorithm that I used to join output list into single string, always added "|" at the end. Last "|" should be removed.
2019-09-02 13:20:59 +03:00
BONNe
707625a9da Fix the issue with incorrect unlock status. (#169)
The issue was that it never decrease challengesToDo with completed challenges from previous level, so only first level was unlocked. My mistake.
2019-09-02 09:05:18 +03:00
BONNe
0026cb7404 Separate all enums from Settings class into SettingsUtils. 2019-09-01 15:17:34 +03:00
BuildTools
235da81ba0 Move Settings class to separate package. 2019-09-01 15:10:05 +03:00
BONNe1704
fe3a18c459 Fix copy-paste issue that prevent from completing ISLAND type challenges. 2019-08-30 17:15:36 +03:00
BuildTools
f4f18c85f3 Merge remote-tracking branch 'origin/develop' into develop 2019-08-29 00:07:20 +03:00
BONNe
592a4c7310 Fix server crash when COOP player tried to complete ISLAND type challenge (#174).
The issue was that I used wrong command to check island owner. It is fixed.
Also added 2 protective code, that prevents from trying to select large areas for block searching.
2019-08-29 00:07:08 +03:00
BONNe1704
6d8b1cb761 Fix some issues in default challenges.
- remove parallel stream reading, as it may not load all challenges/levels.
- fix chef challenge not detected by level.
- fix some typos.
2019-08-28 17:21:39 +03:00
BONNe1704
8e0448eac7 Reintroduce Multiple Completions
Add [gamemode].complete.multiple permission that will allow/prevent to complete challenge multiple times at once.
Introduce new MultipleGUI that opens GUI with 5 buttons that allows to choose how many times challenge should be completed.
2019-08-28 16:55:18 +03:00
BONNe
9d7a5db290 Fix issue when multiple completions were not saved correctly. 2019-08-28 11:50:16 +03:00
BuildTools
12dd740959 Merge remote-tracking branch 'origin/develop' into develop 2019-08-26 09:09:10 +03:00
BuildTools
ac79fa5d56 Completely drop ability to import ASkyBlock challenges.
This option was not working properly and were used wrongly. To avoid that, importing challenges and player data will be handled by converter.
2019-08-26 09:08:56 +03:00
NotMyFault
36255d07a2 Fixing various typos (#172) 2019-08-26 07:55:22 +03:00
BuildTools
7fce1a1fd4 Fix compilation error. 2019-08-25 23:09:44 +03:00
BuildTools
c516d53907 Update to v1.6.0 version.
Remove AnvilGUI, as it is broken. Replaced with Spigot Conversation API.
Remove lore-config from GUI (broken).
Remove RIGHT_CLICK to complete multiple times (broken).
2019-08-25 22:43:15 +03:00
BuildTools
b6e2133782 Fix issue with non-migrated levels.
#168
2019-08-25 00:07:44 +03:00
BuildTools
15f4c8abd4 Fix error in Challenge Level description.
Copy-paste error, instead of experience, it returned waiver-amount.
Reported in discord.
2019-08-19 00:37:26 +03:00
BuildTools
54f91180d6 Fix issue in importing challenges from ASkyBlock when importing crashes with null-pointer.
Null-pointer happened because there were mistake in level unique_id getting. It was leftover from old unique_id scheme...
2019-08-14 22:00:11 +03:00
BuildTools
6f357b3197 Update code to new API.
Replace PremadeEvent with BentoBoxEvent.
2019-08-13 22:49:37 +03:00
BONNe
dea71358ae
Update Utils.java
Avoid null-pointer issue if given item-list contains null elements.
The issue is still that list contains these elements.
2019-08-11 18:12:56 +03:00
tastybento
a50d00b2e7 Fixes JavaDoc warnings. (#164)
@inheritDoc cannot be used on Constructors.

Fixed some other warnings.
2019-08-05 13:00:03 +03:00
BONNe1704
76fb30be36 Add ability to migrate challenges from 0.5.0 - 0.7.5 data storage mode to new 0.8.0 format.
Part of implementing #105
2019-08-02 12:22:52 +03:00
BONNe1704
3985efa4d0 Fix issue when uniqueID changes did not work for imported challenges. 2019-08-01 15:06:06 +03:00
BONNe1704
e9f9b1b8d5 Rework how challenges are stored.
This is old change that was declined (#105), but unfortunately it is necessary.
If every ID is based on world names, than addon cannot process "/" in it. It mean that worlds cannot be put into different folders.
This change will fix it, but it is not completed.

In progress.
There does not exist converter, so old data is not usable with this version.
2019-08-01 13:19:15 +03:00
tastybento
9800da5973 Fixed permissions check to remove dot 2019-07-31 23:21:52 -07:00