Исправлены баги: zip file closed в кастомных командах, рандомные цвета в GUI, обновлена версия до 1.5.4, добавлена инструкция по кастомным командам в README

This commit is contained in:
loki5512344 2025-12-30 20:40:09 +01:00
parent 1d75327a4d
commit d49261988e
4 changed files with 124 additions and 4 deletions

View file

@ -29,9 +29,15 @@ public final class GradientUtil {
StringBuilder result = new StringBuilder();
if (hexColors.size() == 1) {
// Для одного цвета применяем цвет один раз в начале
String colorCode = formatHex(hexColors.get(0), useLegacyFormat);
for (char c : chars) {
result.append(colorCode).append(c);
if (useLegacyFormat) {
// В legacy формате цвет применяется к каждому символу, но мы применяем один цвет
// Поэтому применяем цвет один раз в начале и добавляем весь текст
result.append(colorCode).append(text);
} else {
// В MiniMessage формате применяем цвет один раз
result.append(colorCode).append(text).append("</color>");
}
} else {
Color[] colors = hexColors.stream()

View file

@ -145,7 +145,15 @@ public class CustomCommandManager {
// PlaceholderAPI если доступен
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
result = me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(player, result);
try {
// Используем безопасный способ вызова PlaceholderAPI
Class<?> papiClass = Class.forName("me.clip.placeholderapi.PlaceholderAPI");
java.lang.reflect.Method setPlaceholdersMethod = papiClass.getMethod("setPlaceholders", org.bukkit.entity.Player.class, String.class);
result = (String) setPlaceholdersMethod.invoke(null, player, result);
} catch (Exception e) {
// Если PlaceholderAPI недоступен или произошла ошибка, просто пропускаем
plugin.getLogger().warning("Ошибка при обработке PlaceholderAPI плейсхолдеров: " + e.getMessage());
}
}
return result;