* Start on custom molang tags with custom items
* geyser_custom instead of geyser item tag
* Address reviews, add custom namespace ("geyser_custom") to tags
* use isBlank() instead of isEmpty()
* More efficient item tag setting
Co-authored-by: Konicai <71294714+konicai@users.noreply.github.com>
* tags instead of temp
* Merge in master, adapt to changes in the MappingsReader, delete unused ToolBreakSpeedsUtils class
* oops
* clean diff
* Change namespace from `geyser_custom` to just `geyser`
* Don't force a namespace at all; just like blocks don't
* Tags for items are now, as blocks, NonNull. Additionally, calling the .tags() builder multiple times will not add both sets of tags, but replace the existing tag set
* Remove @NotNull usage in favor of @NonNull
* Allow setting null for tags, but ensure that .tags() is always non-null
* Fix nullable annotation on tags method in the builder interface
* This ensures bossbars are cleared on server switch. Additionally, this clears the EntityCache - which should resolve issues around air supply/hearts persisting visually.
* - Also reset attributes on server switch, aswell as air
Instead:
- add UrlPackCodec & GeyserUrlPackCodec
- try and provide the resource pack via a stream from the url - either because the client does not support packs via the url, or because it failed to get the packs
* Tell the server we loaded the resource pack
* Decline resource packs if they are not required
---------
Co-authored-by: onebeastchris <github@onechris.mozmail.com>
- the extensionmanagers `extension` method now takes in a extension id instead of name
- extension folders are now created using extension id's
- Extensions can load classes from other extensions now
- Added warning about external class loading
- Wherever applicable: store extensions internally by id instead of name
* Initial pass for 1.20.2, compiling
* Remove unused level events
* handle null GameProfile in ClientboundPlayerInfoUpdatePacket
* Handle level events BRUSH_BLOCK_COMPLETE and EGG_CRACK
* Account for null tag in DecoratedPotBlockEntityTranslator
* Explicitly show that 1.20.31 is supported
* Set BlockMapping.AIR, id is always 0, but this also ensures that the palette always has air
* Rename BlockMapping.AIR to DEFAULT, as it does not have to represent AIR, and statically set it
* init: spectator mode support
* properly set second abilitylayer for spectator mode
* Fixes https://github.com/GeyserMC/Geyser/issues/3318 by not sending changed flags in spectator mode