diff --git a/gradle.properties b/gradle.properties index 94feda407..ff72863d3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,5 +20,6 @@ legacy-fabric-networking-api-v1.version = 2.0.2 legacy-fabric-permissions-api-v1.version = 1.1.1 legacy-fabric-registry-sync-api-v1.version = 2.2.0 legacy-fabric-registry-sync-api-v2.version = 1.0.0 +legacy-fabric-item-api-v1.version = 1.0.0 legacy-fabric-rendering-api-v1.version = 1.0.0 legacy-fabric-resource-loader-v1.version = 2.2.2 diff --git a/legacy-fabric-item-api-v1/1.12.2/build.gradle b/legacy-fabric-item-api-v1/1.12.2/build.gradle new file mode 100644 index 000000000..e69de29bb diff --git a/legacy-fabric-item-api-v1/1.12.2/gradle.properties b/legacy-fabric-item-api-v1/1.12.2/gradle.properties new file mode 100644 index 000000000..7d5606688 --- /dev/null +++ b/legacy-fabric-item-api-v1/1.12.2/gradle.properties @@ -0,0 +1,2 @@ +minVersionIncluded=1.8 +maxVersionIncluded=1.12.2 diff --git a/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/impl/item/versioned/EarlyInitializer.java b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/impl/item/versioned/EarlyInitializer.java new file mode 100644 index 000000000..a46ab3e57 --- /dev/null +++ b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/impl/item/versioned/EarlyInitializer.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.impl.item.versioned; + +import net.minecraft.item.Item; + +import net.fabricmc.api.EnvType; +import net.fabricmc.loader.api.FabricLoader; +import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; + +import net.legacyfabric.fabric.api.registry.v2.RegistryIds; +import net.legacyfabric.fabric.api.registry.v2.event.RegistryInitializedEvent; +import net.legacyfabric.fabric.api.registry.v2.registry.holder.FabricRegistry; +import net.legacyfabric.fabric.api.registry.v2.registry.holder.SyncedFabricRegistry; + +public class EarlyInitializer implements PreLaunchEntrypoint { + @Override + public void onPreLaunch() { + RegistryInitializedEvent.event(RegistryIds.ITEMS).register(EarlyInitializer::itemRegistryInit); + } + + private static void itemRegistryInit(FabricRegistry holder) { + SyncedFabricRegistry registry = (SyncedFabricRegistry) holder; + + if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) registry.fabric$getRegistryRemapCallback().register(new ItemModelsRemapper()); + } +} diff --git a/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/impl/item/versioned/ItemModelsRemapper.java b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/impl/item/versioned/ItemModelsRemapper.java new file mode 100644 index 000000000..8eb15661b --- /dev/null +++ b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/impl/item/versioned/ItemModelsRemapper.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.impl.item.versioned; + +import java.util.HashMap; +import java.util.Map; + +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.render.item.ItemModels; +import net.minecraft.client.util.ModelIdentifier; +import net.minecraft.item.Item; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.registry.v2.event.RegistryRemapCallback; +import net.legacyfabric.fabric.api.registry.v2.registry.holder.FabricRegistryEntry; +import net.legacyfabric.fabric.api.util.Identifier; +import net.legacyfabric.fabric.mixin.item.versioned.ItemModelsAccessor; + +public class ItemModelsRemapper implements RegistryRemapCallback { + private static final Map> modelIds = new HashMap<>(); + + public static void registerModelId(Identifier id, int metadata, ModelIdentifier modelId) { + modelIds.computeIfAbsent(id, k -> new HashMap<>()) + .put(metadata, modelId); + } + + private int pack(int itemId, int metadata) { + return itemId << 16 | metadata; + } + + private ItemModels getModelRegistry() { + return MinecraftClient.getInstance().getItemRenderer().getModels(); + } + + @Override + public void callback(Map> changedIdsMap) { + ((ItemModelsAccessor) getModelRegistry()).getModelIds().clear(); + + for (Map.Entry> entry : modelIds.entrySet()) { + Identifier itemId = entry.getKey(); + + Item item = RegistryHelper.getValue(Item.REGISTRY, itemId); + int itemIndex = RegistryHelper.getRawId(Item.REGISTRY, item); + + if (changedIdsMap.containsKey(itemIndex)) { + itemIndex = changedIdsMap.get(itemIndex).getId(); + } + + for (Map.Entry modelIdEntry : entry.getValue().entrySet()) { + ((ItemModelsAccessor) getModelRegistry()).getModelIds() + .put(pack(itemIndex, modelIdEntry.getKey()), modelIdEntry.getValue()); + } + } + + getModelRegistry().reloadModels(); + } +} diff --git a/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/mixin/item/versioned/ItemModelsAccessor.java b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/mixin/item/versioned/ItemModelsAccessor.java new file mode 100644 index 000000000..6e5e75d82 --- /dev/null +++ b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/mixin/item/versioned/ItemModelsAccessor.java @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.mixin.item.versioned; + +import java.util.Map; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import net.minecraft.client.render.item.ItemModels; +import net.minecraft.client.util.ModelIdentifier; + +@Mixin(ItemModels.class) +public interface ItemModelsAccessor { + @Accessor + Map getModelIds(); +} diff --git a/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/mixin/item/versioned/ItemModelsMixin.java b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/mixin/item/versioned/ItemModelsMixin.java new file mode 100644 index 000000000..e09f4b938 --- /dev/null +++ b/legacy-fabric-item-api-v1/1.12.2/src/main/java/net/legacyfabric/fabric/mixin/item/versioned/ItemModelsMixin.java @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.mixin.item.versioned; + +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.client.render.item.ItemModels; +import net.minecraft.client.util.ModelIdentifier; +import net.minecraft.item.Item; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.util.Identifier; +import net.legacyfabric.fabric.impl.item.versioned.ItemModelsRemapper; + +@Mixin(ItemModels.class) +public class ItemModelsMixin { + @Inject(method = "putModel", at = @At("RETURN")) + private void lf$registerModelId(Item item, int metadata, ModelIdentifier id, CallbackInfo ci) { + Identifier identifier = RegistryHelper.getId(Item.REGISTRY, item); + + if (identifier != null) ItemModelsRemapper.registerModelId(identifier, metadata, id); + } +} diff --git a/legacy-fabric-item-api-v1/1.12.2/src/main/resources/fabric.mod.json b/legacy-fabric-item-api-v1/1.12.2/src/main/resources/fabric.mod.json new file mode 100644 index 000000000..7132ed22b --- /dev/null +++ b/legacy-fabric-item-api-v1/1.12.2/src/main/resources/fabric.mod.json @@ -0,0 +1,45 @@ +{ + "schemaVersion": 1, + "id": "legacy-fabric-item-api-v1", + "name": "Legacy Fabric Item API (V1)", + "version": "${version}", + "environment": "*", + "license": "Apache-2.0", + "icon": "assets/legacy-fabric/icon.png", + "contact": { + "homepage": "https://legacyfabric.net/", + "irc": "irc://irc.esper.net:6667/legacyfabric", + "issues": "https://github.com/Legacy-Fabric/fabric/issues", + "sources": "https://github.com/Legacy-Fabric/fabric" + }, + "authors": [ + "Legacy-Fabric" + ], + "depends": { + "fabricloader": ">=0.4.0", + "minecraft": "${minecraft_version}" + }, + "description": "Item utils", + "entrypoints": { + "preLaunch": [ + "net.legacyfabric.fabric.impl.item.versioned.EarlyInitializer" + ] + }, + "mixins": [ + "legacy-fabric-item-api-v1.mixins.json" + ], + "custom": { + "loom:injected_interfaces": { + }, + "modmenu": { + "badges": [ "library" ], + "parent": { + "id": "legacy-fabric-api", + "name": "Legacy Fabric API", + "badges": [ "library" ], + "description": "Core API module providing key hooks and inter-compatibility features for Minecraft 1.7.10-1.12.2.", + "icon": "assets/legacy-fabric/icon.png" + } + } + } +} diff --git a/legacy-fabric-item-api-v1/1.12.2/src/main/resources/legacy-fabric-item-api-v1.mixins.json b/legacy-fabric-item-api-v1/1.12.2/src/main/resources/legacy-fabric-item-api-v1.mixins.json new file mode 100644 index 000000000..8882e989a --- /dev/null +++ b/legacy-fabric-item-api-v1/1.12.2/src/main/resources/legacy-fabric-item-api-v1.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "package": "net.legacyfabric.fabric.mixin.item", + "compatibilityLevel": "JAVA_8", + "injectors": { + "defaultRequire": 1 + }, + "mixins": [ + ], + "client": [ + "versioned.ItemModelsAccessor", + "versioned.ItemModelsMixin" + ] +} diff --git a/legacy-fabric-item-api-v1/1.7.10/build.gradle b/legacy-fabric-item-api-v1/1.7.10/build.gradle new file mode 100644 index 000000000..66b589ecb --- /dev/null +++ b/legacy-fabric-item-api-v1/1.7.10/build.gradle @@ -0,0 +1,3 @@ +loom { + accessWidenerPath = file("src/main/resources/legacy-fabric-item-api.accesswidener") +} diff --git a/legacy-fabric-item-api-v1/1.7.10/gradle.properties b/legacy-fabric-item-api-v1/1.7.10/gradle.properties new file mode 100644 index 000000000..c01c52c6b --- /dev/null +++ b/legacy-fabric-item-api-v1/1.7.10/gradle.properties @@ -0,0 +1,2 @@ +minVersionIncluded=1.7 +maxVersionIncluded=1.7.10 diff --git a/legacy-fabric-item-api-v1/1.7.10/src/main/java/net/legacyfabric/fabric/impl/item/versioned/EarlyInitializer.java b/legacy-fabric-item-api-v1/1.7.10/src/main/java/net/legacyfabric/fabric/impl/item/versioned/EarlyInitializer.java new file mode 100644 index 000000000..c44f37473 --- /dev/null +++ b/legacy-fabric-item-api-v1/1.7.10/src/main/java/net/legacyfabric/fabric/impl/item/versioned/EarlyInitializer.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.impl.item.versioned; + +import net.minecraft.item.Item; + +import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; + +import net.legacyfabric.fabric.api.registry.v2.RegistryIds; +import net.legacyfabric.fabric.api.registry.v2.event.RegistryInitializedEvent; +import net.legacyfabric.fabric.api.registry.v2.registry.holder.FabricRegistry; + +public class EarlyInitializer implements PreLaunchEntrypoint { + @Override + public void onPreLaunch() { + RegistryInitializedEvent.event(RegistryIds.ITEMS).register(EarlyInitializer::itemRegistryInit); + } + + private static void itemRegistryInit(FabricRegistry holder) { + FabricRegistry registry = (FabricRegistry) holder; + } +} diff --git a/legacy-fabric-item-api-v1/1.7.10/src/main/resources/fabric.mod.json b/legacy-fabric-item-api-v1/1.7.10/src/main/resources/fabric.mod.json new file mode 100644 index 000000000..17176f15b --- /dev/null +++ b/legacy-fabric-item-api-v1/1.7.10/src/main/resources/fabric.mod.json @@ -0,0 +1,44 @@ +{ + "schemaVersion": 1, + "id": "legacy-fabric-item-api-v1", + "name": "Legacy Fabric Item API (V1)", + "version": "${version}", + "environment": "*", + "license": "Apache-2.0", + "icon": "assets/legacy-fabric/icon.png", + "contact": { + "homepage": "https://legacyfabric.net/", + "irc": "irc://irc.esper.net:6667/legacyfabric", + "issues": "https://github.com/Legacy-Fabric/fabric/issues", + "sources": "https://github.com/Legacy-Fabric/fabric" + }, + "authors": [ + "Legacy-Fabric" + ], + "depends": { + "fabricloader": ">=0.4.0", + "minecraft": "${minecraft_version}" + }, + "description": "Item utils", + "entrypoints": { + "preLaunch": [] + }, + "mixins": [ + "legacy-fabric-item-api-v1.mixins.json" + ], + "accessWidener": "legacy-fabric-item-api.accesswidener", + "custom": { + "loom:injected_interfaces": { + }, + "modmenu": { + "badges": [ "library" ], + "parent": { + "id": "legacy-fabric-api", + "name": "Legacy Fabric API", + "badges": [ "library" ], + "description": "Core API module providing key hooks and inter-compatibility features for Minecraft 1.7.10-1.12.2.", + "icon": "assets/legacy-fabric/icon.png" + } + } + } +} diff --git a/legacy-fabric-item-api-v1/1.7.10/src/main/resources/legacy-fabric-item-api-v1.mixins.json b/legacy-fabric-item-api-v1/1.7.10/src/main/resources/legacy-fabric-item-api-v1.mixins.json new file mode 100644 index 000000000..86feace33 --- /dev/null +++ b/legacy-fabric-item-api-v1/1.7.10/src/main/resources/legacy-fabric-item-api-v1.mixins.json @@ -0,0 +1,12 @@ +{ + "required": true, + "package": "net.legacyfabric.fabric.mixin.item", + "compatibilityLevel": "JAVA_8", + "injectors": { + "defaultRequire": 1 + }, + "mixins": [ + ], + "client": [ + ] +} diff --git a/legacy-fabric-item-api-v1/1.7.10/src/main/resources/legacy-fabric-item-api.accesswidener b/legacy-fabric-item-api-v1/1.7.10/src/main/resources/legacy-fabric-item-api.accesswidener new file mode 100644 index 000000000..10be8bab6 --- /dev/null +++ b/legacy-fabric-item-api-v1/1.7.10/src/main/resources/legacy-fabric-item-api.accesswidener @@ -0,0 +1,3 @@ +accessWidener v2 named + +transitive-accessible method net/minecraft/item/Item getFromId (Ljava/lang/String;)Lnet/minecraft/item/Item; diff --git a/legacy-fabric-item-api-v1/common.gradle b/legacy-fabric-item-api-v1/common.gradle new file mode 100644 index 000000000..e139671fc --- /dev/null +++ b/legacy-fabric-item-api-v1/common.gradle @@ -0,0 +1,6 @@ +moduleDependencies(project, [ + "legacy-fabric-api-base", + "legacy-fabric-networking-api-v1", + "legacy-fabric-resource-loader-v1", + "legacy-fabric-registry-sync-api-v2" +]) diff --git a/legacy-fabric-item-api-v1/common/build.gradle b/legacy-fabric-item-api-v1/common/build.gradle new file mode 100644 index 000000000..e69de29bb diff --git a/legacy-fabric-item-api-v1/common/gradle.properties b/legacy-fabric-item-api-v1/common/gradle.properties new file mode 100644 index 000000000..a499ab733 --- /dev/null +++ b/legacy-fabric-item-api-v1/common/gradle.properties @@ -0,0 +1,2 @@ +minVersionIncluded=1.7 +maxVersionIncluded=1.12.2 diff --git a/legacy-fabric-item-api-v1/common/src/main/java/net/legacyfabric/fabric/impl/item/EarlyInitializer.java b/legacy-fabric-item-api-v1/common/src/main/java/net/legacyfabric/fabric/impl/item/EarlyInitializer.java new file mode 100644 index 000000000..0b8c6d074 --- /dev/null +++ b/legacy-fabric-item-api-v1/common/src/main/java/net/legacyfabric/fabric/impl/item/EarlyInitializer.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.impl.item; + +import net.minecraft.item.Item; + +import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; + +import net.legacyfabric.fabric.api.registry.v2.RegistryIds; +import net.legacyfabric.fabric.api.registry.v2.event.RegistryInitializedEvent; +import net.legacyfabric.fabric.api.registry.v2.registry.holder.FabricRegistry; + +public class EarlyInitializer implements PreLaunchEntrypoint { + @Override + public void onPreLaunch() { + RegistryInitializedEvent.event(RegistryIds.ITEMS).register(EarlyInitializer::itemRegistryInit); + } + + private static void itemRegistryInit(FabricRegistry holder) { + FabricRegistry registry = (FabricRegistry) holder; + + registry.fabric$getBeforeAddedCallback().register((rawId, id, item) -> item.setTranslationKey(id.toTranslationKey())); + } +} diff --git a/legacy-fabric-item-api-v1/common/src/main/java/net/legacyfabric/fabric/mixin/item/ItemMixin.java b/legacy-fabric-item-api-v1/common/src/main/java/net/legacyfabric/fabric/mixin/item/ItemMixin.java new file mode 100644 index 000000000..93288a007 --- /dev/null +++ b/legacy-fabric-item-api-v1/common/src/main/java/net/legacyfabric/fabric/mixin/item/ItemMixin.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.mixin.item; + +import org.spongepowered.asm.mixin.Final; +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.item.Item; +import net.minecraft.util.registry.SimpleRegistry; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.registry.v2.RegistryIds; + +@Mixin(Item.class) +public class ItemMixin { + @Shadow + @Final + public static SimpleRegistry REGISTRY; + + @Inject(method = "setup", at = @At("RETURN")) + private static void registerRegistry(CallbackInfo ci) { + RegistryHelper.addRegistry(RegistryIds.ITEMS, REGISTRY); + } +} diff --git a/legacy-fabric-item-api-v1/common/src/main/resources/fabric.mod.json b/legacy-fabric-item-api-v1/common/src/main/resources/fabric.mod.json new file mode 100644 index 000000000..4f5fde51c --- /dev/null +++ b/legacy-fabric-item-api-v1/common/src/main/resources/fabric.mod.json @@ -0,0 +1,45 @@ +{ + "schemaVersion": 1, + "id": "legacy-fabric-item-api-v1-common", + "name": "Legacy Fabric Item API (V1)", + "version": "${version}", + "environment": "*", + "license": "Apache-2.0", + "icon": "assets/legacy-fabric/icon.png", + "contact": { + "homepage": "https://legacyfabric.net/", + "irc": "irc://irc.esper.net:6667/legacyfabric", + "issues": "https://github.com/Legacy-Fabric/fabric/issues", + "sources": "https://github.com/Legacy-Fabric/fabric" + }, + "authors": [ + "Legacy-Fabric" + ], + "depends": { + "fabricloader": ">=0.4.0", + "minecraft": "${minecraft_version}" + }, + "description": "Item utils", + "entrypoints": { + "preLaunch": [ + "net.legacyfabric.fabric.impl.item.EarlyInitializer" + ] + }, + "mixins": [ + "legacy-fabric-item-api-v1-common.mixins.json" + ], + "custom": { + "loom:injected_interfaces": { + }, + "modmenu": { + "badges": [ "library" ], + "parent": { + "id": "legacy-fabric-api", + "name": "Legacy Fabric API", + "badges": [ "library" ], + "description": "Core API module providing key hooks and inter-compatibility features for Minecraft 1.7.10-1.12.2.", + "icon": "assets/legacy-fabric/icon.png" + } + } + } +} diff --git a/legacy-fabric-item-api-v1/common/src/main/resources/legacy-fabric-item-api-v1-common.mixins.json b/legacy-fabric-item-api-v1/common/src/main/resources/legacy-fabric-item-api-v1-common.mixins.json new file mode 100644 index 000000000..fb9e6d8f5 --- /dev/null +++ b/legacy-fabric-item-api-v1/common/src/main/resources/legacy-fabric-item-api-v1-common.mixins.json @@ -0,0 +1,13 @@ +{ + "required": true, + "package": "net.legacyfabric.fabric.mixin.item", + "compatibilityLevel": "JAVA_8", + "injectors": { + "defaultRequire": 1 + }, + "mixins": [ + "ItemMixin" + ], + "client": [ + ] +} diff --git a/legacy-fabric-registry-sync-api-v1/common.gradle b/legacy-fabric-registry-sync-api-v1/common.gradle index e139671fc..7102014bf 100644 --- a/legacy-fabric-registry-sync-api-v1/common.gradle +++ b/legacy-fabric-registry-sync-api-v1/common.gradle @@ -2,5 +2,6 @@ moduleDependencies(project, [ "legacy-fabric-api-base", "legacy-fabric-networking-api-v1", "legacy-fabric-resource-loader-v1", - "legacy-fabric-registry-sync-api-v2" + "legacy-fabric-registry-sync-api-v2", + "legacy-fabric-item-api-v1" ]) diff --git a/legacy-fabric-registry-sync-api-v2/common/src/main/java/net/legacyfabric/fabric/api/registry/v2/event/RegistryRemapCallback.java b/legacy-fabric-registry-sync-api-v2/common/src/main/java/net/legacyfabric/fabric/api/registry/v2/event/RegistryRemapCallback.java index 4718cd489..4484f1fdb 100644 --- a/legacy-fabric-registry-sync-api-v2/common/src/main/java/net/legacyfabric/fabric/api/registry/v2/event/RegistryRemapCallback.java +++ b/legacy-fabric-registry-sync-api-v2/common/src/main/java/net/legacyfabric/fabric/api/registry/v2/event/RegistryRemapCallback.java @@ -27,14 +27,14 @@ import net.legacyfabric.fabric.impl.registry.RegistryEventHelper; /** - * An event for when a registry has been remapped. + * An event for when a registry has been remapped, but hasn't been updated yet. * * @param the type of entries within the registry */ @FunctionalInterface public interface RegistryRemapCallback { /** - * Called when the registry has been remapped. + * Called when the registry has been remapped but hasn't been updated yet. * @param changedIdsMap A map containing changed ids in the registry following the remapping process. * Key is the original id and Value is the affected entry data see {@link FabricRegistryEntry}. */ diff --git a/legacyfabric-api/1.10.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java b/legacyfabric-api/1.10.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java new file mode 100644 index 000000000..d3078041e --- /dev/null +++ b/legacyfabric-api/1.10.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.test.registry; + +import net.minecraft.item.Item; +import net.minecraft.item.itemgroup.ItemGroup; + +import net.fabricmc.api.ModInitializer; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.resource.ItemModelRegistry; +import net.legacyfabric.fabric.api.util.Identifier; + +public class RegistryTest implements ModInitializer { + @Override + public void onInitialize() { + this.registerItems(); + } + + private void registerItems() { + Item testItem = new Item().setItemGroup(ItemGroup.FOOD); + RegistryHelper.register( + Item.REGISTRY, + new Identifier("legacy-fabric-api", "test_item"), testItem + ); + ItemModelRegistry.registerItemModel(testItem, new Identifier("legacy-fabric-api:test_item")); + } +} diff --git a/legacyfabric-api/1.10.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json b/legacyfabric-api/1.10.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json index 676b62a43..c9de3dd3e 100644 --- a/legacyfabric-api/1.10.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json +++ b/legacyfabric-api/1.10.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json @@ -1,4 +1,5 @@ { "api.keybinding.testTranslationKey": "Test Keybinding", - "legacyfabric.api.youreTesting": "You're Testing Fabric API!" + "legacyfabric.api.youreTesting": "You're Testing Fabric API!", + "item.legacy-fabric-api.test_item.name": "Test Item" } diff --git a/legacyfabric-api/1.11.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java b/legacyfabric-api/1.11.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java new file mode 100644 index 000000000..d3078041e --- /dev/null +++ b/legacyfabric-api/1.11.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.test.registry; + +import net.minecraft.item.Item; +import net.minecraft.item.itemgroup.ItemGroup; + +import net.fabricmc.api.ModInitializer; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.resource.ItemModelRegistry; +import net.legacyfabric.fabric.api.util.Identifier; + +public class RegistryTest implements ModInitializer { + @Override + public void onInitialize() { + this.registerItems(); + } + + private void registerItems() { + Item testItem = new Item().setItemGroup(ItemGroup.FOOD); + RegistryHelper.register( + Item.REGISTRY, + new Identifier("legacy-fabric-api", "test_item"), testItem + ); + ItemModelRegistry.registerItemModel(testItem, new Identifier("legacy-fabric-api:test_item")); + } +} diff --git a/legacyfabric-api/1.11.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json b/legacyfabric-api/1.11.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json index 676b62a43..c9de3dd3e 100644 --- a/legacyfabric-api/1.11.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json +++ b/legacyfabric-api/1.11.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json @@ -1,4 +1,5 @@ { "api.keybinding.testTranslationKey": "Test Keybinding", - "legacyfabric.api.youreTesting": "You're Testing Fabric API!" + "legacyfabric.api.youreTesting": "You're Testing Fabric API!", + "item.legacy-fabric-api.test_item.name": "Test Item" } diff --git a/legacyfabric-api/1.12.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java b/legacyfabric-api/1.12.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java new file mode 100644 index 000000000..d3078041e --- /dev/null +++ b/legacyfabric-api/1.12.2/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.test.registry; + +import net.minecraft.item.Item; +import net.minecraft.item.itemgroup.ItemGroup; + +import net.fabricmc.api.ModInitializer; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.resource.ItemModelRegistry; +import net.legacyfabric.fabric.api.util.Identifier; + +public class RegistryTest implements ModInitializer { + @Override + public void onInitialize() { + this.registerItems(); + } + + private void registerItems() { + Item testItem = new Item().setItemGroup(ItemGroup.FOOD); + RegistryHelper.register( + Item.REGISTRY, + new Identifier("legacy-fabric-api", "test_item"), testItem + ); + ItemModelRegistry.registerItemModel(testItem, new Identifier("legacy-fabric-api:test_item")); + } +} diff --git a/legacyfabric-api/1.12.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json b/legacyfabric-api/1.12.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json index 676b62a43..c9de3dd3e 100644 --- a/legacyfabric-api/1.12.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json +++ b/legacyfabric-api/1.12.2/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json @@ -1,4 +1,5 @@ { "api.keybinding.testTranslationKey": "Test Keybinding", - "legacyfabric.api.youreTesting": "You're Testing Fabric API!" + "legacyfabric.api.youreTesting": "You're Testing Fabric API!", + "item.legacy-fabric-api.test_item.name": "Test Item" } diff --git a/legacyfabric-api/1.7.10/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java b/legacyfabric-api/1.7.10/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java new file mode 100644 index 000000000..ac716f6c5 --- /dev/null +++ b/legacyfabric-api/1.7.10/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.test.registry; + +import net.minecraft.item.Item; +import net.minecraft.item.itemgroup.ItemGroup; + +import net.fabricmc.api.ModInitializer; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.util.Identifier; + +public class RegistryTest implements ModInitializer { + @Override + public void onInitialize() { + this.registerItems(); + } + + private void registerItems() { + Item testItem = new Item() + .setItemGroup(ItemGroup.FOOD) + .getFromId(new Identifier("legacy-fabric-api", "test_item").toString()); + RegistryHelper.register( + Item.REGISTRY, + new Identifier("legacy-fabric-api", "test_item"), testItem + ); + } +} diff --git a/legacyfabric-api/1.7.10/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json b/legacyfabric-api/1.7.10/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json index 676b62a43..c9de3dd3e 100644 --- a/legacyfabric-api/1.7.10/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json +++ b/legacyfabric-api/1.7.10/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json @@ -1,4 +1,5 @@ { "api.keybinding.testTranslationKey": "Test Keybinding", - "legacyfabric.api.youreTesting": "You're Testing Fabric API!" + "legacyfabric.api.youreTesting": "You're Testing Fabric API!", + "item.legacy-fabric-api.test_item.name": "Test Item" } diff --git a/legacyfabric-api/1.8.9/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java b/legacyfabric-api/1.8.9/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java new file mode 100644 index 000000000..d3078041e --- /dev/null +++ b/legacyfabric-api/1.8.9/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.test.registry; + +import net.minecraft.item.Item; +import net.minecraft.item.itemgroup.ItemGroup; + +import net.fabricmc.api.ModInitializer; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.resource.ItemModelRegistry; +import net.legacyfabric.fabric.api.util.Identifier; + +public class RegistryTest implements ModInitializer { + @Override + public void onInitialize() { + this.registerItems(); + } + + private void registerItems() { + Item testItem = new Item().setItemGroup(ItemGroup.FOOD); + RegistryHelper.register( + Item.REGISTRY, + new Identifier("legacy-fabric-api", "test_item"), testItem + ); + ItemModelRegistry.registerItemModel(testItem, new Identifier("legacy-fabric-api:test_item")); + } +} diff --git a/legacyfabric-api/1.8.9/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json b/legacyfabric-api/1.8.9/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json index 676b62a43..c9de3dd3e 100644 --- a/legacyfabric-api/1.8.9/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json +++ b/legacyfabric-api/1.8.9/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json @@ -1,4 +1,5 @@ { "api.keybinding.testTranslationKey": "Test Keybinding", - "legacyfabric.api.youreTesting": "You're Testing Fabric API!" + "legacyfabric.api.youreTesting": "You're Testing Fabric API!", + "item.legacy-fabric-api.test_item.name": "Test Item" } diff --git a/legacyfabric-api/1.8/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java b/legacyfabric-api/1.8/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java new file mode 100644 index 000000000..d3078041e --- /dev/null +++ b/legacyfabric-api/1.8/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2020 - 2024 Legacy Fabric + * Copyright (c) 2016 - 2022 FabricMC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package net.legacyfabric.fabric.test.registry; + +import net.minecraft.item.Item; +import net.minecraft.item.itemgroup.ItemGroup; + +import net.fabricmc.api.ModInitializer; + +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; +import net.legacyfabric.fabric.api.resource.ItemModelRegistry; +import net.legacyfabric.fabric.api.util.Identifier; + +public class RegistryTest implements ModInitializer { + @Override + public void onInitialize() { + this.registerItems(); + } + + private void registerItems() { + Item testItem = new Item().setItemGroup(ItemGroup.FOOD); + RegistryHelper.register( + Item.REGISTRY, + new Identifier("legacy-fabric-api", "test_item"), testItem + ); + ItemModelRegistry.registerItemModel(testItem, new Identifier("legacy-fabric-api:test_item")); + } +} diff --git a/legacyfabric-api/1.8/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json b/legacyfabric-api/1.8/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json index 676b62a43..c9de3dd3e 100644 --- a/legacyfabric-api/1.8/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json +++ b/legacyfabric-api/1.8/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json @@ -1,4 +1,5 @@ { "api.keybinding.testTranslationKey": "Test Keybinding", - "legacyfabric.api.youreTesting": "You're Testing Fabric API!" + "legacyfabric.api.youreTesting": "You're Testing Fabric API!", + "item.legacy-fabric-api.test_item.name": "Test Item" } diff --git a/legacyfabric-api/1.8/src/testmod/resources/testmods.accesswidener b/legacyfabric-api/1.8/src/testmod/resources/testmods.accesswidener new file mode 100644 index 000000000..8f8db9c23 --- /dev/null +++ b/legacyfabric-api/1.8/src/testmod/resources/testmods.accesswidener @@ -0,0 +1,3 @@ +accessWidener v2 named + +accessible method net/minecraft/block/Block (Lnet/minecraft/block/material/Material;)V diff --git a/legacyfabric-api/1.9.4/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java b/legacyfabric-api/1.9.4/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java index 3d72858aa..d3078041e 100644 --- a/legacyfabric-api/1.9.4/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java +++ b/legacyfabric-api/1.9.4/src/testmod/java/net/legacyfabric/fabric/test/registry/RegistryTest.java @@ -17,43 +17,27 @@ package net.legacyfabric.fabric.test.registry; -import java.util.concurrent.ThreadLocalRandom; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.block.material.MaterialColor; -import net.minecraft.item.BlockItem; import net.minecraft.item.Item; import net.minecraft.item.itemgroup.ItemGroup; import net.fabricmc.api.ModInitializer; -import net.legacyfabric.fabric.api.registry.v1.RegistryHelper; +import net.legacyfabric.fabric.api.registry.v2.RegistryHelper; import net.legacyfabric.fabric.api.resource.ItemModelRegistry; import net.legacyfabric.fabric.api.util.Identifier; public class RegistryTest implements ModInitializer { @Override public void onInitialize() { - Block concBlock = new Block(Material.STONE, MaterialColor.BLACK).setItemGroup(ItemGroup.FOOD); - Block concBlock2 = new Block(Material.STONE, MaterialColor.BLUE).setItemGroup(ItemGroup.FOOD); - Block[] blocks = ThreadLocalRandom.current().nextBoolean() ? new Block[] {concBlock, concBlock2} : new Block[] {concBlock2, concBlock}; - - for (Block block : blocks) { - int color = 1644825; - - if (block == concBlock2) { - color = 3361970; - } - - Identifier identifier = new Identifier("legacy-fabric-api", "conc_block_" + color); - - RegistryHelper.registerBlock(block, identifier); - RegistryHelper.registerItem(new BlockItem(block), identifier); - } + this.registerItems(); + } + private void registerItems() { Item testItem = new Item().setItemGroup(ItemGroup.FOOD); - RegistryHelper.registerItem(testItem, new Identifier("legacy-fabric-api", "test_item")); + RegistryHelper.register( + Item.REGISTRY, + new Identifier("legacy-fabric-api", "test_item"), testItem + ); ItemModelRegistry.registerItemModel(testItem, new Identifier("legacy-fabric-api:test_item")); } } diff --git a/legacyfabric-api/1.9.4/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json b/legacyfabric-api/1.9.4/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json index 676b62a43..c9de3dd3e 100644 --- a/legacyfabric-api/1.9.4/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json +++ b/legacyfabric-api/1.9.4/src/testmod/resources/assets/legacy-fabric-api/lang/en_us.json @@ -1,4 +1,5 @@ { "api.keybinding.testTranslationKey": "Test Keybinding", - "legacyfabric.api.youreTesting": "You're Testing Fabric API!" + "legacyfabric.api.youreTesting": "You're Testing Fabric API!", + "item.legacy-fabric-api.test_item.name": "Test Item" } diff --git a/legacyfabric-api/common.gradle b/legacyfabric-api/common.gradle index 57e88309f..1ec69e2e6 100644 --- a/legacyfabric-api/common.gradle +++ b/legacyfabric-api/common.gradle @@ -10,6 +10,8 @@ moduleDependencies(project, [ "legacy-fabric-networking-api-v1", "legacy-fabric-permissions-api-v1", "legacy-fabric-registry-sync-api-v1", + "legacy-fabric-registry-sync-api-v2", + "legacy-fabric-item-api-v1", "legacy-fabric-rendering-api-v1", "legacy-fabric-crash-report-info-v1", "legacy-fabric-command-api-v2" diff --git a/settings.gradle b/settings.gradle index 8e1d53cf9..a9a1dea06 100644 --- a/settings.gradle +++ b/settings.gradle @@ -41,6 +41,7 @@ loadProject("legacy-fabric-networking-api-v1") loadProject("legacy-fabric-permissions-api-v1") loadProject("legacy-fabric-registry-sync-api-v1") loadProject("legacy-fabric-registry-sync-api-v2") +loadProject("legacy-fabric-item-api-v1") loadProject("legacy-fabric-rendering-api-v1") loadProject("legacy-fabric-crash-report-info-v1") loadProject("legacy-fabric-command-api-v2")