Skip to content

Let's Get Started!

sstepan9 edited this page Jun 9, 2026 · 5 revisions

EasyTrading Wiki

Valid for version 06 and verified against build 06.26.01

Navigation

Version Scope

This wiki is written for EasyTrading version 06, based on the actual plugin code in build 06.26.01.

If older wiki pages, screenshots, or text guides say something different, use this page for this version.

What EasyTrading Includes

EasyTrading in this build provides:

  • A server-side player balance.
  • A player market for selling items to other players.
  • A separate Purchasing market mode with purchase orders.
  • A server bank with dynamic prices and daily limits.
  • Direct money transfers between players.
  • A GUI-based direct trade system between two players.
  • Transaction history.
  • Vault economy integration if Vault is installed.

The player balance is shown in a yellow BossBar at the top of the screen and updates about every 3 seconds.

Important Notes About This Build

These details are important because older documentation may be wrong:

  • The bank does not use fixed prices. Prices are dynamic.
  • The market has two modes: Selling and Purchasing.
  • Purchase orders reserve money immediately.
  • Purchase orders can be created only for blocks in this build.
  • /market cancelall removes only sale listings, not purchase orders.
  • There is no full built-in bank rates table inside /market in this build.
  • /market team counts only online members of the scoreboard team.
  • /market add, /market take, and /checkbalance work only for online players.
  • /market take can push balances below zero.
  • easytrading.use exists in plugin.yml, but the code does not enforce it.
  • In the Folia build, direct player-to-player trading is disabled.

Quick Start for Server Admins

Use this setup flow on a new server:

  1. Stop the server.
  2. Put the EasyTrading jar into plugins/.
  3. Install Vault too if you want compatibility with other economy plugins.
  4. Start the server once.
  5. Let the plugin generate its files in plugins/EasyTrading/.
  6. Stop the server again.
  7. Edit market-config.json and bank-config.json.
  8. Start the server.
  9. Test /market, /market limits, and /market balance.
  10. As admin, test /market bankreload and /checkbalance <player>.

Player Guide

For a normal player, EasyTrading has four main systems:

  • Sell items to other players on the market.
  • Create purchase orders for blocks in Purchasing mode.
  • Buy from or sell to the server bank.
  • Send money or trade directly with another player.

Useful beginner commands:

  • /market
  • /market balance
  • /market sell <price>
  • /market sellto <amount>
  • /market buyfrom <resource> <amount>
  • /market limits
  • /market send <player> <amount>
  • /market history

Market: Selling Mode

Open the market with:

/market

By default, this opens Selling mode.

Navigation Row

The bottom row of the GUI contains:

  • Previous page
  • Sort mode
  • Show only your own offers
  • Clear filters
  • Page info
  • Item filter
  • Seller filter
  • Switch between Selling and Purchasing
  • Next page

Selling an Item

Use:

/market sell <price>

Rules:

  • Hold the item in your main hand.
  • The price must be between min_price and max_price.
  • Bank resources cannot be listed with /market sell.
  • You cannot create another sell confirmation if one is already pending.
  • If the item in your hand changes before confirmation, the listing is cancelled.

Buying a Listing

Click any listing in the GUI.

The plugin checks:

  • Your balance
  • Your inventory space

If you click your own listing, the listing is removed and the item is returned to you.

Relisting

Use:

/market relist <id> [newPrice]

This refreshes your listing and can also change the price.

Removing All Your Sale Listings

Use:

/market cancelall

This returns your listed items to your inventory. If there is not enough space, overflow is dropped at your feet.

Listing Fee Logic

Listing fee depends on market-config.json.

Important behavior:

  • If your active sale listing count is below free_listing_slots, fee is 0.
  • After that, base fee starts applying.
  • After soft_listing_cap, progressive fee increases further.
  • Final fee is clamped between fee_min and fee_max.

Important detail:

  • Fee calculation counts only normal sale listings.
  • hard_listing_cap counts both sale listings and purchase orders together.

Market: Purchasing Mode

Open purchase order setup with:

/market pur

or

/market purchase

This is a different market mode where players create purchase orders.

How It Works

The buyer:

  1. Chooses a block.
  2. Chooses an amount.
  3. Enters one total price for the whole order.
  4. Confirms the order.

The money is reserved immediately.

Important Rules

  • Purchase orders are for blocks only.
  • The entered price is the total order price, not a per-item price.
  • Partial fulfillment is not supported.
  • The order is either filled fully or not filled at all.
  • Clicking your own purchase order cancels it and refunds the full reserved amount.

Fulfilling a Purchase Order

Another player can open the market, switch to Purchasing, and click the order.

The plugin checks whether the seller has the full required amount of matching items.

If confirmed:

  • The required items are removed from the seller’s inventory.
  • The seller receives the full reserved payment.
  • The buyer receives the ordered blocks.

If the buyer is offline or has no inventory space:

  • Items are stored in market-deliveries.json
  • The plugin tries to deliver them later

Server Bank

Main commands:

/market sellto <amount>
/market buyfrom <resource> <amount>
/market limits

Default Supported Bank Resources

  • coal
  • redstone
  • lapis
  • copper
  • iron
  • gold
  • diamond
  • emerald
  • netherite

Selling to the Bank

Use:

/market sellto <amount>

Rules:

  • Hold the bank resource in your main hand.
  • The bank must support that item.
  • Daily sell limits apply.
  • Requested amount is automatically reduced if needed based on hand amount or remaining limit.

Buying from the Bank

Use:

/market buyfrom <resource> <amount>

Rules:

  • The resource name must match one of the supported aliases.
  • Daily buy limits apply.
  • The plugin checks your balance.
  • The plugin checks your inventory space.
  • Requested amount may be reduced automatically based on limits, balance, or space.

Dynamic Pricing

Bank prices are dynamic and depend on stock versus target.

Behavior:

  • Selling to the bank increases stock.
  • Buying from the bank decreases stock.
  • Once per day, stock partially recovers toward target.
  • Price movement is limited by max_step_percent.

Tax formulas:

  • Sell price = floor(price * (1 - tax/100))
  • Buy price = ceil(price * (1 + tax/100))

Important Admin Note

This build is designed around the built-in 9 bank resources.

Extending the resource list manually in bank-config.json is not a safe fully supported admin workflow for version 06.

Direct Player Trades

Commands:

/market trade <player>
/market trade accept
/market trade decline

Rules

  • Both players must be online.
  • Trade requests expire after 60 seconds.
  • If both players send requests to each other, trade opens automatically.
  • Each player has 16 item offer slots.
  • Money offer buttons work in steps of 10.
  • If both players confirm, a 3-second countdown starts.
  • Any item or money change resets confirmation.
  • Closing the trade GUI cancels the trade.
  • Death, disconnect, and world change also cancel the trade.
  • In the Folia build, direct trading is disabled.

Money Transfers and Team Balance

Send Money

Use:

/market send <player> <amount>

Rules:

  • The target must be online.
  • Exact player name matching is used.
  • You cannot send money to yourself.
  • You must have enough balance.

Transfers are logged to:

plugins/EasyTrading/logs/easytrading-transfers.log

Team Balance

Use:

/market team
/market team <name>

Important behavior:

  • /market team shows your current scoreboard team balance.
  • /market team <name> requires admin permission.
  • Only online members are counted.

Command Reference

Player Commands

  • /market
  • /market help
  • /market my
  • /market seller <player>
  • /market search <query>
  • /market sell <price>
  • /market pur
  • /market purchase
  • /market relist <id> [price]
  • /market cancelall
  • /market sellto <amount>
  • /market buyfrom <resource> <amount>
  • /market send <player> <amount>
  • /market trade <player>
  • /market trade accept
  • /market trade decline
  • /market team
  • /market history
  • /market limits
  • /market balance
  • /market hide
  • /market show

Admin Commands

  • /market bankreload
  • /market clearlimits
  • /market change <0-100>
  • /market add <player> <amount>
  • /market take <player> <amount>
  • /market team <team>
  • /checkbalance <player>

Configuration Guide

market-config.json

This file controls the player market.

Main keys:

  • free_listing_slots
  • soft_listing_cap
  • hard_listing_cap
  • base_fee_percent
  • progressive_fee_percent
  • fee_min
  • fee_max
  • min_price
  • max_price

Practical meaning:

  • Increase free_listing_slots for a friendlier early market.
  • Increase progressive_fee_percent to punish listing spam.
  • Lower hard_listing_cap to keep the market smaller and cleaner.

bank-config.json

This file controls the bank and also stores the bank’s live economic state.

Global keys:

  • tax_percent
  • price_elasticity
  • min_factor
  • max_factor
  • max_step_percent
  • daily_stock_recovery_percent
  • buy_limit_multiplier
  • last_rebalance_date

Per-resource keys:

  • limit
  • base
  • target
  • min
  • max
  • stock
  • price

Good admin rule:

  • It is safe to tune limit, base, target, min, max, and tax settings carefully.
  • Be more careful when editing stock, price, or last_rebalance_date, because those are part of live state, not just static config.

Data Files and Logs

Main files:

  • economy.json = player balances
  • market.json = sale listings and purchase orders
  • market-config.json = market settings
  • bank-config.json = bank config and live bank state
  • bank-state.json = daily sell/buy counters
  • history.json = transaction history
  • market-notify.json = market version and seen status
  • market-deliveries.json = queued item deliveries
  • logs/easytrading-bank.log = detailed bank operation log
  • logs/easytrading-transfers.log = transfer log

Best practice:

  • Only edit data files while the server is stopped.
  • Otherwise autosave may overwrite your manual changes.

Permissions

Declared in plugin.yml:

  • easytrading.admin
  • easytrading.use

Actually enforced in code:

  • easytrading.admin

So in build 06.26.01:

  • Admin commands require easytrading.admin
  • Normal player commands are not blocked by easytrading.use inside the plugin code

Known Limitations and FAQ

Why can’t players sell diamonds with /market sell?

Because bank resources must be sold through the server bank with /market sellto.

Why did /market cancelall not remove everything?

Because it removes only sale listings, not purchase orders.

Why did money disappear immediately after creating a purchase order?

Because purchase order money is reserved at creation time.

Why can’t another player fulfill only part of a purchase order?

Because this build supports only full fulfillment.

Where can players see all bank prices in one table?

There is no full built-in bank price table GUI in this version.

Why does /market team not include all team members?

Because only online scoreboard team members are counted.

Can easytrading.use be used to block player commands?

Not directly in this version. The plugin code does not enforce it.


EasyTrading Вики

Действительно для версии 06 и проверено по сборке 06.26.01

Навигация

Область версии

Эта вики написана для EasyTrading версии 06, на основе реального кода плагина из сборки 06.26.01.

Если старые страницы вики, скриншоты или текстовые гайды говорят иное, для этой версии используйте именно эту страницу.

Что включает EasyTrading

EasyTrading в этой сборке предоставляет:

  • Серверный баланс игрока.
  • Рынок продажи предметов между игроками.
  • Отдельный режим Purchasing с заявками на покупку.
  • Банк сервера с динамическими ценами и дневными лимитами.
  • Прямые денежные переводы между игроками.
  • GUI-систему прямого обмена между двумя игроками.
  • Историю транзакций.
  • Интеграцию экономики через Vault, если установлен Vault.

Баланс игрока показывается в жёлтом BossBar в верхней части экрана и обновляется примерно каждые 3 секунды.

Важные замечания по этой сборке

Эти детали важны, потому что старая документация может быть неверной:

  • Банк не использует фиксированные цены. Цены динамические.
  • У рынка два режима: Selling и Purchasing.
  • Заявки на покупку сразу резервируют деньги.
  • В этой сборке заявки на покупку можно создавать только для блоков.
  • /market cancelall удаляет только лоты на продажу, но не заявки на покупку.
  • В этой сборке нет полной встроенной таблицы банковских курсов внутри /market.
  • /market team считает только онлайн-участников scoreboard team.
  • /market add, /market take и /checkbalance работают только для онлайн-игроков.
  • /market take может увести баланс ниже нуля.
  • easytrading.use существует в plugin.yml, но код его не проверяет.
  • В Folia-сборке прямой обмен между игроками отключён.

Быстрый старт для администратора

Используйте этот порядок настройки на новом сервере:

  1. Остановите сервер.
  2. Поместите jar EasyTrading в plugins/.
  3. Установите также Vault, если нужна совместимость с другими экономическими плагинами.
  4. Один раз запустите сервер.
  5. Дайте плагину создать файлы в plugins/EasyTrading/.
  6. Снова остановите сервер.
  7. Отредактируйте market-config.json и bank-config.json.
  8. Запустите сервер.
  9. Проверьте /market, /market limits и /market balance.
  10. Под админом проверьте /market bankreload и /checkbalance <player>.

Руководство для игрока

Для обычного игрока в EasyTrading есть четыре основные системы:

  • Продажа предметов другим игрокам на рынке.
  • Создание заявок на покупку блоков в режиме Purchasing.
  • Покупка у банка сервера и продажа банку.
  • Переводы денег и прямой обмен с другими игроками.

Полезные стартовые команды:

  • /market
  • /market balance
  • /market sell <price>
  • /market sellto <amount>
  • /market buyfrom <resource> <amount>
  • /market limits
  • /market send <player> <amount>
  • /market history

Рынок: режим Selling

Откройте рынок командой:

/market

По умолчанию открывается режим Selling.

Нижняя строка навигации

В нижнем ряду GUI находятся:

  • Предыдущая страница
  • Режим сортировки
  • Показать только свои предложения
  • Очистить фильтры
  • Информация о странице
  • Фильтр по предмету
  • Фильтр по продавцу
  • Переключение между Selling и Purchasing
  • Следующая страница

Продажа предмета

Используйте:

/market sell <price>

Правила:

  • Держите предмет в основной руке.
  • Цена должна быть в диапазоне min_pricemax_price.
  • Банковские ресурсы нельзя выставлять через /market sell.
  • Нельзя открыть новое подтверждение продажи, если уже есть незавершённое.
  • Если предмет в руке изменился до подтверждения, листинг отменяется.

Покупка лота

Нажмите на любой лот в GUI.

Плагин проверяет:

  • Ваш баланс
  • Место в инвентаре

Если вы нажимаете на свой собственный лот, он снимается с продажи и предмет возвращается вам.

Обновление лота

Используйте:

/market relist <id> [newPrice]

Это обновляет ваш лот и при необходимости меняет цену.

Снятие всех лотов на продажу

Используйте:

/market cancelall

Эта команда возвращает выставленные предметы в инвентарь. Если места не хватает, остаток дропается у ваших ног.

Логика комиссии за листинг

Комиссия зависит от market-config.json.

Важное поведение:

  • Если количество ваших активных лотов на продажу меньше free_listing_slots, комиссия равна 0.
  • После этого начинает действовать базовая комиссия.
  • После soft_listing_cap прогрессивная комиссия растёт дальше.
  • Итоговая комиссия ограничивается fee_min и fee_max.

Важная деталь:

  • Расчёт комиссии учитывает только обычные лоты на продажу.
  • hard_listing_cap считает вместе и лоты на продажу, и заявки на покупку.

Рынок: режим Purchasing

Откройте создание заявки на покупку командой:

/market pur

или

/market purchase

Это отдельный режим рынка, в котором игроки создают заявки на покупку.

Как это работает

Покупатель:

  1. Выбирает блок.
  2. Выбирает количество.
  3. Вводит одну общую цену за весь заказ.
  4. Подтверждает заказ.

Деньги резервируются сразу.

Важные правила

  • Заявки на покупку создаются только для блоков.
  • Вводимая цена является общей ценой заказа, а не ценой за 1 предмет.
  • Частичное исполнение не поддерживается.
  • Заказ либо исполняется полностью, либо не исполняется совсем.
  • Нажатие на собственную заявку отменяет её и возвращает всю зарезервированную сумму.

Исполнение заявки на покупку

Другой игрок может открыть рынок, переключиться в Purchasing и нажать на заказ.

Плагин проверяет, есть ли у продавца весь требуемый объём подходящих предметов.

После подтверждения:

  • Нужные предметы удаляются из инвентаря продавца.
  • Продавец получает всю зарезервированную оплату.
  • Покупатель получает заказанные блоки.

Если покупатель офлайн или у него нет места в инвентаре:

  • Предметы сохраняются в market-deliveries.json
  • Плагин попытается выдать их позже

Банк сервера

Основные команды:

/market sellto <amount>
/market buyfrom <resource> <amount>
/market limits

Банковские ресурсы по умолчанию

  • coal
  • redstone
  • lapis
  • copper
  • iron
  • gold
  • diamond
  • emerald
  • netherite

Продажа банку

Используйте:

/market sellto <amount>

Правила:

  • Держите банковский ресурс в основной руке.
  • Банк должен поддерживать этот предмет.
  • Применяются дневные лимиты продажи.
  • Запрошенное количество при необходимости автоматически уменьшается по количеству в руке или по остатку лимита.

Покупка у банка

Используйте:

/market buyfrom <resource> <amount>

Правила:

  • Имя ресурса должно совпадать с одним из поддерживаемых алиасов.
  • Применяются дневные лимиты покупки.
  • Плагин проверяет ваш баланс.
  • Плагин проверяет свободное место в инвентаре.
  • Запрошенное количество может автоматически уменьшаться из-за лимитов, баланса или места.

Динамические цены

Цены банка динамические и зависят от stock относительно target.

Поведение:

  • Продажа банку увеличивает stock.
  • Покупка у банка уменьшает stock.
  • Раз в день stock частично восстанавливается к target.
  • Изменение цены ограничивается max_step_percent.

Формулы налога:

  • Цена продажи банку = floor(price * (1 - tax/100))
  • Цена покупки у банка = ceil(price * (1 + tax/100))

Важное замечание для администратора

Эта сборка рассчитана на встроенные 9 банковских ресурсов.

Ручное расширение списка ресурсов в bank-config.json не является безопасным полностью поддерживаемым способом настройки для версии 06.

Прямой обмен между игроками

Команды:

/market trade <player>
/market trade accept
/market trade decline

Правила

  • Оба игрока должны быть онлайн.
  • Запросы на обмен истекают через 60 секунд.
  • Если оба игрока отправили запрос друг другу, обмен открывается автоматически.
  • У каждого игрока есть 16 слотов для предложения предметов.
  • Кнопки денежного предложения работают шагом 10.
  • Если оба игрока подтверждают, начинается 3-секундный отсчёт.
  • Любое изменение предметов или денег сбрасывает подтверждение.
  • Закрытие GUI обмена отменяет обмен.
  • Смерть, выход с сервера и смена мира тоже отменяют обмен.
  • В Folia-сборке прямой обмен отключён.

Переводы денег и баланс команды

Отправка денег

Используйте:

/market send <player> <amount>

Правила:

  • Получатель должен быть онлайн.
  • Используется точное совпадение имени игрока.
  • Нельзя отправить деньги самому себе.
  • У вас должно быть достаточно средств.

Переводы записываются в лог:

plugins/EasyTrading/logs/easytrading-transfers.log

Баланс команды

Используйте:

/market team
/market team <name>

Важное поведение:

  • /market team показывает баланс вашей текущей scoreboard team.
  • /market team <name> требует админские права.
  • Считаются только онлайн-участники.

Список команд

Команды игроков

  • /market
  • /market help
  • /market my
  • /market seller <player>
  • /market search <query>
  • /market sell <price>
  • /market pur
  • /market purchase
  • /market relist <id> [price]
  • /market cancelall
  • /market sellto <amount>
  • /market buyfrom <resource> <amount>
  • /market send <player> <amount>
  • /market trade <player>
  • /market trade accept
  • /market trade decline
  • /market team
  • /market history
  • /market limits
  • /market balance
  • /market hide
  • /market show

Команды администратора

  • /market bankreload
  • /market clearlimits
  • /market change <0-100>
  • /market add <player> <amount>
  • /market take <player> <amount>
  • /market team <team>
  • /checkbalance <player>

Руководство по конфигам

market-config.json

Этот файл управляет рынком игроков.

Основные ключи:

  • free_listing_slots
  • soft_listing_cap
  • hard_listing_cap
  • base_fee_percent
  • progressive_fee_percent
  • fee_min
  • fee_max
  • min_price
  • max_price

Практический смысл:

  • Увеличьте free_listing_slots, чтобы сделать стартовый рынок дружелюбнее.
  • Увеличьте progressive_fee_percent, чтобы сильнее наказывать спам лотами.
  • Уменьшите hard_listing_cap, чтобы рынок был компактнее и чище.

bank-config.json

Этот файл управляет банком и одновременно хранит текущее живое состояние банковской экономики.

Глобальные ключи:

  • tax_percent
  • price_elasticity
  • min_factor
  • max_factor
  • max_step_percent
  • daily_stock_recovery_percent
  • buy_limit_multiplier
  • last_rebalance_date

Ключи ресурсов:

  • limit
  • base
  • target
  • min
  • max
  • stock
  • price

Хорошее правило для администратора:

  • Можно аккуратно настраивать limit, base, target, min, max и налоговые параметры.
  • Нужно быть осторожнее при редактировании stock, price и last_rebalance_date, потому что это уже часть живого состояния, а не только статический конфиг.

Файлы данных и логи

Основные файлы:

  • economy.json = балансы игроков
  • market.json = лоты на продажу и заявки на покупку
  • market-config.json = настройки рынка
  • bank-config.json = конфиг банка и текущее состояние банка
  • bank-state.json = дневные счётчики продажи и покупки
  • history.json = история транзакций
  • market-notify.json = версия рынка и статус просмотра
  • market-deliveries.json = очередь выдачи предметов
  • logs/easytrading-bank.log = подробный лог банковских операций
  • logs/easytrading-transfers.log = лог переводов

Лучшая практика:

  • Редактируйте файлы данных только при остановленном сервере.
  • Иначе автосохранение может перезаписать ваши ручные изменения.

Права доступа

В plugin.yml объявлены:

  • easytrading.admin
  • easytrading.use

Реально проверяется в коде:

  • easytrading.admin

Значит, в сборке 06.26.01:

  • Админские команды требуют easytrading.admin
  • Обычные команды игроков внутри кода плагина не блокируются через easytrading.use

Известные ограничения и FAQ

Почему игроки не могут продавать алмазы через /market sell?

Потому что банковские ресурсы должны продаваться через серверный банк с помощью /market sellto.

Почему /market cancelall не удалил всё?

Потому что эта команда удаляет только лоты на продажу, но не заявки на покупку.

Почему деньги сразу исчезли после создания заявки на покупку?

Потому что деньги заявки резервируются в момент её создания.

Почему другой игрок не может исполнить только часть заявки?

Потому что эта сборка поддерживает только полное исполнение.

Где игроки могут увидеть все банковские цены одной таблицей?

В этой версии нет полной встроенной GUI-таблицы банковских цен.

Почему /market team не включает всех участников команды?

Потому что считаются только онлайн-участники scoreboard team.

Можно ли использовать easytrading.use, чтобы запретить команды игрокам?

Не напрямую в этой версии. Код плагина это право не проверяет.

Clone this wiki locally