Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/registry classes #6695

Open
wants to merge 13 commits into
base: dev/feature
Choose a base branch
from

Conversation

ShaneBeee
Copy link
Contributor

@ShaneBeee ShaneBeee commented May 14, 2024

Description

This PR aims to create a new set of classes based around the Bukkit Registry class.
The registry classes are based around EnumUtils, EnumClassInfo and EnumSerializer

Bukkit plans on using more registry things in the future.
As of right now the biome registry doesn't support custom biomes, but I believe the plan is to make that happen with 1.21
This allows Skript to get on board with registries and support stuff before we're forced to.

I believe Bukkit is also planning to drop enums for registry based classes, ie: Biomes, and switching to actual classes with static fields.
Another reason to prepare for the future.

Building off the same base of my Enchantments PR, a few things to note:

  • As with an enum, this registers names/patterns using lang file nodes
  • If a lang file entry is missing (either wasn't added yet, or custom) the follow will be added:
    • if a minecraft value = the key of the object without underscores (ex: windswept hills) will be used as name
    • if a custom value = the full namespaced key will be used (ex: my_thing:hot_spicy_biome) will be used as name
  • A full namespaced key for Minecraft/Custom objects will be added as a pattern
  • Minecraft objects will have their key without spaces added as a pattern

I put this as a draft as I'm looking for feedback.
A lot was taken from the Enum classes for inspiration, but open to improvement.

I included registrant the Biome class info using this new method, to test/showcase how it works.


Target Minecraft Versions: any
Requirements: none
Related Issues: none

Copy link
Member

@APickledWalrus APickledWalrus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

very nice, just a few thoughts

@ShaneBeee ShaneBeee marked this pull request as ready for review May 20, 2024 20:34
Copy link
Member

@APickledWalrus APickledWalrus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking really good. almost there 😎

ShaneBeee and others added 4 commits May 25, 2024 11:33
…er.java

Co-authored-by: Patrick Miller <apickledwalrus@gmail.com>
…o.java

Co-authored-by: Patrick Miller <apickledwalrus@gmail.com>
…o.java

Co-authored-by: Patrick Miller <apickledwalrus@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Pull request adding a new feature.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants