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

Hi guys,

like the title says I want to open a GUI when you rightclick my mob. I know the methods and so but Player#openGUI does only feature the arguments @Mod, World, int, int, int (I suppose the ints are coordinates) so I don't know what to do here. Second problem is that I want the Inventory in the GUI to be persistant over all worlds and blocks just like the enderchest. Here is what I have so far:

package de.gmx.worldsbegin.entity;

import de.gmx.worldsbegin.MobsterHunterMinedomUnite;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;

public class EntityMHVillager extends EntityLiving{
private String name;

public EntityMHVillager(World par1World) {
	super(par1World);
}

@Override
protected boolean isAIEnabled() {
	return true;
}

@Override
public boolean interact(EntityPlayer player) {
	// I know that I have to do something here... but what?
	return true;
}

@Override
public int getMaxHealth() {
	return 10;
}
}

Not much huh?

There are four ints.

 

@Mod, int, World, x, y, z

 

The second param is the ID of the gui being opened.

 

player.openGui(DragonEconomyBase.instance, YourModBase.MOB_INTERACT_GUI_ID, world, 0, 0, 0);

 

Then you need a gui handler and probably a packet handler too.

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.

Use an EntityInteractEvent handler.  Verify that the mob you just interacted with is the desired mob, then trigger the GUI. You can do so with FMLClientHandler.getClient().openGui(...), or whatever it's actually called.

  • Author

You don't need all that fancy stuff, I found out. I was just a bit stumbled by all the code I found http://www.minecraftforge.net/wiki/Containers_and_GUIs. Then I realized that you use the Container on both, CLIENT and SERVER and I was released from the code-ghosts that haunted me ;D

All works fine. As it is MY mob I just use the method interact and it now works fine. Only thing that does not work yet is placing items inot the GUI. They just get thrown out when I click on the slot but I am very much convinced that I can get it working myself. Thanks for the help

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.