Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

BundleBan

A tiny Paper plugin that lets you ban specific items from being placed into bundles, via command.

Commands

Command Permission Description
/bundleban add <item> bundleban.admin Ban an item (Bukkit Material name) from bundles
/bundleban remove <item> bundleban.admin Un-ban an item
/bundleban list bundleban.admin List currently banned items

Alias: /bban. Op'd players have bundleban.admin by default.

Example:

/bundleban add totem_of_undying
/bundleban add elytra
/bundleban list

Banned items are stored in plugins/BundleBan/config.yml under banned-items, so they persist across restarts. The deny message shown to players is also configurable there (supports & color codes and %item%).

How it works

Bundles don't have their own Bukkit API event for "item inserted." Vanilla performs the insert as a special case inside InventoryClickEvent (and its number-key-swap variant), based on whichever item is on the cursor vs. the clicked slot. The plugin's listener (BundleListener) inspects those two items on every click: if exactly one of them is a bundle and the other is on the banned list, it cancels the event and messages the player. This covers the two directions people actually use to fill a bundle:

  • Holding the bundle on your cursor and clicking a banned item in a slot.
  • Holding a banned item on your cursor and clicking a bundle in a slot.
  • Pressing a 1-9 hotbar key to swap a banned hotbar item onto a hovered bundle.

It intentionally leaves shift-clicks and drag events alone, since vanilla doesn't use those to fill bundle contents — they just move whole stacks around inventories.

Building

You need a JDK (21 recommended) and Maven, with network access to Paper's repository (https://repo.papermc.io/repository/maven-public/) so it can fetch paper-api. This sandbox's network allowlist doesn't include that repo, so I wasn't able to compile/test this here — build it locally:

mvn clean package

The compiled jar will be at target/bundleban.jar. Drop it into your server's plugins/ folder and restart (or use a plugin manager that supports hot-loading).

Before building, open pom.xml and bump the paper-api version to match whatever Paper build your server actually runs (it's currently pinned to 1.21.4-R0.1-SNAPSHOT).

License

MIT — see LICENSE.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors