We only need to use recipe tags when there is more than one possible ingredient option. For example, before this, we applied a logs item tag to the planks recipe, which caused an issue with plank type suggestions. (#4321)
* Clear mob spawners if the Java server so requests
* Empty spawners by replacing the spawner block with a new one instead of adding an invalid identifier to them.
Unfortunately, sending one UpdateBlockPacket that replaces the spawner does not work, we need to set the spawner to air first. Cool. But at least we don't summon particles for all empty spawners now
* store position vector (address review by @konicai)
* remove empty line
* Ensure that a custom text display entity name doesn't show up - it doesn't show on Java, and if we show it, the text display contents aren't shown.
* Update core/src/main/java/org/geysermc/geyser/entity/type/TextDisplayEntity.java
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
---------
Co-authored-by: Konicai <71294714+Konicai@users.noreply.github.com>
* Start on 1.20.50
* Add 1.20.50 block_palette.1_20_50.nbt, creative_items.1_20_50.json and runtime_item_states.1_20_50.json
* fix stone and planks mappings
* add and do something with the new SetPlayerInventoryOptionsPacket
* Add readme version bump
* Cleanup/Explain the new BedrockSetPlayerInventoryOptionsTranslator
* Start on 1.20.10+ recipe unlocking system
* Keeping track of multiple Bedrock recipes to unlock for a single Java recipe
* Unlock stonecutter recipes
* Stonecutter recipes
* Unlock tipped arrows/shulker box recipes even when Java doesnt (why..?), and dont send trims if Java doesn't
* Translate FurnaceDataRecipes
* Revert FurnaceRecipe translation, revert stone cutter recipe identifier caching - Bedrock does not need the smelting recipe, and doesn't (un)lock stonecutter recipes (yet...?)
* Remove debug message
* Make decorated pot crafting just a little bit smoother :p
* formatting
* Use itemTag descriptors to fix https://github.com/GeyserMC/Geyser/issues/3784
* Use hashmap instead to store item tag overrides
* remove unnecessary comment
* Address review by @Konicai
* Support for 1.20.30
* undo add whitespace
* Merge upstream, use FastUtil maps, rename a few methods
* Address Camotoy's review
* Fix formatting
* 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
* 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