* 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
* Changed Rule: `updateSuppressionBlock` to match new update suppression
* Make it easier to use
* Carpets mixin file will be the death of me
* Renamed `WorldInterface` to `LevelInterface`
Merged LevelAccessor with LevelInterface
* Fix issues with 22w14a & resolve issues
* Add `@Unique` to Level_tickMixin.java
* Naming, brackets, and description
* Return null on invalid
* Fix remaining refactoring issues
* Make fake players compatible with adventure platform and minor refactor around them
Cleaner approach
* Remove no longer needed enderpearl mixin for fake players
Their ClientConnection now has an open channel so isOpen returns true
* Added screen handler value
* Added screen handler constructor and function to show to player
* Made inventory_* functions work with screen handlers
* Event callbacks and some refactoring
* Exception if screen has no inventory
* Fixed NPE
* Close screen when null
* Added screen_property
* UNKNOWN_SCREEN throwable
* Fix error when not specifying click callback
* Access to non-container screen handler slots via the inventory_* functions
* Change lectern page
* Added button event
* Added 'close' event and refactoring callback
* Beacon and Brewing screens
* Cartography table screen
* Crafting screen
* Enchantment screen
* Grindstone
* Loom
* Merchant
* Shulkerbox
* Smithing table
* Stonecutter
* Use strings as screen type instead of ScreenHandlerType
* Remove support for multiple players
* Combining create_screen and open_screen and refactoring
* Allow modifying cursor stack
* Cleanup
* Docs
* Added multiple screen examples
* Rename to screen
* Added smoker and blast furnace
* Serialize screen content
* Store host name instead of context
* Add button value special cases to docs
* Spelling and grammar fixes by @James103
* Optimize screen inventory access
* Use -1 for slot click outside the screen
* As boolean, ScreenValue equals isOpen
* Revert "Use -1 for slot click outside the screen"
This reverts commit 68c113e71bb653191cedf4cc356ab7705838dc25.
* Rework of callback function
* Improve screen functionality with drop_item
* Editor keywords
* Only check syncId
* slot_update event callback
* Screem typo
* Mistake
* toTag returns "null" NBT for closed screen
* Use null for slot index of -999
Co-authored-by: replaceitem <replaceitem.mc@gmail.com>
* - Fix xpNoCooldown to work as it did in 1.17-
- Remove XPcombine
- Use vanilla merge methods
* Remove debug code
* fix: rollback sort carpet.mixins.json
* rework: nerf xp cooldown absorption a little
* remove: combineXpOrbs
fix: xpCooldown
* revert renames
* fix newlines
* fix: wrong implementation for absorption
* add missing `private` keyword
* fix: player xp cooldown set wrongly
* fix: injection point to be within condition
* Remove no longer needed language packet mixin
* Make StringArgument properly return a StringArgument supplier, so `string` isn't `term`
Fixesgnembon/fabric-carpet#1044
* Complete removal of `/info entity` and it's correspondent carpet
Resolvesgnembon/fabric-carpet#1033
* Remove yet another no longer needed mixin