Помогите [или обсудим] Цвет не через ChatColor.*, а RGB, возможно ли?

ВukkitPrоfi

Активный участник
Пользователь
Баллы
76
Я новичок в bukkit плагинах, поэтому могу написать здесь какую нибудь непонятную хрень.

Переписывал моды samp в pawno, заметил, что цвет можно менять по RBG формату, то есть абсолютно все цвета можно юзать.
Возник вопрос: можно ли в самом майне добиться этого? Чтобы не было этих "§e, §f, §a" и т.д., чтобы можно было накалякать свой цвет по ргб или hex фомату (255,255,255/{FFFFFF}).
Видно, что ни на одном сервере такого нету, значит это, как-бы, нельзя осуществить, ну, а как тогда получился бело-розоватый текст при клике на ссылку в чате "Не переходите по ссылкам..."..
Такого цвета нет в ChatColor, но ведь его как-то получили... В org/bukkit/Color.class нашел вот эти строки:
Код:
    public static final Color WHITE = fromRGB(0xffffff);
    public static final Color SILVER = fromRGB(0xc0c0c0);
    public static final Color GRAY = fromRGB(0x808080);
    public static final Color BLACK = fromRGB(0);
    public static final Color RED = fromRGB(0xff0000);
    public static final Color MAROON = fromRGB(0x800000);
    public static final Color YELLOW = fromRGB(0xffff00);
    public static final Color OLIVE = fromRGB(0x808000);
    public static final Color LIME = fromRGB(65280);
    public static final Color GREEN = fromRGB(32768);
    public static final Color AQUA = fromRGB(65535);
    public static final Color TEAL = fromRGB(32896);
    public static final Color BLUE = fromRGB(255);
    public static final Color NAVY = fromRGB(128);
    public static final Color FUCHSIA = fromRGB(0xff00ff);
    public static final Color PURPLE = fromRGB(0x800080);
    public static final Color ORANGE = fromRGB(0xffa500);
Если изменю (0x*colorcode*), скомпилирую, то я получу желаемый результат, т.е. изменю "стандартный" цвет кода на свой, смогу отобразить новые краски в миникрафтовском чате?

Кажется я уже понял, но остается один вопрос: какие зависимые файлы будут у Color.java, чтобы его скомпилировать или мне придется засовывать все это дело в Ecliple/NetBeans?
 

Вложения

  • bandicam 2016-08-26 12-58-09-438.png
    bandicam 2016-08-26 12-58-09-438.png
    31,1 КБ · Просмотры: 22
Последнее редактирование:
Можешь рефлексией вызывать конструктор у Color.
А, ну и вообще, там сеттеры есть на rgb
Только я не знаю, как ты собрался его использовать для цвета в чате
 
В чате доступно ТОЛЬКО 16 цветов.
Видно, что ни на одном сервере такого нету, значит это, как-бы, нельзя осуществить, ну, а как тогда получился бело-розоватый текст при клике на ссылку в чате "Не переходите по ссылкам..."..
В клиенте можно сделать переливающийся текст с кучей разных цветов.
 
В чате доступно ТОЛЬКО 16 цветов.
В клиенте можно сделать переливающийся текст с кучей разных цветов.
Я знаю, что их ограничено, но если, к примеру, изменить цвет кода '§f' с 0xffffff на oxff0000, то при вводе §f<text> я получу красный цвет?
 
Нет. Тебе ****ь выше сказали что в чате клиент может отображать только 16 цветов.
 
Присоединяюсь к теме, если автору недостаточно двух ответов. Без мода клиент не может отображать в чате другие цвета.
 
Пакетами ты передаёшь ChatComponent, который затем преобразуется в набор net.minecraft.util.ChatStyle. А он, в свою очередь, имеет следующие характеристики:
YR8tH4m.png

ChatColor - enum. Соответственно без его модификации ты никак не сможешь использовать в чате другие цвета. Даже клиентские моды этого сделать не смогут по логике.
Отрисовка GUI'шек происходит совершенно по-другому. Тут цвет указывается не ChatColor, а обычным int'ом - RGB.
Вот, например, тот розоватый цвет, о котором ты говоришь:
vqy14hD.png

>>
tsSTymf.png

>>
OTdfVCg.png
На самом деле не понимаю, почему не добавляют поддержку RGB. Вообще, конечно, можно было бы добавить кучу всего для кастомизации. Вот только Можанги даже API сделать не могут, поэтому ожидать от них чего-то интересного можно вечно.
 
Последнее редактирование:
Пакетами ты передаёшь ChatComponent, который затем преобразуется в набор net.minecraft.util.ChatStyle. А он, в свою очередь, имеет следующие характеристики:
YR8tH4m.png

ChatColor - enum. Соответственно без его модификации ты никак не сможешь использовать в чате другие цвета. Даже клиентские моды этого сделать не смогут по логике.
Отрисовка GUI'шек происходит совершенно по-другому. Тут цвет указывается не ChatColor, а обычным int'ом - RGB.
Вот, например, тот розоватый цвет, о котором ты говоришь:
vqy14hD.png

>>
tsSTymf.png

>>
OTdfVCg.png
На самом деле не понимаю, почему не добавляют поддержку RGB. Вообще, конечно, можно было бы добавить кучу всего для кастомизации. Вот только Можанги даже API сделать не могут, поэтому ожидать от них чего-то интересного можно вечно.
Обычным модом действительно вероятно не получиться это исправить, но я в своем сообщении имел ввиду именно изменение логики ChatColor в клиенте, хоть для этого и нужно переписать довольно много.
 
Обычным модом действительно вероятно не получиться это исправить, но я в своем сообщении имел ввиду именно изменение логики ChatColor в клиенте, хоть для этого и нужно переписать довольно много.
При должном желании можно сделать, что душе угодно. Вопрос времени. Я лишь объяснил ТС'у, почему без модификации клиента нельзя использовать RGB в чате.
 
Пакетами ты передаёшь ChatComponent, который затем преобразуется в набор net.minecraft.util.ChatStyle. А он, в свою очередь, имеет следующие характеристики:
YR8tH4m.png

ChatColor - enum. Соответственно без его модификации ты никак не сможешь использовать в чате другие цвета. Даже клиентские моды этого сделать не смогут по логике.
Отрисовка GUI'шек происходит совершенно по-другому. Тут цвет указывается не ChatColor, а обычным int'ом - RGB.
Вот, например, тот розоватый цвет, о котором ты говоришь:
vqy14hD.png

>>
tsSTymf.png

>>
OTdfVCg.png
На самом деле не понимаю, почему не добавляют поддержку RGB. Вообще, конечно, можно было бы добавить кучу всего для кастомизации. Вот только Можанги даже API сделать не могут, поэтому ожидать от них чего-то интересного можно вечно.
Спасибо за нормальный ответ.
 
Назад
Верх