13

我正在帮助我的孩子学习创建 Minecraft 插件,尽管我对 Java 或 IDEA 没有太多经验。到目前为止一切都运行良好,但为了执行我们的代码,我们必须:

  1. 在IDEA中制作项目(输出路径设置为Bukkit/plugins
  2. 运行 Bukkit 服务器
  3. 启动 Minecraft 并连接

我不确定是否可以对 (3) 做任何事情,但在我看来,IDEA 应该能够一步处理 (1) 和 (2)。此外,我们目前无法使用此配置进行调试。

在 Visual Studio / .NET 中,我只需将可执行文件(在本例中为 java/craftbukkit)指定为“外部程序”,它就可以解决所有这些问题。不过,在 IDEA 中,我似乎应该添加一个运行配置,但我没有看到允许任何类似“主机应用程序”的选项。相反,它想要mainBukkit 的完整类路径,我不清楚那会是什么。我还在其他地方看到它建议,如果没有 Bukkit 的调试版本,即使这样也行不通。但我真的不想调试 Bukkit;我只想调试我们的插件代码。

我找到了这些远程调试 Bukkit 插件的说明,但这真的有必要吗?它没有解决“两步走”的问题;它实际上使情况变得更糟!

4

4 回答 4

15

我意识到这个问题已有一年多的历史了,但我最近也遇到了这个问题,并没有找到令人满意的答案。这就是我在@hunterboerner 的回答的帮助下解决它的方法。


首先,您需要创建一个将插件 JAR 编译到测试服务器plugins目录的工件:

  1. 转到“文件 > 项目结构 > 工件”
  2. 从模板“其他”添加一个新的工件
  3. 将“输出目录”设置plugins为测试服务器的目录
  4. 在“可用元素”下,右键单击条目“' ProjectName '编译输出”,然后单击“打包到/ProjectName.jar

如果您的项目没有MANIFEST.MF文件:

  1. 选择“输出根目录”下的新jar文件条目,然后单击“创建清单...”
  2. 导航到保存项目的 java 源文件的目录(例如src/main/java/

一个示例工件配置:示例工件配置

接下来,您需要创建一个执行 Spigot 服务器 JAR 的运行配置:

  1. 转到“运行 > 编辑配置...”
  2. 添加新的“JAR 应用程序”配置
  3. 将“JAR 路径”设置为测试服务器的 Spigot JAR
  4. 将“工作目录”设置为测试服务器的目录
  5. 在“Before launch”下,添加一个新的“Build Artifacts”任务
  6. 在列表中选中上面创建的工件

示例运行配置:示例运行配置

完成这些步骤后,“调试”运行配置或按SHIFT+F9。这将自动构建插件 JAR,将其复制到测试服务器并使用完整的调试工具执行该服务器,包括断点和热代码交换。

于 2015-04-29T13:41:15.960 回答
4

如果您不必使用 IntelliJ IDEA,我建议您使用 eclipse。我现在用 eclipse 工作了两年多,没有任何问题。eclipse 调试器对所有值都有很好的概述,所以我认为这不是问题。

要解决您的问题,您可以尝试使用GDorn中的教程。他描述了如何使用服务器调试 bukkit 插件。我没有尝试过,但似乎它会起作用。

概括

首先,您必须打开运行配置并创建新的应用程序配置。在您的类路径选项卡中,您必须删除所有“用户条目”。确保“引导条目”包含 JRE 库。还要添加两个外部 jar,craftbukkit.jar(Bukkit 服务器)和 minecraft_server.jar(Vanilla 服务器)。

我不知道为什么你必须添加一个香草服务器,我在教程中读到过,你可以在没有它的情况下尝试它。否则,您可以在这里找到它。

之后,在参数选项卡中设置您的工作目录。保存并运行它。

你们都可以在教程链接中准确阅读。他的描述比我的总结好一点。您也可以尝试将这些信息用于您的 IntelliJ IDEA,也许它会为您提供如何解决它的提示。

于 2013-08-28T11:50:17.510 回答
2

首先,您需要创建一个工件。此处的示例屏幕截图:

人工制品

可以在文件>项目结构下找到

然后转到 Run>Build Configurations 并创建一个 Maven 配置

您无需填写任何参数。转到启动前并添加工件。然后点击添加,运行外部工具。创建一个。填写。下面是一个例子。

外部运行

一旦将其添加到构建配置中,只需转到运行>运行,它应该在下面的控制台中运行。

于 2013-08-30T01:53:35.510 回答
-1

我认为没有任何可能的方式来自动部署和启动 Bukkit 服务器。IntelliJ 要求在运行配置中定义具有 main 方法的类,除非您的项目中有 Bukkit 源,否则您不能这样做。我会做一些进一步的研究,但我以前研究过这个话题,结果空手而归。作为替代方案,我所做的是使插件对重新加载友好,并且在部署新版本时只需运行 /reload 即可。

于 2013-08-28T01:12:09.520 回答