An open API service indexing awesome lists of open source software.

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+.

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`.