Как писать скрипты в PlaceholdersAPI, чтобы сервер не упал (даже если вы не программист)

Как писать скрипты в PlaceholdersAPI, чтобы сервер не упал (даже если вы не программист)

NeyTM

Разработчик
Пользователь
Сообщения
41
Решения
1
NeyTM добавил(а) новый ресурс:

You must be logged in to see this link. - В этом руководстве мы разберем такое понятие, как JavaScript и его использование в PlaceholdersAPI

1. Что такое JavaScript и PlaceholdersAPI?​

JavaScript:​

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

PlaceholdersAPI:​

PlaceholdersAPI - это плагин для серверов Minecraft, который позволяет использовать плейсхолдеры для...

You must be logged in to see this link.
 
Идея хорошая - обработка ошибок нужна и важна, но всё же использовать JS для большого количества таких плейсхолдеров явно не лучшее решение, в какой-то момент можно упереться в просадки и/или утечки памяти. Лучше уже написать простой аддон или плагин на Java/Kotlin
 
Идея хорошая - обработка ошибок нужна и важна, но всё же использовать JS для большого количества таких плейсхолдеров явно не лучшее решение, в какой-то момент можно упереться в просадки и/или утечки памяти. Лучше уже написать простой аддон или плагин на Java/Kotlin
Конечно, JavaScript в PlaceholdersAPI — отличный инструмент для быстрых правок и простых задач, вроде форматирования баланса, времени игры. Это позволяет быстро прототипировать, не перезагружая сервер.

Java дает гораздо больше возможностей, но увы не все ее понимают и знают ;)
 
Это позволяет быстро прототипировать, не перезагружая сервер.
Есть такая херня как отладчик и консоль отладки

Просто, быстро и эффективно
Можешь по-строчно код прогнать, посмотреть значения всех переменных
Если jvm поддерживает хотсвап - то прямо в рантайме править логику методов итд
offtop
И да, если тебе нужна отладка таких банальных вещей - штож ... сочувствую


Что сломается?
Если 100 игроков одновременно видят баланс и ваш скрипт каждый раз конвертирует строку в число — сервер начнёт тормозить.
Доеб 1:
Парсить строку в число быстрее в разы быстрее чем делать это обратно. И тем более быстрее чем объединять строки или реплейсить в них что-то
Доеб 2:
Это актуально для практически всего - вызвать метод 1 раз и сохранить результат локально для многократного быстрого доступа
Доеб 3
Кто-то явно не писал на js и не читал про различия полей
 
Есть такая херня как отладчик и консоль отладки

Просто, быстро и эффективно
Можешь по-строчно код прогнать, посмотреть значения всех переменных
Если jvm поддерживает хотсвап - то прямо в рантайме править логику методов итд
offtop
И да, если тебе нужна отладка таких банальных вещей - штож ... сочувствую
Тут скорее проблема не в отладке, а в оформлении. С всеми этими hex цветами и символами можно реально долго сидеть и подбирать подходящие цвета и стиль, потому что первый цвет недостаточно зелёный, а второй уже слишком тёмный, третий вообще выглядит болотным, да и вообще символ палки для отделения префикса смотрится не так
 
Есть такая херня как отладчик и консоль отладки

Просто, быстро и эффективно
Можешь по-строчно код прогнать, посмотреть значения всех переменных
Если jvm поддерживает хотсвап - то прямо в рантайме править логику методов итд
offtop
И да, если тебе нужна отладка таких банальных вещей - штож ... сочувствую



Доеб 1:
Парсить строку в число быстрее в разы быстрее чем делать это обратно. И тем более быстрее чем объединять строки или реплейсить в них что-то
Доеб 2:
Это актуально для практически всего - вызвать метод 1 раз и сохранить результат локально для многократного быстрого доступа
Доеб 3
Кто-то явно не писал на js и не читал про различия полей

Вы правы по сути, но я пишу гайд не для JVM-инженеров, а для админов Minecraft-серверов, которые впервые видят var и думают, что NaN это имя игрока.
Да, parseFloat — это дешёвая операция.
Да, есть отладчики, хотсвап и прочие фичи.

Но в реальности большинство новичков в PAPI:
1. Работают через config.yml и текстовый редактор,
2. Не знают, что такое JVM,
3. И видят NaN и не понимают, почему.

Поэтому я объясняю простые вещи простым языком, даже если они кажутся очевидными.
Да, «сохранить результат один раз» — база.
Но для новичка это не очевидно.
Именно поэтому в статье есть строчка:
// Конвертируем в число один раз — чтобы закрепить принцип, а не только решение.
А насчёт «если вам нужно отлаживать такие вещи — сочувствую» —
я с вами согласен, Но моя задача — сделать так, чтобы через месяц им уже не пришлось «сочувствовать».

Давайте будем терпимы к тем, кто только в пути ;)
 
Вы правы по сути, но я пишу гайд не для JVM-инженеров, а для админов Minecraft-серверов, которые впервые видят var и думают, что NaN это имя игрока.
Да, parseFloat — это дешёвая операция.
Да, есть отладчики, хотсвап и прочие фичи.

Но в реальности большинство новичков в PAPI:
1. Работают через config.yml и текстовый редактор,
2. Не знают, что такое JVM,
3. И видят NaN и не понимают, почему.

Поэтому я объясняю простые вещи простым языком, даже если они кажутся очевидными.
Да, «сохранить результат один раз» — база.
Но для новичка это не очевидно.
Именно поэтому в статье есть строчка:
// Конвертируем в число один раз — чтобы закрепить принцип, а не только решение.
А насчёт «если вам нужно отлаживать такие вещи — сочувствую» —
я с вами согласен, Но моя задача — сделать так, чтобы через месяц им уже не пришлось «сочувствовать».

Давайте будем терпимы к тем, кто только в пути ;)
Реализация JS в PAPI крайне плоха, банально то, что на него уже есть штук 5 бэкдоров и несколько десяток проблем с производительностью, несовместимостями и утечками памяти там, где они не должны быть. Так ещё отсутствие поддержки и заброшенность разработки расширения. Адекватные проекты не используют эту какаху.

Я не спорю в том факте, что это удобно, но конкретно в PAPI это калище. В чем собственно и САМИ РАЗРАБОТЧИКИ утверждают и говорят ОБ БЭКДОРАХ и УТЕЧКАХ.
 
Спасибо за комментарий. Да, JS в PAPI действительно имеет известные ограничения: утечки памяти, устаревший движок Nashorn, отсутствие поддержки.

Разработчики PAPI неоднократно предупреждали об этом, и в продвинутых проектах его действительно стоит избегать.

Эта статья — не апология JS в PAPI, а практическое руководство для тех, кто его уже использует.
Многие администраторы серверов уже ставят JS-скрипты, потому что это просто и не требует сборки плагинов.
И если уж использовать — то делать это безопасно и правильно.

Мы разбираем именно этот инструмент, потому что он есть.
А не потому, что он идеален.
 
Спасибо за комментарий. Да, JS в PAPI действительно имеет известные ограничения: утечки памяти, устаревший движок Nashorn, отсутствие поддержки.

Разработчики PAPI неоднократно предупреждали об этом, и в продвинутых проектах его действительно стоит избегать.

Эта статья — не апология JS в PAPI, а практическое руководство для тех, кто его уже использует.
Многие администраторы серверов уже ставят JS-скрипты, потому что это просто и не требует сборки плагинов.
И если уж использовать — то делать это безопасно и правильно.

Мы разбираем именно этот инструмент, потому что он есть.
А не потому, что он идеален.
Тогда тебе стоит переписать статью и уточнить в этом, поднести её по-другому и написать дисклеймер об том, что не стоит использовать JavaScript в Placeholderapi из-за бэкдоров и отсутствия поддержки. Не вводите людей в заблуждение и не мотивируйте скачивать то, что сломает их сервер в пару кликов)
 
Тогда тебе стоит переписать статью и уточнить в этом, поднести её по-другому и написать дисклеймер об том, что не стоит использовать JavaScript в Placeholderapi из-за бэкдоров и отсутствия поддержки. Не вводите людей в заблуждение и не мотивируйте скачивать то, что сломает их сервер в пару кликов)
Моя цель — не продвигать инструмент, а минимизировать вред.
Как инструкция «что делать, если вы уже нажали кнопку».
 
Тут скорее проблема не в отладке, а в оформлении. С всеми этими hex цветами и символами можно реально долго сидеть и подбирать подходящие цвета и стиль, потому что первый цвет недостаточно зелёный, а второй уже слишком тёмный, третий вообще выглядит болотным, да и вообще символ палки для отделения префикса смотрится не так
Есть сайты где норм визуальный редактор этого всего.

Касательно классического оформления. Я спецом для своего плагина для vs-code добавил фичу по авто-окраске tson-ов
И бонусом отладочную команду, к-я шлет сообщение в чат

Вам необходимо зарегистрироваться для просмотра изображений-вложений
 
Последнее редактирование:
Есть сайты где норм визуальный редактор этого всего.

Касательно классического оформления. Я спецом для своего плагина для vs-code добавил фичу по авто-окраске tson-ов
И бонусом отладочную команду, к-я шлет сообщение в чат
offtop Vscode чисто монстр со своими расширениями, уже много лет использую. Сплошной кайф работать, не выходя из среды разработки. Даже sftp / терминал не нужен, там уже всё есть и сделано вполне удобно.
 
offtop Vscode чисто монстр со своими расширениями, уже много лет использую. Сплошной кайф работать, не выходя из среды разработки. Даже sftp / терминал не нужен, там уже всё есть и сделано вполне удобно.
offtop
И оно само более дружелюбное для расширений, чем другие среды (которые у меня есть), под к-ые я пробовал писать плагины
 
Назад
Сверху Снизу