Skip to content

Quark Shop Guard

Stops Quark's inventory buttons (Insert, Extract, Restock, Sort) from working inside plugin menus such as shops, so they cannot be used to pull items out of a GUI. They still work in real chests.

What it does

  • Quark adds buttons that move or sort many items at once. In a plugin menu (a shop, a vault, any GUI a Bukkit plugin opens) those buttons can take items the plugin never meant to hand out.
  • This mod blocks those bulk actions only in plugin menus. Chests, shulker boxes and other normal containers work exactly as before. Sorting your own inventory always works.
  • A blocked action does nothing. The player gets no message. The server console logs a warning with the action, the menu type, and the player's name and UUID.

Server-side only. Clients install nothing.

How players use it

Players do not interact with this mod. Quark's buttons simply do nothing in shop and plugin menus.

Staff guide

There are no commands. If you suspect someone is trying to exploit a menu, search the console for the warnings this mod writes; each names the player and the action.

Configuration

None.

Data and storage

None.

Troubleshooting

Symptom Cause Fix
Server fails to boot after a Quark update The mod only accepts Quark 4.1-481 or 4.1-488, and its mixins are required Check the new Quark code, update the mixins, and rebuild
Quark buttons blocked in a normal chest Should not happen; only Bukkit-opened menus are blocked Report it with the menu class from the log
Player reports Quark buttons "do nothing" in /shop Working as intended None

Boot line: Quark Shop Guard loaded; bulk inventory actions are blocked in Bukkit plugin menus.

Maintainer notes

  • Two mixins: InventoryTransferHandler.transfer (Insert, Extract, Restock) and SortingHandler.sortInventory (container sorting). Both are required.
  • How a plugin menu is detected: Youer wraps inventories opened through Bukkit's Player#openInventory in org.bukkit.craftbukkit.inventory.CraftContainer. Normal block interaction opens native menus (ChestMenu, ShulkerBoxMenu, mod menus). Only CraftContainer is blocked, on the server, before Quark reads or changes any slot.
  • The Quark dependency is pinned to exactly 4.1-481 or 4.1-488 (488 renamed sortInventory to sortContainer; the mixin targets both) so an update fails at boot instead of silently removing the protection.

Building

./gradlew clean build -Pquark_jar=/absolute/path/to/Quark-4.1-488.jar

Output: build/libs/quarkshopguard-<version>.jar. If this folder has no Gradle wrapper, use another mod's: from the Mods folder run ./trainer-card-balance-hider/gradlew -p quarkshopguard clean build -Pquark_jar=....

Full command, permission and config tables: Reference.