creator cover Groundbreaking
Groundbreaking

Groundbreaking 

0subscribers

2posts

goals1
$437.42 of $1 643 raised
For my little dream fund

About

Мне 16 лет, зовут Виктор. Я джуниор джава девелопер, и большая часть написанного кода уходит плагинам для майнкрафта.
Тут хочу делится своими мыслями и новыми навыками! А так-же конфигами для плагинов и т. д.
Подписки не обязательны, и направлены лишь на поддержку и мотивацию меня! Хотя скорее - только на поддержку, хехе. Спасибо! 

Народ vs WorldGuard

(Если кто-то не хочет читать весь текст, то в самом низу в двух словах написано, как избавиться от назойливого перезаписывания команд!)
Многие сталкивались с проблемой, когда WorldGuard в новых версиях "отбирает" команды, такие как god, heal и locate. Помимо этого, он добавляет ещё команду ungod, slay и stack. Пользователям CMI, возможно, это не доставляет неудобств(не проверял), но пользователи Essentials точно сталкиваются с проблемами использования команд на лечение и режим бога.
Настройка overridden-command(Essentils\config.yml) (например, добавление туда god и heal) редко помогает решить проблему. А что насчет команды locate? В итоге оставался единственный вариант: добавлять команды в файл commands.yml. Однако у этого способа есть недостаток — мы теряем автодополнение (tab-комплит подставляет только ники игроков).
Сначала я решил написать плагин, который будет лезть в CommandMap и менять обработчики команд. Но вчера мне пришло озарение: почему бы просто не изменить код WorldGuard, чтобы он не регистрировал эти команды? После недолгого изучения кода я понял, что проще всего скомпилировать класс с модифицированной реализацией, в которой эти команды просто не регистрируются. В результате:
- Команды перестанут регистрироваться;
- Плагин будет работать корректно;
- Ошибок в консоли не будет.
Вот что вышло:
Сначала я скомпилировал класс и попытался заменить его в архиве .jar с помощью архиватора. Однако не сработало: получившийся .jar файл оказывался повреждённым. Тогда я решил разархивировать .jar файл, заменить нужный класс, собрать архив обратно и изменить его расширение(.rar -> .jar). Но и это не помогло(ну кто-же знал, что это так не работает хехе). Погуглив, я нашёл команду для правильной сборки .jar файлов. Так появилась идея написать скрипт, который бы:
1. Разбирал .jar файл во временную папку.
2. Заменял старый класс на новый.
3. Собирал архив обратно.
Создал скрипт, запустил, и — РАБОТАЕТ. Однако в логах появилась ошибка: при запуске через рефлексию пытались получить конструктор класса с параметром WorldGuard. Это я не учёл. Пришлось пересобрать класс, и теперь он выглядел вот так:

Начало...

Решил начать излогать сюда некоторые свои мысли и новые события, а так-же некоторые интересные вещи которым я учусь. Хочу, чтобы было еще одно уникальное место, где вы бы смогли узнать, что-то интересное для себя! Заодно и я попробую себя в чемто новом печатая ежедневно посты.
О чем буду писать:
1. Помимо того, что я перечислил буду писать сюда про плагины для майнкрафта, а точнее: их настройку, кидать конфиги сюда свои, писать про баги или уязвимости. А может и вовсе буду сюда кидать свои плагины.
2. Еще хотел бы делится с вами делиться свои гкодом, чтобы мы вместе могли становится лучше в его написании. Может он когда-то и перестанет быть г :)
3. Может буду делиться моментами из жизни ¯\_(ツ)_/¯
Subscription levels3

Embark

$2.11 per month
Даёт доступ к постав где я расказываю про интересные ресурсы, которыми пользуюсь сам. А так-же лайфаки с ними!

Explore

$7.1 per month
Даёт доступ к мои приватным плагинам.

Conquer

$13.5 per month
Сюда буду стараться излогать самый эксклюзив!
Go up