From da6b8da3a1b31b4af85fdf068b6b2a84c3985774 Mon Sep 17 00:00:00 2001 From: Steven Date: Sun, 1 Oct 2023 10:07:17 -0400 Subject: [PATCH] Added basic items and fixed path errors --- gradle.properties | 2 +- .../com/example/examplemod/UtilRings.java | 128 ------------------ .../util_rings}/Config.java | 2 +- .../skdevstudios/util_rings/UtilRings.java | 75 ++++++++++ src/main/resources/META-INF/mods.toml | 10 +- .../assets/util_rings/lang/en_us.json | 5 + .../util_rings/models/item/iron_ring.json | 6 + .../models/item/volcanic_glass_ring.json | 6 + .../util_rings/textures/item/iron_ring.png | Bin 0 -> 5382 bytes .../textures/item/volcanic_glass_ring.png | Bin 0 -> 1093 bytes src/main/resources/pack.mcmeta | 6 +- updates.json | 10 ++ 12 files changed, 111 insertions(+), 139 deletions(-) delete mode 100644 src/main/java/com/example/examplemod/UtilRings.java rename src/main/java/com/{example/examplemod => skdevstudios/util_rings}/Config.java (98%) create mode 100644 src/main/java/com/skdevstudios/util_rings/UtilRings.java create mode 100644 src/main/resources/assets/util_rings/lang/en_us.json create mode 100644 src/main/resources/assets/util_rings/models/item/iron_ring.json create mode 100644 src/main/resources/assets/util_rings/models/item/volcanic_glass_ring.json create mode 100644 src/main/resources/assets/util_rings/textures/item/iron_ring.png create mode 100644 src/main/resources/assets/util_rings/textures/item/volcanic_glass_ring.png create mode 100644 updates.json diff --git a/gradle.properties b/gradle.properties index 8d03d98..e1ffaea 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,7 +18,7 @@ mapping_version=2023.09.03-1.20.1 mod_id=util_rings mod_name=Utility Rings mod_license=MIT -mod_version=1.20-0.1.0 +mod_version=1.20-1.0.0.0 mod_group_id=com.skdevstudios mod_authors=Steven'specCon18'Carpenter mod_description=Adds a set of rings for the curios ring slot that solve small issues in mc ex.) I fucking hate lava in my mines :P diff --git a/src/main/java/com/example/examplemod/UtilRings.java b/src/main/java/com/example/examplemod/UtilRings.java deleted file mode 100644 index 79ea9f9..0000000 --- a/src/main/java/com/example/examplemod/UtilRings.java +++ /dev/null @@ -1,128 +0,0 @@ -package com.example.examplemod; - -import com.mojang.logging.LogUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.core.registries.Registries; -import net.minecraft.world.food.FoodProperties; -import net.minecraft.world.item.BlockItem; -import net.minecraft.world.item.CreativeModeTab; -import net.minecraft.world.item.CreativeModeTabs; -import net.minecraft.world.item.Item; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.Blocks; -import net.minecraft.world.level.block.state.BlockBehaviour; -import net.minecraft.world.level.material.MapColor; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; -import net.minecraftforge.event.server.ServerStartingEvent; -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.config.ModConfig; -import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; -import org.slf4j.Logger; - -// The value here should match an entry in the META-INF/mods.toml file -@Mod(UtilRings.MODID) -public class UtilRings -{ - // Define mod id in a common place for everything to reference - public static final String MODID = "util_rings"; - // Directly reference a slf4j logger - private static final Logger LOGGER = LogUtils.getLogger(); - // Create a Deferred Register to hold Blocks which will all be registered under the "examplemod" namespace - public static final DeferredRegister BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, MODID); - // Create a Deferred Register to hold Items which will all be registered under the "examplemod" namespace - public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); - // Create a Deferred Register to hold CreativeModeTabs which will all be registered under the "examplemod" namespace - public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID); - - // Creates a new Block with the id "examplemod:example_block", combining the namespace and path - public static final RegistryObject EXAMPLE_BLOCK = BLOCKS.register("example_block", () -> new Block(BlockBehaviour.Properties.of().mapColor(MapColor.STONE))); - // Creates a new BlockItem with the id "examplemod:example_block", combining the namespace and path - public static final RegistryObject EXAMPLE_BLOCK_ITEM = ITEMS.register("example_block", () -> new BlockItem(EXAMPLE_BLOCK.get(), new Item.Properties())); - - // Creates a new food item with the id "examplemod:example_id", nutrition 1 and saturation 2 - public static final RegistryObject EXAMPLE_ITEM = ITEMS.register("example_item", () -> new Item(new Item.Properties().food(new FoodProperties.Builder() - .alwaysEat().nutrition(1).saturationMod(2f).build()))); - - // Creates a creative tab with the id "examplemod:example_tab" for the example item, that is placed after the combat tab - public static final RegistryObject EXAMPLE_TAB = CREATIVE_MODE_TABS.register("example_tab", () -> CreativeModeTab.builder() - .withTabsBefore(CreativeModeTabs.COMBAT) - .icon(() -> EXAMPLE_ITEM.get().getDefaultInstance()) - .displayItems((parameters, output) -> { - output.accept(EXAMPLE_ITEM.get()); // Add the example item to the tab. For your own tabs, this method is preferred over the event - }).build()); - - public UtilRings() - { - IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); - - // Register the commonSetup method for modloading - modEventBus.addListener(this::commonSetup); - - // Register the Deferred Register to the mod event bus so blocks get registered - BLOCKS.register(modEventBus); - // Register the Deferred Register to the mod event bus so items get registered - ITEMS.register(modEventBus); - // Register the Deferred Register to the mod event bus so tabs get registered - CREATIVE_MODE_TABS.register(modEventBus); - - // Register ourselves for server and other game events we are interested in - MinecraftForge.EVENT_BUS.register(this); - - // Register the item to a creative tab - modEventBus.addListener(this::addCreative); - - // Register our mod's ForgeConfigSpec so that Forge can create and load the config file for us - ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC); - } - - private void commonSetup(final FMLCommonSetupEvent event) - { - // Some common setup code - LOGGER.info("HELLO FROM COMMON SETUP"); - - if (Config.logDirtBlock) - LOGGER.info("DIRT BLOCK >> {}", ForgeRegistries.BLOCKS.getKey(Blocks.DIRT)); - - LOGGER.info(Config.magicNumberIntroduction + Config.magicNumber); - - Config.items.forEach((item) -> LOGGER.info("ITEM >> {}", item.toString())); - } - - // Add the example block item to the building blocks tab - private void addCreative(BuildCreativeModeTabContentsEvent event) - { - if (event.getTabKey() == CreativeModeTabs.BUILDING_BLOCKS) - event.accept(EXAMPLE_BLOCK_ITEM); - } - - // You can use SubscribeEvent and let the Event Bus discover methods to call - @SubscribeEvent - public void onServerStarting(ServerStartingEvent event) - { - // Do something when the server starts - LOGGER.info("HELLO from server starting"); - } - - // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent - @Mod.EventBusSubscriber(modid = MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) - public static class ClientModEvents - { - @SubscribeEvent - public static void onClientSetup(FMLClientSetupEvent event) - { - // Some client setup code - LOGGER.info("HELLO FROM CLIENT SETUP"); - LOGGER.info("MINECRAFT NAME >> {}", Minecraft.getInstance().getUser().getName()); - } - } -} diff --git a/src/main/java/com/example/examplemod/Config.java b/src/main/java/com/skdevstudios/util_rings/Config.java similarity index 98% rename from src/main/java/com/example/examplemod/Config.java rename to src/main/java/com/skdevstudios/util_rings/Config.java index 8c10f5f..4f4d1c4 100644 --- a/src/main/java/com/example/examplemod/Config.java +++ b/src/main/java/com/skdevstudios/util_rings/Config.java @@ -1,4 +1,4 @@ -package com.example.examplemod; +package com.skdevstudios.util_rings; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.Item; diff --git a/src/main/java/com/skdevstudios/util_rings/UtilRings.java b/src/main/java/com/skdevstudios/util_rings/UtilRings.java new file mode 100644 index 0000000..782491f --- /dev/null +++ b/src/main/java/com/skdevstudios/util_rings/UtilRings.java @@ -0,0 +1,75 @@ +package com.skdevstudios.util_rings; + +import com.mojang.logging.LogUtils; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Blocks; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; +import org.slf4j.Logger; + +// The value here should match an entry in the META-INF/mods.toml file +@Mod(UtilRings.MODID) +public class UtilRings +{ + // Define mod id in a common place for everything to reference + public static final String MODID = "util_rings"; + // Directly reference a slf4j logger + private static final Logger LOGGER = LogUtils.getLogger(); + // Create a Deferred Register to hold Items which will all be registered under the "examplemod" namespace + public static final DeferredRegister ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, MODID); + // Create a Deferred Register to hold CreativeModeTabs which will all be registered under the "examplemod" namespace + public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID); + // Creates a crafting material item named util_rings:iron_ring + public static final RegistryObject IRON_RING = ITEMS.register("iron_ring", () -> new Item(new Item.Properties().stacksTo(1))); + // Creates a crafting material item named util_rings:volcanic_glass_ring + public static final RegistryObject VOLCANIC_GLASS_RING = ITEMS.register("volcanic_glass_ring", () -> new Item(new Item.Properties().stacksTo(1))); + + // Creates a creative tab with the id "util_rings:rings_tab" for the example item, that is placed after the combat tab + public static final RegistryObject UTIL_RINGS_TAB = CREATIVE_MODE_TABS.register("rings_tab", () -> CreativeModeTab.builder() + .title(Component.translatable("itemGroup.rings_tab")) + .withTabsBefore(CreativeModeTabs.COMBAT) + .icon(() -> IRON_RING.get().getDefaultInstance()) + .displayItems((parameters, output) -> { + output.accept(IRON_RING.get()); + output.accept(VOLCANIC_GLASS_RING.get()); + }) + .build() + ); + + public UtilRings() + { + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + // Register the commonSetup method for modloading + modEventBus.addListener(this::commonSetup); + // Register the Deferred Register to the mod event bus so items get registered + ITEMS.register(modEventBus); + // Register the Deferred Register to the mod event bus so tabs get registered + CREATIVE_MODE_TABS.register(modEventBus); + // Register ourselves for server and other game events we are interested in + MinecraftForge.EVENT_BUS.register(this); + // Register our mod's ForgeConfigSpec so that Forge can create and load the config file for us + ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC); + } + + private void commonSetup(final FMLCommonSetupEvent event) + { + // Some common setup code + LOGGER.info("HELLO FROM COMMON SETUP"); + if (Config.logDirtBlock) + LOGGER.info("DIRT BLOCK >> {}", ForgeRegistries.BLOCKS.getKey(Blocks.DIRT)); + LOGGER.info(Config.magicNumberIntroduction + Config.magicNumber); + Config.items.forEach((item) -> LOGGER.info("ITEM >> {}", item.toString())); + } +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 0dc2be8..b4357de 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -16,7 +16,7 @@ issueTrackerURL="https://github.com/specCon18/Utility_Rings/issues" [[mods]] modId="util_rings" -version="1.20_0.1.0" +version="1.20-1.0.0.0" displayName="Utility Rings" # A URL to query for updates for this mod. See the JSON update specification https://docs.neoforged.net/docs/misc/updatechecker/ updateJSONURL="https://skdevstudios.dev/util_rings/updates.json" @@ -27,19 +27,19 @@ description=''' Adds a set of rings for the curios ring slot that solve small issues in mc ex.) I fucking hate lava in my mines :P ''' # A file name (in the root of the mod JAR) containing a logo for display -# logoFile="examplemod.png" +# logoFile="util_rings.png" showAsResourcePack=false -[[dependencies.examplemod]] +[[dependencies.util_rings]] modId="forge" mandatory=true versionRange="[47,)" ordering="NONE" side="BOTH" -[[dependencies.examplemod]] +[[dependencies.util_rings]] modId="minecraft" mandatory=true -versionRange="[1.20]" +versionRange="[1.20,1.21)" ordering="NONE" side="BOTH" \ No newline at end of file diff --git a/src/main/resources/assets/util_rings/lang/en_us.json b/src/main/resources/assets/util_rings/lang/en_us.json new file mode 100644 index 0000000..fcba141 --- /dev/null +++ b/src/main/resources/assets/util_rings/lang/en_us.json @@ -0,0 +1,5 @@ +{ + "item.util_rings.iron_ring": "Iron Ring", + "item.util_rings.volcanic_glass_ring": "Ring of Volcanic Glass", + "itemGroup.rings_tab": "Utility Rings" +} \ No newline at end of file diff --git a/src/main/resources/assets/util_rings/models/item/iron_ring.json b/src/main/resources/assets/util_rings/models/item/iron_ring.json new file mode 100644 index 0000000..1a0341d --- /dev/null +++ b/src/main/resources/assets/util_rings/models/item/iron_ring.json @@ -0,0 +1,6 @@ +{ + "parent":"minecraft:item/generated", + "textures":{ + "layer0":"util_rings:item/iron_ring" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/util_rings/models/item/volcanic_glass_ring.json b/src/main/resources/assets/util_rings/models/item/volcanic_glass_ring.json new file mode 100644 index 0000000..aa25f6c --- /dev/null +++ b/src/main/resources/assets/util_rings/models/item/volcanic_glass_ring.json @@ -0,0 +1,6 @@ +{ + "parent":"minecraft:item/generated", + "textures":{ + "layer0":"util_rings:item/volcanic_glass_ring" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/util_rings/textures/item/iron_ring.png b/src/main/resources/assets/util_rings/textures/item/iron_ring.png new file mode 100644 index 0000000000000000000000000000000000000000..dea939c60c270d77c6c3e842feb262070e033644 GIT binary patch literal 5382 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/util_rings/textures/item/volcanic_glass_ring.png b/src/main/resources/assets/util_rings/textures/item/volcanic_glass_ring.png new file mode 100644 index 0000000000000000000000000000000000000000..d7a208b46830743192bfefca44bdf07103cbdc64 GIT binary patch literal 1093 zcmV-L1iJf)P)EX>4Tx04R}tkvmAkP!xv$rb?w$9PA+CkfA!YAS&W0tylyLrLEAagUL-_(4-+r zad8w}3l2UOs}3&Cx;nTDg5U$h)x}BCMM^w3DYS_3z~O%U_xy)*&jo~5jj3keB%o@R zkx9nId|_1#ydnr6r5{m=nR+U_n1g40-BT^aU5xkguKP0vm7>W2pGZ8xlDpMOe~grSngp~F;wCi;)tSZ)L+QE ztZ?4qtkxQ=GbevxsHm-ExlTETB$kju8X{ygP(=+EVsvVxn8?t5+`~WW_|xQ)$yEg- z#{%k5Avu2VKlr^{vot;Bb_&IT{ukT+7zYBoK)Y$%-^aGyJ^}pCz?IhZ*IU5cC+W?u z7C8cjwt)7jq-JAHDI;~|?a00006VoOIv05SkF05Z**Fy{aO010qNS#tmY zE+YT{E+YYWr9XB6000McNliru=L!J|6d_v4yn_G$02y>eSad^gZEa<4bO1wgWnpw> zWFU8GbZ8()Nlj2!fese{00JFJL_t(Y$E{UQNZVi>eF>e`f3t#Rw1U*b)*d3%&qD>h z7m5g7+0>IAh0R?Ay@*Oh6!oTpw}Mc-Oa%S#u$&!Os5mn%5zS;pLD+^DQBYB7c5oq@ z@R_#wyCr#i@BMyx@Aq*ivIrrB5LLCpNs=T<634N=+lnQuuXnlJZZ=*JT3P}D?MYQx zLbyUZ428nsaM+BO<#c*;lPyFPDW%jr5gUv6?MME-5(R44s`?xy0O05bfP_dXO_+sf zL_IyRSZ}ZXKAldbHZ}m@AzGh^jYV8jb5@68pdsUZb-f2{#g&okHQ?mp=Z8u^Abz3a zlmh+zLqqYnespJNdwVcwo`i-IMS#*LJmBQ)A-fIm3zG*;Z*=!+BDd^K>O!uXb6uw@@OS^u)bHy2iM7V8;>u}2xBDLG_dkwJ zp^Jq@%!(s#JYZ+%KF>yXKUc@5O{gDC2%t}*P&2WJBavt{7W^}GhGwM>s>WX;m00000 LNkvXXu0mjf;hFD_ literal 0 HcmV?d00001 diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 59c5240..5d304cc 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,8 +1,6 @@ { "pack": { - "description": { - "text": "${mod_id} resources" - }, - "pack_format": ${pack_format_number} + "pack_format": 15, + "description": "util_rings resources" } } diff --git a/updates.json b/updates.json new file mode 100644 index 0000000..28d6a4a --- /dev/null +++ b/updates.json @@ -0,0 +1,10 @@ +{ + "homepage": "https://skdevstudios.com/util_rings/releases/", + "promos": { + "1.20.1-latest": "1.20-1.0.0", + "1.20.1-recommended": "1.20-1.0.0" + }, + "1.20.1": { + "1.20-1.0.0": "Initial Release" + } +} \ No newline at end of file