Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App
Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Registed

Registed

A library that brings you annotated registries!

369
3
Library
Utility
AboutChangelogVersions

Registed

Implementation

First, implement Registed through gradle:

Using Groovy
build.gradle
repositories {
	maven { url "https://api.modrinth.com/maven" }
}

dependencies {
	modApi "maven.modrinth:registed:$project.registed_version"
}
gradle.properties
registed_version=?

Replace ? with the latest tag name of Registed.

Using Kotlin
build.gradle.kts
repositories {
	maven("https://api.modrinth.com/maven")
}

dependencies {
	modApi("maven.modrinth:registed:${property("registedVersion")}")
}
gradle.properties
registedVersion=?

Replace ? with the latest tag name of Registed.

Next, reference Registed into your fabric.mod.json as a dependency:

fabric.mod.json
{
  // Other contents

  "depends": {
    "registed": "*"
  },

  // Other contents
}

Registed should not be nested in your project. You should always treat Registed as a standalone mod.

Usage

To register an object, do:

full.path.to.ClassName.java
@RegistryId("modid")
public class ClassName {
	@ho.artisan.registed.annotation.registries.Item
	public static final Item ITEM = ...;
}

You must annotate your registration class with @RegistryID^@RegistryID_classpath to tell Registed which namespace to use.

After that, remember to reference this class in your fabric.mod.json:

fabric.mod.json
{
  // Other contents

  "entrypoints": {
    "registed": [
      "full.path.to.ClassName"
    ]
  },

  // Other contents
}

Registed supports all Registry<?> types inside class Registries^Registries_classpath. You should convert the target registry type name from UPPER_SNAKE_CASE to CamelCase to find the desired annotation, for example, Registries.LOOT_NBT_PROVIDER_TYPE has a representing annotation @LootNBTProviderType.

All available annotations for registered objects are under package ho.artisan.registed.annotation.registries.

These annotations can only be applied on fields, and you should always make sure your registered objects are static and final fields.

By default, the registered objects will use their field names in snake_case as their in-game identifier paths, for example, field MY_EXAMPLE_ITEM will have the identifier path of my_example_item. We suggest using UPPER_SNAKE_CASE to name your fields, as they should be static and final and only in snake cases will Registed preserve the underscores.

To customize a registered object's in-game identifier path, you can apply annotation @RegistryID^@RegistryID_classpath to the target field:

@RegistryID("my_item")
@ho.artisan.registed.annotation.registries.Item
public static final Item ITEM = ...;

The identifier path provided by @RegistryID[@^RegistryID_classpath] will be consumed as raw without any further processing.

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Compatibility

Minecraft: Java Edition

1.20–1.20.2

Platforms

Fabric
Quilt

Supported environments

Singleplayer

Links

Report issues View source

Creators

KrLite
KrLite Owner

Details

Licensed GPL-3.0-only
Published last year
Updated last year

Modrinth is open source.

new-project-page@ac78952

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.