Вопрос Как можно сделать %player_name% градиентом в DeluxeMenus

isdee

Пользователь
Сообщения
23
Здравствуйте, сейчас делаю меню кастомных ников с использованием hex, как можно реализовать чтобы показывался ник игрока который смотрит меню, и на его ник применялся hex цвет

Пример:

Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
нет поддержки 1.16.5
Разве? С 1.16 можно использовать HEX, и в самом плагине вроде должна быть поддержка.
Вам необходимо зарегистрироваться для просмотра изображений-вложений

Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Разве? С 1.16 можно использовать HEX, и в самом плагине вроде должна быть поддержка.
Вам необходимо зарегистрироваться для просмотра изображений-вложений

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

Объединено

и всё же, может есть ещё варианты?
 
Последнее редактирование:
Здравствуйте, сеас делаю меню кастомных ников с использованием hex, как можно реализовать чтобы показывался ник игрока который смотрит меню, и на его ник применялся hex цвет

Пример:

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

Так же, задавался этим вопросом.
Не помню как точно правильно но можешь попробовать (ниже) или же вместо & - §
Так же советую почитать много о хексах и как они работают в разных плагинах.


HTML:
{&#ffffff}%player_name%{&#000000}
По идеи тут должен быть переход, с белого цвета в черный.
 
Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Всех приветствую! Нашел решение. С этим мне очень сильно помог You must be logged in to see this link., я благодарен ему за это.


Осторожно, костыли!

Мы будем реализовывать градиентовый никнейм с помощью своего плейсхолдера, а делать мы его будем на основе плагина PlaceholderAPI и расширения для него JavaScript. Распишу все подробнее, чтобы любой чайник понял.


Глава 1 — установка всего нужного



(скачайте файл и закиньте его в папку
expansions)
3. Пропишите команду /papi reload. Вроде как по установке все.


Глава 2 — создание плейсхолдера

Здесь тоже ничего сложного нет. После завершения первой главы у вас в корневой папке плагина PlaceholderAPI должна появиться папка javascripts. Мы переходим туда и создаем файлик формата .js с любым названием. Допустим, я назвал color.js

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


Тут мне как раз помог erensisman09. Нам нужно вставить данный код в наш созданный файлик:​
JavaScript:
function generateGradientText(text, startColor, endColor) {

    function hex(c) {
        var s = "0123456789abcdef";
        var i = parseInt(c);
        if(i == 0 || isNaN(c)) {
            return "00";
        }
        i = Math.round(Math.min(Math.max(0, i), 255));
        return s.charAt((i - i % 16) / 16) + s.charAt(i % 16);
    }

    function convertToHex(rgb) {
        return hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
    }

    function trim(s) {
        return (s.charAt(0) == '#') ? s.substring(1, 7) : s;
    }

    function convertToRGB(hex) {
        var color = [];
        color[0] = parseInt((trim(hex)).substring(0, 2), 16);
        color[1] = parseInt((trim(hex)).substring(2, 4), 16);
        color[2] = parseInt((trim(hex)).substring(4, 6), 16);
        return color;
    }

    var startRGB = convertToRGB(startColor);
    var endRGB = convertToRGB(endColor);
    var len = text.length;
    var gradientText = "";

    for(var i = 0; i < len; i++) {
        var ratio = i / (len - 1);
        var newColor = [Math.round(startRGB[0] + (endRGB[0] - startRGB[0]) * ratio), Math.round(startRGB[1] + (endRGB[1] - startRGB[1]) * ratio), Math.round(startRGB[2] + (endRGB[2] - startRGB[2]) * ratio)];
        gradientText += "§x§" + convertToHex(newColor).split('').join('§') + text.charAt(i);
    }

    return gradientText;
}

function gradientName() {
    return generateGradientText(BukkitPlayer.getName(), "#DEC584", "#FCEDC8"); // меняйте цвета тут, чуваки
}

gradientName();


На 44 строке мы толжны подставить наши с вами цвета. Я например выбрал #DEC584 и #FCEDC8. Если все готово, продолжим.


Глава 3 — еще один важный нюанс

Чтобы все заработало нужно вставить в файл javascript_placeholders.yml название нашего файла в таком формате:

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


Тактика такая же, как и с конфигом DeluxeMenus. Не запутаетесь. Далее снова пропишем /papi reload, чтобы все заработало.


Глава 4 — финишная прямая и тест

Осталось только вставить наш плейсхолдер туда, куда нужно. В моем случае это в один из конфигов менюшки DeluxeMenus. Плейсхолдер должен выглядеть так: %javascript_названиескрипта%. У меня это %javascript_color%. Я перезагружаю DeluxeMenus командой /dm reload и смотрю на результат. Вуаля, магия, цветной ник в плагине, который формат MiniMessage не поддерживает

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


Всем по-больше донатов!
 
Всех приветствую! Нашел решение. С этим мне очень сильно помог You must be logged in to see this link., я благодарен ему за это.


Осторожно, костыли!

Мы будем реализовывать градиентовый никнейм с помощью своего плейсхолдера, а делать мы его будем на основе плагина PlaceholderAPI и расширения для него JavaScript. Распишу все подробнее, чтобы любой чайник понял.


Глава 1 — установка всего нужного


(скачайте файл и закиньте его в папку
expansions)
3. Пропишите команду /papi reload. Вроде как по установке все.


Глава 2 — создание плейсхолдера

Здесь тоже ничего сложного нет. После завершения первой главы у вас в корневой папке плагина PlaceholderAPI должна появиться папка javascripts. Мы переходим туда и создаем файлик формата .js с любым названием. Допустим, я назвал color.js

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


Тут мне как раз помог erensisman09. Нам нужно вставить данный код в наш созданный файлик:​
JavaScript:
function generateGradientText(text, startColor, endColor) {

    function hex(c) {
        var s = "0123456789abcdef";
        var i = parseInt(c);
        if(i == 0 || isNaN(c)) {
            return "00";
        }
        i = Math.round(Math.min(Math.max(0, i), 255));
        return s.charAt((i - i % 16) / 16) + s.charAt(i % 16);
    }

    function convertToHex(rgb) {
        return hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
    }

    function trim(s) {
        return (s.charAt(0) == '#') ? s.substring(1, 7) : s;
    }

    function convertToRGB(hex) {
        var color = [];
        color[0] = parseInt((trim(hex)).substring(0, 2), 16);
        color[1] = parseInt((trim(hex)).substring(2, 4), 16);
        color[2] = parseInt((trim(hex)).substring(4, 6), 16);
        return color;
    }

    var startRGB = convertToRGB(startColor);
    var endRGB = convertToRGB(endColor);
    var len = text.length;
    var gradientText = "";

    for(var i = 0; i < len; i++) {
        var ratio = i / (len - 1);
        var newColor = [Math.round(startRGB[0] + (endRGB[0] - startRGB[0]) * ratio), Math.round(startRGB[1] + (endRGB[1] - startRGB[1]) * ratio), Math.round(startRGB[2] + (endRGB[2] - startRGB[2]) * ratio)];
        gradientText += "§x§" + convertToHex(newColor).split('').join('§') + text.charAt(i);
    }

    return gradientText;
}

function gradientName() {
    return generateGradientText(BukkitPlayer.getName(), "#DEC584", "#FCEDC8"); // меняйте цвета тут, чуваки
}

gradientName();


На 44 строке мы толжны подставить наши с вами цвета. Я например выбрал #DEC584 и #FCEDC8. Если все готово, продолжим.


Глава 3 — еще один важный нюанс

Чтобы все заработало нужно вставить в файл javascript_placeholders.yml название нашего файла в таком формате:

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


Тактика такая же, как и с конфигом DeluxeMenus. Не запутаетесь. Далее снова пропишем /papi reload, чтобы все заработало.


Глава 4 — финишная прямая и тест

Осталось только вставить наш плейсхолдер туда, куда нужно. В моем случае это в один из конфигов менюшки DeluxeMenus. Плейсхолдер должен выглядеть так: %javascript_названиескрипта%. У меня это %javascript_color%. Я перезагружаю DeluxeMenus командой /dm reload и смотрю на результат. Вуаля, магия, цветной ник в плагине, который формат MiniMessage не поддерживает

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


Всем по-больше донатов!

я бы ещё дополнил, что javascript тут может принимать переменные, из-за чего можно сделать не захардкоженные цвета:
 
Всех приветствую! Нашел решение. С этим мне очень сильно помог You must be logged in to see this link., я благодарен ему за это.


Осторожно, костыли!

Мы будем реализовывать градиентовый никнейм с помощью своего плейсхолдера, а делать мы его будем на основе плагина PlaceholderAPI и расширения для него JavaScript. Распишу все подробнее, чтобы любой чайник понял.


Глава 1 — установка всего нужного



(скачайте файл и закиньте его в папку
expansions)
3. Пропишите команду /papi reload. Вроде как по установке все.


Глава 2 — создание плейсхолдера

Здесь тоже ничего сложного нет. После завершения первой главы у вас в корневой папке плагина PlaceholderAPI должна появиться папка javascripts. Мы переходим туда и создаем файлик формата .js с любым названием. Допустим, я назвал color.js

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


Тут мне как раз помог erensisman09. Нам нужно вставить данный код в наш созданный файлик:​
JavaScript:
function generateGradientText(text, startColor, endColor) {

    function hex(c) {
        var s = "0123456789abcdef";
        var i = parseInt(c);
        if(i == 0 || isNaN(c)) {
            return "00";
        }
        i = Math.round(Math.min(Math.max(0, i), 255));
        return s.charAt((i - i % 16) / 16) + s.charAt(i % 16);
    }

    function convertToHex(rgb) {
        return hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]);
    }

    function trim(s) {
        return (s.charAt(0) == '#') ? s.substring(1, 7) : s;
    }

    function convertToRGB(hex) {
        var color = [];
        color[0] = parseInt((trim(hex)).substring(0, 2), 16);
        color[1] = parseInt((trim(hex)).substring(2, 4), 16);
        color[2] = parseInt((trim(hex)).substring(4, 6), 16);
        return color;
    }

    var startRGB = convertToRGB(startColor);
    var endRGB = convertToRGB(endColor);
    var len = text.length;
    var gradientText = "";

    for(var i = 0; i < len; i++) {
        var ratio = i / (len - 1);
        var newColor = [Math.round(startRGB[0] + (endRGB[0] - startRGB[0]) * ratio), Math.round(startRGB[1] + (endRGB[1] - startRGB[1]) * ratio), Math.round(startRGB[2] + (endRGB[2] - startRGB[2]) * ratio)];
        gradientText += "§x§" + convertToHex(newColor).split('').join('§') + text.charAt(i);
    }

    return gradientText;
}

function gradientName() {
    return generateGradientText(BukkitPlayer.getName(), "#DEC584", "#FCEDC8"); // меняйте цвета тут, чуваки
}

gradientName();


На 44 строке мы толжны подставить наши с вами цвета. Я например выбрал #DEC584 и #FCEDC8. Если все готово, продолжим.


Глава 3 — еще один важный нюанс

Чтобы все заработало нужно вставить в файл javascript_placeholders.yml название нашего файла в таком формате:

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


Тактика такая же, как и с конфигом DeluxeMenus. Не запутаетесь. Далее снова пропишем /papi reload, чтобы все заработало.


Глава 4 — финишная прямая и тест

Осталось только вставить наш плейсхолдер туда, куда нужно. В моем случае это в один из конфигов менюшки DeluxeMenus. Плейсхолдер должен выглядеть так: %javascript_названиескрипта%. У меня это %javascript_color%. Я перезагружаю DeluxeMenus командой /dm reload и смотрю на результат. Вуаля, магия, цветной ник в плагине, который формат MiniMessage не поддерживает

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


Всем по-больше донатов!
И получаем 0 тпс
 
Назад
Сверху Снизу