
Custom Item API
API для создания кастомных блоков и предметов на PaperMC 1.20+. Позволяет добавлять свои предметы и блоки через датапаки или код плагина. Гибкий инструмент для серверных разработчиков.
Custom Item API - это плагин для серверов Minecraft на PaperMC, который даёт возможность создавать собственные блоки и предметы без написания тонны кода. Если вы когда-нибудь хотели добавить на сервер уникальный меч, руду или декоративный блок, но стандартные средства Paper не позволяли этого сделать - этот API для вас. Он работает на версиях 1.20+ и поддерживает два подхода: через датапаки (data-driven) и напрямую через Java-код плагина.
Как использовать?
Блоки и предметы на основе данных (Data driven)
Создание 'пака'
Чтобы создать кастомные предметы и блоки таким способом, нужно сделать 'пак' - структуру папок, похожую на датапак или ресурспак. Выглядит она так:
- <namespace>
- blocks
- default_block
- transparent_block
- items
Namespace вашего пака будет отображаться перед ID предмета в команде give: namespace:item_id.
Добавление предметов
Чтобы добавить предмет, просто создайте JSON-файл и положите его в папку items. Имя файла станет ID предмета.
Добавление блоков
Для блока тоже нужен JSON. Если хотите прозрачный блок - кладите в папку transparent_block. Лучше использовать прозрачный блок как placed_block, иначе может выглядеть странно. Для обычного блока - в default_block. Имя файла станет ID блока. Хорошая практика - делать ID блока и его предмета одинаковыми, но это не обязательно.
Использование 'пака'
Чтобы использовать пак, положите его в папку packs, которая находится в plugins/Custom_Item_Api:
- plugins
- Custom_Item_Api
- packs
Добавление блоков и предметов через плагин
Кастомные предметы
Создаёте новый объект CustomItem(Material material, NamespacedKey key, Class actions). Если предмет с таким NamespacedKey уже существует - новый не создастся. Класс actions должен реализовывать интерфейс CustomItemActions и описывать, что происходит при клике по предмету. Можно менять текстуру, теги и т.д. Если хотите, чтобы предмет ставил кастомный блок, используйте CustomItem#setCustomBlock(NamespacedKey).
Пример:
NamespacedKey itemKey = new NamespacedKey(plugin, "example_item");
CustomItem customItem = new CustomItem(Material.FURNACE, itemKey, Class.forName("org.super_man2006.custom_item_api.utils.items.EmptyCustomItemAction"));
customItem.setCustomBlock(blockKey);
customItem.setName(Component.text("Example"));
Кастомные блоки
Создаёте CustomBlock(Material material, NamespacedKey key, Class actions, Material placedBlock). Действия описывают, что происходит при установке, поломке или клике по блоку (класс должен реализовывать CustomBlockActions). Можно менять текстуру, теги. Важно: блок использует текстуру предмета, а не блока. То есть, если задать custom model data (cmd), можно менять текстуру. Если нужно, чтобы при разрушении выпадал кастомный предмет, используйте CustomBlock#setDropItem(NamespacedKey).
Пример:
NamespacedKey blockKey = new NamespacedKey(plugin, "example_block");
CustomBlock customBlock = new CustomBlock(Material.FURNACE, blockKey, Class.forName("org.super_man2006.custom_item_api.utils.blocks.EmptyCustomBlockAction"), Material.STONE);
customBlock.setRotation(CustomBlock.Rotation.AROUND_Y);
Плагин отлично подходит для серверов, где нужно быстро накидать уникальные предметы без танцев с бубном. Скачайте Custom Item API и создавайте свои блоки и предметы прямо сейчас!
Сервер для плагина Custom Item API - как у профи
Плагин Custom Item API создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином Custom Item API для друзей можно за пару минут - BungeeHost всё уже подготовил.
