diff --git a/build.gradle b/build.gradle index 2214ae16c..b19e8d784 100644 --- a/build.gradle +++ b/build.gradle @@ -400,6 +400,11 @@ def setUpModule(project) { } else if (project.hasProperty('entrypoint_server_init')) { entrypoint 'server-init', project.entrypoint_server_init } + if (library.hasProperty('entrypoint_registry_init')) { + entrypoint 'registry-init', library.entrypoint_registry_init + } else if (project.hasProperty('entrypoint_registry_init')) { + entrypoint 'registry-init', project.entrypoint_registry_init + } if (ctfile.exists()) { accessWidener = ctfile.getName() diff --git a/libraries/biomes/biomes-mc1.8.2-pre5-mc15w51b/src/main/resources/fabric.mod.json b/libraries/biomes/biomes-mc1.8.2-pre5-mc15w51b/src/main/resources/fabric.mod.json index 1f0a826bb..b51c04cda 100644 --- a/libraries/biomes/biomes-mc1.8.2-pre5-mc15w51b/src/main/resources/fabric.mod.json +++ b/libraries/biomes/biomes-mc1.8.2-pre5-mc15w51b/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc1.8.2-pre5-mc15w51b", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init" ] }, diff --git a/libraries/biomes/biomes-mc13w36a-mc1.8.2-pre4/src/main/resources/fabric.mod.json b/libraries/biomes/biomes-mc13w36a-mc1.8.2-pre4/src/main/resources/fabric.mod.json index 44331903c..036c27b09 100644 --- a/libraries/biomes/biomes-mc13w36a-mc1.8.2-pre4/src/main/resources/fabric.mod.json +++ b/libraries/biomes/biomes-mc13w36a-mc1.8.2-pre4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc13w36a-mc1.8.2-pre4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init" ] }, diff --git a/libraries/biomes/biomes-mc16w02a-mc18w05a/src/main/resources/fabric.mod.json b/libraries/biomes/biomes-mc16w02a-mc18w05a/src/main/resources/fabric.mod.json index 92d6cecbc..32069dc5f 100644 --- a/libraries/biomes/biomes-mc16w02a-mc18w05a/src/main/resources/fabric.mod.json +++ b/libraries/biomes/biomes-mc16w02a-mc18w05a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc16w02a-mc18w05a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init" ] }, diff --git a/libraries/biomes/biomes-mc18w06a-mc18w31a/src/main/resources/fabric.mod.json b/libraries/biomes/biomes-mc18w06a-mc18w31a/src/main/resources/fabric.mod.json index 4b4793e03..b01562d76 100644 --- a/libraries/biomes/biomes-mc18w06a-mc18w31a/src/main/resources/fabric.mod.json +++ b/libraries/biomes/biomes-mc18w06a-mc18w31a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc18w06a-mc18w31a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init" ] }, diff --git a/libraries/biomes/biomes-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json b/libraries/biomes/biomes-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json index 211801104..2612aa1c7 100644 --- a/libraries/biomes/biomes-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json +++ b/libraries/biomes/biomes-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc18w43a-mc1.14.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init" ] }, diff --git a/libraries/biomes/biomes-mcb1.8-pre1-mc1.6.4/src/main/resources/fabric.mod.json b/libraries/biomes/biomes-mcb1.8-pre1-mc1.6.4/src/main/resources/fabric.mod.json index 353370d8b..afcd25e9c 100644 --- a/libraries/biomes/biomes-mcb1.8-pre1-mc1.6.4/src/main/resources/fabric.mod.json +++ b/libraries/biomes/biomes-mcb1.8-pre1-mc1.6.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mcb1.8-pre1-mc1.6.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init" ] }, diff --git a/libraries/biomes/gradle.properties b/libraries/biomes/gradle.properties index 2fe4c94af..6ec184c84 100644 --- a/libraries/biomes/gradle.properties +++ b/libraries/biomes/gradle.properties @@ -3,5 +3,5 @@ library_name = Biomes library_description = Biomes API and events. library_version = 0.1.0 -entrypoint_init = net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init +entrypoint_registry_init = net.ornithemc.osl.biomes.impl.BiomeRegistryImpl::init osl_dependencies = core:0.9.0,entrypoints:0.5.0,registries:0.1.0,localization:0.1.2 diff --git a/libraries/blockentities/blockentities-mc1.13-pre5-mc18w31a/src/main/resources/fabric.mod.json b/libraries/blockentities/blockentities-mc1.13-pre5-mc18w31a/src/main/resources/fabric.mod.json index 952920f1a..3297e8aef 100644 --- a/libraries/blockentities/blockentities-mc1.13-pre5-mc18w31a/src/main/resources/fabric.mod.json +++ b/libraries/blockentities/blockentities-mc1.13-pre5-mc18w31a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc1.13-pre5-mc18w31a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blockentities.impl.BlockEntityTypeRegistryImpl::init" ] }, diff --git a/libraries/blockentities/blockentities-mc1.14.1-pre1-mc1.14.4/src/main/resources/fabric.mod.json b/libraries/blockentities/blockentities-mc1.14.1-pre1-mc1.14.4/src/main/resources/fabric.mod.json index 589b2015d..ac22ab42b 100644 --- a/libraries/blockentities/blockentities-mc1.14.1-pre1-mc1.14.4/src/main/resources/fabric.mod.json +++ b/libraries/blockentities/blockentities-mc1.14.1-pre1-mc1.14.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc1.14.1-pre1-mc1.14.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blockentities.impl.BlockEntityTypeRegistryImpl::init" ] }, diff --git a/libraries/blockentities/blockentities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json b/libraries/blockentities/blockentities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json index b21a1ab64..2233add91 100644 --- a/libraries/blockentities/blockentities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json +++ b/libraries/blockentities/blockentities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc16w32a-mc18w01a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blockentities.impl.BlockEntityTypeRegistryImpl::init" ] }, diff --git a/libraries/blockentities/blockentities-mc18w32a-mc1.14/src/main/resources/fabric.mod.json b/libraries/blockentities/blockentities-mc18w32a-mc1.14/src/main/resources/fabric.mod.json index 27e542b00..971eaa782 100644 --- a/libraries/blockentities/blockentities-mc18w32a-mc1.14/src/main/resources/fabric.mod.json +++ b/libraries/blockentities/blockentities-mc18w32a-mc1.14/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mc18w32a-mc1.14", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blockentities.impl.BlockEntityTypeRegistryImpl::init" ] }, diff --git a/libraries/blockentities/blockentities-mca1.0.1_01-mc1.10.2/src/main/resources/fabric.mod.json b/libraries/blockentities/blockentities-mca1.0.1_01-mc1.10.2/src/main/resources/fabric.mod.json index 06d593e67..a26024fea 100644 --- a/libraries/blockentities/blockentities-mca1.0.1_01-mc1.10.2/src/main/resources/fabric.mod.json +++ b/libraries/blockentities/blockentities-mca1.0.1_01-mc1.10.2/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.0+mca1.0.1_01-mc1.10.2", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blockentities.impl.BlockEntityTypeRegistryImpl::init" ] }, diff --git a/libraries/blockentities/gradle.properties b/libraries/blockentities/gradle.properties index f13c344b6..9e9a1bbe7 100644 --- a/libraries/blockentities/gradle.properties +++ b/libraries/blockentities/gradle.properties @@ -3,5 +3,5 @@ library_name = Block Entities library_description = Block Entities API and events. library_version = 0.1.0 -entrypoint_init = net.ornithemc.osl.blockentities.impl.BlockEntityTypeRegistryImpl::init +entrypoint_registry_init = net.ornithemc.osl.blockentities.impl.BlockEntityTypeRegistryImpl::init osl_dependencies = core:0.9.0,entrypoints:0.5.0,registries:0.2.0 diff --git a/libraries/blocks/blocks-mc13w36a-mc14w26c/src/main/resources/fabric.mod.json b/libraries/blocks/blocks-mc13w36a-mc14w26c/src/main/resources/fabric.mod.json index cbcec70bb..44827244c 100644 --- a/libraries/blocks/blocks-mc13w36a-mc14w26c/src/main/resources/fabric.mod.json +++ b/libraries/blocks/blocks-mc13w36a-mc14w26c/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.0+mc13w36a-mc14w26c", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init" ] }, diff --git a/libraries/blocks/blocks-mc14w27a-mc15w35a/src/main/resources/fabric.mod.json b/libraries/blocks/blocks-mc14w27a-mc15w35a/src/main/resources/fabric.mod.json index 3dfd088c3..5ff045b28 100644 --- a/libraries/blocks/blocks-mc14w27a-mc15w35a/src/main/resources/fabric.mod.json +++ b/libraries/blocks/blocks-mc14w27a-mc15w35a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.0+mc14w27a-mc15w35a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init" ] }, diff --git a/libraries/blocks/blocks-mc15w36a-mc17w46a/src/main/resources/fabric.mod.json b/libraries/blocks/blocks-mc15w36a-mc17w46a/src/main/resources/fabric.mod.json index 5481a2f38..836a3e100 100644 --- a/libraries/blocks/blocks-mc15w36a-mc17w46a/src/main/resources/fabric.mod.json +++ b/libraries/blocks/blocks-mc15w36a-mc17w46a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.0+mc15w36a-mc17w46a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init" ] }, diff --git a/libraries/blocks/blocks-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json b/libraries/blocks/blocks-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json index 8d04d4913..c7e9f50ff 100644 --- a/libraries/blocks/blocks-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json +++ b/libraries/blocks/blocks-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.0+mc17w47a-mc18w31a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init" ] }, diff --git a/libraries/blocks/blocks-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json b/libraries/blocks/blocks-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json index d671182d5..f421b75f5 100644 --- a/libraries/blocks/blocks-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json +++ b/libraries/blocks/blocks-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.0+mc18w32a-mc1.13.2", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init" ] }, diff --git a/libraries/blocks/blocks-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json b/libraries/blocks/blocks-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json index 56cb29480..a89de5ece 100644 --- a/libraries/blocks/blocks-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json +++ b/libraries/blocks/blocks-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.0+mc18w43a-mc1.14.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init" ] }, diff --git a/libraries/blocks/blocks-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json b/libraries/blocks/blocks-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json index bfee6f524..68afa040d 100644 --- a/libraries/blocks/blocks-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json +++ b/libraries/blocks/blocks-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.0+mca1.0.1_01-mc1.6.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init" ] }, diff --git a/libraries/blocks/gradle.properties b/libraries/blocks/gradle.properties index 18944c81d..52a1ae95b 100644 --- a/libraries/blocks/gradle.properties +++ b/libraries/blocks/gradle.properties @@ -3,5 +3,5 @@ library_name = Blocks library_description = Blocks API and events. library_version = 0.3.0 -entrypoint_init = net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init +entrypoint_registry_init = net.ornithemc.osl.blocks.impl.BlockRegistryImpl::init osl_dependencies = core:0.10.0,entrypoints:0.5.0,blockstates:0.1.0,registries:0.1.0 diff --git a/libraries/entities/entities-mc1.8.2-pre5-mc1.10.2/src/main/resources/fabric.mod.json b/libraries/entities/entities-mc1.8.2-pre5-mc1.10.2/src/main/resources/fabric.mod.json index 3a6240918..822db2f44 100644 --- a/libraries/entities/entities-mc1.8.2-pre5-mc1.10.2/src/main/resources/fabric.mod.json +++ b/libraries/entities/entities-mc1.8.2-pre5-mc1.10.2/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.2+mc1.8.2-pre5-mc1.10.2", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init" ] }, diff --git a/libraries/entities/entities-mc12w01a-mc1.8.2-pre4/src/main/resources/fabric.mod.json b/libraries/entities/entities-mc12w01a-mc1.8.2-pre4/src/main/resources/fabric.mod.json index aee83d2b7..1e846ffe2 100644 --- a/libraries/entities/entities-mc12w01a-mc1.8.2-pre4/src/main/resources/fabric.mod.json +++ b/libraries/entities/entities-mc12w01a-mc1.8.2-pre4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.2+mc12w01a-mc1.8.2-pre4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init" ] }, diff --git a/libraries/entities/entities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json b/libraries/entities/entities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json index d90d69ed6..878f32689 100644 --- a/libraries/entities/entities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json +++ b/libraries/entities/entities-mc16w32a-mc18w01a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.2+mc16w32a-mc18w01a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init" ] }, diff --git a/libraries/entities/entities-mc18w19a-mc18w31a/src/main/resources/fabric.mod.json b/libraries/entities/entities-mc18w19a-mc18w31a/src/main/resources/fabric.mod.json index 629641a9a..a86d3d436 100644 --- a/libraries/entities/entities-mc18w19a-mc18w31a/src/main/resources/fabric.mod.json +++ b/libraries/entities/entities-mc18w19a-mc18w31a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.2+mc18w19a-mc18w31a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init" ] }, diff --git a/libraries/entities/entities-mc18w32a-mc19w04b/src/main/resources/fabric.mod.json b/libraries/entities/entities-mc18w32a-mc19w04b/src/main/resources/fabric.mod.json index 44e88ac77..4a45e82d2 100644 --- a/libraries/entities/entities-mc18w32a-mc19w04b/src/main/resources/fabric.mod.json +++ b/libraries/entities/entities-mc18w32a-mc19w04b/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.2+mc18w32a-mc19w04b", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init" ] }, diff --git a/libraries/entities/entities-mc19w08a-mc1.14.4/src/main/resources/fabric.mod.json b/libraries/entities/entities-mc19w08a-mc1.14.4/src/main/resources/fabric.mod.json index fb8911c6b..e5a5963ba 100644 --- a/libraries/entities/entities-mc19w08a-mc1.14.4/src/main/resources/fabric.mod.json +++ b/libraries/entities/entities-mc19w08a-mc1.14.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.2+mc19w08a-mc1.14.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init" ] }, diff --git a/libraries/entities/entities-mca1.0.1_01-mc11w48a/src/main/resources/fabric.mod.json b/libraries/entities/entities-mca1.0.1_01-mc11w48a/src/main/resources/fabric.mod.json index 3b1814795..d96aafd60 100644 --- a/libraries/entities/entities-mca1.0.1_01-mc11w48a/src/main/resources/fabric.mod.json +++ b/libraries/entities/entities-mca1.0.1_01-mc11w48a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.1.2+mca1.0.1_01-mc11w48a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init" ] }, diff --git a/libraries/entities/gradle.properties b/libraries/entities/gradle.properties index 9839e2ac7..61c9a1275 100644 --- a/libraries/entities/gradle.properties +++ b/libraries/entities/gradle.properties @@ -3,5 +3,5 @@ library_name = Entities library_description = Entities API and events. library_version = 0.1.2 -entrypoint_init = net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init +entrypoint_registry_init = net.ornithemc.osl.entities.impl.EntityTypeRegistryImpl::init osl_dependencies = core:0.9.0,entrypoints:0.5.0,registries:0.2.0 diff --git a/libraries/items/gradle.properties b/libraries/items/gradle.properties index e8d778ce1..5e89bcfc9 100644 --- a/libraries/items/gradle.properties +++ b/libraries/items/gradle.properties @@ -3,5 +3,5 @@ library_name = Items library_description = Items API and events. library_version = 0.3.1 -entrypoint_init = net.ornithemc.osl.items.impl.ItemRegistryImpl::init +entrypoint_registry_init = net.ornithemc.osl.items.impl.ItemRegistryImpl::init osl_dependencies = core:0.9.0,entrypoints:0.5.0,registries:0.2.0,blocks:0.3.0 diff --git a/libraries/items/items-mc13w36a-mc14w25b/src/main/resources/fabric.mod.json b/libraries/items/items-mc13w36a-mc14w25b/src/main/resources/fabric.mod.json index a5b5cc68a..f3a6d9cc0 100644 --- a/libraries/items/items-mc13w36a-mc14w25b/src/main/resources/fabric.mod.json +++ b/libraries/items/items-mc13w36a-mc14w25b/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.1+mc13w36a-mc14w25b", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.items.impl.ItemRegistryImpl::init" ] }, diff --git a/libraries/items/items-mc14w26a-mc17w46a/src/main/resources/fabric.mod.json b/libraries/items/items-mc14w26a-mc17w46a/src/main/resources/fabric.mod.json index dab3983e6..12e6ba6ef 100644 --- a/libraries/items/items-mc14w26a-mc17w46a/src/main/resources/fabric.mod.json +++ b/libraries/items/items-mc14w26a-mc17w46a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.1+mc14w26a-mc17w46a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.items.impl.ItemRegistryImpl::init" ] }, diff --git a/libraries/items/items-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json b/libraries/items/items-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json index e7c0a2fcb..354131d87 100644 --- a/libraries/items/items-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json +++ b/libraries/items/items-mc17w47a-mc18w31a/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.1+mc17w47a-mc18w31a", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.items.impl.ItemRegistryImpl::init" ] }, diff --git a/libraries/items/items-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json b/libraries/items/items-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json index 76dea8ad0..223a2134c 100644 --- a/libraries/items/items-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json +++ b/libraries/items/items-mc18w32a-mc1.13.2/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.1+mc18w32a-mc1.13.2", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.items.impl.ItemRegistryImpl::init" ] }, diff --git a/libraries/items/items-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json b/libraries/items/items-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json index 217ebd445..dea553971 100644 --- a/libraries/items/items-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json +++ b/libraries/items/items-mc18w43a-mc1.14.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.1+mc18w43a-mc1.14.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.items.impl.ItemRegistryImpl::init" ] }, diff --git a/libraries/items/items-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json b/libraries/items/items-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json index d766cf209..ee85163b1 100644 --- a/libraries/items/items-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json +++ b/libraries/items/items-mca1.0.1_01-mc1.6.4/src/main/resources/fabric.mod.json @@ -4,7 +4,7 @@ "version": "0.3.1+mca1.0.1_01-mc1.6.4", "environment": "*", "entrypoints": { - "init": [ + "registry-init": [ "net.ornithemc.osl.items.impl.ItemRegistryImpl::init" ] }, diff --git a/libraries/registries/README.md b/libraries/registries/README.md index b780c1db1..87cb36eec 100644 --- a/libraries/registries/README.md +++ b/libraries/registries/README.md @@ -22,6 +22,8 @@ Block COOKIE = Registry.register(BlockRegistry.REGISTRY, COOKIE_KEY, new CookieB ## Creating Registries +Registries should be created in a `RegistryInitializer`. You can define this entrypoint in your `mod.json` with the `registry-init` key. + Just like with other resources, you must create a `ResourceKey` that uniquely identifies your registry. The `RegistryKeys` class provides some factory methods for creating resource keys for registries. ```java @@ -74,12 +76,12 @@ public class CookieRecipes { ```java package com.example; -import net.ornithemc.osl.entrypoints.api.ModInitializer; +import net.ornithemc.osl.registries.api.RegistryInitializer; -public class ExampleInitializer implements ModInitializer { +public class ExampleInitializer implements RegistryInitializer { @Override - public void init() { + public void initRegistries() { ExampleRegistries.init(); } } diff --git a/libraries/registries/build.gradle b/libraries/registries/build.gradle index dddbc1fec..ac3484cc7 100644 --- a/libraries/registries/build.gradle +++ b/libraries/registries/build.gradle @@ -1,5 +1,6 @@ setUpLibrary(project) dependencies { - implementation 'it.unimi.dsi:fastutil:8.5.9' + compileOnly 'it.unimi.dsi:fastutil:8.5.9' + compileOnly 'com.google.guava:guava:17.0' } diff --git a/libraries/registries/registries-mc12w18a-mc1.6.4/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java b/libraries/registries/registries-mc12w18a-mc1.6.4/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java index c27f86c9c..920de8909 100644 --- a/libraries/registries/registries-mc12w18a-mc1.6.4/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java +++ b/libraries/registries/registries-mc12w18a-mc1.6.4/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java @@ -11,6 +11,8 @@ public static void init() { if (!initialized) { initialized = true; + RegistryEntrypoints.invoke(); + RegistriesImpl.init(); SyncedRegistriesImpl.init(); } diff --git a/libraries/registries/registries-mc13w36a-mc14w26c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java b/libraries/registries/registries-mc13w36a-mc14w26c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java index b27f392a5..507f7e751 100644 --- a/libraries/registries/registries-mc13w36a-mc14w26c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java +++ b/libraries/registries/registries-mc13w36a-mc14w26c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java @@ -8,6 +8,7 @@ import net.minecraft.Bootstrap; +import net.ornithemc.osl.registries.impl.RegistryEntrypoints; import net.ornithemc.osl.registries.impl.registry.RegistriesImpl; import net.ornithemc.osl.registries.impl.registry.SyncedRegistriesImpl; @@ -21,6 +22,10 @@ public class BootstrapMixin { private static void osl$registries$initAndLockRegistries(Operation op) { boolean wasInitialized = initialized; + if (!wasInitialized) { + RegistryEntrypoints.invoke(); + } + // we could skip the call if initialized is already true // but let's not mess with the bootstrap too much, eh op.call(); diff --git a/libraries/registries/registries-mc14w27a-mc17w46a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java b/libraries/registries/registries-mc14w27a-mc17w46a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java index b27f392a5..507f7e751 100644 --- a/libraries/registries/registries-mc14w27a-mc17w46a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java +++ b/libraries/registries/registries-mc14w27a-mc17w46a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java @@ -8,6 +8,7 @@ import net.minecraft.Bootstrap; +import net.ornithemc.osl.registries.impl.RegistryEntrypoints; import net.ornithemc.osl.registries.impl.registry.RegistriesImpl; import net.ornithemc.osl.registries.impl.registry.SyncedRegistriesImpl; @@ -21,6 +22,10 @@ public class BootstrapMixin { private static void osl$registries$initAndLockRegistries(Operation op) { boolean wasInitialized = initialized; + if (!wasInitialized) { + RegistryEntrypoints.invoke(); + } + // we could skip the call if initialized is already true // but let's not mess with the bootstrap too much, eh op.call(); diff --git a/libraries/registries/registries-mc17w47a-mc18w31a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java b/libraries/registries/registries-mc17w47a-mc18w31a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java index b27f392a5..507f7e751 100644 --- a/libraries/registries/registries-mc17w47a-mc18w31a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java +++ b/libraries/registries/registries-mc17w47a-mc18w31a/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java @@ -8,6 +8,7 @@ import net.minecraft.Bootstrap; +import net.ornithemc.osl.registries.impl.RegistryEntrypoints; import net.ornithemc.osl.registries.impl.registry.RegistriesImpl; import net.ornithemc.osl.registries.impl.registry.SyncedRegistriesImpl; @@ -21,6 +22,10 @@ public class BootstrapMixin { private static void osl$registries$initAndLockRegistries(Operation op) { boolean wasInitialized = initialized; + if (!wasInitialized) { + RegistryEntrypoints.invoke(); + } + // we could skip the call if initialized is already true // but let's not mess with the bootstrap too much, eh op.call(); diff --git a/libraries/registries/registries-mc18w32a-mc1.13.2/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java b/libraries/registries/registries-mc18w32a-mc1.13.2/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java new file mode 100644 index 000000000..5d051081b --- /dev/null +++ b/libraries/registries/registries-mc18w32a-mc1.13.2/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java @@ -0,0 +1,30 @@ +package net.ornithemc.osl.registries.impl.mixin.common; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.Bootstrap; + +import net.ornithemc.osl.registries.impl.RegistryEntrypoints; + +@Mixin(Bootstrap.class) +public class BootstrapMixin { + + @Shadow + private static boolean initialized; + + @Inject( + method = "init", + at = @At( + value = "HEAD" + ) + ) + private static void osl$registries$initRegistries(CallbackInfo ci) { + if (!initialized) { + RegistryEntrypoints.invoke(); + } + } +} diff --git a/libraries/registries/registries-mc18w32a-mc1.13.2/src/main/resources/osl.registries.mixins.json b/libraries/registries/registries-mc18w32a-mc1.13.2/src/main/resources/osl.registries.mixins.json index 2b3ab4934..18fd032b2 100644 --- a/libraries/registries/registries-mc18w32a-mc1.13.2/src/main/resources/osl.registries.mixins.json +++ b/libraries/registries/registries-mc18w32a-mc1.13.2/src/main/resources/osl.registries.mixins.json @@ -5,6 +5,7 @@ "compatibilityLevel": "JAVA_8", "mixins": [ "common.AlphaWorldStorageMixin", + "common.BootstrapMixin", "common.CrudeIncrementalIntIdentityHashMapMixin", "common.DefaultedIdRegistryAccess", "common.Id2ObjectBiMapMixin", diff --git a/libraries/registries/registries-mc18w43a-mc19w03c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java b/libraries/registries/registries-mc18w43a-mc19w03c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java index 7b6b88a17..a82ff17bd 100644 --- a/libraries/registries/registries-mc18w43a-mc19w03c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java +++ b/libraries/registries/registries-mc18w43a-mc19w03c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java @@ -9,6 +9,7 @@ import net.minecraft.Bootstrap; import net.minecraft.util.registry.Registry; + import net.ornithemc.osl.registries.impl.registry.RegistriesImpl; import net.ornithemc.osl.registries.impl.registry.SyncedRegistriesImpl; diff --git a/libraries/registries/registries-mc18w43a-mc19w03c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/RegistryMixin.java b/libraries/registries/registries-mc18w43a-mc19w03c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/RegistryMixin.java new file mode 100644 index 000000000..3e5a116b9 --- /dev/null +++ b/libraries/registries/registries-mc18w43a-mc19w03c/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/RegistryMixin.java @@ -0,0 +1,28 @@ +package net.ornithemc.osl.registries.impl.mixin.common; + +import org.objectweb.asm.Opcodes; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.util.registry.Registry; + +import net.ornithemc.osl.registries.impl.RegistryEntrypoints; + +@Mixin(Registry.class) +public class RegistryMixin { + + @Inject( + method = "", + at = @At( + value = "FIELD", + target = "Lnet/minecraft/util/registry/Registry;f_81997657:Ljava/util/Map;", + opcode = Opcodes.GETSTATIC + ) + ) + private static void osl$registries$initRegistries(CallbackInfo ci) { + RegistryEntrypoints.invoke(); + } +} diff --git a/libraries/registries/registries-mc18w43a-mc19w03c/src/main/resources/osl.registries.mixins.json b/libraries/registries/registries-mc18w43a-mc19w03c/src/main/resources/osl.registries.mixins.json index 60e06d4c1..18fd032b2 100644 --- a/libraries/registries/registries-mc18w43a-mc19w03c/src/main/resources/osl.registries.mixins.json +++ b/libraries/registries/registries-mc18w43a-mc19w03c/src/main/resources/osl.registries.mixins.json @@ -11,7 +11,8 @@ "common.Id2ObjectBiMapMixin", "common.IdRegistryMixin", "common.MinecraftServerMixin", - "common.PlayerManagerMixin" + "common.PlayerManagerMixin", + "common.RegistryMixin" ], "client": [ "client.IntegratedServerMixin" diff --git a/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java b/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java index 7b6b88a17..a82ff17bd 100644 --- a/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java +++ b/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/BootstrapMixin.java @@ -9,6 +9,7 @@ import net.minecraft.Bootstrap; import net.minecraft.util.registry.Registry; + import net.ornithemc.osl.registries.impl.registry.RegistriesImpl; import net.ornithemc.osl.registries.impl.registry.SyncedRegistriesImpl; diff --git a/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/RegistryMixin.java b/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/RegistryMixin.java new file mode 100644 index 000000000..3e5a116b9 --- /dev/null +++ b/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/java/net/ornithemc/osl/registries/impl/mixin/common/RegistryMixin.java @@ -0,0 +1,28 @@ +package net.ornithemc.osl.registries.impl.mixin.common; + +import org.objectweb.asm.Opcodes; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +import net.minecraft.util.registry.Registry; + +import net.ornithemc.osl.registries.impl.RegistryEntrypoints; + +@Mixin(Registry.class) +public class RegistryMixin { + + @Inject( + method = "", + at = @At( + value = "FIELD", + target = "Lnet/minecraft/util/registry/Registry;f_81997657:Ljava/util/Map;", + opcode = Opcodes.GETSTATIC + ) + ) + private static void osl$registries$initRegistries(CallbackInfo ci) { + RegistryEntrypoints.invoke(); + } +} diff --git a/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/resources/osl.registries.mixins.json b/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/resources/osl.registries.mixins.json index 60e06d4c1..18fd032b2 100644 --- a/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/resources/osl.registries.mixins.json +++ b/libraries/registries/registries-mc19w04a-mc1.14.4/src/main/resources/osl.registries.mixins.json @@ -11,7 +11,8 @@ "common.Id2ObjectBiMapMixin", "common.IdRegistryMixin", "common.MinecraftServerMixin", - "common.PlayerManagerMixin" + "common.PlayerManagerMixin", + "common.RegistryMixin" ], "client": [ "client.IntegratedServerMixin" diff --git a/libraries/registries/registries-mca1.0.1_01-mc12w17a/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java b/libraries/registries/registries-mca1.0.1_01-mc12w17a/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java index c27f86c9c..920de8909 100644 --- a/libraries/registries/registries-mca1.0.1_01-mc12w17a/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java +++ b/libraries/registries/registries-mca1.0.1_01-mc12w17a/src/main/java/net/ornithemc/osl/registries/impl/Bootstrap.java @@ -11,6 +11,8 @@ public static void init() { if (!initialized) { initialized = true; + RegistryEntrypoints.invoke(); + RegistriesImpl.init(); SyncedRegistriesImpl.init(); } diff --git a/libraries/registries/src/main/java/net/ornithemc/osl/registries/api/RegistryInitializer.java b/libraries/registries/src/main/java/net/ornithemc/osl/registries/api/RegistryInitializer.java new file mode 100644 index 000000000..2f2d203b2 --- /dev/null +++ b/libraries/registries/src/main/java/net/ornithemc/osl/registries/api/RegistryInitializer.java @@ -0,0 +1,9 @@ +package net.ornithemc.osl.registries.api; + +public interface RegistryInitializer { + + String ENTRYPOINT_KEY = "registry-init"; + + void initRegistries(); + +} diff --git a/libraries/registries/src/main/java/net/ornithemc/osl/registries/impl/RegistryEntrypoints.java b/libraries/registries/src/main/java/net/ornithemc/osl/registries/impl/RegistryEntrypoints.java new file mode 100644 index 000000000..f3ba1ac42 --- /dev/null +++ b/libraries/registries/src/main/java/net/ornithemc/osl/registries/impl/RegistryEntrypoints.java @@ -0,0 +1,16 @@ +package net.ornithemc.osl.registries.impl; + +import net.fabricmc.loader.api.FabricLoader; + +import net.ornithemc.osl.registries.api.RegistryInitializer; + +public final class RegistryEntrypoints { + + public static void invoke() { + FabricLoader.getInstance().invokeEntrypoints( + RegistryInitializer.ENTRYPOINT_KEY, + RegistryInitializer.class, + RegistryInitializer::initRegistries + ); + } +} diff --git a/libraries/registries/src/main/java/net/ornithemc/osl/registries/impl/registry/SimpleRegistry.java b/libraries/registries/src/main/java/net/ornithemc/osl/registries/impl/registry/SimpleRegistry.java index 077dc403e..588ff4b33 100644 --- a/libraries/registries/src/main/java/net/ornithemc/osl/registries/impl/registry/SimpleRegistry.java +++ b/libraries/registries/src/main/java/net/ornithemc/osl/registries/impl/registry/SimpleRegistry.java @@ -4,11 +4,14 @@ import java.util.IdentityHashMap; import java.util.Iterator; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; -import it.unimi.dsi.fastutil.ints.Int2ReferenceMap; -import it.unimi.dsi.fastutil.ints.Int2ReferenceOpenHashMap; +import com.google.common.collect.Iterators; + +import it.unimi.dsi.fastutil.objects.ObjectArrayList; +import it.unimi.dsi.fastutil.objects.ObjectList; import it.unimi.dsi.fastutil.objects.Reference2IntMap; import it.unimi.dsi.fastutil.objects.Reference2IntOpenHashMap; @@ -21,7 +24,7 @@ public class SimpleRegistry implements WritableRegistry, ClearableRegistry private final NamespacedIdentifier identifier; - private final Int2ReferenceMap values; + private final ObjectList values; private final Reference2IntMap ids; private final Map registry; private final Map> keys; @@ -33,7 +36,7 @@ public class SimpleRegistry implements WritableRegistry, ClearableRegistry public SimpleRegistry(NamespacedIdentifier identifier) { this.identifier = identifier; - this.values = new Int2ReferenceOpenHashMap<>(); + this.values = new ObjectArrayList<>(); this.ids = new Reference2IntOpenHashMap<>(); this.registry = new HashMap<>(); this.keys = new IdentityHashMap<>(); @@ -55,7 +58,7 @@ public V register(int id, ResourceKey key, V value) { if (id < 0) { throw new IllegalStateException("invalid ID " + id + " (must be >= 0)"); } - if (this.values.containsKey(id)) { + if (id < this.values.size() && this.values.get(id) != null) { throw new IllegalStateException("duplicate ID " + id + " (" + this.getIdentifier(this.get(id)) + " and " + key.identifier() + ")"); } if (this.registry.containsKey(key.identifier())) { @@ -65,7 +68,11 @@ public V register(int id, ResourceKey key, V value) { throw new IllegalStateException("value registered twice (" + this.getId(value) + ", " + this.getIdentifier(value) + " and " + id + ", " + key.identifier() + ")"); } - this.values.put(id, value); + while (this.values.size() <= id) { + this.values.add(null); + } + + this.values.set(id, value); this.ids.put(value, id); this.registry.put(key.identifier(), value); this.keys.put(value, key); @@ -123,7 +130,7 @@ public Set identifierSet() { @Override public Iterator iterator() { - return this.registry.values().iterator(); + return Iterators.filter(this.values.iterator(), Objects::nonNull); } @Override