Вопрос Свои Менюшки в самописном плагине.

Версия Minecraft
1.20.X

Тихоня

Пользователь
Сообщения
313
Решения
3
Всем привет! Как сделать менюшку, как в DeluxeMenus, но в своём плагине? Везде искал гайд, но все создают инвентари, а мне нужно через YAML конфиг.
Только не нужно мне кидать готовый исходник плагина и говорить "На, изучай, удачи, пока.". Я хочу получить нормальный ответ здесь.
 
Всем привет! Как сделать менюшку, как в DeluxeMenus, но в своём плагине? Везде искал гайд, но все создают инвентари, а мне нужно через YAML конфиг.
Только не нужно мне кидать готовый исходник плагина и говорить "На, изучай, удачи, пока.". Я хочу получить нормальный ответ здесь.
а как ты хочешь создать меню через yaml-конфиг без deluxemenus? насколько я знаю, этот плагин как раз таки и даёт тебе конструктор для меню.
если ты хочешь сам создавать GUI, то нужно в коде писать класс, каждый интерфейс по отдельности пишется, никаких yml
 
а как ты хочешь создать меню через yaml-конфиг без deluxemenus? насколько я знаю, этот плагин как раз таки и даёт тебе конструктор для меню.
если ты хочешь сам создавать GUI, то нужно в коде писать класс, каждый интерфейс по отдельности пишется, никаких yml
Ну у других же плагинов есть YAML менюшки... Плагины на аукцион и на скупщиков и т. д.
 
Ну у других же плагинов есть YAML менюшки... Плагины на аукцион и на скупщиков и т. д.
так это они предусматривают конструкторы у себя в коде по аналогии deluxemenus. нельзя создать менюшку на yml без java-кода, если у тебя нет готового конструктора вроде deluxemenus.
 
Я знаю. Я и спрашиваю как так делать
Это вопрос из разряда "объясните, как сделать Hypixel". Такой плагин за сутки не пишется.
При отсутствии знаний могу лишь посоветовать тебе купить Claude Pro и закинуть в ИИ-шку свой таск. Может он накидает тебе что-то.
 
Такой плагин за сутки не пишется.
Пишется

Тихоня, просто возьми, например, , и собирай Gui и Window из конфига динамически
Читай конфиг сам, с таким форматом, какой ты хочешь
 
Пишется

Тихоня, просто возьми, например, , и собирай Gui и Window из конфига динамически
Читай конфиг сам, с таким форматом, какой ты хочешь
Я имел в виду, что человек без знаний не сможет сесть и написать плагин на динамическое создание GUI в стиле DeluxeMenus. Если я правильно понял запрос автора, то он звучит так: "Хочу создать с нуля свой DeluxeMenus, чтобы создавать GUIшки в конфиге". Из разряда создать свою электростанцию, чтобы отключиться от оператора (грубо говоря).
 
А есть ли смысл с нуля такое делать? Намного проще и быстрее интеграцию написать к тому же BetterGUI, если нужна какая-то супер кастомная логика

Ну или на крайняк взять готовый фреймворк с поддержкой шаблонов, уже меньше работы будет
 
Последнее редактирование:
Я имел в виду, что человек без знаний не сможет сесть и написать плагин на динамическое создание GUI в стиле DeluxeMenus. Если я правильно понял запрос автора, то он звучит так: "Хочу создать с нуля свой DeluxeMenus, чтобы создавать GUIшки в конфиге". Из разряда создать свою электростанцию, чтобы отключиться от оператора (грубо говоря).
Я плагин на аукцион пишу, а там GUI-шки нужны.
 
Я плагин на аукцион пишу, а там GUI-шки нужны.
Не можешь элементарную систему с меню реализовать - не лезь в более сложные темы, хороший аукцион, как высоконагруженная система, требует крепких алгоритмических знаний, знаний многопоточности, работы с базой данных, грамотного кэширования и ещё множества нюансов.
 
Не можешь элементарную систему с меню реализовать - не лезь в более сложные темы, хороший аукцион, как высоконагруженная система, требует крепких алгоритмических знаний, знаний многопоточности, работы с базой данных, грамотного кэширования и ещё множества нюансов.
Так я и нарабатываю опыт
 
И что по твоему мне делать? Шалкера в руке?
Нет! Если ты хочешь быть профессионалом - сначала учи Java, потом пиши плагины для майна. А с учетом того, что ты не знаешь как работает Yaml, я рекомендовал бы вообще сначала начать с изучения ещё более базовых вещей.
 
Всем привет! Как сделать менюшку, как в DeluxeMenus, но в своём плагине? Везде искал гайд, но все создают инвентари, а мне нужно через YAML конфиг.
Только не нужно мне кидать готовый исходник плагина и говорить "На, изучай, удачи, пока.". Я хочу получить нормальный ответ здесь.
Поздновато, но лучше ты мой ответ увидишь поздно, чем не найдешь. Тема такая, самое удобное для меню в конфигах (меню типа CHEST)
это вот такая раскладка - X Y Z X Y Z X Y Z
- X Y Z X Y Z X Y Z
- X Y Z X Y Z X Y Z то есть используешь примерно так
Java:
package su.holyday.events.menu;

import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import su.holyday.api.menu.Menu;
import su.holyday.api.menu.MenuItem;
import su.holyday.api.menu.MenuManager;
import su.holyday.api.menu.builder.MenuBuilder;
import su.holyday.api.util.item.ItemBuilder;
import su.holyday.events.HolyEventsPlugin;
import su.holyday.events.config.menu.EventsMenuConfig;
import su.holyday.events.event.impl.LifeTree;
import su.holyday.events.event.impl.MysticChest;

import java.util.function.Supplier;

// Меню выбора эвента для настройки
public final class EventsMenuBuilder extends MenuBuilder {

    public EventsMenuBuilder(MenuManager menuManager, EventsMenuConfig menuConfig) {
        super(menuManager, menuConfig);
    }

    @Override
    public Menu build(Player player, Supplier<Menu> previously) {
        Menu menu = super.build(player, previously);
        menu.removeOnClose(false);
        menu.onClick(e -> e.setCancelled(true));
        return menu;
    }

    @Override
    protected void handleCustomActions(String action, Player player, Menu menu, Supplier<Menu> previously) {
        switch (action) {
            case "OPEN_MYSTIC_SETTINGS": {
                HolyEventsPlugin.getInstance().getEventSettingsMenuBuilder().build(new MysticChest(), player, () -> this.build(player, previously)).open(player);
                break;
            }
            case "OPEN_TREE_SETTINGS": {
                HolyEventsPlugin.getInstance().getEventSettingsMenuBuilder().build(new LifeTree(), player, () -> this.build(player, previously)).open(player);
                break;
            }
        }
    }
}

в конфиге X, Y, Z это имена из 1 символа, которых в кфг можно сделать сколько угодно, это придумал не я, а просто нарыл в исходниках manydev и дополнил как захотел. Вот как примерно это можно реализовать, прикрепил основные классы (интерфейсы делал я тебе не нужно class MenuImpl implements Menu и т д просто создавай в каждом плагине свой объект MenuManager или же переделай так, чтобы был 1 слушатель на весь плагин - если используешь API, я не особо шарю в архитектуре, но лучше быдто бы свой MenuManager на плагин. Эти классы я в библиотеку вынес. MenuBuilder придумал я чтобы не дублировать код. Вот пример как можно использовать. Классы Config и ItemBuilder и т. д. у тебя уже наверное есть свои, а если нет можешь написать и переделать. Если хочешь, могу показать как делать анимации в меню.
 

Вложения

  • 7 java классов.zip
    7.7 KB · Просмотры: 0
Последнее редактирование:
Назад
Сверху Снизу