First, implement Registed through gradle:
Using Groovy
repositories {
maven { url "https://api.modrinth.com/maven" }
}
dependencies {
modApi "maven.modrinth:registed:$project.registed_version"
}
registed_version=?
[!NOTE] Replace
?
with the latesttag name
of Registed.
Using Kotlin
repositories {
maven("https://api.modrinth.com/maven")
}
dependencies {
modApi("maven.modrinth:registed:${property("registedVersion")}")
}
registedVersion=?
[!NOTE] Replace
?
with the latesttag name
of Registed.
Next, reference Registed into your fabric.mod.json
as a dependency:
{
// Other contents
"depends": {
"registed": "*"
},
// Other contents
}
Important
Registed should not be nested in your project. You should always treat Registed as a standalone mod.
To register an object, do:
@RegistryId("modid")
public class ClassName {
@ho.artisan.registed.annotation.registries.Item
public static final Item ITEM = ...;
}
You must annotate your registration class with @RegistryID ↗
1 to tell Registed which namespace to use.
After that, remember to reference this class in your fabric.mod.json
:
{
// Other contents
"entrypoints": {
"registed": [
"full.path.to.ClassName"
]
},
// Other contents
}
Registed supports all Registry<?>
2 types inside class Registries
3. 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
.
Note
All available annotations for registered objects are under package ho.artisan.registed.annotation.registries
.
Important
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 ↗
1 to the target field:
@RegistryID("my_item")
@ho.artisan.registed.annotation.registries.Item
public static final Item ITEM = ...;
Note
The identifier path provided by @RegistryID ↗@@rightup
[@^RegistryID_classpath] will be consumed as raw without any further processing.
Note
Examples can be found at ExampleRegistrations ↗
.
Registed is licensed under the GNU General Public License v3.