Posted March 6, 201510 yr Hello guys, i'm a beginner in Forge Development and i have a problem with using events. Code: @Mod(modid = Test.MODID, version = Test.VERSION) public class Test { public static final String MODID = "Test"; public static final String VERSION = "1.0"; @EventHandler public void init(FMLInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new CommandListener()); //FMLCommonHandler.instance().bus().register(new ExecuteEvent()); } } public class CommandListener { public void onCommand(CommandEvent event) { System.out.println(event.command); } } I don't get the message. What's wrong? Thanks for reading my question. Greetings Daniel
March 6, 201510 yr Author Okay, it works. But it's the wrong event. Which event can i use for getting the command who is a player executing on a server. When i connect to a server and make "/test" the event should be called.
March 6, 201510 yr Author Yes, but then the mod needs to be installed on the server or? But i want to have this command only client-side. I only had modified minecraft directly with mcp before...
March 6, 201510 yr ClientCommandHandler.instance.registerCommand(new YourCommand()); 1.7.10 is no longer supported by forge, you are on your own.
March 6, 201510 yr Author Big thanks. That's working. Now, i only have a permission problem. Maybe i can find the solution with searching .
March 7, 201510 yr Author public int getRequiredPermissionLevel() { return 0; } Fixed my problem. And can i use a event for right clicking with an item? client-side?
March 7, 201510 yr Depends what event are you talking about. There are few (use, interact, mouse click, more...). Most of events are executed on both sides. Some are only on server and some will work only on client (and in most cases send info to server using vanilla packet). What exacly do you need? 1.7.10 is no longer supported by forge, you are on your own.
March 7, 201510 yr Author When i have a item in my hand and right click the event should be called. So mouse click.
March 7, 201510 yr Not really. If you want event to be called for EVERY item: PlayerUseItemEvent This event is separated in sub-phase events, make sure you picked right one. Simply check side for event to be launched on client. If you'd have your OWN items, you can @Override Item#onItemRightClick(...) 1.7.10 is no longer supported by forge, you are on your own.
March 8, 201510 yr Author Okay, but the event doesn't get called. @SubscribeEvent public void onItemUse(PlayerUseItemEvent event) { System.out.println(event.item.getItem()); System.out.println(Item.getIdFromItem(event.item.getItem())); } MinecraftForge.EVENT_BUS.register(new Events()); "This event is separated in sub-phase events, make sure you picked right one." What do you mean with this exactly? Edit: Ah, okay. I understand it now. Edit2: Okay, the event is working when i block with the sword but i need a event which get called when i make right-click with a compass.
March 8, 201510 yr PlayerInteractEvent then. * This event is fired whenever a player interacts in * Minecraft#rightClickMouse(), I used it only once, very long time ago and I remember having problems with certain clicking (the righclick wasnt always calling event). It probably changed now. For certain I know that Client will always get called no matter on what you click since it's called directly from Minecraft#rightClickMouse(). 1.7.10 is no longer supported by forge, you are on your own.
March 8, 201510 yr Author Thanks. Perfectly working . So only one last question: How can i execute a command with forge? I understand how to send chat messages but i don't find something for commands.
March 8, 201510 yr Extend CommandBase or wider implement ICommand. In execute() you write what should happen. getName() is your command. e.g "test" will give you /test. AS for registering: Server: @EventHandler public void serverLoad(FMLServerStartingEvent event) { event.registerServerCommand(new CommandTest()); } and Client: ClientCommandHandler.instance.registerCommand(new CommandTest()); Note: For client registration MUST be done in ClientProxy. Also: server will NEVER receive client commands (they are totally local). EDIT: Note 2: Registering command for server doesn't require you to ALSO register it for client. You do it either for client only, or for Server (which is server+client) 1.7.10 is no longer supported by forge, you are on your own.
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.