- Supports version
- 1.17.✘
- 1.18.✘
- 1.19.✘
- 1.20.✘
- 1.21.✘
- Official page
- https://www.spigotmc.org/resources/106529/
- Documentation
- https://plugins.auxilor.io/ecoshop/
- Source code
- https://github.com/Auxilor/EcoShop
Для работы плагина необходим ECO
Описание плагина EcoShop:
EcoShop - это плагин серверного магазина со всеми возможностями, которые только можно пожелать. Поддержка нескольких валют, поддержка пользовательских предметов, поддержка экономики предметов, одноразовая покупка предметов, ограничения на покупку предметов, страничные магазины, несколько магазинов, несколько вариантов покупки - список можно продолжать. Если вы когда-либо хотели получить что-то от плагина для магазина, то EcoShop имеет это.Особенности плагина EcoShop:
EcoShop создает мощные серверные магазины с интуитивным графическим интерфейсом. Создавайте столько магазинов, сколько вам нужно, и как только они открыты, вы просто выбираете категорию, выбираете предмет и количество, никогда не прибегая к громоздким командам. Покупайте и продавайте предметы, несколько стеков, а затем настраивайте каждый аспект меню по своему вкусу.EcoShop - единственный плагин серверного магазина с первоклассной поддержкой нескольких валют. Вы можете использовать стандартную экономику Vault, вторичные валюты от EcoBits, экономики на основе предметов с полной поддержкой пользовательских предметов, уровни опыта и все, что вы можете себе представить. Нет ни одного типа экономики, который не поддерживается, позволяя вам иметь магазины любого типа.
EcoShop позволяет устанавливать динамические цены на основе бесконечного количества заполнителей. Основывайте цены на математических выражениях, рассчитываемых для каждого игрока, и устанавливайте лимиты на покупку как глобально, так и для каждого игрока, позволяя вам иметь предметы с ограниченным запасом или даже имитировать спрос и предложение с ценами, основанными на количестве оставшихся предметов, чтобы создать более реалистичную экономику.
EcoShop позволяет полностью переосмыслить способы монетизации вашего сервера. Все больше серверов переходят к монетизации на основе вторичных валют и магазинов для донатеров в игре, что намного более прибыльно. EcoShop - идеальный способ сделать это, и его уже используют некоторые из самых крупных серверов для увеличения своего дохода, сохраняя при этом интерес игроков.
EcoShop обладает лучшей поддержкой пользовательских предметов среди всех плагинов магазинов, когда-либо созданных. Поддерживаются все плагины в вашем арсенале, включая EcoItems, Oraxen, ItemsAdder, Denizen, EcoArmor, MMOItems, Executable Items и многие другие. И, что еще важнее, вы можете указывать зачарования, имена и любой другой метатег. И, конечно же, вы можете продавать команды, разрешения и все, что вам нужно.
Команды и права плагина EcoShop:
/ecoshop reload - Перезагрузить плагинРазрешение: ecoshop.command.reload
/ecoshop resetbuys - Сбрасывает количество раз, которое игрок купил предмет
Разрешение: ecoshop.command.resetbuys
Общее использование: /ecoshop resetbuys <игрок> <ид>
/sell - Открывает графический интерфейс продажи
Разрешение: ecoshop.command.sell
/sell hand/all/handall - Продает предметы напрямую
Разрешения: ecoshop.command.sell.hand, ecoshop.command.sell.all, ecoshop.command.sell.handall
Другие команды и разрешения
У каждого магазина есть своя команда, которую вы указываете в конфиге, и у них есть разрешение ecoshop.open.<id>, например, /shop будет иметь разрешение ecoshop.open.shop.
Если вы хотите, чтобы покупка/продажа предмета требовала разрешения, то узлами разрешения будут ecoshop.buy.<id> и ecoshop.sell.<id>. По умолчанию это разрешение есть у всех игроков.
Как сделать магазин в EcoShop:
Конфиг по умолчанию в EcoShop
Конфиги по умолчанию можно найти здесь: GitHubКак добавлять магазины EcoShop
EcoShop позволяет вам создавать столько магазинов, сколько вы хотите, и вы создаете каждый из них, создавая новый .yml файл в директории /shops/. Просто добавляйте и удаляйте конфигурации, как вы хотите добавлять и удалять магазины.Пример конфигурации магазина в EcoShop
EcoShop поставляется с примером конфигурации магазина, который все объясняет _example.yml:
# ID магазина - это имя файла .yml,
# например, donator.yml имеет ID donator
# Магазины можно размещать в любом месте в этой папке,
# включая подпапки, если вы хотите организовать конфигурации магазинов
# _example.yml не загружается.
title: Демо-Магазин # Заголовок GUI.
command: demoshop # Команда для открытия магазина.
forwards-arrow: # Стрелка для переключения между страницами. Если на последней странице, она не будет отображаться.
item: arrow name:"&fСледующая страница"
row: 6
column: 6
backwards-arrow: # Стрелка для переключения между страницами. Если на первой странице, она не будет отображаться.
item: arrow name:"&fПредыдущая страница"
row: 6
column: 4
buy-broadcasts: # Опции для оповещений о покупках
enabled: true # Если покупки в этом магазине должны транслироваться на сервер, полезно для /buy меню.
message: "&b&lМагазин Кристаллов&r &8»&r %player%&r&f купил &r%item%&r&fиз магазина &bМагазин Кристаллов ❖&f!" # Используйте %player%, %item%, и %amount%
sound: # Звук оповещения, удалите этот раздел, если вы не хотите звука.
sound: ui_toast_challenge_complete
pitch: 1.5
volume: 2
click-sound: # Звук, воспроизводимый при нажатии на значок в этом магазине, удалите этот раздел, если вы не хотите звука.
sound: block_stone_button_click_on # Звук https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Sound.html
pitch: 1 # Высота тона (0.5 - 2)
volume: 1
buy-sound: # Звук, воспроизводимый при покупке чего-то в этом магазине, удалите этот раздел, если вы не хотите звука.
sound: entity_player_levelup
pitch: 2
volume: 1
sell-sound: # Звук, воспроизводимый при продаже чего-то в этом магазине, удалите этот раздел, если вы не хотите звука.
sound: block_amethyst_block_place
pitch: 1.5
volume: 1
# Магазины могут работать двумя способами.
# Вы можете либо сделать магазин, содержащий список категорий, либо сделать магазин одной
# категорией, на которую вы мгновенно переходите (для магазинов с одной страницей, например, магазин яйца спауна босса)
# Если вы хотите магазин с одной страницей, используйте direct-category для связи его прямо с категорией
# direct-category: example_category
# Если вы хотите обычный магазин, содержащий несколько категорий, используйте эти опции здесь
rows: 3
pages: # Все страницы в GUI предпросмотра. Вы можете добавить столько страниц, сколько хотите.
- page: 1
mask: # Заполнительные предметы для украшения
items: # Добавьте столько предметов, сколько хотите
- gray_stained_glass_pane # Предмет 1
- black_stained_glass_pane # Предмет 2
pattern:
- "222222222"
- "211111112"
- "211000112"
- "211000112"
- "211111112"
- "222222222"
categories: # Где разместить категории в GUI
- id: example # ID категории
row: 3 # Ряд
column: 3 # Колонка
- id: example_2
row: 4
column: 6
# Пользовательские слоты GUI; см. здесь, как это сделать: https://plugins.auxilor.io/all-plugins/custom-gui-slots
custom-slots: [ ]
Как создать категорию EcoShop:
Что такое категория в EcoShop?
Категории - это способ организации магазинов. Предметы продаются/покупаются в категориях, это собственно и есть "магазин". В примере конфига вы видели, как магазины могут быть либо порталом к куче категорий, либо, наоборот, просто прямой ссылкой на категорию.Конфиг по умолчанию в EcoShop
Конфиги по умолчанию можно найти здесь: GitHubКак добавлять категории в EcoShop
Это работает так же, как добавление или удаление магазинов. Просто создайте или удалите .yml-файлы в директории/categories/
, а затем ссылайтесь на них в магазине, в котором вы хотите их разместить.Одна категория может быть в стольких магазинах, сколько вы захотите! EcoShop умный, он знает, в каком магазине вы открыли категорию, поэтому любые звуки / трансляции из магазина, из которого вы пришли, будут работать, даже если 2 магазина имеют одну и ту же категорию.
Пример настройки категории в EcoShop
EcoShop поставляется с примером конфигурации категории, который все объясняет _example.yml:
# ID категории - это имя файла .yml,
# например, trails.yml имеет ID trails
# Категории можно размещать в любом месте в этой папке,
# включая подпапки, если вы хотите организовать конфигурации категорий
# _example.yml не загружается.
item: diamond_sword name:"&fПример Категории" # Предмет, отображаемый в магазине.
lore: [ ] # Лор предмета, отображаемого в магазине.
# permission: ecoshop.category.permission1 # (Необязательно) Разрешение, необходимое для доступа/использования категории.
# Опции для GUI категории.
gui:
rows: 6 # Количество строк (1-6).
title: "Демо Категория" # Заголовок GUI.
# Опции навигации, скрыты, если на первой/последней странице.
forwards-arrow:
item: arrow name:"&fСледующая страница"
row: 6
column: 6
backwards-arrow:
item: arrow name:"&fПредыдущая страница"
row: 6
column: 4
# Добавьте столько страниц, сколько хотите, добавив их в этот список
pages:
- page: 1
mask:
items: # Материал фона
- gray_stained_glass_pane
- black_stained_glass_pane
pattern: # 0 для пустоты, 1 для первого элемента, 2 для второго элемента и так далее
- "222222222"
- "211111112"
- "211111112"
- "211111112"
- "211111112"
- "222222222"
# Пользовательские слоты GUI; см. здесь, как это сделать: https://plugins.auxilor.io/all-plugins/custom-gui-slots
custom-slots: [ ]
- page: 2
mask:
items:
- gray_stained_glass_pane
- black_stained_glass_pane
pattern:
- "222222222"
- "211111112"
- "211111112"
- "211111112"
- "211111112"
- "222222222"
items:
- id: enchanted_diamond # ID предмета, не отображается игрокам.
# Предмет для покупки/продажи. Должен иметь количество один, поэтому 'stone 16' не будет разрешено.
# https://plugins.auxilor.io/all-plugins/the-item-lookup-system
item: ecoitems:enchanted_diamond
# (Необязательно) Пользовательское отображаемое имя, по умолчанию наследуется от предмета GUI.
name: "&b&k!!&r <gradient:#2193b0>Зачарованный Алмаз</gradient:#6dd5ed>&r &b&k!!"
# Опции для покупки предмета, см. здесь:
# https://plugins.auxilor.io/all-plugins/prices
buy:
value: 500 - (%player_rank% * 25)
type: coins
display: "$%value%"
amount: 8 # (Необязательно) Количество быстрой покупки / покупки по умолчанию. По умолчанию 1, если не указано.
max-at-once: 16 # (Необязательно) Максимальное количество, которое можно купить одновременно. По умолчанию бесконечность, если не указано.
buy-message: # (Необязательно) Введите сообщения для отправки игроку при покупке этого конкретного предмета. Все равно будет отправлено 'bought-item/bought-multiple' из lang.yml
- "&6Спасибо за покупку этого конкретного предмета"
# Опции для продажи предмета, см. здесь:
# https://plugins.auxilor.io/all-plugins/prices
sell:
value: 100 + (%player_rank% * 25)
type: coins
display: "$%value%"
require: "%player_rank% > 1" # (Необязательно) Это выражение должно быть истинным, чтобы можно было продать этот предмет.
# Условия, которые должны быть выполнены для продажи этого предмета.
# См. здесь: https://plugins.auxilor.io/effects/configuring-a-condition
conditions: [ ]
sell-command: # (Необязательно) Введите команды, которые должны выполняться при продаже игроком предметов. Вы можете использовать заполнители %player% и %amount%
- "give %player% stone %amount%"
sell-message: # (Необязательно) Введите сообщения для отправки игроку при продаже этого конкретного предмета. Все равно будет отправлено 'sold-item/sold-multiple' из lang.yml
- "&6Спасибо за продажу этого конкретного предмета"
gui:
column: 4 # Как далеко слева направо (1-9).
row: 3 # Как далеко вверх или вниз (1-6).
page: 1 # Страница.
- id: iron_rank
commands: # Команды для выполнения. Вы можете использовать заполнители %player% и %amount%.
- lp user %player% parent set iron
buy:
value: "%ecomc_iron_price%"
type: crystals
display: "&b%value% Кристаллы ❖"
require: "%ecomc_iron_price% >= 0" # (Необязательно) Это выражение должно быть истинным, чтобы можно было купить предмет.
limit: 1 # (Необязательно) Максимальное количество раз, которое каждый игрок может купить этот предмет, по умолчанию бесконечность.
gui:
display: # Этот предмет отображается в GUI. Если вы продаете предмет, это по умолчанию предмет сам по себе.
item: diamond_chestplate
lore:
- "&fКупите &7&lЖЕЛЕЗО&r&f ранг, чтобы получить"
- "&fследующие преимущества:"
- " &8»&f &eПримерный Перк"
column: 5 # Колонка.
row: 3 # Ряд.
page: 2 # Страница.
- id: do_something_cool
# Эффекты при покупке игроком предмета.
# См. здесь: https://plugins.auxilor.io/effects/configuring-an-effect
effects: []
buy:
value: 65
type: crystals
display: "&b%value% Кристаллы ❖"
# Условия, которые должны быть выполнены для покупки этого предмета.
# См. здесь: https://plugins.auxilor.io/effects/configuring-a-condition
conditions: [ ]
gui:
display:
item: nether_star
lore:
- "&fКупите меня, чтобы сделать что-то классное!"
column: 6 # Колонка.
row: 3 # Ряд.
page: 2 # Страница.
- id: valkyrie_egg
item: ecobosses:valkyrie_spawn_egg
buy:
value: 76850
type: coins
display: "&a$%value%"
max-at-once: 1 # Если вы хотите пропустить выбор количества в GUI, установите max-at-once на 1, чтобы щелчок мгновенно купил.
# Вместо того чтобы предмет был доступен для покупки и продажи, вы можете иметь
# два варианта покупки (Покупка - это щелчок левой кнопкой мыши, Альт-Покупка - щелчок правой кнопкой мыши).
# limit / max-at-once и т. д. наследуются от вариантов покупки.
alt-buy:
value: 65
type: crystals
display: "&b%value% Кристаллы ❖"
# Условия, которые должны быть выполнены для покупки этого предмета.
# См. здесь: https://plugins.auxilor.io/effects/configuring-a-condition
conditions: [ ]
gui:
display:
lore: # Вы можете наследовать предмет и просто добавить свой собственный дополнительный лор для отображения дополнительной информации.
- ""
- "&fПримерный Лор"
- ""
bottom-lore: # Вы также можете добавить лор, который будет размещен под другим лором (например, цена, информация о быстрой покупке/продаже и т. д.)
- ""
- "&e&oЛевый клик, чтобы купить за деньги,"
- "&e&oПравый клик, чтобы купить за &bКристаллы ❖&e&o!"
column: 7 # Как далеко слева направо (1-9).
row: 3 # Как далеко вверх или вниз (1-6).
page: 1 # Страница.
show-quick-buy-sell: false # (Необязательно) отключить текст быстрой покупки / продажи.
Как сделать предмет в EcoShop:
Что такое предметы в EcoShop?
Предметы - это все, что можно купить или продать в магазине. Это могут быть реальные предметы или команды, одноразовая покупка, ограниченная покупка, только покупка, только продажа, и то, и другое, их можно купить за 2 разных вида валюты - в общем, вариантов масса.Как сделать один?
Простой предмет купли-продажиНачнем с самого простого предмета - если вы создаете стандартный магазин купли-продажи, то большинство ваших предметов будут выглядеть именно так:
YAML:
id: cooked_mutton
item: cooked_mutton
buy:
type: coins
value: 20
display: $%value%
amount: 32
sell:
type: coins
value: 10
display: $%value%
gui:
column: 4
row: 1
page: 1
Давайте разберем каждый раздел:
id: Это внутренний идентификатор предмета. Игроки его не видят, но важно использовать уникальный ID для каждого предмета во всех ваших магазинах.item (предмет): Это собственно предмет, который мы продаем. Он поддерживает пользовательские предметы, зачарования, пользовательские названия, суммы, рефоржи и так далее - подробнее читайте здесь.
buy (купить): Если вы хотите, чтобы ваш предмет можно было купить, здесь вы указываете цену покупки. Подробнее о ценах читайте здесь, их важно понимать при создании предметов.
buy.amount: Это необязательная функция, в которой вы указываете количество предметов по умолчанию для быстрой покупки, а также количество предметов по умолчанию при открытии меню выбора количества покупки. Вы по-прежнему указываете значение только одного предмета - это просто для того, чтобы задать количество покупок по умолчанию.
sell (продать): Работает так же, как и покупка, только теперь это цена продажи.
gui: Это настройки того, как предмет будет отображаться в категории. Строка - сверху вниз, столбец - слева направо, а страницы не требуют пояснений.
Командные предметы в EcoShop
Иногда вы хотите выполнить команду, когда игрок покупает предмет, вместо того чтобы дать ему реальный предмет (или одновременно с ним). Сейчас на серверах очень распространено использование нескольких валют и перемещение таких вещей, как ранги, во внутриигровые магазины, так что давайте посмотрим, как это можно сделать с помощью EcoShop.Конечно, вы не можете продать команду, так что они предназначены только для покупки.
YAML:
id: iron_rank
command: # Я изменил commands: на command: потому что это не работает с "s"
- lp user %player% parent set iron
buy:
value: "%ecomc_iron_price%"
type: crystals
display: "&b%value% Кристаллы ❖"
require: "%actions_iron_buy_is_met%"
limit: 1
alt-buy:
value: "%ecomc_iron_crystal_price%"
type: crystals
display: "&b%value% Кристаллы ❖"
conditions: [ ]
gui:
display:
item: diamond_chestplate
lore:
- "&fКупите &7&lЖЕЛЕЗО&r&f ранг, чтобы получить"
- "&fследующие преимущества:"
- " &8»&f &eПримерный Перк"
bottom-lore:
- "&e&oЛевый клик, чтобы купить за деньги,"
- "&e&oПравый клик, чтобы купить за &bКристаллы ❖&e&o!"
column: 5 # Колонка.
row: 3 # Ряд.
page: 2 # Страница.
show-quick-buy-sell: false
commands: Это команды, которые будут выполнены, когда игрок покупает предмет. Вы можете использовать заполнители %player% и %amount%.
buy.value: Вы можете использовать заполнители в значениях! Разрешено любое заполнение PlaceholderAPI. И это еще лучше - вы можете также выполнять математические операции. Например, %player_y% * 100 - cos(%player_x%) тоже будет полностью допустимым. Это, конечно, довольно странная цена, но это возможно.
buy.require: Это математическое выражение, которое должно быть выполнено, чтобы разрешить покупку этого предмета. Например, вы можете использовать %player_xp% >= 300.
buy.conditions: Условия, которые должны быть выполнены для покупки этого предмета. Прочтите здесь для получения дополнительной информации!
buy.limit: Максимальное количество раз, которое игрок может купить этот предмет.
alt-buy: Это второй вариант покупки, который можно использовать, щелкнув правой кнопкой мыши по предмету. Допустим, у вас есть двойная валютная система, вы можете сделать, чтобы щелчок левой кнопкой стоил деньги, а щелчок правой кнопкой стоил кристаллы, или вы можете сделать, чтобы щелчок левой кнопкой стоил золотые слитки, а щелчок правой кнопкой - изумруды.
gui.display: Это предмет, который отображается игрокам в магазине. У команд нет автоматического отображения предмета, поэтому его нужно указать. Вы также можете указать пользовательский отображаемый предмет, если продаете предметы, но это не обязательно. Вы также можете необязательно указать лор и нижний лор, где нижний лор отображается под вещами, такими как цена покупки, быстрые опции покупки и т.д.
gui.show-quick-buy-sell: По умолчанию быстрый лор для покупки / продажи отображается на предметах. Если вы не хотите этого для этого предмета, вы можете отключить это здесь.
Предметы с эффектами в EcoShop
Вместо того чтобы использовать только команды, EcoShop также имеет полный доступ к системе эффектов, так что вы можете запускать эффекты, когда игрок покупает предмет, или даже просто поместить сами эффекты в магазин.Как и команды, они не продаются.
YAML:
id: my_effect_item
effects: [ ]
buy:
value: 65
type: crystals
display: "&b%value% Кристаллы ❖"
gui:
display:
item: nether_star
lore:
- "&fКупите меня, чтобы сделать что-то крутое!"
column: 6 # Колонка.
row: 3 # Ряд.
page: 2 # Страница.
show-quick-buy-sell: false
Дополнительные опции
Есть несколько дополнительных опций, которые не показаны в примерах выше. Если вы хотите изучить все возможные варианты, они показаны в категории примеровУстановка плагина EcoShop:
Для работы плагина необходим ECO- Скачайте плагин.
- Выключите сервер
- Переместите файл .jar в папку /plugins/ вашего сервера.
- Запустите сервер.
- Готово.