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

I am making a mod that causes an action occur, usually a chat message appears, when the player clicked a modded Item a made when clicking the left button.

 

I know how to do an action on the right mouse button, but how does one do it on the left mouse, especially if there might not be a block or entity when ever it clicks.

Last I checked there wasn't any generic left click method in the Item class, but you can subscribe to the ClientTickEvent and check if the GameSettings#keyBindAttack was pressed and your item is held, then call a method. Note that this is all CLIENT side, so if you want to do anything real, you'll need to send a packet to the server and do it there.

 

PlayerInteractEvent may also work, but I don't recall whether there is a LEFT_CLICK_AIR; if there is, you probably still need to send a packet, as I doubt it is called server side.

 

If you plan on having more than one item with this type of interaction, I'd make an interface for it such as ILeftClick with a method #onLeftClick, then you can have one check for that type of Item rather than a bunch of if/else if statements for all the different item types you want to handle.

I am also trying to do stuff on left click, here is what I have:

        @SideOnly(Side.CLIENT)
@SubscribeEvent
public void LeftClick(ClientTickEvent event)
{
	//LogHelper.info("At least I get called");
	if(Minecraft.getMinecraft().gameSettings.keyBindAttack.isPressed())
	{
		LogHelper.info("Attacking");
                }
        }

 

When the first LogHelper is uncommented it spams the log, so I know this method is getting called, but the second LogHelper never gets called. Any idea what I have wrong with this if statement?

Current Project: Armerger 

Planned mods: Light Drafter  | Ore Swords

Looking for help getting a mod off the ground? Coding  | Textures

You need to use #getKeyIsPressed, not #isPressed (at least in 1.8 it was that way). Also, TickEvents have both a Start and an End phase and you only want to choose one of them:

// example shortcut to only handle the start phase (in pseudo-code)
if (event.phase == end) {
  return;
}
rest of code;

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.