Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prevent number key usage in GPS-related GUIs #4297

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

RaphaelFakhri
Copy link

Description

Resolves #4260

Proposed changes

  1. Added isNumberKey() method to ClickAction class to detect number key usage
  2. Modified MenuListener to pass InventoryClickEvent to ClickAction constructor
  3. Added special handlers to GPS Control Panel, Waypoint Panel, and GEO Scanner GUIs

Related Issues (if applicable)

Resolves #4260

Checklist

  • I have fully tested the proposed changes and promise that they will not break everything into chaos.
  • I have also tested the proposed changes in combination with various popular addons and can confirm my changes do not break them.
  • I have made sure that the proposed changes do not break compatibility across the supported Minecraft versions (1.16.* - 1.20.*).
  • I followed the existing code standards and didn't mess up the formatting.
  • I did my best to add documentation to any public classes or methods I added.
  • I have added Nonnull and Nullable annotations to my methods to indicate their behaviour for null values
  • I added sufficient Unit Tests to cover my code.

Sorry, something went wrong.

1. Added isNumberKey() method to ClickAction class to detect number key usage
2. Modified MenuListener to pass InventoryClickEvent to ClickAction constructor
3. Added special handlers to GPS Control Panel, Waypoint Panel, and GEO Scanner GUIs
4. These changes prevent users from using number keys in GPS GUIs which was causing items to be lost
@RaphaelFakhri RaphaelFakhri requested review from a team as code owners March 5, 2025 19:49
Copy link
Contributor

github-actions bot commented Mar 5, 2025

Pro Tip!
You can help us label your Pull Requests by using the following branch naming convention next time you create a pull request. ❤️

Branch naming convention Label
feature/** 🎈 Feature
fix/** ✨ Fix
chore/** 🧹 Chores
api/** 🔧 API
performance/** 💡 Performance Optimization
compatibility/** 🤝 Compatibility

If your changes do not fall into any of these categories, don't worry. You can just ignore this message in that case! 👀

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to lowercase this library or the project wouldn't build, but it's not related to issue #4260

@TheBusyBiscuit TheBusyBiscuit added the ✨ Fix This Pull Request fixes an issue. label Mar 7, 2025
Copy link
Contributor

github-actions bot commented Mar 7, 2025

Slimefun preview build

A Slimefun preview build is available for testing!
Commit: c850d4e

https://preview-builds.walshy.dev/download/Slimefun/4297/c850d4e6

Note: This is not a supported build and is only here for the purposes of testing.
Do not run this on a live server and do not report bugs anywhere but this PR!

public ClickAction(InventoryClickEvent e) {
this.right = e.isRightClick();
this.shift = e.isShiftClick();
this.numberKey = e.getClick().name().equals("NUMBER_KEY");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are you checking the name instead of just the enum itself?

Copy link
Author

@RaphaelFakhri RaphaelFakhri Mar 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Because comparing an enum to a string always returns false
  2. Because the bukkit API does not have a native isNumberKey() method, which I would have used

Another way of writing this would be this.numberKey = e.getClick() == ClickType.NUMBER_KEY;, I just thought that a string would be more simple

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Fix This Pull Request fixes an issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Items can be put inside GPS Machines
3 participants