From 0d71122fee7e8358ae29d581cf29264dfdef1c3cefd41f97555c2a17319fe178 Mon Sep 17 00:00:00 2001 From: Chillcog Date: Fri, 3 Jul 2026 20:18:03 -0700 Subject: [PATCH] Create 1.20.1 --- build.gradle | 29 +++- settings.gradle | 8 +- .../com/chillcog/sharkylib/SharkyLibMod.java | 83 ++++++------ .../block/entity/SharkBlockEntity.java | 128 ++++++++---------- .../init/SharkyLibModBlockEntities.java | 24 +--- .../sharkylib/init/SharkyLibModBlocks.java | 9 +- .../sharkylib/init/SharkyLibModItems.java | 16 +-- .../sharkylib/init/SharkyLibModSounds.java | 12 +- .../sharkylib/init/SharkyLibModTabs.java | 6 +- .../chillcog/sharkylib/item/CaveKeysItem.java | 11 +- .../{neoforge.mods.toml => mods.toml} | 17 +-- .../minecraft/tags/items/music_discs.json | 6 + .../sharky_lib/jukebox_song/cave_keys.json | 8 -- .../blocks/blahaj.json | 0 src/main/resources/pack.mcmeta | 2 +- 15 files changed, 165 insertions(+), 194 deletions(-) rename src/main/resources/META-INF/{neoforge.mods.toml => mods.toml} (63%) create mode 100644 src/main/resources/data/minecraft/tags/items/music_discs.json delete mode 100644 src/main/resources/data/sharky_lib/jukebox_song/cave_keys.json rename src/main/resources/data/sharky_lib/{loot_table => loot_tables}/blocks/blahaj.json (100%) diff --git a/build.gradle b/build.gradle index bdfb619..7bfbd68 100644 --- a/build.gradle +++ b/build.gradle @@ -1,15 +1,15 @@ plugins { id 'eclipse' - id 'net.neoforged.moddev' version '2.0.141' + id 'net.neoforged.moddev.legacyforge' version '2.0.141' } version = '1.0' base.archivesName = "modid" -java.toolchain.languageVersion = JavaLanguageVersion.of(21) +java.toolchain.languageVersion = JavaLanguageVersion.of(17) -neoForge { - version = "21.1.190" +legacyForge { + version = "1.20.1-47.4.20" runs { client { @@ -43,4 +43,25 @@ tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation } +mixin { + if (file("src/main/resources/sharky_lib.mixins.json").exists()) { + add sourceSets.main, "sharky_lib.refmap.json" + config "sharky_lib.mixins.json" + } +} + +dependencies { + compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:0.5.0")) + implementation(jarJar("io.github.llamalad7:mixinextras-forge:0.5.0")) + annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' +} + +jar { + if (file("src/main/resources/sharky_lib.mixins.json").exists()) { + manifest.attributes([ + "MixinConfigs": "sharky_lib.mixins.json" + ]) + } +} + apply from: 'mcreator.gradle' diff --git a/settings.gradle b/settings.gradle index 920d58f..3d95881 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,11 +1,13 @@ pluginManagement { repositories { - mavenLocal() gradlePluginPortal() - maven { url = 'https://maven.neoforged.net/releases' } + maven { + name = 'MinecraftForge' + url = 'https://maven.minecraftforge.net/' + } } } plugins { id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' -} +} \ No newline at end of file diff --git a/src/main/java/com/chillcog/sharkylib/SharkyLibMod.java b/src/main/java/com/chillcog/sharkylib/SharkyLibMod.java index 893807d..bc578c0 100644 --- a/src/main/java/com/chillcog/sharkylib/SharkyLibMod.java +++ b/src/main/java/com/chillcog/sharkylib/SharkyLibMod.java @@ -3,26 +3,27 @@ package com.chillcog.sharkylib; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import net.neoforged.neoforge.network.registration.PayloadRegistrar; -import net.neoforged.neoforge.network.handling.IPayloadHandler; -import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; -import net.neoforged.neoforge.event.tick.ServerTickEvent; -import net.neoforged.neoforge.common.NeoForge; -import net.neoforged.fml.util.thread.SidedThreadGroups; -import net.neoforged.fml.common.Mod; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.bus.api.IEventBus; +import net.minecraftforge.network.simple.SimpleChannel; +import net.minecraftforge.network.NetworkRegistry; +import net.minecraftforge.network.NetworkEvent; +import net.minecraftforge.fml.util.thread.SidedThreadGroups; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.common.MinecraftForge; import net.minecraft.server.TickTask; -import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.network.codec.StreamCodec; +import net.minecraft.resources.ResourceLocation; import net.minecraft.network.FriendlyByteBuf; +import java.util.function.Supplier; +import java.util.function.Function; +import java.util.function.BiConsumer; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.Queue; import java.util.PriorityQueue; -import java.util.Map; -import java.util.HashMap; import java.util.Comparator; import it.unimi.dsi.fastutil.ints.IntObjectPair; @@ -39,39 +40,29 @@ public class SharkyLibMod { public static final Logger LOGGER = LogManager.getLogger(SharkyLibMod.class); public static final String MODID = "sharky_lib"; - public SharkyLibMod(IEventBus modEventBus) { + public SharkyLibMod(FMLJavaModLoadingContext context) { // Start of user code block mod constructor // End of user code block mod constructor - NeoForge.EVENT_BUS.register(this); - modEventBus.addListener(this::registerNetworking); - SharkyLibModSounds.REGISTRY.register(modEventBus); - SharkyLibModBlocks.REGISTRY.register(modEventBus); - SharkyLibModBlockEntities.REGISTRY.register(modEventBus); - SharkyLibModItems.REGISTRY.register(modEventBus); - SharkyLibModTabs.REGISTRY.register(modEventBus); + MinecraftForge.EVENT_BUS.register(this); + IEventBus bus = context.getModEventBus(); + SharkyLibModSounds.REGISTRY.register(bus); + SharkyLibModBlocks.REGISTRY.register(bus); + SharkyLibModBlockEntities.REGISTRY.register(bus); + SharkyLibModItems.REGISTRY.register(bus); + SharkyLibModTabs.REGISTRY.register(bus); // Start of user code block mod init // End of user code block mod init } // Start of user code block mod methods // End of user code block mod methods - private static boolean networkingRegistered = false; - private static final Map, NetworkMessage> MESSAGES = new HashMap<>(); + private static final String PROTOCOL_VERSION = "1"; + public static final SimpleChannel PACKET_HANDLER = NetworkRegistry.newSimpleChannel(new ResourceLocation(MODID, MODID), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals); + private static int messageID = 0; - private record NetworkMessage(StreamCodec reader, IPayloadHandler handler) { - } - - public static void addNetworkMessage(CustomPacketPayload.Type id, StreamCodec reader, IPayloadHandler handler) { - if (networkingRegistered) - throw new IllegalStateException("Cannot register new network messages after networking has been registered"); - MESSAGES.put(id, new NetworkMessage<>(reader, handler)); - } - - @SuppressWarnings({"rawtypes", "unchecked"}) - private void registerNetworking(final RegisterPayloadHandlersEvent event) { - final PayloadRegistrar registrar = event.registrar(MODID); - MESSAGES.forEach((id, networkMessage) -> registrar.playBidirectional(id, ((NetworkMessage) networkMessage).reader(), ((NetworkMessage) networkMessage).handler())); - networkingRegistered = true; + public static void addNetworkMessage(Class messageType, BiConsumer encoder, Function decoder, BiConsumer> messageConsumer) { + PACKET_HANDLER.registerMessage(messageID, messageType, encoder, decoder, messageConsumer); + messageID++; } private static final Queue> workToBeScheduled = new ConcurrentLinkedQueue<>(); @@ -83,14 +74,16 @@ public class SharkyLibMod { } @SubscribeEvent - public void tick(ServerTickEvent.Post event) { - int currentTick = event.getServer().getTickCount(); - IntObjectPair work; - while ((work = workToBeScheduled.poll()) != null) { - workQueue.add(new TickTask(currentTick + work.leftInt(), work.right())); - } - while (!workQueue.isEmpty() && currentTick >= workQueue.peek().getTick()) { - workQueue.poll().run(); + public void tick(TickEvent.ServerTickEvent event) { + if (event.phase == TickEvent.Phase.END) { + int currentTick = event.getServer().getTickCount(); + IntObjectPair work; + while ((work = workToBeScheduled.poll()) != null) { + workQueue.add(new TickTask(currentTick + work.leftInt(), work.right())); + } + while (!workQueue.isEmpty() && currentTick >= workQueue.peek().getTick()) { + workQueue.poll().run(); + } } } } \ No newline at end of file diff --git a/src/main/java/com/chillcog/sharkylib/block/entity/SharkBlockEntity.java b/src/main/java/com/chillcog/sharkylib/block/entity/SharkBlockEntity.java index 89f8396..023cc91 100644 --- a/src/main/java/com/chillcog/sharkylib/block/entity/SharkBlockEntity.java +++ b/src/main/java/com/chillcog/sharkylib/block/entity/SharkBlockEntity.java @@ -1,22 +1,24 @@ package com.chillcog.sharkylib.block.entity; -import net.neoforged.neoforge.fluids.capability.templates.FluidTank; +import net.minecraftforge.items.wrapper.SidedInvWrapper; +import net.minecraftforge.items.IItemHandler; +import net.minecraftforge.fluids.capability.templates.FluidTank; +import net.minecraftforge.common.util.LazyOptional; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import net.minecraftforge.common.capabilities.Capability; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.entity.RandomizableContainerBlockEntity; import net.minecraft.world.item.ItemStack; import net.minecraft.world.inventory.ChestMenu; import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.WorldlyContainer; import net.minecraft.world.ContainerHelper; -import net.minecraft.world.Container; import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; import net.minecraft.network.chat.Component; import net.minecraft.nbt.CompoundTag; import net.minecraft.core.NonNullList; -import net.minecraft.core.HolderLookup; import net.minecraft.core.Direction; import net.minecraft.core.BlockPos; @@ -28,27 +30,52 @@ import com.chillcog.sharkylib.init.SharkyLibModBlockEntities; public class SharkBlockEntity extends RandomizableContainerBlockEntity implements WorldlyContainer { private NonNullList stacks = NonNullList.withSize(0, ItemStack.EMPTY); + private final LazyOptional[] handlers = SidedInvWrapper.create(this, Direction.values()); public SharkBlockEntity(BlockPos position, BlockState state) { super(SharkyLibModBlockEntities.BLAHAJ.get(), position, state); } @Override - public void loadAdditional(CompoundTag compound, HolderLookup.Provider lookupProvider) { - super.loadAdditional(compound, lookupProvider); + public void load(CompoundTag compound) { + super.load(compound); if (!this.tryLoadLootTable(compound)) this.stacks = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY); - ContainerHelper.loadAllItems(compound, this.stacks, lookupProvider); + ContainerHelper.loadAllItems(compound, this.stacks); if (compound.get("fluidTank") instanceof CompoundTag compoundTag) - fluidTank.readFromNBT(lookupProvider, compoundTag); + fluidTank.readFromNBT(compoundTag); } @Override - public void saveAdditional(CompoundTag compound, HolderLookup.Provider lookupProvider) { - super.saveAdditional(compound, lookupProvider); - if (!this.trySaveLootTable(compound)) - ContainerHelper.saveAllItems(compound, this.stacks, lookupProvider); - compound.put("fluidTank", fluidTank.writeToNBT(lookupProvider, new CompoundTag())); + public void saveAdditional(CompoundTag compound) { + super.saveAdditional(compound); + if (!this.trySaveLootTable(compound)) { + ContainerHelper.saveAllItems(compound, this.stacks); + } + compound.put("fluidTank", fluidTank.writeToNBT(new CompoundTag())); + } + + @Override + public ClientboundBlockEntityDataPacket getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + + @Override + public CompoundTag getUpdateTag() { + return this.saveWithFullMetadata(); + } + + @Override + public int getContainerSize() { + return stacks.size(); + } + + @Override + public boolean isEmpty() { + for (ItemStack itemstack : this.stacks) + if (!itemstack.isEmpty()) + return false; + return true; } @Override @@ -76,65 +103,6 @@ public class SharkBlockEntity extends RandomizableContainerBlockEntity implement this.stacks = stacks; } - @Override - public ClientboundBlockEntityDataPacket getUpdatePacket() { - return ClientboundBlockEntityDataPacket.create(this); - } - - @Override - public CompoundTag getUpdateTag(HolderLookup.Provider lookupProvider) { - return this.saveWithFullMetadata(lookupProvider); - } - - @Override - public int getContainerSize() { - return stacks.size(); - } - - @Override - public boolean isEmpty() { - for (ItemStack stack : this.stacks) - if (!stack.isEmpty()) - return false; - return true; - } - - @Override - public ItemStack getItem(int slot) { - return this.stacks.get(slot); - } - - @Override - public ItemStack removeItem(int slot, int amount) { - ItemStack result = ContainerHelper.removeItem(this.stacks, slot, amount); - if (!result.isEmpty()) - this.setChanged(); - return result; - } - - @Override - public ItemStack removeItemNoUpdate(int slot) { - return ContainerHelper.takeItem(this.stacks, slot); - } - - @Override - public void setItem(int slot, ItemStack stack) { - this.stacks.set(slot, stack); - if (stack.getCount() > this.getMaxStackSize()) - stack.setCount(this.getMaxStackSize()); - this.setChanged(); - } - - @Override - public boolean stillValid(Player player) { - return Container.stillValidBlockEntity(this, player); - } - - @Override - public void clearContent() { - this.stacks.clear(); - } - @Override public boolean canPlaceItem(int index, ItemStack stack) { return true; @@ -164,7 +132,19 @@ public class SharkBlockEntity extends RandomizableContainerBlockEntity implement } }; - public FluidTank getFluidTank() { - return fluidTank; + @Override + public LazyOptional getCapability(Capability capability, @Nullable Direction facing) { + if (!this.remove && facing != null && capability == ForgeCapabilities.ITEM_HANDLER) + return handlers[facing.ordinal()].cast(); + if (!this.remove && capability == ForgeCapabilities.FLUID_HANDLER) + return LazyOptional.of(() -> fluidTank).cast(); + return super.getCapability(capability, facing); + } + + @Override + public void setRemoved() { + super.setRemoved(); + for (LazyOptional handler : handlers) + handler.invalidate(); } } \ No newline at end of file diff --git a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlockEntities.java b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlockEntities.java index cda4175..c751879 100644 --- a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlockEntities.java +++ b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlockEntities.java @@ -3,36 +3,24 @@ */ package com.chillcog.sharkylib.init; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.DeferredHolder; -import net.neoforged.neoforge.items.wrapper.SidedInvWrapper; -import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; -import net.neoforged.neoforge.capabilities.Capabilities; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.bus.api.SubscribeEvent; +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.Block; -import net.minecraft.core.registries.BuiltInRegistries; import com.chillcog.sharkylib.block.entity.SharkBlockEntity; import com.chillcog.sharkylib.SharkyLibMod; -@EventBusSubscriber public class SharkyLibModBlockEntities { - public static final DeferredRegister> REGISTRY = DeferredRegister.create(BuiltInRegistries.BLOCK_ENTITY_TYPE, SharkyLibMod.MODID); - public static final DeferredHolder, BlockEntityType> BLAHAJ = register("blahaj", SharkyLibModBlocks.BLAHAJ, SharkBlockEntity::new); + public static final DeferredRegister> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, SharkyLibMod.MODID); + public static final RegistryObject> BLAHAJ = register("blahaj", SharkyLibModBlocks.BLAHAJ, SharkBlockEntity::new); // Start of user code block custom block entities // End of user code block custom block entities - private static DeferredHolder, BlockEntityType> register(String registryname, DeferredHolder block, BlockEntityType.BlockEntitySupplier supplier) { + private static RegistryObject> register(String registryname, RegistryObject block, BlockEntityType.BlockEntitySupplier supplier) { return REGISTRY.register(registryname, () -> BlockEntityType.Builder.of(supplier, block.get()).build(null)); } - - @SubscribeEvent - public static void registerCapabilities(RegisterCapabilitiesEvent event) { - event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, BLAHAJ.get(), SidedInvWrapper::new); - event.registerBlockEntity(Capabilities.FluidHandler.BLOCK, BLAHAJ.get(), (blockEntity, side) -> blockEntity.getFluidTank()); - } } \ No newline at end of file diff --git a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlocks.java b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlocks.java index cf2d47a..96d9eb7 100644 --- a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlocks.java +++ b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModBlocks.java @@ -3,8 +3,9 @@ */ package com.chillcog.sharkylib.init; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.DeferredBlock; +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; import net.minecraft.world.level.block.Block; @@ -12,8 +13,8 @@ import com.chillcog.sharkylib.block.SharkBlock; import com.chillcog.sharkylib.SharkyLibMod; public class SharkyLibModBlocks { - public static final DeferredRegister.Blocks REGISTRY = DeferredRegister.createBlocks(SharkyLibMod.MODID); - public static final DeferredBlock BLAHAJ; + public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCKS, SharkyLibMod.MODID); + public static final RegistryObject BLAHAJ; static { BLAHAJ = REGISTRY.register("blahaj", SharkBlock::new); } diff --git a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModItems.java b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModItems.java index a03f959..9b8db38 100644 --- a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModItems.java +++ b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModItems.java @@ -3,9 +3,9 @@ */ package com.chillcog.sharkylib.init; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.DeferredItem; -import net.neoforged.neoforge.registries.DeferredHolder; +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; import net.minecraft.world.level.block.Block; import net.minecraft.world.item.Rarity; @@ -16,9 +16,9 @@ import com.chillcog.sharkylib.item.CaveKeysItem; import com.chillcog.sharkylib.SharkyLibMod; public class SharkyLibModItems { - public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(SharkyLibMod.MODID); - public static final DeferredItem BLAHAJ; - public static final DeferredItem CAVE_KEYS; + public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, SharkyLibMod.MODID); + public static final RegistryObject BLAHAJ; + public static final RegistryObject CAVE_KEYS; static { BLAHAJ = block(SharkyLibModBlocks.BLAHAJ, new Item.Properties().rarity(Rarity.EPIC)); CAVE_KEYS = REGISTRY.register("cave_keys", CaveKeysItem::new); @@ -26,11 +26,11 @@ public class SharkyLibModItems { // Start of user code block custom items // End of user code block custom items - private static DeferredItem block(DeferredHolder block) { + private static RegistryObject block(RegistryObject block) { return block(block, new Item.Properties()); } - private static DeferredItem block(DeferredHolder block, Item.Properties properties) { + private static RegistryObject block(RegistryObject block, Item.Properties properties) { return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), properties)); } } \ No newline at end of file diff --git a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModSounds.java b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModSounds.java index b16c524..0bba881 100644 --- a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModSounds.java +++ b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModSounds.java @@ -3,17 +3,17 @@ */ package com.chillcog.sharkylib.init; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.DeferredHolder; +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.DeferredRegister; import net.minecraft.sounds.SoundEvent; import net.minecraft.resources.ResourceLocation; -import net.minecraft.core.registries.Registries; import com.chillcog.sharkylib.SharkyLibMod; public class SharkyLibModSounds { - public static final DeferredRegister REGISTRY = DeferredRegister.create(Registries.SOUND_EVENT, SharkyLibMod.MODID); - public static final DeferredHolder CAVE_KEYS = REGISTRY.register("cave_keys", () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath("sharky_lib", "cave_keys"))); - public static final DeferredHolder BLOCKY_DAWN = REGISTRY.register("blocky_dawn", () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath("sharky_lib", "blocky_dawn"))); + public static final DeferredRegister REGISTRY = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, SharkyLibMod.MODID); + public static final RegistryObject CAVE_KEYS = REGISTRY.register("cave_keys", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("sharky_lib", "cave_keys"))); + public static final RegistryObject BLOCKY_DAWN = REGISTRY.register("blocky_dawn", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("sharky_lib", "blocky_dawn"))); } \ No newline at end of file diff --git a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModTabs.java b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModTabs.java index c801c29..15b1ad9 100644 --- a/src/main/java/com/chillcog/sharkylib/init/SharkyLibModTabs.java +++ b/src/main/java/com/chillcog/sharkylib/init/SharkyLibModTabs.java @@ -3,8 +3,8 @@ */ package com.chillcog.sharkylib.init; -import net.neoforged.neoforge.registries.DeferredRegister; -import net.neoforged.neoforge.registries.DeferredHolder; +import net.minecraftforge.registries.RegistryObject; +import net.minecraftforge.registries.DeferredRegister; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.CreativeModeTab; @@ -15,7 +15,7 @@ import com.chillcog.sharkylib.SharkyLibMod; public class SharkyLibModTabs { public static final DeferredRegister REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, SharkyLibMod.MODID); - public static final DeferredHolder SHARKY_LIB = REGISTRY.register("sharky_lib", + public static final RegistryObject SHARKY_LIB = REGISTRY.register("sharky_lib", () -> CreativeModeTab.builder().title(Component.translatable("item_group.sharky_lib.sharky_lib")).icon(() -> new ItemStack(SharkyLibModBlocks.BLAHAJ.get())).displayItems((parameters, tabData) -> { tabData.accept(SharkyLibModBlocks.BLAHAJ.get().asItem()); tabData.accept(SharkyLibModItems.CAVE_KEYS.get()); diff --git a/src/main/java/com/chillcog/sharkylib/item/CaveKeysItem.java b/src/main/java/com/chillcog/sharkylib/item/CaveKeysItem.java index 4377c0b..7746524 100644 --- a/src/main/java/com/chillcog/sharkylib/item/CaveKeysItem.java +++ b/src/main/java/com/chillcog/sharkylib/item/CaveKeysItem.java @@ -1,15 +1,14 @@ package com.chillcog.sharkylib.item; +import net.minecraftforge.registries.ForgeRegistries; + +import net.minecraft.world.item.RecordItem; import net.minecraft.world.item.Rarity; import net.minecraft.world.item.Item; import net.minecraft.resources.ResourceLocation; -import net.minecraft.resources.ResourceKey; -import net.minecraft.core.registries.Registries; -import com.chillcog.sharkylib.SharkyLibMod; - -public class CaveKeysItem extends Item { +public class CaveKeysItem extends RecordItem { public CaveKeysItem() { - super(new Item.Properties().stacksTo(1).rarity(Rarity.UNCOMMON).jukeboxPlayable(ResourceKey.create(Registries.JUKEBOX_SONG, ResourceLocation.fromNamespaceAndPath(SharkyLibMod.MODID, "cave_keys")))); + super(14, () -> ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation("sharky_lib:cave_keys")), new Item.Properties().stacksTo(1).rarity(Rarity.UNCOMMON), 3680); } } \ No newline at end of file diff --git a/src/main/resources/META-INF/neoforge.mods.toml b/src/main/resources/META-INF/mods.toml similarity index 63% rename from src/main/resources/META-INF/neoforge.mods.toml rename to src/main/resources/META-INF/mods.toml index 31c8a0e..6553430 100644 --- a/src/main/resources/META-INF/neoforge.mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="javafml" -loaderVersion="[4,)" +loaderVersion="[47,)" license="All Rights Reserved" [[mods]] @@ -13,21 +13,10 @@ authors="Kyle Speight" # Start of user code block mod configuration # End of user code block mod configuration - -# Start of user code block custom mixins -# End of user code block custom mixins - -[[dependencies.sharky_lib]] - modId="neoforge" - type="required" - versionRange="[21.1.190,)" - ordering="AFTER" - side="BOTH" - [[dependencies.sharky_lib]] modId="minecraft" - type="required" - versionRange="[1.21.1]" + mandatory=true + versionRange="[1.20.1]" ordering="AFTER" side="BOTH" diff --git a/src/main/resources/data/minecraft/tags/items/music_discs.json b/src/main/resources/data/minecraft/tags/items/music_discs.json new file mode 100644 index 0000000..5c921fd --- /dev/null +++ b/src/main/resources/data/minecraft/tags/items/music_discs.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "sharky_lib:cave_keys" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/sharky_lib/jukebox_song/cave_keys.json b/src/main/resources/data/sharky_lib/jukebox_song/cave_keys.json deleted file mode 100644 index 7392017..0000000 --- a/src/main/resources/data/sharky_lib/jukebox_song/cave_keys.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "comparator_output": 14, - "description": { - "translate": "item.sharky_lib.cave_keys.desc" - }, - "length_in_seconds": 184, - "sound_event": "sharky_lib:cave_keys" -} \ No newline at end of file diff --git a/src/main/resources/data/sharky_lib/loot_table/blocks/blahaj.json b/src/main/resources/data/sharky_lib/loot_tables/blocks/blahaj.json similarity index 100% rename from src/main/resources/data/sharky_lib/loot_table/blocks/blahaj.json rename to src/main/resources/data/sharky_lib/loot_tables/blocks/blahaj.json diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index 3266cee..691ab9e 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,6 +1,6 @@ { "pack": { - "pack_format": 48, + "pack_format": 15, "description": "" } } \ No newline at end of file