https://github.com/standardan/signshops
Player-run chest shops via signs with Vault economy, for Paper 1.21+.
https://github.com/standardan/signshops
bukkit economy java minecraft minecraft-plugin paper paper-plugin shop spigot vault
Last synced: 5 days ago
JSON representation
Player-run chest shops via signs with Vault economy, for Paper 1.21+.
- Host: GitHub
- URL: https://github.com/standardan/signshops
- Owner: Standardan
- Created: 2026-05-29T02:21:31.000Z (5 days ago)
- Default Branch: main
- Last Pushed: 2026-05-29T03:06:40.000Z (5 days ago)
- Last Synced: 2026-05-29T04:18:16.458Z (5 days ago)
- Topics: bukkit, economy, java, minecraft, minecraft-plugin, paper, paper-plugin, shop, spigot, vault
- Language: Java
- Size: 9.77 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SignShops
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.
## Download
**[Download the latest release »](https://github.com/Standardan/signshops/releases/latest)**
Drop the `.jar` into your server's `plugins/` folder and restart. Requires Paper 1.21+ (Java 21), plus [Vault](https://www.spigotmc.org/resources/vault.34315/) and an economy plugin (e.g. EssentialsX) for trading.
## Usage
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).
## Design notes
- **Vault, the right way.** The economy provider is fetched from Bukkit's `ServicesManager`
(`getRegistration(Economy.class)`). Vault is a `softdepend`, 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.
## Building
JDK 21 + Maven (resolves VaultAPI from JitPack). `mvn clean package` → `target/signshops-1.0.0.jar`.