hNear | Поиск игроков по близости

hNear | Поиск игроков по близости v3.2.1

Создайте и подтвердите аккаунт для скачивания
Java:
MiniMessage mm = MiniMessage.miniMessage();
Component parsed = mm.deserialize("Hello <rainbow>world</rainbow>, isn't <underlined>MiniMessage</underlined> fun?");
audience.sendActionBar(parsed);

+ У вас уже используется kyori adventure в коде, почему бы не добавить ХОТЯ-БЫ ТАК-ЖЕ поддержку MiniMessage одновременно с легаси кодами?
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Вам необходимо зарегистрироваться для просмотра изображений-вложений


И это явно не в одну строку реализация + опять же вы тут используете kyori adventure просто легаси коды, почему бы не сделать поддержку и того и того раз уж вы так любите старые коды?

Java:
            Matcher matcher = Pattern.compile("\\{HoverText:cmd (.*?), text: (.*?)}").matcher(parsed);
            if (matcher.find()) {
                String cmd = matcher.group(1).trim();
                String hoverText = format(matcher.group(2).trim());
                parsed = parsed.substring(0, matcher.start()) + parsed.substring(matcher.end());

                TextComponent message = LegacyComponentSerializer.legacySection().deserialize(parsed)
                        .hoverEvent(HoverEvent.showText(LegacyComponentSerializer.legacySection().deserialize(hoverText)))
                        .clickEvent(ClickEvent.runCommand(cmd));

                player.sendMessage(message);
            } else {
                player.sendMessage(LegacyComponentSerializer.legacySection().deserialize(parsed));
            }
Java:
public class HexSupport {
    private static final Pattern HEX_PATTERN = Pattern.compile("&#([a-fA-F\\d]{6})");
    public static String format(String message) {
        final Matcher matcher = HEX_PATTERN.matcher(message);
        final StringBuilder builder = new StringBuilder(message.length() + 32);
        while (matcher.find()) {
            String group = matcher.group(1);
            matcher.appendReplacement(builder,
                    COLOR_CHAR + "x" +
                            COLOR_CHAR + group.charAt(0) +
                            COLOR_CHAR + group.charAt(1) +
                            COLOR_CHAR + group.charAt(2) +
                            COLOR_CHAR + group.charAt(3) +
                            COLOR_CHAR + group.charAt(4) +
                            COLOR_CHAR + group.charAt(5));
        }
        message = matcher.appendTail(builder).toString();
        return ChatColor.translateAlternateColorCodes('&', message);
    }
    public static final char COLOR_CHAR = '§';
}
[/SPOILER]
если что Kyori у меня 1.16 в котором нет MiniMessage держу вкурсе, костылить я не планирую. Касаемо хекса, а ты думаешь что внутри логики MiniMessage это всё в 1 строку делается? Это ты в коде делаешь в 1 строку, а там куча всего происходит, кстати, по такой же логике в моём HexSupport нужно вызвать лишь HexSupport.format значит он тоже в 1 строку, или же actionExecutor.execute() тоже в 1 строчку, спор бессмыслен
 
если что Kyori у меня 1.16 в котором нет MiniMessage держу вкурсе, костылить я не планирую. Касаемо хекса, а ты думаешь что внутри логики MiniMessage это всё в 1 строку делается? Это ты в коде делаешь в 1 строку, а там куча всего происходит, кстати, по такой же логике в моём HexSupport нужно вызвать лишь HexSupport.format значит он тоже в 1 строку, или же actionExecutor.execute() тоже в 1 строчку, спор бессмыслен
А как по твоему библиотеки работают?
И о каком споре идет речь? Мы дискутируем на данную тему.
 
Последнее редактирование:
если что Kyori у меня 1.16 в котором нет MiniMessage держу вкурсе
You must be logged in to see this link.
Объединено

Это ты в коде делаешь в 1 строку, а там куча всего происходит, кстати, по такой же логике в моём HexSupport нужно вызвать лишь HexSupport.format значит он тоже в 1 строку, или же actionExecutor.execute() тоже в 1 строчку, спор бессмыслен
Используйте кэширование Component-ов которые НЕ нужно заменять постоянно в классе конфига
 
Назад
Сверху Снизу