* Settings rework and encapsulation
* Settings overhaul 3
Move everything in the new system to a new API package
Require rules using the new system to specify descriptions in their translation files
Implement temporary system on top of current translations to allow that to work properly
* Fix getRules fallback
* Final touches to settings refactor
* Mention that set shouldn't throw and remove comment
* Change translation keys to unify with translation PR
* Deprecate printAllRulesToLog to allow using any PrintStream
* Remove restriction of CarpetRules being Comparable
And fix overreaction in a deprecation message
* Bring back user input to rule observers
* Make Validator deprecation warning not spam on use
* Remove unneeded abstract methods in CarpetRule already inherited from CarpetRule
They literally do nothing, don't even force them to be implemented, and may be confusing as to why they're there or as if they are needed to be implemented
* Fix legacy SettingsManager field not being assigned correctly
* Finish fixing conflicts from future merge
* Actually fix remaining conflicts from future merge (missing imports)
* Import the newer rule in SettingsManager
* Refactor Validators
* Don't spam deprecation warnings on custom managers
* Get out the var
* Fix missing warning in old rule observers
* Update src/main/java/carpet/api/settings/Rule.java
* Remove `@ApiStatus.Experimental` annotations
* Fix incorrect `@deprecated` javadoc tags
By removing them given the class is deprecated anyway and else there's too much noise
* Add missing static import
* Remove TypedField and use a regular field
I liked that class tbh, but it's true that it wasn't really needed
* Move `field` assignment out of for removal
* Fix not following contract of `type()` returning boxed value
Previously handled by TypedField
* Fix few incorrect translation keys
* Remove resaving of comments when saving config files
Comments ignoring is still a thing when reading, so `locked` configs for example will keep comments
* Condense rule load messages in one
* Only print loaded settings message when at least one setting was changed
* Fix legacy validator detector
* Tweak and add more context to response to invalid values
* Fix strict validator not actually erroring on invalid input
* Better search through rules
Changed carpets search from startsWith to Contains.
It's been annoying me for a long time now, the fact that you never remember the command name, but you remember something that was in it.
* Checking camelCase for contains
* Add javadocs to many methods
* Added built-in ways to generate BundledModules and documented them
* Add Eclipse launch files to .gitignore and fix 11 warnings
* Remove many unused imports
* Remove some dead and unused code around app loading
* Allow extensions to have client-side rules in their SettingsManager
Also change tabs to spaces when those changed
* Remove unnecessary classloader param in BundledModule
* Change max tickwarp duration to Integer.MAX_VALUE
* Move RulePrinter into the source so it can be managed by the IDE
* Properly reset hopperCounters when changing worlds
Also change tabs to spaces again and minor tweaks to javadocs
* Run mergedocs even if Full.md was modified
* Update src/main/java/carpet/commands/TickCommand.java
Co-authored-by: gnembon <41132274+gnembon@users.noreply.github.com>
- logger is carpet, fixes#522
- fixed fancy commands to functions - so could be used later with lambdas and functions that use different argument names
- moved a few builtin apps to commands via /carpet
* Added language supports for carpet settings
use /set-carpet-language to set your language.
* Added zh_cn.json - in progress
Not accomplished yet, only translations for testing the language support.
* Create model_for_new_language.jsons.txt
* Rename model_for_new_language.jsons.txt to model_for_new_language.json
* Update model_for_new_language.json
* Update model_for_new_language.json
* Update and rename model_for_new_language.json to en_us.json
* Added setting CarpetLanguage
* Delete SetLanguageCommand.java
* Add files via upload
* Update SettingsManager.java
* Add files via upload
* Update LanguageUtils.java
* Update SettingsManager.java