Jump to content

MC 1.14.4 - Documentation and examples [Solved]


winnetrie

Recommended Posts

I have so many questions, i do not know where to start. Is there also some documentation for 1.14.x?

Coming from 1.12.2 as i see there is a huge difference and i'm a bit confused how things work now.

No events for preinit, init, and postinit. It seems that you don't need to register itemmodels anymore? Is that correct?

It also looks like you no longer have to register an itemslab for slabs ?

I have some troubles figuring out how to add fluids to the game now and how to setup a config. Config had completely changed i guess?

Also what's the thing with this logger? What does it do and why we need to use it? I'm trying to understand all these new things.

Don't understand me wrong (if you did), i'm not questioning if we should or not, i only want to know why.

 

 

Edited by winnetrie
Link to comment
Share on other sites

1 hour ago, winnetrie said:

Also what's the thing with this logger?

It's a way to log information to the console. But it is appended with information like which mod printed it. It's been there for a while.

 

1 hour ago, winnetrie said:

i do not know where to start. Is there also some documentation for 1.14.x?

Not exactly. There is the update primer and the forge documentation

 

1 hour ago, winnetrie said:

No events for preinit, init, and postinit.

.There are only a few events now. Common Setup, Client Setup, Server Setup, and inter mod communications. You generally only need the first one.

 

1 hour ago, winnetrie said:

It seems that you don't need to register itemmodels anymore? Is that correct?

This is true, it is all automated based on the registry name. Unpack all of your items now, no metadata.
 

1 hour ago, winnetrie said:

It also looks like you no longer have to register an itemslab for slabs ?

Unsure, but probably false.

1 hour ago, winnetrie said:

I have some troubles figuring out how to add fluids

Last I checked not implemented into forge yet.
 

1 hour ago, winnetrie said:

Config had completely changed i guess?

What I've figured out after a little investigation is this.
 

    	Builder builder = new Builder();
    	// Add stuff to config here.
    	ModConfig config = new ModConfig(ModConfig.Type.COMMON, builder.build(), ModList.get().getModContainerById("modid").get());

Do this in the setup event for the matching type.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

7 hours ago, Animefan8888 said:

There are only a few events now. Common Setup, Client Setup, Server Setup, and inter mod communications. You generally only need the first one.

I Looked around at some other modders github pages to get a better understanding how things works. I see them all adding this to their main class:

public static final CommonProxy PROXY = DistExecutor.runForDist(() -> ClientProxy::new, () -> CommonProxy::new);

Then they call on PROXY in the events like FMLCommonSetupEvent

They also have a ClientProxy that extends on a CommonProxy

I'm a bit confused here, because i see no reason to extend the ClientProxy from CommonProxy.

 

Link to comment
Share on other sites

Ok So if i understand it right, i can still register my items and blocks the same way i did in 1.12.2?

How i did that is creating a class (i called it ModRegistry)

@EventBusSubscriber
public class ModRegistry {
		
	@SubscribeEvent
	public static void onItemRegister(RegistryEvent.Register<Item> event) {
		
		System.out.println("Registering all items");
      	event.getRegistry().registerAll(somestuff here...);
    }
  	@SubscribeEvent
	public static void onBlockRegister(RegistryEvent.Register<Block> event) {
    	
        System.out.println("Registering all blocks");
		event.getRegistry().registerAll(somestuff here...);
    }
}

Is that still correct?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hello everyone, I'm making this post to seek help for my modded block, It's a special block called FrozenBlock supposed to take the place of an old block, then after a set amount of ticks, it's supposed to revert its Block State, Entity, data... to the old block like this :  The problem I have is that the system breaks when handling multi blocks (I tried some fix but none of them worked) :  The bug I have identified is that the function "setOldBlockFields" in the item's "setFrozenBlock" function gets called once for the 1st block of multiblock getting frozen (as it should), but gets called a second time BEFORE creating the first FrozenBlock with the data of the 1st block, hence giving the same data to the two FrozenBlock :   Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=head] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@73681674 BlockEntityData : id:"minecraft:bed",x:3,y:-60,z:-6} Old Block Fields set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=3, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} Frozen Block Entity set BlockState : Block{minecraft:black_bed}[facing=east,occupied=false,part=foot] BlockPos{x=2, y=-60, z=-6} BlockEntity : net.minecraft.world.level.block.entity.BedBlockEntity@6d1aa3da BlockEntityData : {id:"minecraft:bed",x:2,y:-60,z:-6} here is the code inside my custom "freeze" item :    @Override     public @NotNull InteractionResult useOn(@NotNull UseOnContext pContext) {         if (!pContext.getLevel().isClientSide() && pContext.getHand() == InteractionHand.MAIN_HAND) {             BlockPos blockPos = pContext.getClickedPos();             BlockPos secondBlockPos = getMultiblockPos(blockPos, pContext.getLevel().getBlockState(blockPos));             if (secondBlockPos != null) {                 createFrozenBlock(pContext, secondBlockPos);             }             createFrozenBlock(pContext, blockPos);             return InteractionResult.SUCCESS;         }         return super.useOn(pContext);     }     public static void createFrozenBlock(UseOnContext pContext, BlockPos blockPos) {         BlockState oldState = pContext.getLevel().getBlockState(blockPos);         BlockEntity oldBlockEntity = oldState.hasBlockEntity() ? pContext.getLevel().getBlockEntity(blockPos) : null;         CompoundTag oldBlockEntityData = oldState.hasBlockEntity() ? oldBlockEntity.serializeNBT() : null;         if (oldBlockEntity != null) {             pContext.getLevel().removeBlockEntity(blockPos);         }         BlockState FrozenBlock = setFrozenBlock(oldState, oldBlockEntity, oldBlockEntityData);         pContext.getLevel().setBlockAndUpdate(blockPos, FrozenBlock);     }     public static BlockState setFrozenBlock(BlockState blockState, @Nullable BlockEntity blockEntity, @Nullable CompoundTag blockEntityData) {         BlockState FrozenBlock = BlockRegister.FROZEN_BLOCK.get().defaultBlockState();         ((FrozenBlock) FrozenBlock.getBlock()).setOldBlockFields(blockState, blockEntity, blockEntityData);         return FrozenBlock;     }  
    • It is an issue with quark - update it to this build: https://www.curseforge.com/minecraft/mc-mods/quark/files/3642325
    • Remove Instant Massive Structures Mod from your server     Add new crash-reports with sites like https://paste.ee/  
    • Update your drivers: https://www.amd.com/en/support/graphics/amd-radeon-r9-series/amd-radeon-r9-200-series/amd-radeon-r9-280x
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.