JefTrade
JefTrade — система безопасного обмена между игроками для Minecraft 1.21.8.Плагин предоставляет полноценный GUI для обмена предметами, игровой валютой и опытом. Система использует несколько этапов подтверждения сделки и дополнительные проверки перед завершением транзакции.
Возможности
- Удобный GUI обмена
- Обмен предметами
- Обмен игровой валюты
- Обмен опыта
- Двухэтапное подтверждение сделки
- Countdown перед завершением обмена
- Защита от дюпов
- Защита от изменения предметов после подтверждения
- Автоматический сброс готовности при изменении предложения
- Проверка наличия предметов перед завершением сделки
- Проверка свободного места в инвентаре
- Ограничение расстояния между игроками
- Система налогов
- Журналирование транзакций
- Защита от повторного выполнения транзакций
- Система компенсации при ошибках
- Настраиваемые сообщения
- Настраиваемый GUI
- Discord Webhook
- API для разработчиков
- Асинхронное сохранение данных
Как работает обмен
Игрок отправляет другому игроку запрос:/trade <игрок>
После принятия открывается торговое меню.
Игроки помещают предметы в свои торговые слоты и указывают количество валюты или опыта.
После завершения подготовки используется система подтверждения:
EDITING
↓
READY
↓
CONFIRMING
↓
COMMITTING
↓
COMPLETED
При любом изменении предложения состояние готовности автоматически сбрасывается.
Перед завершением сделки JefTrade повторно проверяет состояние инвентарей и содержимое транзакции.
Защита от дюпов
JefTrade блокирует основные способы манипуляции торговым инвентарём:- Shift-Click
- Drag & Drop
- Double-Click
- Hotbar Swap
- Offhand Swap
- Drop предметов
- Изменение предложения после подтверждения
- Повторное выполнение одной транзакции
- Некорректное перемещение предметов
Экономика
JefTrade поддерживает командный провайдер валюты.Пример конфигурации:
currency:
enabled: true
provider: COMMAND
command:
take:
- "eco take {player} {amount}"
give:
- "eco give {player} {amount}"
Доступные placeholders:
{player}
{uuid}
{amount}
{currency}
Благодаря этому можно подключить различные экономические плагины, предоставляющие команды для снятия и выдачи валюты.
Налоги
Для торговых операций можно установить налог:tax:
enabled: true
default_percent: 5.0
Также поддерживаются отдельные налоговые ставки через permissions:
permissions:
vip:
permission: trademarket.tax.vip
percent: 2.0
admin:
permission: trademarket.tax.admin
percent: 0.0
Обмен опытом
Обмен XP можно включить отдельно:experience:
enabled: true
Игроки могут добавлять опыт в сделку вместе с предметами и валютой.
Команды
Команды игроков
/trade <player>Отправить запрос на обмен.
/trade accept <player>
Принять запрос на обмен.
/trade deny <player>
Отклонить запрос на обмен.
/trade confirm
Подтвердить текущую сделку.
/trade cancel
Отменить текущую сделку.
/trade claim
Проверить доступные компенсации.
Административные команды
/jt helpПоказать список административных команд.
/jt reload
Перезагрузить конфигурацию и сообщения.
Permissions
trademarket.tradetrademarket.admin
trademarket.reload
trademarket.tax.vip
trademarket.tax.admin
trademarket.trade — использование системы обмена.
trademarket.admin — административные функции.
trademarket.reload — перезагрузка конфигурации.
trademarket.tax.vip — использование VIP-ставки налога.
trademarket.tax.admin — использование административной ставки налога.
Конфигурация
Основные параметры:trade:
maximum-distance: 0
timeout-seconds: 180
requests:
expiry-seconds: 30
cooldown-seconds: 5
maximum: 3
anti_scam:
confirmation_delay_seconds: 3
experience:
enabled: false
tax:
enabled: false
default_percent: 5.0
delivery:
overflow: REJECT
API
JefTrade предоставляет API для интеграции с другими плагинами.Основные компоненты:
TradeAPI
TradeSession
TradeAsset
AssetHandler
CurrencyProvider
PropertyProvider
TradeLogStorage
NotificationProvider
TradeEvent
API позволяет создавать собственные типы торговых активов и подключать сторонние системы.
Требования
Minecraft: 1.21.8Ядро: Paper
Java: 21
Установка
- Скачать JefTrade.
- Поместить файл .jar в папку plugins.
- Запустить сервер.
- Настроить конфигурацию.
- При необходимости выполнить: