Запустить конфигурацию для отладки плагина Bukkit/Minecraft в IntelliJ IDEA?

Я помогаю своему ребенку научиться создавать плагины Minecraft, хотя у меня нет большого опыта работы с Java или IDEA. До сих пор все работает хорошо, но для выполнения нашего кода мы должны:

  • Сделать проект в IDEA (путь вывода установлен на Bukkit/plugins)
  • Запустить сервер Bukkit
  • Запустите Minecraft и подключитесь

Я не уверен, что можно что-либо сделать (3), но мне кажется, что IDEA должна иметь возможность обрабатывать (1) и (2) за один шаг. Кроме того, мы не можем сейчас отлаживать эту конфигурацию.

В Visual Studio/.NET мне просто нужно указать исполняемый файл - java/craftbukkit, в данном случае - как "внешняя программа" , и это решит все эти проблемы. Однако в IDEA кажется, что я должен добавить конфигурацию запуска, и я не вижу опции, которая допускает что-либо вроде "хост-приложения". Вместо этого он хочет получить полный путь к main для Bukkit, и мне непонятно, что это будет. Я также видел, что в другом месте он предложил, что даже это не будет работать без отладочной сборки Bukkit. но я действительно не хочу отлаживать Bukkit; Я просто хочу отлаживать только код плагина.

Я нашел эти инструкции для удаленной отладки плагинов Bukkit, но это действительно необходимо? Он не решает проблему "два шага к запуску"; это на самом деле делает его хуже!

Ответ 1

Я понимаю, что этот вопрос больше года, но у меня тоже была эта проблема в последнее время и не нашел удовлетворительных ответов. Вот как я решил это, с помощью ответа @hunterboerner.


Прежде всего вам нужно создать артефакт, который компилирует JAR плагина в каталог сервера тестирования plugins:

  • Перейдите в раздел "Файл > Структура проектa > Артефакты"
  • Добавить новый артефакт из шаблона "Другое"
  • Установите "Каталог вывода" в каталог plugins сервера тестирования
  • В разделе "Доступные элементы" щелкните правой кнопкой мыши запись "ProjectName" для компиляции ", а затем нажмите" Загрузить в /ProjectName.jar "

Если ваш проект не имеет файла MANIFEST.MF:

  • Выберите новую запись файла jar в разделе "root output" и нажмите "Создать манифест..."
  • Перейдите в каталог, в котором хранятся исходные файлы java проекта (например, src/main/java/)

Пример конфигурации артефакта: пример конфигурации артефакта

Затем вам нужно создать конфигурацию запуска, которая запускает JAR сервера Spigot:

  • Перейдите в раздел "Запустить > Изменить конфигурации..."
  • Добавить новую конфигурацию "JAR Application"
  • Установите "Путь к JAR" на тестовый сервер Spigot JAR
  • Установите "Рабочий каталог" в каталог сервера тестирования
  • В разделе "Перед запуском" добавьте новую задачу "Сборка артефактов"
  • Отметьте созданный выше артефакт в списке

Пример конфигурации запуска: example run config

После выполнения этих шагов "Отлаживайте" конфигурацию запуска или нажмите SHIFT+F9. Это автоматически создаст JAR плагина, скопирует его на тестовый сервер и запустит этот сервер с полными средствами отладки, включая точки останова и обмен горячим кодом.

Ответ 2

Если вам не нужно использовать IntelliJ IDEA, я предлагаю вам использовать eclipse. Я работал уже более двух лет с затмением без каких-либо проблем. Отладчик eclipse имеет действительно хороший обзор для всех значений, поэтому я думаю, что это не проблема.

Чтобы решить вашу проблему, вы можете попробовать использовать который из GDorn. Он описывает, как отлаживать плагин bukkit с сервером. Я этого не пробовал, но похоже, что он будет работать.

Резюме

Сначала вам нужно открыть конфигурацию прогона и создать новую конфигурацию приложения. На вкладке classpath вам нужно удалить все "Пользовательские записи". Убедитесь, что "Записи Bootstrap" содержат библиотеку JRE. Также добавьте два внешних банка: craftbukkit.jar(сервер Bukkit) и файл minecraft_server.jar(ванильный сервер).

Я не знаю, почему вам нужно добавить Vanilla Server, я прочитал, что в учебнике вы можете попробовать его без него. В противном случае вы можете найти здесь.

После этого установите рабочий каталог на вкладке параметров. Сохраните его и запустите.

Вы все можете прочитать это точно в ссылке на учебник. Он описывает это немного лучше, чем мое резюме. Вы также можете попытаться использовать эту информацию, для вашей IntelliJ IDEA, возможно, она дает вам подсказку, как ее решить.

Ответ 3

Прежде всего вам нужно создать артефакт. Пример скриншота здесь:

artifact

Это можно найти в разделе "Файл" > "Структура проекта"

Затем перейдите в Run > Build Configurations и создайте конфигурацию Maven

Вам не нужно заполнять какие-либо параметры. Перейдите к началу и добавьте артефакт. Затем нажмите "Добавить", запустите внешний инструмент. Создай. Заполните его. Ниже приведен пример.

run external

Как только это добавлено в конфигурацию сборки, перейдите в меню "Выполнить" > "Выполнить", и он должен работать в консоли ниже.

Ответ 4

Я не думаю, что есть возможный способ автоматического развертывания и запуска сервера Bukkit. IntelliJ требует, чтобы класс с основным методом определялся в конфигурации запуска, чего вы не можете сделать, если у вас нет источника Bukkit в вашем проекте. Я сделаю еще несколько исследований, но раньше я изучал эту тему и вышел с пустыми руками. Что я делаю в качестве альтернативы, так это сделать плагин дружественным с перезагрузками и просто запускать/перезагружать всякий раз, когда вы развертываете новую версию.