Skip to content

feat(protocol/registry): add banner_pattern, enchantment, jukebox_song, instrument registries #63

@iverly

Description

@iverly

Context

The server is missing several optional Configuration registries. While not strictly required for basic gameplay, they cause missing functionality and potential warnings.

Problem

  1. banner_pattern: banners can't display patterns
  2. enchantment: enchantment names can't display in tooltips. Complex NBT format with supported_items as a tag set, slots array, cost formulas, and effect definitions.
  3. jukebox_song: music disc names missing
  4. instrument: goat horn sounds undefined

Proposed approach

Add each registry with entries matching the vanilla data generator output. The enchantment registry is the most complex — it may require a data-driven approach (loading from JSON) rather than hardcoding, as there are 40+ enchantments with hundreds of fields each.

Scope

  • crates/basalt-protocol/src/registry_data.rs

Benefits

Full registry compatibility with vanilla, no client warnings.

Non-goals

  • Custom enchantments or instruments for plugins
  • Complete vanilla parity (minimum viable entries first)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestprotocolRelative to basalt-protocol crate

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions