HomeJavaModsRy's PlayerOwnedShops
RysPlayerShops


Chest shops for Spigot 1.21+. Players put items in a chest, price them, and other players buy them.

[​IMG]


Requirements


Trading is disabled if Vault or the economy plugin is missing.


Install

  1. Install Vault and an economy plugin.
  2. Put the jar in your plugins folder.
  3. Start the server.
  4. Edit plugins/RysPlayerShops/config.yml and restart.

Config changes need a restart. Reload won't pick them up.


Making a shop

Place a chest, then put a sign on it:

Code (Text):

[shop]
buy
 
Line 2 sets the direction and can be buy, sell, or dual. Leave it blank for buy.

Right-click the sign to open the manage screen. Click "Add stock" to open the chest and drop items in. Then click an item in the manage screen to set its price.

Items without a price don't show up for customers.

You can also use /shop create buy and then click a chest, if you don't want a sign.

Prices

In the pricing screen:


Bundle size is how many items move per trade. The price covers the whole bundle.


Commands

/shop (also /shops, /pshop)

Code (Text):

/shop search {item}         find shops selling or buying something
/shop top                   busiest shops on the server
/shop top profit            ranked by profit instead
/shop menu                  browse the shop you're looking at
/shop manage                manage your shop
/shop list                  list your shops
/shop info                  prices and stock
/shop create {type}         make a shop without a sign
/shop additem {buy price}   list the item you're holding
/shop removeitem {number}   remove a listing
/shop buy {number}          buy without the GUI
/shop sell {number}         sell without the GUI
/shop open                  start trading
/shop close                 stop trading
/shop remove                delete the shop you're looking at
 
additem also takes an optional sell price and bundle size after the buy price. buy and sell take an optional bundle count.

/shopadmin (needs rysplayershops.admin)

Code (Text):

/shopadmin inspect          shop details and ids
/shopadmin setadmin         server shop: infinite stock, minted income
/shopadmin unsetadmin       back to a normal shop
/shopadmin scan             find shops whose chest is gone
/shopadmin repair           delete broken shops (asks twice)
/shopadmin purge {player}   delete a player's shops (asks twice)
/shopadmin diag             shop counts, pending writes, memory
/shopadmin flush            force pending writes to disk
/shopadmin audit            path to the audit log
 
repair only deletes shops it can confirm are broken. Shops in unloaded worlds or chunks are listed but never touched.

Admin actions are logged to plugins/RysPlayerShops/audit.log


Permissions

Code (Text):

rysplayershops.use                trade with shops        (default: everyone)
rysplayershops.create             create shops            (default: everyone)
rysplayershops.search             shop search             (default: everyone)
rysplayershops.teleport           teleport from search    (default: nobody)
rysplayershops.admin              manage any shop         (default: op)
rysplayershops.limit.5            own up to 5 shops
rysplayershops.limit.unlimited    no limit                (default: op)
 
The limit node takes any number. If a player has more than one, the highest applies.


Config

Storage

SQLite is the default and needs no setup. The database file is created in the plugin folder.

For a network, set the storage type to MYSQL and fill in the connection details in config.yml. MySQL needs a driver on the server classpath and hasn't been tested yet, so SQLite is recommended for now.

Shops

Code (Text):

shops:
  default-limit: 3
  min-price: 0.01
  max-price: 1000000.0
  allowed-containers:
    - CHEST
    - TRAPPED_CHEST
    - BARREL
  require-container-ownership: true
  lock-containers: true
 
allowed-containers can be left empty to allow any container.

require-container-ownership means a shop can only go on a chest the player placed. Turn it off and anyone can claim any unowned chest and sell what's inside it.

Note: placements are only recorded once the plugin is installed, so chests that already existed can't be claimed. Players need to break and re-place them.

lock-containers makes right-clicking a shop chest open the shop instead of the chest, including for the owner. Owners restock with the "Add stock" button. Set it to false for normal chest access.

Economy

Code (Text):

economy:
  buy-tax-percent: 0.0
  sell-tax-percent: 0.0
 
Tax comes out of what the owner receives. The price a customer sees is what they pay.

Protection

Code (Text):

protection:
  enabled: true
 
Stops hoppers, explosions and pistons from getting at shop chests and signs.

Displays

Code (Text):

displays:
  enabled: true
  show-text: true
  text-height: 1.6
  text-scale: 0.9
 
Floating shop name above each shop.


Land protection plugins

WorldGuard, Towny, Lands and GriefPrevention work without setup. A shop needs a chest the player placed, so if they can't build there, they can't make a shop.


Placeholders

Needs PlaceholderAPI. All start with rysplayershops_

Code (Text):

shops               shops owned
limit               shop cap
slots_left          shops remaining
listings            priced listings
revenue             money taken in
spending            money paid out
profit              revenue minus spending and tax
tax                 tax paid
transactions        total trades
visitors            unique visitors
balance             player balance
total_shops         shops on the server
 
So the full placeholder for shops owned is %rysplayershops_shops%

Money values are cached and refresh in the background. They show three dots until first loaded.


Common problems

Item doesn't show in the shop.
It has no price for the direction the shop trades. A sign with a blank second line makes a buy shop, so it needs a buy price. The manage screen marks anything customers can't see.

Can't make a shop on a chest.
You didn't place it, or it's older than the plugin. Break and re-place it.

"No economy plugin is available".
Vault or the economy plugin didn't load.

Right-clicking my chest opens a menu.
That's the lock-containers setting. Use "Add stock" or turn it off.

Sign went blank.
The shop was deleted. Place a new sign to make a new one.
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Ry's PlayerOwnedShops is a free Minecraft Java mod. Compatible with Minecraft 1.21. Downloaded 7 times (via Spigot). Download it and open it directly in the game.

Explore more