* 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
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.
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.
* Rework TryToComplete.
Implement ability to complete challenge multiple times at once.
To do it, I split everything in checking/removing/rewarding steps.
In checking step, it calculates if it is possible to complete with minimal requirements and then calculates maximal repeating factor.
In removing step, it removes everything that is necessary.
In rewarding step, it give rewards by necessary factor (multilayer).
I rework item/block/entity removing as factors may be influenced at the last element, so I improve everything by memory usage. Create necessary sets/lists/queues for faster access to already collected items.
* Add method that returns removed items, if somehow algorithm did not manage to remove all items.
Fix issue when removeItems method did not merge ItemStacks as they had different item amount.
Return and fix TryToCompleteTest.
* Implement Multiple Challenge Completion command and GUI. (#73)
/[gamemode] challenges complete [number] allows to complete challenges [number] amount (or less if not enough items)
Via GUI users can right click on challenge and if it is repeatable, then it will open AnvilGUI that accepts only numbers as input.
Now it will call also manager.reload() that clears cache and resets database links.
Improve ReloadCommand. Now it will be able to reload both ways (soft way that clears only cache, and hard way that reassigns database connection) with reload command.
Add ability to enable Single GUI in config.
Add configurable admin and player method (in config) that will open GUI with GameModes.
Add ability to define default player GameMode GUI.
Add new commands that will process config options.
- Add new variable "history" in ChallengesPlayerData.
- Add new methods in ChallengesManager that populates LogEntry and adds it to history variable.
- Add ability to enable/disable history storing in config (default: disabled).
- Fix issue when resetAllChallenges resets only caller challenges.
Rework methods that access to ChallengesPlayerData object. Methods that access to this object will be private and use UUID and String where possible.
Add public methods that could use previously mentioned methods to access ChallengesPlayerData object.
Implement these methods in all places.
Add ability to enable/disable island storage in config (no-gui for now).
Disable challenge GUI opening, if user does not have island.
Implement all methods that were only placeholders.
Remove all unnecessary old methods.
Implement new methods in all classes.
User and Admin command now opens new GUI.