Skip to content

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

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)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestprotocolRelative to basalt-protocol crate

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions