Player-run chest shops for Paper 1.21+. Put a sign on a chest, write [Buy]/[Sell],
an amount and a price, and other players trade with you through it. Money is handled by
Vault, so it works with any economy plugin.
Drop the .jar into your server's plugins/ folder and restart. Requires Paper 1.21+ (Java 21), plus Vault and an economy plugin (e.g. EssentialsX) for trading.
Place a sign on (or on top of) a chest you've stocked:
[Buy] <- or [Sell]
16 <- amount
100 <- price
<- (auto-filled with your name)
- [Buy] — customers buy the chest's item from you (you're selling)
- [Sell] — customers sell the item into your chest (you're buying)
- The traded item is whatever you stock the chest with. Right-click the sign to trade.
Commands: /signshops (help), /signshops reload (signshops.admin).
Permissions: signshops.create (default: all), signshops.admin (op, bypass ownership).
- Vault, the right way. The economy provider is fetched from Bukkit's
ServicesManager(getRegistration(Economy.class)). Vault is asoftdepend, so SignShops loads even without it — it just disables trading and says so, rather than crashing. - All-or-nothing trades. Every transaction pre-checks stock, inventory space, and balance before moving a single item or coin, so a trade can never half-complete.
- Grief protection. Only the owner (or an admin) can break a shop sign or the chest it's mounted on; breaking either cleans up the shop record.
- YAML persistence (
shops.yml) — a deliberately different storage choice from my SQLite plugins, to show I pick the tool that fits the data.
JDK 21 + Maven (resolves VaultAPI from JitPack). mvn clean package → target/signshops-1.0.0.jar.