DreamThemes - Кастомизация всех элементов в игре

Плагин DreamThemes - Кастомизация всех элементов в игре 1.0

Создайте и подтвердите аккаунт для скачивания
Поддерживаемые версии
  1. 1.16
  2. 1.17
  3. 1.18
  4. 1.19
  5. 1.20
  6. 1.21
Ядра и Прокси
  1. Bukkit
  2. Spigot
  3. Paper
Минимальная версия Java
16
Наш Телеграм канал - You must be logged in to see this link.

🧐В ЧЕМ СМЫСЛ ПЛАГИНА?🧐
По сути это больше API, чем плагин (как Vault, предоставляющий API для экономики, но не реализующий его), это API предоставляет возможность использовать стили/темы для того, чтобы другие разработчики могли внедрять возможность изменять для игроков выбор стиля и темы. Однако внутри плагина уже есть реализация команды на установку темы игроку и перезагрузку конфига Например, если у игрока тема CLASSIC, то у него в плагине отображается сообщение так:
1749116086326.png

Если же игрок захочет сменить на другую тему, например LEGENDARY, то все сообщения в плагине игрок будет получать в таком виде:
1749116159088.png

Таким образом можно кастомизировать буквально все: сообщения, actionbar, TAB, ScoreBoard, меню, да все что угодно

🤔ЧТО В НЕМ ЕСТЬ?🤔
  • Возможность создавать сколько угодно тем/стилей
  • поддержка БД для хранения выбранной темы (SQLlite и MySQL)
  • Поддержка hex-цветов в формате '&#rrrgggbbb'

💻КАК ИСПОЛЬЗОВАТЬ API ПЛАГИНА НА ПРАКТИКЕ?👨‍💻
Допустим, мы хотим добавить в плагин возможность отправку сообщения, которое будет разным в зависимости от темы. Вот пример в конфиге:
YAML:
messages: # сообщения
 player-on-join: # сообщения, которые будут отправлятся игроку при входе
  CLASSIC: # Отправляем сообщение игроку из этого пути, если у игрока тема CLASSIC
   - '&#D9FFBE» &fДобро пожаловать на сервер!'
  LEGENDARY: # Отправляем сообщение игроку из этого пути, если у игрока тема LEGENDARY
   - '&#19C1FF» &fРады видеть тебя, обладатель &#19C1FFлегендарной &fтемы'

Для реализации код будет выглядеть примерно следующим образом:
Java:
// Это просто пример, можно по-другому реализовать струкрутур плагина

// Главный класс
public class Main {
 
    private static Main instance;
    private ThemeAPI themeAPI;
 
    @Override
    public void onEnable() {
        instance = this;
        themeAPI = getServer().getServicesManager().getRegistration(ThemeAPI.class).getProvider();
    
        saveDeffaultConfig();
        getServer().getPluginManager().registerEvents(new PlayerJoinHandler(), this);
    }
 
    @Override
    public void onDisable() {}

    public static Main getInstance() {
        return instance;
    }

    public ThemeAPI getThemeAPI() {
        return themeAPI();
    }
}

// Класс где будет реализовано отправка сообщений из конфига
public class MessagesUtils {
 
    public static sendMessagesFromConfig(Player player, String path) {
        final FileConfiguration config = Main.getInstance().getConfig();
        final String theme = getTheme(player); // Получаем тему игрока по его UUID
        player.sendMessage(config.getString(path + "." + theme)); // Отправляем сообщение игроку по пути с его темой
    }

    private static String getTheme(Player player) { // Метод на получение темы игрока
        return Main.getInstance().getThemeAPI().getTheme(player.getUniqueId());
    }
}

// Класс с обработкой события при входе
public class PlayerJoinHandler implements Listener {

    @EvenHandler
    public void onJoin(PlayerJoinEvent e) {
        MessagesUtils.sendMessagesFromConfig(e.getPlayer(), "messages.player-on-join")
    }
}

❗ВАЖНАЯ ИНФОРМАЦИЯ❗
Чтобы игроку установилась нужная тема, он должен иметь на ее право: 'dreamthemes.название темы'. например: 'dreamthemes.RARE'. Тема CLASSIC - стандартная и всегда доступна
Зависимости
-
Исходный код
https://github.com/DreamCode-Studio/DreamThemes
Команды и права
На использование команд одно право: 'dreamthemes.use'
Для возможности установки темы какой-то нужно право: 'dreamthemes.<название_темы>'

/dreamthemes reload - перезагрузка конфига
/dreamthemes <название_темы> - установка темы тому, кто вводит команду
/dreamthemes set <никигрока> <названиетемы> установка темы игроку
  • Мне нравится (+1)
Реакции: Shon
Автор
DreamCode_Studio
Скачивания
8
Просмотры
286
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Поделиться ресурсом

Назад
Сверху Снизу