Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Как можно сделать hex градиент ника, имея два кода цветов?

Ryazha_

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Ryazha_
Хочу сделать команду для изменения цвета ника с применением градиента имея два кода цветов. Как это можно сделать?

Команда будет вида:
/nick set {nickname} #0572e6 #ff0000
 
Хочу сделать команду для изменения цвета ника с применением градиента имея два кода цветов. Как это можно сделать?

Команда будет вида:
/nick set {nickname} #0572e6 #ff0000
Для удобства можно использовать уже готовый плагин-апи, https://www.spigotmc.org/resources/...animations-placeholders-rgb-✅-easy-use.92021/
 
В AdventureAPI есть такое. Если используешь новые версии paper, то даже шейдить не придётся. Пример с MiniMessage: https://docs.advntr.dev/minimessage/format.html#gradient
Допустим у меня есть конфиг плагина такого вида:

dark_red: #000000
cyan: #ff44bb

Как мне засунуть dark_red, cyan в лист, чтобы потом создать из них всплывающую подсказку из команды?
 
Допустим у меня есть конфиг плагина такого вида:

dark_red: #000000
cyan: #ff44bb

Как мне засунуть dark_red, cyan в лист, чтобы потом создать из них всплывающую подсказку из команды?
Не знаю, про какую подсказку речь, но если нужно хранить цвета, то можно так:
PHP:
Map<String, Integer> colors = new HashMap<>();
colors.put("cyan", Integer.parseInt("#ff44bb".substring(1), 16))
...
int color = colors.get("cyan");
 
Не знаю, про какую подсказку речь, но если нужно хранить цвета, то можно так:
PHP:
Map<String, Integer> colors = new HashMap<>();
colors.put("cyan", Integer.parseInt("#ff44bb".substring(1), 16))
...
int color = colors.get("cyan");
В плане подсказки, я про TabComplete
 
Не знаю, про какую подсказку речь, но если нужно хранить цвета, то можно так:
PHP:
Map<String, Integer> colors = new HashMap<>();
colors.put("cyan", Integer.parseInt("#ff44bb".substring(1), 16))
...
int color = colors.get("cyan");
Я хотел засунуть названия цветов dark_red в лист
и потом просто из конфига брать значение получая название из аргов команды.
 
Не знаю, про какую подсказку речь, но если нужно хранить цвета, то можно так:
PHP:
Map<String, Integer> colors = new HashMap<>();
colors.put("cyan", Integer.parseInt("#ff44bb".substring(1), 16))
...
int color = colors.get("cyan");

FileConfiguration config = getConfig();
List<String> list = new ArrayList<>();
for (String key : config.getKeys(false)) {
list.add(key);
}
возможно, это можно сделать так? В плане получения первой части значений из конфига?
 
FileConfiguration config = getConfig();
List<String> list = new ArrayList<>();
for (String key : config.getKeys(false)) {
list.add(key);
}
возможно, это можно сделать так? В плане получения первой части значений из конфига?
Ну если нужно ключи секции получить, то так, да. При этом по ним же можно считать значения
 
Уверен, что работает? )

org.bukkit.ChatColor не поддерживает RGB/HEX, их поддерживают только
net.md_5.bungee.api.ChatColor
и net.kyori.adventure.text.format.TextColor

Ну, и названия классов в Java всегда стоит указывать с большой буквы
Не согласен, не обязательно указывать имена классов с большой буквы.
 
Не согласен, не обязательно указывать имена классов с большой буквы.
Не обязательно, но крайне желательно. Это общепринятый стандарт в Java. И сделано это не просто так
 
Уверен, что работает? )

org.bukkit.ChatColor не поддерживает RGB/HEX, их поддерживают только
net.md_5.bungee.api.ChatColor
и net.kyori.adventure.text.format.TextColor

Ну, и названия классов в Java всегда стоит указывать с большой буквы
Не уверен. Сейчас проверю. Если нет, то буду пробовать с net.kyori.adventure.text.format.TextColor
 
Не уверен. Сейчас проверю. Если нет то буду пробовать с net.kyori.adventure.text.format.TextColor
Уверен, что работает? )

org.bukkit.ChatColor не поддерживает RGB/HEX, их поддерживают только
net.md_5.bungee.api.ChatColor
и net.kyori.adventure.text.format.TextColor

Ну, и названия классов в Java всегда стоит указывать с большой буквы
Да. оно так не работает, сейчас попробую с MiniMessage
 
Не обязательно, но крайне желательно. Это общепринятый стандарт в Java. И сделано это не просто так
Получается примерно так?
String nick = MiniMessage.miniMessage().deserialize(<gradient:green:blue>pupsik2004</gradient>)
player.setDisplayName(nick)
 
Получается примерно так?
String nick = MiniMessage.miniMessage().deserialize(<gradient:green:blue>pupsik2004</gradient>)
player.setDisplayName(nick)
AdventureAPI работает с компонентами, а не со строками. Вот так:
PHP:
Component nick = MiniMessage.miniMessage().deserialize("<gradient:green:#5555ff>pupsik2004</gradient>");
player.displayName(nick);

Нагладно протестировать внешний вид можно тут: https://webui.advntr.dev/

Также скоро должно появиться нормальное апи для градиентов:
https://github.com/KyoriPowered/adventure/pull/937
https://github.com/KyoriPowered/adv...ccaxe:going-on-an-adventure:feat/gradient-api

Хотя и сейчас есть какие-то TextColor.lerp(), GradientTag, TransitionTag. Возможно с ними тоже можно что-то намутить сейчас, но сомневаюсь
 
Последнее редактирование:
AdventureAPI работает с компонентами, а не со строками. Вот так:
PHP:
Component nick = MiniMessage.miniMessage().deserialize("<gradient:green:#5555ff>pupsik2004</gradient>");
player.displayName(nick);

Нагладно протестировать внешний вид можно тут: https://webui.advntr.dev/

Также скоро должно появиться нормальное апи для градиентов:
https://github.com/KyoriPowered/adventure/pull/937
https://github.com/KyoriPowered/adv...ccaxe:going-on-an-adventure:feat/gradient-api

Хотя и сейчас есть какие-то TextColor.lerp(), GradientTag, TransitionTag. Возможно с ними тоже можно что-то намутить сейчас, но сомневаюсь
Благодарю
 
AdventureAPI работает с компонентами, а не со строками. Вот так:
PHP:
Component nick = MiniMessage.miniMessage().deserialize("<gradient:green:#5555ff>pupsik2004</gradient>");
player.displayName(nick);

Нагладно протестировать внешний вид можно тут: https://webui.advntr.dev/

Также скоро должно появиться нормальное апи для градиентов:
https://github.com/KyoriPowered/adventure/pull/937
https://github.com/KyoriPowered/adv...ccaxe:going-on-an-adventure:feat/gradient-api

Хотя и сейчас есть какие-то TextColor.lerp(), GradientTag, TransitionTag. Возможно с ними тоже можно что-то намутить сейчас, но сомневаюсь

Появилась другая проблема, не могу понять почему не сохраняется конфиг и его данные обнуляются.

Код главного класса: https://pastebin.com/vbkRu6nE

Код класса с командами: https://pastebin.com/aXpus3BA
 

Поделиться этой страницей

Назад
Верх