Полный Spigot/Paper-плагин для аренды инструментов: прямые аренды, доска объявлений, GUI, отклики, YAML-хранилище и опциональная интеграция с Vault через reflection.
- Java 21
- Paper/Spigot API: проект собран на
paper-api 1.21.11-R0.1-SNAPSHOT. - Если нужен другой API, поменяйте
paper.api.versionвpom.xml.
mvn clean packageГотовый JAR будет в:
target/RentTools-1.0.0.jar
/rent— главное GUI/rent create <цена> <время>— сдать предмет из руки в прямую аренду/rent list— список готовых аренд/rent board— доска объявлений/rent my— мои аренды/объявления/отклики/rent warehouse— склад предметов/rent penalties— штрафы/rent extend <activeId>— продлить аренду, если владелец разрешил/rent blacklist <add|remove> <player>— запретить/разрешить игроку арендовать ваши предметы/rent admin <delete|fine|unfine|warehouse|logs>— админ-инструменты/rent cancel <id>— отменить своё объявление или доступную прямую аренду
Формат времени: 10m, 2h, 3d или число минут.
config.yml— whitelist инструментов, Vault, лимиты, GUIrentals.yml— прямые аренды и активные арендыannouncements.yml— объявленияrequests.yml— отклики игроковpending-deliveries.yml— отложенная выдача предметов оффлайн-игрокамwarehouse.yml— склад игроков для предметов, которые не помещаются в инвентарьpenalties.yml— штрафы за потерю арендованных предметовitem-penalties.yml— базовые цены штрафов за материал и тип инструментаenchant-penalties.yml— цены штрафов за зачарования по уровнямreputation.yml— успешные и потерянные аренды игроковblacklist.yml— чёрные списки владельцевlogs.yml— спорные действия и события аренды
Плагин забирает инструмент при создании аренды/объявления, хранит его в YAML как Base64-байты ItemStack, помечает выданные арендованные предметы служебным PDC-тегом, запрещает выброс и перенос в контейнеры, а при окончании аренды возвращает предмет владельцу. Если у игрока нет места, предмет попадает в /rent warehouse.
По умолчанию валюта — обычная и глубинная алмазная руда (DIAMOND_ORE, DEEPSLATE_DIAMOND_ORE). Материалы меняются в config.yml:
currency:
type: ITEM
item-materials:
- DIAMOND_ORE
- DEEPSLATE_DIAMOND_OREПри смерти арендатора с арендованным предметом предмет удаляется из дропа, аренда закрывается как утерянная, владельцу приходит уведомление о потере предмета, а арендатор получает штраф. Если валюты хватает — штраф списывается сразу и передаётся владельцу; иначе остаётся долгом в /rent penalties.
Штраф за смерть считается как базовая цена предмета из item-penalties.yml + цена зачарований из enchant-penalties.yml. Например, деревянный топор будет дешевле железного/алмазного/незеритового. Поддерживаются tier COPPER, тип SPEAR и MACE, включая WOODEN_SPEAR, COPPER_SWORD, COPPER_PICKAXE и другие Material с такими именами. Оба файла создаются автоматически и их можно настроить вручную.
- Владелец при создании аренды может указать залог (
0, если не нужен) и разрешить/запретить продление. - При нормальном возврате залог возвращается арендатору; при потере предмета залог отдаётся владельцу.
- Игроки с неоплаченными штрафами не могут брать новые аренды, если включён
penalties.block-new-rentals-with-unpaid. - За успешные и потерянные аренды ведётся рейтинг в
reputation.yml. - Владелец может добавить арендатора в чёрный список через
/rent blacklist add <player>. - Перед окончанием аренды отправляются уведомления за 5/1 минуту, 30/15/5 секунд.
- Комиссия сервера настраивается в
commission.enabledиcommission.percent. - Доска объявлений поддерживает конфиг-фильтр
board.default-filter:ALL,ONLINE,SWORDS,PICKAXES,AXES,SHOVELS,HOES,SPEARS,MACES.