Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hello guys, I'm using Forge 1.7.10, and the problem has to do with GUI.

 

Well, there are a lot of tutorials I found, but most of them are for older versions, and the ones really to 1.7.10 I can't figure out what really I have to do.

 

GuiScreen? GuiContainer? GuiHandler? ClientProxy? ServerProxy? @NetworkMod? TileEntity?

 

 

Can anyone help me with a example that really works? ><"

 

:(

  • Author

Sorry, but that has nothing to do with my problem.

 

The question is about how to create a GUI (open a inventory or text field when right click on a block). Yes, that's related to BlockContainer, but I already used the method onBlockActivated, I just need now how to create a GUI, the one that uses "Player.openGui(...);" to open it.

 

I think this is all of the relevant classes

 

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/block/BlockPedestal.java#L126-138

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/client/GuiContPedestal.java

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/inventory/ContainerPedestal.java

 

There's also a custom slot class, but that's pretty secondary to making the GUI show up as it is just a filter on what items are valid to be inserted, as well as the TileEntity itself, which isn't needed, but if you want to reference it, its there.

 

If I did forget something though, the whole project is on GitHub.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

You need to handle your Gui, and return a Container object for the server element, and Gui Screen object for the client element.

 

You can define your own Gui ID constants in your mod class, and then use them to test the ID sent to the handler via player.openGui(MOD, GUI_ID).

 

This is the Forge tutorial on the wiki (I've done the Google cache link, because the Wiki was loading really slow for me):

http://webcache.googleusercontent.com/search?q=cache:5hpWm4A2w1MJ:www.minecraftforge.net/wiki/Containers_and_GUIs+&cd=1&hl=en&ct=clnk&gl=ca

  • Author

Thanks, that shows clearly the part about the GuiContainer and BlockContainer, but what about the @SidedProxy?

 

How do I do this? I saw your ClientProxy and CommonProxy, really can't understand what I really need...

the video I posted is the first of a series of 14 and he builds an entire block with complete GUI set up and EXPLAINS everything as he does it

Thanks, that shows clearly the part about the GuiContainer and BlockContainer, but what about the @SidedProxy?

 

How do I do this? I saw your ClientProxy and CommonProxy, really can't understand what I really need...

 

Proxies are not involved in block GUIs.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

  • Author

Sure, but I'm lost, I've tried here.

 

Let's go, what really I need?

 

- On the main I register on NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler()); [OK]

 

- I make a new static variable called instance: @Instance("myModID")public static MainClass instance; [OK]

 

- a Block Container (which will be registered in the game and which I can activate with right button) [OK]

 

- a Class that will Extend to GuiContainer, sure? - There I put a STATIC FINAL int to define it's ID. [OK]

 

- On the Block Container's method called onBlockActivated, I do player.openGui(Main.instance, ID_I_DEFINED, world, x, y, z); [OK]

 

- And now, on GuiHandler, what do I do?

 

 

@Override
public Object getServerGuiElement(int arg0, EntityPlayer arg1, World arg2,
		int arg3, int arg4, int arg5) {

	if(arg0 == GUI.GUI_ID)
	{
		// what now?
	}

	return null;
}

 

return new YourContainer(player.inventory, (TileEntityYourTE) tileEntity); //server

return new YourGuiContainer(player.inventory, (TileEntityYourTE) tileEntity); //client

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

You don't have a class that extends Container

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

  • Author

And what I put on the constructor of this class that extends Container?

YourContainer (InventoryPlayer inventoryPlayer, TileEntityYourTE te)

 

Again, look at this class:

https://github.com/Draco18s/Artifacts/blob/master/main/java/com/draco18s/artifacts/inventory/ContainerPedestal.java

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

  • Author

Finally I got, omg ><''.

 

Followed the sequence and found another example, and got it.

 

Thanks!  ;D

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.