- Баллы
- 96
- Ник в Minecraft
- imDaniX
Исходный код: https://github.com/GlowingInk/InkyMessage
Документация: пока что README
(Де)сериализатор текста для Adventure, вдохновленный MineDown и MiniMessage. Поддерживает как легаси формат цветов(&a, &1, &n), так и современные функции.
Меня не устраивали оба решения, из-за чего я и решил взяться за проект. MineDown в принципе неплохой, но стакать опции сообщений - крайне неудобно. MiniMessage требует большое количество писанины для минимальных функций, на что просто становится больно смотреть.
Производительность итоговой библиотеки не так важна, ведь всё в любом случае измеряется буквально в наносекундах. Но если вам вдруг понадобится отправлять тысячи сообщений в секунду - грубо говоря, на данном этапе примерно в три раза быстрее MineDown, примерно в пять раз быстрее MiniMessage. Может отличаться от ситуации к ситуации; в частности - обработка градиентов пока идет примерно наравне с MiniMessage.
Для всех текущих тегов смотрите документацию.
Green, clickable red, red again.
Как можно заметить, в отличии от MiniMessage и MineDown, цвета сохраняют линейность даже после дополнительного форматирования. Единственная неудобность в этом плане: форматирование с тегом color будет требовать поставить &r заранее - цвета накладываются "поверх", и если у текста уже есть какой-то цвет, то по сути тег будет проигнорирован.
Кастомизация InkyMessageResolver пока в разработке, и я настоятельно не рекомендую её использовать в данный момент - иначе вам ещё раз 10 придется её переписывать, я уверен.
Для добавления к себе в проект можно воспользоваться Maven.
Репозиторий
Зависимость
По нужде - зашейдить
Документация: пока что README
Описание
Разработка в ранней стадии.(Де)сериализатор текста для Adventure, вдохновленный MineDown и MiniMessage. Поддерживает как легаси формат цветов(&a, &1, &n), так и современные функции.
Меня не устраивали оба решения, из-за чего я и решил взяться за проект. MineDown в принципе неплохой, но стакать опции сообщений - крайне неудобно. MiniMessage требует большое количество писанины для минимальных функций, на что просто становится больно смотреть.
Производительность итоговой библиотеки не так важна, ведь всё в любом случае измеряется буквально в наносекундах. Но если вам вдруг понадобится отправлять тысячи сообщений в секунду - грубо говоря, на данном этапе примерно в три раза быстрее MineDown, примерно в пять раз быстрее MiniMessage. Может отличаться от ситуации к ситуации; в частности - обработка градиентов пока идет примерно наравне с MiniMessage.
Формат
Полностью поддерживается легаси формат цветов. Для более богатого форматирования используйте формат: &[моё сообщение](тег1:подтег)(тег2:подтег значение)(тегN:подтег...)Для всех текущих тегов смотрите документацию.
Green, clickable red, red again.
Код:
Inky: &aGreen, &[clickable&c red](click:url https://rubukkit.org/), red again.
Mini: <green>Green, <click:open_url:'https://rubukkit.org/'><green>clickable<red> red</click><red>, red again.
Down: &aGreen, [&aclickable&c red](https://rubukkit.org/)&c, red again
Код:
Inky: &aЗелёный, &r&[радужный](gradient:spectrum)(click:url https://rubukkit.org/)
Mini: <green>Зелёный, <click:open_url:'https://rubukkit.org/'><rainbow>радужный</rainbow></click>
Down: &aЗелёный, [&rainbow&радужный](https://rubukkit.org/)
Использование
Основа - класс InkyMessage. Для генерации сообщений воспользуйтесь InkyMessage.inkyMessage() - либо импортируйте статично, либо просто сохраните в переменную. Далее достаточно вызвать deserialize("&aСообщение"). Экранировать текст можно через InkyMessage.escape("&aСообщение") - подобное сообщение при попадании в deserialize будет работать как обычный текст.Кастомизация InkyMessageResolver пока в разработке, и я настоятельно не рекомендую её использовать в данный момент - иначе вам ещё раз 10 придется её переписывать, я уверен.
Для добавления к себе в проект можно воспользоваться Maven.
Репозиторий
HTML:
<repository>
<id>glowing-ink</id>
<url>https://repo.glowing.ink/releases</url>
</repository>
HTML:
<dependency>
<groupId>ink.glowing</groupId>
<artifactId>inkymessage</artifactId>
<version>0.11.0</version> <!-- Сравните с версией на GitHub -->
</dependency>
HTML:
<build>
<plugins>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>3.4.1</version>
<configuration>
<relocations>
<relocation>
<pattern>ink.glowing.text</pattern>
<shadedPattern>ваш.пакет.для.библиотеки</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
TODO
До релиза сделать в планах следующее:- Плейсхолдеры для компонентов клавиш и прочего.
- Дописать документацию, примеры, скриншоты.
- Закончить первую стадию API.
Последнее редактирование: