Jump to content

Recommended Posts

Posted

So I've been porting my Mining Drill mod from ModLoader to Forge due to better networking support which is lacking in ModLoader, and I've heard good things about it in general. (and because all the cool kids are doing it. :P)

 

So currently I have my mod hosted on my GitHub here, and my problem is this: My GUI refuses to work. Due to poor documentation on GUI's (and this was the case with ModLoader as well...) I couldn't find a complete guide to use while porting my GUI from ModLoader to Forge. I've tried using Forge's classes and methods to open in, I've used the @network thing, I've tried using a Packet Handler from IronChest and other mods, I've added a GuiHandler, but it continues to refuse working. I would like to port my mod, but I'm kinda stuck on this issue, as it is the only thing holding me back.

 

Any suggestions or answers are greatly appreciated!

Posted

When porting from ML to forge I found it easier to rewrite :P

In any case have you looked into the forge tutorials on the wiki for GUI's?

 

  Quote

If you guys dont get it.. then well ya.. try harder...

Posted

Yes, I have actually. I followed the tutorial, inserting my existing Container and TileEntity where necessary, and I also included a GuiManager as well, and got it to show up. However, the items didn't sync with the server, and I learned that I needed the @NetworkMod. However, after inserting that, the Gui just flashes open and closed.

 

And the only reason I didn't just rewrite was because it was a relatively simple mod, and it actually interfaced nicely into Forge, except the GUI.

Posted

As it seems that nobody has actually looked at the source to see what I need to improve on, I'll lay down some facts and specify exactly what the issue is:

  • This is a ModLoader mod, ported to Forge. All blocks and items are working.
  • The GUI for BlockDrill.java is not working
  • The GUI is called, but is quickly closed when the server is handed the ContainerDrill instance
  • The GUI, when the server is NOT handed the ContainerDrill (but null instead) will render perfectly (this indicates GuiDrill works), but grabbing items will grab the one to the right of it. It also doesn't save anything at all, since it isn't syncing with the server I presume.

 

Now, what I need to know is what could be causing the server to close the GUI so suddenly after opening, and how can I fix this?

 

EDIT: Got it working! I ended up rewriting my ContainerDrill class based on the wiki's tutorial! However, I'm still having troubles with syncing the inventory. If I try to grab any of the items out of the hopper, it vanishes as if it wasn't changed. But, when a user adds an item, it will stay. What would cause items to vanish when they are set by the mod and not a person?

 

Also, blocks set by my mod reset as well when the chunks are reloaded. Is there a proper way to sync blocks with the server too?

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

    • just rewatched the tutorial and my code is exactly the same as kaupenjoe's.  the item is added into the game but like i said to start it doesnt have a texture or a proper name for whatever reason.
    • yes the name is en_us.json and it is in resources -> assests -> testmod -> lang folders.  i have checked my code and am pretty confident that the code itself is correct.  i even tried loading the project in eclipse and it has the same problems, I think i will just rewatch the whole tutorial and will give an update on the situation.
    • same error, I also tried removing Valkyrian skies as well because I noticed it coming up a lot in the debug log errors
    • Hey man,    i have only been modding Minecraft for a few days but maybe I can help you. First of all make sure to follow every step of Kaupenjoe's tutorial, I found it to been very helpful and complete. The game uses the raw translation key for the item (in your case "item.testmod.alexandrite") if it can't find the correct lang file. Make sure it's name is "en_us.json" and it is saved under "ressources" -> "assets" -> "testmod".
    • whenever I try to get this item to render into the game it appears with the not texture purple and black squares and calls itself by the lang translation file path instead of the name i gave it.   { "item.testmod.alexandrite": "Alexandrite" } this is the lang json file package net.Hurst.testmod.item; import net.Hurst.testmod.TestMod; import net.minecraft.world.item.Item; import net.minecraftforge.eventbus.api.IEventBus; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; public class ModItems { public static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, TestMod.MOD_ID); public static final RegistryObject<Item> ALEXANDRITE = ITEMS.register("alexandrite", () -> new Item(new Item.Properties())); public static void register(IEventBus eventBus){ ITEMS.register(eventBus); } } this is my ModItems.java file package net.Hurst.testmod; import com.mojang.logging.LogUtils; import net.Hurst.testmod.item.ModItems; import net.minecraft.world.item.CreativeModeTabs; 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 org.slf4j.Logger; // The value here should match an entry in the META-INF/mods.toml file @Mod(TestMod.MOD_ID) public class TestMod { public static final String MOD_ID = "testmod"; private static final Logger LOGGER = LogUtils.getLogger(); public TestMod() { IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); modEventBus.addListener(this::commonSetup); ModItems.register(modEventBus); MinecraftForge.EVENT_BUS.register(this); modEventBus.addListener(this::addCreative); ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.SPEC); } private void commonSetup(final FMLCommonSetupEvent event) { } // Add the example block item to the building blocks tab private void addCreative(BuildCreativeModeTabContentsEvent event) { if(event.getTabKey() == CreativeModeTabs.INGREDIENTS){ event.accept(ModItems.ALEXANDRITE); } } // You can use SubscribeEvent and let the Event Bus discover methods to call @SubscribeEvent public void onServerStarting(ServerStartingEvent event) { } // You can use EventBusSubscriber to automatically register all static methods in the class annotated with @SubscribeEvent @Mod.EventBusSubscriber(modid = MOD_ID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public static class ClientModEvents { @SubscribeEvent public static void onClientSetup(FMLClientSetupEvent event) { } } } this is my TestMod.java file { "parent": "minecraft:item/generated", "textures": { "layer0": "testmod:item/generated" } } this is my model file for the item. I am using intellij 2025.1.2 with fdk 1.21 and java 21 I would appreciate the help.
  • Topics

×
×
  • Create New...

Important Information

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