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

Как добавить команды в чужой мод?

Метки:
Теги Теги
anime naruto команды

Dantalion

Ньюби
Баллы
0
Мод Anime Naruto, хотелось бы добавить команды на смену клана, выдачу очков навыков, JP и разных Кеккей Генкаев. Можно ли это сделать, если я вообще не шарю за моддинг? )
https://yadi.sk/d/GM-TaKIamHKxpA - ссылка на мод.
 
Мод Anime Naruto, хотелось бы добавить команды на смену клана, выдачу очков навыков, JP и разных Кеккей Генкаев. Можно ли это сделать, если я вообще не шарю за моддинг? )
https://yadi.sk/d/GM-TaKIamHKxpA - ссылка на мод.
Без исходников ничего не сделаешь, если ты хочешь в мод запихать это. Нужно отдельно делать, но судя по всему ты не шаришь и тебя вряд ли тут кто-то поможет с этим за "Спасибо". Если прям очень нужно - то иди в коммерческий раздел.
 
Без исходников ничего не сделаешь, если ты хочешь в мод запихать это. Нужно отдельно делать, но судя по всему ты не шаришь и тебя вряд ли тут кто-то поможет с этим за "Спасибо". Если прям очень нужно - то иди в коммерческий раздел.
Почему же без исходников не сделает? Декомпилятор в руки и вперед. В крайнем случае можно напрямую байт-код редачить. Либо средства ASM юзать (один только Byte Buddy чего стоит). Обходных путей много, но да, раз он не шарит, пусть других просит.
 
Куда такие сложности? Пишем аддон к моду с нужными командами. Этими командами взаимодействуем с кодом мода.
К тому, что инкапсуляция может подпортить дело, а отражения - это дорого.
Стоит ли вообще вспоминать, что даже с setAccessible использование отражений медленнее прямых вызовов?
+ Варианты, когда без редактирования кода не обойтись: скажем, конструктор или метод изменить, а Unsafe применять опасно.
 
Какая ещё нагрузка? Команду что ли каждый тик вводить придётся? Не факт, что там рефлексия вообще понадобится, если на public всё.
Ну тк я как раз про вариант "если не public".
Не нагрузка, а именно потеря производительности. На эту тему есть такая статья: https://habr.com/ru/post/216435/
 
Если тебя так ебет потеря производительности РЕДКО ИСПОЛЬЗУЕМОЙ команды, можно через ASM подправить модификаторы доступа. Многие моды так делают, чтобы не использовать рефлексии.
Есть для тебя печальная новость: инвенты в bukkit через рефлексию вызываются, за тик таких вызовов может быть тысячи. Вот что должно тебя волновать, микроАптимизатор.
1458851151163315434.jpg

Использование ASM лишь для редактирования модификаторов - это вообще отдельная тема "насколько везде говнокод и почему 1.12.2 - тормознутый ад". По-хорошему, адекватные разрабы такое называют костылем.
Лично я не считаю, что ради "модификации модификации" нужно выпендриваться с ASM, отражениями и прочей ересью. Ало, мы простенькие моды пишем или показываем насколько мы крутые? Декомпильнуть и изменить непосредственно - это старый-добрый дедовский метод, без всякого выпендрежа "делаем крутой, современный говнокод, падающий при любом чихе, да еще и без обертки использования пакетов sun в try-catch".
А переписывать bukkit равносильно изобретению велосипеда (тем более, увы, использование отражений оправдано использованием аннотаций).
В любом случае, мы уже сильно отстранились от темы топика, поэтому надо б эту ветвь и закрыть.
 
Последнее редактирование:

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

Назад
Верх