Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем ВukkitPrоfi, 26 авг 2016.

  1. Автор темы
    ВukkitPrоfi

    В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?
     

    Вложения:

    Последнее редактирование: 26 авг 2016
  2. Хостинг MineCraft
    <
  3. kirill2011s

    kirill2011s Старожил Пользователь

    Баллы:
    103
    Можешь рефлексией вызывать конструктор у Color.[DOUBLEPOST=1472201612,1472201355][/DOUBLEPOST]А, ну и вообще, там сеттеры есть на rgb[DOUBLEPOST=1472201841][/DOUBLEPOST]Только я не знаю, как ты собрался его использовать для цвета в чате
     
  4. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    В чате доступно ТОЛЬКО 16 цветов.
    В клиенте можно сделать переливающийся текст с кучей разных цветов.
     
  5. Автор темы
    ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    Я знаю, что их ограничено, но если, к примеру, изменить цвет кода '§f' с 0xffffff на oxff0000, то при вводе §f<text> я получу красный цвет?
     
  6. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Нет. Тебе ****ь выше сказали что в чате клиент может отображать только 16 цветов.
     
  7. Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Присоединяюсь к теме, если автору недостаточно двух ответов. Без мода клиент не может отображать в чате другие цвета.
     
  8. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    Пакетами ты передаёшь ChatComponent, который затем преобразуется в набор net.minecraft.util.ChatStyle. А он, в свою очередь, имеет следующие характеристики:
    [​IMG]
    ChatColor - enum. Соответственно без его модификации ты никак не сможешь использовать в чате другие цвета. Даже клиентские моды этого сделать не смогут по логике.
    Отрисовка GUI'шек происходит совершенно по-другому. Тут цвет указывается не ChatColor, а обычным int'ом - RGB.
    Вот, например, тот розоватый цвет, о котором ты говоришь:
    [​IMG]
    >>
    [​IMG]
    >>
    [​IMG]
    На самом деле не понимаю, почему не добавляют поддержку RGB. Вообще, конечно, можно было бы добавить кучу всего для кастомизации. Вот только Можанги даже API сделать не могут, поэтому ожидать от них чего-то интересного можно вечно.
     
    Последнее редактирование: 26 авг 2016
  9. Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Обычным модом действительно вероятно не получиться это исправить, но я в своем сообщении имел ввиду именно изменение логики ChatColor в клиенте, хоть для этого и нужно переписать довольно много.
     
  10. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    76
    При должном желании можно сделать, что душе угодно. Вопрос времени. Я лишь объяснил ТС'у, почему без модификации клиента нельзя использовать RGB в чате.
     
  11. Автор темы
    ВukkitPrоfi

    ВukkitPrоfi Активный участник Пользователь

    Баллы:
    76
    Спасибо за нормальный ответ.
     

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