Описание
# Savs Common Economy
A comprehensive **server-side** economy mod for Fabric. It provides a robust economy system with support for JSON, SQLite, MySQL, and PostgreSQL storage, physical bank notes, player chest shops, and cross-server network synchronization.
## Core Features
* **Database Support**: Start simple with JSON (default), or scale up to SQLite, MySQL, or PostgreSQL.
* **Redis Network Sync**: Built-in support for Redis Pub/Sub. Synchronize balances and transaction notifications across proxy setups and multi-server networks.
* **Common Economy API**: Supports the [Common Economy API](https://github.com/Patbox/common-economy-api), integrating with Universal Shops, Mob Money, and other compliant economy mods.
* **Chest Shops**: Player shops. Create buy and sell chest shops using vanilla signs. Can be made into Admin Shops with infinite stock.
* **Buy & Sell System**: Allow your players to directly trade with the server using `/buy` and `/sell` commands. (Customizable via `worth.json`).
* **Bank Notes**: Players can `/withdraw` their digital balance into physical vanilla paper items to trade or stash away.
## Commands
### Player Commands
* `/bal` or `/balance`: Check your own balance.
* `/bal `: Check another player's balance.
* `/pay `: Pay an amount to another player.
* `/baltop` or `/balancetop`: View the richest players on the server.
* `/withdraw `: Withdraw money as a physical bank note.
* `/worth`: Check the value of the item in your hand.
* `/worth all`: Check the value of all items in your inventory matching the one in your hand.
* `/worth list`: View an organized, colored table of all server buy and sell prices.
* `/worth `: Check the value of a specific item.
* `/buy [amount]`: Purchase items directly from the server.
* `/sell`: Sell the item stack currently in your hand.
* `/sell all`: Sell all identical items in your inventory.
### Shop Commands
* `/shop create sell `: Create a selling shop (sells items TO players).
* `/shop create buy `: Create a buying shop (buys items FROM players).
* `/shop remove`: Enter remove-mode to delete a shop by clicking on its sign.
* `/shop info`: Display information about the shop you are looking at.
* `/shop list`: List all active shops you own.
### Admin Commands (Level 2+ / Configurable)
* `/givemoney `: Add money to a player's account.
* `/takemoney `: Remove money from a player's account.
* `/setmoney `: Set a player's balance to a specific amount.
* `/resetmoney `: Reset a player's balance to the default starting value.
* `/shop admin`: Toggle Admin Shop creation (infinite stock/funds).
* `/ecolog [page]`: Search transaction logs (e.g., `/ecolog * 1 h`).
---
## Configuration Guide
The main configuration file is automatically created at `config/savs-common-economy/config.json`.
From here, you can change the default starting balances, currency symbols, and database details.
```json
{
"defaultBalance": 1000.0,
"currencySymbol": "$",
"symbolBeforeAmount": true,
"enableSellCommands": false,
"enableChestShops": true,
"storage": {
"type": "JSON",
"host": "localhost",
"port": 3306,
"database": "savs_economy",
"user": "root",
"password": "password",
"tablePrefix": "savs_eco_",
"poolSize": 10,
"connectionTimeout": 30000,
"idleTimeout": 600000
},
"redis": {
"enabled": false,
"host": "localhost",
"port": 6379,
"password": "",
"channel": "savs-economy-updates",
"debugLogging": false,
"timeout_ms": 5000,
"client_name": "Savs-Economy-Node"
},
"apiNotificationMode": "ACTION_BAR",
"commandNotificationMode": "CHAT"
}
```
### Config Settings Explained
#### General
* `defaultBalance`: How much money new players start with when they first join.
* `currencySymbol`: The symbol shown next to money amounts (e.g. "$", "€", "Coins").
* `symbolBeforeAmount`: If `true`, output shows `$100`. If `false`, output shows `100$`.
* `enableSellCommands`: Turns the `/worth`, `/buy`, and `/sell` server market on or off.
* `enableChestShops`: Turns the player chest shop sign system on or off.
#### Storage Options
Controls how player balances are saved.
* `storage.type`: Choose how to save player balances. `JSON` is the default and is perfect for standard servers. Change this to `MYSQL` or `POSTGRESQL` if you run a large network.
* `storage.host` / `port` / `database` / `user` / `password`: Fill these in only if you are using `MYSQL` or `POSTGRESQL`.
* `storage.tablePrefix`: The prefix used for the database tables (default `savs_eco_`).
#### Redis Network Sync (Optional)
If you run a multi-server network, turn this on to sync balances between your servers.
* `redis.enabled`: Turn this to `true` to enable sharing balances across servers.
* `redis.host` / `port` / `password`: Your Redis server login details (Port is usually `6379`).
* `redis.channel`: Make sure every server in your network has the EXACT same text here so they can talk to each other.
#### Chat Notifications
Controls how transaction messages appear to players.
Set these to `ACTION_BAR` (shows briefly above the hotbar), `CHAT` (standard chat message), or `NONE`.
* `apiNotificationMode`: Messages triggered automatically by other plugins.
* `commandNotificationMode`: Messages from player commands like `/pay`.
---
## Permissions & OP Levels
The mod supports LuckPerms (Recommended) and the Fabric Permissions API.
If you aren't using a permissions manager, we gracefully fall back to standard Vanilla OP Levels. Open the `config/savs-common-economy/permissions.json` file to easily change what OP level is required for each command. Most standard player commands default to OP level 0 (everyone), while admin commands default to OP level 2.
Here is a list of all current permission nodes you can change in the config:
### Player Command Nodes (Default: Level 0)
* `savscommoneconomy.command.bal`: Access to `/bal` for checking your own balance.
* `savscommoneconomy.command.bal.others`: Access to `/bal ` for checking someone else's balance.
* `savscommoneconomy.command.pay`: Access to `/pay`.
* `savscommoneconomy.command.withdraw`: Access to `/withdraw`.
* `savscommoneconomy.command.baltop`: Access to `/baltop`.
* `savscommoneconomy.command.worth`: Access to `/worth` and `/worth all`.
* `savscommoneconomy.command.sell`: Access to `/sell` and `/sell all`.
* `savscommoneconomy.command.buy`: Access to `/buy`.
### Shop Command Nodes (Default: Level 0)
* `savscommoneconomy.shop.create`: Access to create both buy and sell chest shops.
* `savscommoneconomy.shop.info`: Access to check shop details.
* `savscommoneconomy.shop.list`: Access to see all your active shops.
* `savscommoneconomy.shop.remove`: Access to safely break your own shops.
### Admin Command Nodes (Default: Level 2)
All powerful administrative features are grouped securely under one single node constraint.
* `savscommoneconomy.admin`: Controls access to **all** admin features including `/givemoney`, `/takemoney`, `/setmoney`, `/resetmoney`, `/shop admin`, and `/ecolog`.
## Chest Shops Setup
Chest shops allow players or admins to buy and sell items directly from chests.
**How to create a Shop:**
1. Place any chest container and insert items (if making a `sell` shop).
2. Look precisely at the chest while holding the precise matching item you wish to market.
3. Run `/shop create sell 100` to create a shop that sells items to players for $100 per interaction unit.
4. Or, run `/shop create buy 50` to create a shop that purchases items from players for $50 per interaction unit.
**How to trade with a Shop:**
1. **Right-click** any physical shop sign to begin a transaction.
2. Type in the chat the amount you want to buy or sell (e.g. type `10` or type `all`) and press enter.
3. Receive your items or money.