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

Помогите Запуск сервера из IDE

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

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

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

    Баллы:
    76
    Всем привет!
    Как-то раз видел у англоязычного разработчика в видосе, как он написал простенький плагин и запустил сервер прямо в IDE..
    На самом деле, как я думаю, это достаточно удобно...
    Хочу спросить у вас, дорогие форумчане, как можно сделать такую же штуку?
    P.S. извините, если перепутал разделы, не знаю в какой с таким вопросом податься =((
     
  2. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Открываешь ядро как Jar application в run configuration в идеи.
    upload_2019-5-26_23-52-17.png
    В VM Options добавляешь (заранее установи DCEVM в jdk)
    -Dfile.encoding=UTF8 -XXaltjvm=dcevm -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005

    Запускаешь в режиме дебага и все, можно дебажить, хотсвапать и так далее.
    upload_2019-5-26_23-53-37.png
     
  3. Автор темы
    Kurumi

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

    Баллы:
    76
    Для не особо умных, можно пояснить, что такое хотсвап, пожалуйста?)
     
  4. alexandrage

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

    Баллы:
    173
    Его и так не нужно перезапускать, ты же плагин пишешь, а не само ядро. Плагины умеют релоадятся.
     
  5. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Хотсвап намного удобней, т. к. в основном оч мелкие изменения кусков кода. Во время перезагрузки плагина больше шансов, что где-то че-то обосрется, чем при хотсвапе отдельного класса.
     
  6. alexandrage

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

    Баллы:
    173
    Видимо этот шанс околоноль. Ибо не сталкивался.
     
  7. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Например, при использовании InventoryHolder-а с другого плагина, после перезагрузки менюшки сломаются (дефолтный кейс с использованием апи менюшек).
    Часто бывало еще, что package-private доступ тоже ломается.

    Да и вообще смысл билдить весь плагин а потом еще команду писать, если можно нажать 1 бинд и перезагрузить нужный тебе класс.
     
  8. alexandrage

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

    Баллы:
    173
    Ну у меня все плагины не зависимые от других. Ну помима юза vault. А писать не нужно каждый раз, она же повторяется корячими клавишами. Как всегда из мухи слона изобретаете.
    Вот еслиб я само ядро редачил ии мод писал на форже, то мне бы точно пригодился дебаг в иде. А так не особо.
     
  9. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Я использую свой апи, который идет отдельным плагином, это очень удобно.

    Перезагрузка плагина возможно удобней в случаях, когда много изменений в разных местах, но пересобирать весь проект ради изменения тела какого-то метода и прочих мелких изменениях неэффективно, здесь удобней хотсвап.
     
  10. Автор темы
    Kurumi

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

    Баллы:
    76
    что я не так сделал? upload_2019-5-27_13-48-3.png
     
  11. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
     
  12. Автор темы
    Kurumi

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

    Баллы:
    76
    Устанавливал
     
  13. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Смотрел невнимательно, у тебя же jdk 12, DCEVM доступно только для 7, 8 и 11 сейчас. Просто убери из параметров запуска -XXaltjvm=dcevm, хотсвап будет более ограничен, но все же.
     
  14. Автор темы
    Kurumi

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

    Баллы:
    76
    upload_2019-5-27_19-9-21.png
     
  15. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Дебаж на 11 джаве, если ты не используешь ниче из java 12, или просто пробуй запускать не в режиме дебага (это хреново кнч, что на 12 джаве не робит)
     
  16. ilya50

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

    Баллы:
    76

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