1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите библиотека ASM и SkyWarsReloaded

Тема в разделе "Разработка плагинов для новичков", создана пользователем example123, 7 апр 2019.

  1. Автор темы
    example123

    example123 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    AdrenalineEXE
    Возвращаюсь к своей недавней теме про аддон к плагину SkyWarsReloaded. Нашёл библиотеку ASM для редактирования байт-кода (asm.ow2.io). Немного разобрался, в общем, допустим мы находимся мы в методе с названием "startGame". У нас есть переезд метода visitCode() -> мы находимся в коде с помощью MethodVisitor как бы это странно не было. Теперь мне нужно добавить в код определённую строку, а именно - Bukkit.getPluginManager().callEvent(new com.walrusone.skywars.api.GameStartEvent(gameMap, gameNumber, gPlayers)); - gameMap, gameNumber, gPlayers - это переменные, остальное вызов ивента. Ниже байт-код самой строки) Вот в общем и всё, как мне это сделать?)[​IMG]
     
  2. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Я в ASM не шарю, просто интересно, почему ты решил именно байт-код редактировать?
    И картинка в конце кривая. Нормальная ссылка: https://i.ibb.co/gScvgLx/byte-code.png
     
  3. NyanGuyMF

    NyanGuyMF Активный участник Пользователь

    Баллы:
    76
    Не могу подсказать ничего по поводу изменения байт-кода, но я бы скопировал репку и сделал всё напрямую в исходниках:
    Код:
    $ git clone https://github.com/walrusone/SkyWarsReloaded.git
    # проводишь необходимые изменения через Eclipse/{любой другой редактор кода/текста}
    $ mvn package
    # В папке targer/ появляется скомпилированный плагин со всеми изменениями
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Может чел учит asm?
     
  5. Автор темы
    example123

    example123 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    AdrenalineEXE
    Я тут не совсем вижу API, хотя идея хорошая
     
  6. Автор темы
    example123

    example123 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    AdrenalineEXE
    А какие есть ещё варианты изменения ? Только если декомпилировать, это я пытался, ошибок много
     
  7. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Шутишь? Тебе человек выше написал, что исходный код находится в открытом доступе. Меняешь под себя и собираешь
     
  8. Автор темы
    example123

    example123 Активный участник Пользователь

    Баллы:
    61
    Имя в Minecraft:
    AdrenalineEXE
    По-моему они кривые, поскольку если скачать этот ZIP архив и всё как есть загрузить в IDE, ошибки будут в package, также там нету plugin.yml, config.yml и т.д.
     
  9. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    96
    Декомпилируешь класс который тебе нужно изменить, добавляешь оригинальный плуг как библиотеку. profit.
     
  10. NyanGuyMF

    NyanGuyMF Активный участник Пользователь

    Баллы:
    76
    Maven решает проблемы зависимостей, из-за которых все IDE выдают тебе кучу ошибок
     

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