Модуль Market

1.21.9, Paper.

Основная цель модуля - предоставление игрокам возможности арендовать торговые лавки в специальной локации (рынке), размещать в них товары для продажи другим игрокам и улучшать лавки для повышения эффективности торговли.

Основные Компоненты

  • Рыночная Локация: Специальный регион в мире, где размещены лавки. Лавки представляют собой фиксированные позиции (блок).

  • Торговые Лавки: Каждая лавка - это виртуальный магазин, представленный в игре как моделька из ItemsAdder и менюшка. Игрок арендует лавку, размещает товары и устанавливает цены.

  • Аренда Лавок: Игроки могут арендовать свободные лавки за игровую валюту (CoinsEngine и обычные алмазы). Аренда на фиксированный срок с возможностью продления.

  • Продажа товаров: Игроки размещают предметы в лавке, устанавливают цену. Другие игроки покупают товары, деньги перечисляются владельцу.

  • Улучшения Лавок: Игроки могут получать улучшения торговой лавки через разрешения LuckPerms.

Команды

Команда
Описание
Разрешение

/emarket store create <Название>

Создать торговую лавку (для администратора)

expetrade.market.admin.store.create

/emarket store block add <Номер лавки>

Устанавливает блоки на которые нужно кликнуть чтобы открыть меню лавки (для администратора)

expetrade.market.admin.store.blockadd

/emarket store block remove

Отвязывает блок от лавки (для администратора) (нужно смотреть на блок)

expetrade.market.admin.store.blockremove

/emarket store npc create <Номер лавки>

Устанавливает место для спавна NPC-Торговца при покупке улучшения (для администратора)

expetrade.market.admin.store.npccreate

/emarket store npc remove <Номер лавки>

Удаляет место для спавна NPC-Торговца (для администратора)

expetrade.market.admin.store.npcremove

/mystore lease stop

Завершить аренду торговой лавки

expetrade.market.leasestop

/mystore lease extend

Продлить аренду торговой лавки

expetrade.market.leaseextend

/mystore storage

Открыть хранилище торговой лавки

expetrade.market.storage

/mystore buyer storage

Открыть хранилище по скупке товаров торговой лавки

expetrade.market.buyerstorage

/markets или /market list

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

expetrade.market.donate.range

/markets <Предмет> или /market list <Предмет>

Открывает менюшку с торговыми лавками всего сервера в которых продаётся/скупается указанный в команде предмет. Кликнув на лавку, можно открыть менюшку для взаимодействия с лавкой на расстоянии.

expetrade.market.donate.search

/emarket admin sanction <Ник> <Тип санкции> <Время> <Причина>

Наложить санкцию на игрока.

expetrade.market.admin.sanction

/emarket admin tax <Цифра> <Рынок>

Установить налог на продажу товаров (снимается процент у продавца). Если не указан рынок - налог применяется ко всем рынкам.

expetrade.market.admin.tax

Каждая продажа для продавца облагается налогом который устанавливается администратором командой /emarket admin tax <Цифра>.

Увеличивает налоги для определённого игрока на 100%. Если налоги установлены на 0 - то устанавливается налог в 10%.

Команду /emarket можно также вводить как /expemarket и /market

Рыночная локация

Администратор с помощью команды создаёт рынок и назначает ему название (пример: /emarket create spawn). Далее, с помощью тех же команд, он устанавливает позиции для лавок. А именно:

  1. Создаёт торговую лавку - /emarket store create spawn (spawn - название рынка). После создания лавки, ей присваивается уникальный номер.

  2. Устанавливает блоки (нужно на них смотреть), нажимая на которые будет открываться меню лавки - /emarket store block add <Номер лавки>. Таких блоков для одной лавки может быть множество. Удалить (отвязать) блок от лавки можно через команду /emarket store block remove (указывать номер лавки уже не надо, нужно просто посмотреть на блок. Но вообще, мы хотим сделать лавку через модельку ItemsAdder.

  3. Создаёт место для NPC-Торговца (он появится при покупке улучшения "Личный торговец", смотрите ниже) - /emarket store npc create <Номер лавки>. NPC появится на месте, где стоит администратор. К NPC будет применён рандомный скин из определённой папки плагина (например, tradeskins, где скины будут расположены в png-файлах). Имя NPC будет "Продавец", на второй строчке ник игрока-владельца лавки. Удалить NPC может администратор командой /emarket store npc remove <Номер лавки>. NPC появится только если куплено специальное улучшение.

Список плейсхолдеров:

Плейсхолдер
Описание

%expemarket_store_owner_<Номер лавки>%

Отображает владельца торговой лавки с определённым номером.

%expemarket_store_status_<Номер лавки>%

Отображает статус торговой лавки с определённым номером.

%expemarket_store_content_<Номер лавки>%

Отображает количество продаваемых товаров в

лавке с определённым номером.

%expemarket_store_description_<Номер лавки>%

Отображает описание лавки (устанавливается игроком)

Аренда лавки

Игрок подходит к свободной торговой лавке и кликает на неё ПКМ или ЛКМ. Открывается менюшка в которой будет 5 вариантов аренды лавки:

  1. Аренда на 2 часа.

  2. Аренда на 5 часов.

  3. Аренда на 12 часов.

  4. Аренда на 24 часа.

  5. Аренда на 48 часов.

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

Владелец лавки может принудительно завершить аренду торговой лавки заранее, но в таком случае, ему не будет возвращена потраченная на аренду сумма). Команда /mystore lease stop (+ возможность это сделать в менюшке)

Игрок не должен отходить от лавки во время её аренды больше, чем на 30 блоков от неё на срок более 120 секунд (всё настраивается в конфиге). Исключение - улучшение (о них ниже). Если игрок нарушил это правило и отошёл, статус лавки меняется на "заморожена" и игроки не смогут воспользоваться лавкой. При попытке открыть меню лавки им будет отправляться уведомление в чате. Так-же каждые 5 минут продавец будет получать уведомление о том, что лавка заморожена и товары не продаются.

За 1 час, 30 минут, 5 минут, 1 минуту отправляется автоматическое уведомление о том, что срок аренды торговой лавки подходят к концу. Командой /mystore lease extend можно продлить аренду (открывается менюшка как при изначальной аренде). При продлении аренды лавки нельзя превысить временный лимит. У обычных игроков лимит 48 часов. У игроков с привилегией elite (через Luckperms) лимит 100 часов. В конфиге должна быть возможность настроить это и добавить лимит другим привилегиям.

Если аренда истекла - лавка становится свободной, непроданные товары возвращаются владельцу (в специальный склад в который нельзя класть предметы, только забирать). Забрать непроданные товары можно с помощью /mystore storage

Управление лавкой

После того, как игрок арендовал лавку, он может воспользоваться командой /mystore и откроется специальная GUI-менюшка управления. В ней будет доступно несколько разделов:

В этом разделе игрок сможет выставить новый товар, отредактировать и удалить существующий.

Выставляется товар следующим образом: игрок нажимает на кнопку "Добавить товары", после он должен положить в менюшку все предметы которые он хочет выставить на продажу. Далее он подтверждает выбор и его перекидывает на страничку редактирования товара. Там, каждый предмет отображается как отдельный товар. Он должен кликнуть на каждый и настроить цену за одну штуку. После этого, товар появляется на лавке и его можно купить.

Если продавец захочет изменить цену товара или увеличить его количество, то он нажимает на кнопку "Редактировать товары". На страничке отображаются все предметы которые он продаёт. Продавец должен навести на товар и выбрать одно из действий:

  1. ПКМ - изменить цену товара за 1 штуку.

  2. ЛКМ - пополнить количество товара (открывается менюшка и он кладёт туда предметы).

  3. Шифт + ПКМ - убрать товар с продажи (товары переносятся в /mystore storage).

Улучшения лавки

Все улучшения непосредственно покупаются самому игроку. Они автоматически применяются на его лавку. Один игрок может владеть только одной лавкой.

Личный торговец. После покупки этого улучшения, на специальном месте появляется NPC-торговец. Благодаря нему, игрок сможет отходить (и даже выходить с сервера) на неограниченное время от торговой лавки и она будет продолжать функционировать. Единственный момент - игрок должен кормить торговца с помощью хлеба. 1 хлеб = 5 минуты его работы (должно регулироваться в конфиге). Давать хлеб торговцу можно через меню улучшения (если улучшение куплено, нужно просто нажать на иконку этого улучшения и откроется менюшка где можно положить хлеб).

При покупке улучшения игроку выдаётся разрешение Luckperms: expetrade.market.upgrade.trader

Последнее обновление