SHA256
Create 1.20.1
This commit is contained in:
1 parent
d7c2e58219
commit
0d71122fee
15 files changed
+165
-194
No files matched your search
+25
-4
@@ -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'
|
||||
+5
-3
@@ -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'
|
||||
}
|
||||
}
|
||||
@@ -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<CustomPacketPayload.Type<?>, 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<T extends CustomPacketPayload>(StreamCodec<? extends FriendlyByteBuf, T> reader, IPayloadHandler<T> handler) {
|
||||
}
|
||||
|
||||
public static <T extends CustomPacketPayload> void addNetworkMessage(CustomPacketPayload.Type<T> id, StreamCodec<? extends FriendlyByteBuf, T> reader, IPayloadHandler<T> 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 <T> void addNetworkMessage(Class<T> messageType, BiConsumer<T, FriendlyByteBuf> encoder, Function<FriendlyByteBuf, T> decoder, BiConsumer<T, Supplier<NetworkEvent.Context>> messageConsumer) {
|
||||
PACKET_HANDLER.registerMessage(messageID, messageType, encoder, decoder, messageConsumer);
|
||||
messageID++;
|
||||
}
|
||||
|
||||
private static final Queue<IntObjectPair<Runnable>> workToBeScheduled = new ConcurrentLinkedQueue<>();
|
||||
@@ -83,14 +74,16 @@ public class SharkyLibMod {
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public void tick(ServerTickEvent.Post event) {
|
||||
int currentTick = event.getServer().getTickCount();
|
||||
IntObjectPair<Runnable> 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<Runnable> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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<ItemStack> stacks = NonNullList.withSize(0, ItemStack.EMPTY);
|
||||
private final LazyOptional<? extends IItemHandler>[] 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 <T> LazyOptional<T> getCapability(Capability<T> 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<? extends IItemHandler> handler : handlers)
|
||||
handler.invalidate();
|
||||
}
|
||||
}
|
||||
@@ -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<BlockEntityType<?>> REGISTRY = DeferredRegister.create(BuiltInRegistries.BLOCK_ENTITY_TYPE, SharkyLibMod.MODID);
|
||||
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<SharkBlockEntity>> BLAHAJ = register("blahaj", SharkyLibModBlocks.BLAHAJ, SharkBlockEntity::new);
|
||||
public static final DeferredRegister<BlockEntityType<?>> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, SharkyLibMod.MODID);
|
||||
public static final RegistryObject<BlockEntityType<SharkBlockEntity>> 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 <T extends BlockEntity> DeferredHolder<BlockEntityType<?>, BlockEntityType<T>> register(String registryname, DeferredHolder<Block, Block> block, BlockEntityType.BlockEntitySupplier<T> supplier) {
|
||||
private static <T extends BlockEntity> RegistryObject<BlockEntityType<T>> register(String registryname, RegistryObject<Block> block, BlockEntityType.BlockEntitySupplier<T> 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());
|
||||
}
|
||||
}
|
||||
@@ -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<Block> BLAHAJ;
|
||||
public static final DeferredRegister<Block> REGISTRY = DeferredRegister.create(ForgeRegistries.BLOCKS, SharkyLibMod.MODID);
|
||||
public static final RegistryObject<Block> BLAHAJ;
|
||||
static {
|
||||
BLAHAJ = REGISTRY.register("blahaj", SharkBlock::new);
|
||||
}
|
||||
|
||||
@@ -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<Item> BLAHAJ;
|
||||
public static final DeferredItem<Item> CAVE_KEYS;
|
||||
public static final DeferredRegister<Item> REGISTRY = DeferredRegister.create(ForgeRegistries.ITEMS, SharkyLibMod.MODID);
|
||||
public static final RegistryObject<Item> BLAHAJ;
|
||||
public static final RegistryObject<Item> 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<Item> block(DeferredHolder<Block, Block> block) {
|
||||
private static RegistryObject<Item> block(RegistryObject<Block> block) {
|
||||
return block(block, new Item.Properties());
|
||||
}
|
||||
|
||||
private static DeferredItem<Item> block(DeferredHolder<Block, Block> block, Item.Properties properties) {
|
||||
private static RegistryObject<Item> block(RegistryObject<Block> block, Item.Properties properties) {
|
||||
return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), properties));
|
||||
}
|
||||
}
|
||||
@@ -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<SoundEvent> REGISTRY = DeferredRegister.create(Registries.SOUND_EVENT, SharkyLibMod.MODID);
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> CAVE_KEYS = REGISTRY.register("cave_keys", () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath("sharky_lib", "cave_keys")));
|
||||
public static final DeferredHolder<SoundEvent, SoundEvent> BLOCKY_DAWN = REGISTRY.register("blocky_dawn", () -> SoundEvent.createVariableRangeEvent(ResourceLocation.fromNamespaceAndPath("sharky_lib", "blocky_dawn")));
|
||||
public static final DeferredRegister<SoundEvent> REGISTRY = DeferredRegister.create(ForgeRegistries.SOUND_EVENTS, SharkyLibMod.MODID);
|
||||
public static final RegistryObject<SoundEvent> CAVE_KEYS = REGISTRY.register("cave_keys", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("sharky_lib", "cave_keys")));
|
||||
public static final RegistryObject<SoundEvent> BLOCKY_DAWN = REGISTRY.register("blocky_dawn", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation("sharky_lib", "blocky_dawn")));
|
||||
}
|
||||
@@ -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<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, SharkyLibMod.MODID);
|
||||
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> SHARKY_LIB = REGISTRY.register("sharky_lib",
|
||||
public static final RegistryObject<CreativeModeTab> 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());
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
+3
-14
@@ -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"
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
"sharky_lib:cave_keys"
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
File renamed without changes.
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"pack": {
|
||||
"pack_format": 48,
|
||||
"pack_format": 15,
|
||||
"description": ""
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user