项目快速入门指南¶
这里是一个非常简洁的指南,用于创建你的第一个 PySpigot 项目。
下载和加载 PySpigot¶
PySpigot 官方支持在 Spigot 和 Paper 上以及在 Minecraft 版本 1.16 及更高版本上运行。我无法保证 PySpigot 可以在这些条件之外正常工作,但某些用户报告在其他服务器软件和/或较旧的 MC 版本上取得成功。
截至版本 0.6.0,PySpigot 是基于 Java 17 构建的。这意味着从版本 0.6.0 开始,PySpigot 需要 Java 17 或更高版本。
从 GitHub 或 Spigot 下载最新版本的 PySpigot。将下载的 Jar 文件放入插件文件夹,然后启动你的服务器。
创建你的第一个脚本¶
在这个简短的教程中,我们将创建一个非常简单的项目,注册一个事件监听器。
创建项目文件夹¶
所有项目应放置在 PySpigot 主插件文件夹中的 projects 文件夹中。该主 projects 文件夹内的每个文件夹都被视为一个独立项目。所有项目的名称必须在其他项目和单个文件脚本之间是唯一的(即,脚本和项目不能共享相同的名称)。
在 projects 文件夹中创建一个文件夹,并随意命名它。文件夹名称将作为该项目的名称,稍后将用于加载和卸载该项目。
提示
PySpigot 将尝试加载 projects 文件夹中的所有文件夹(作为单独的项目)。你可以通过在其 项目选项 中设置 enabled: false 来禁用一个项目。
创建 project.yml¶
虽然不是必需的,但强烈建议在项目的根文件夹中创建一个project.yml文件。这个文件作为项目的项目选项的源,在这里放置着项目特定的选项。PySpigot要求文件名必须是project.yml,并且位于项目的根目录中。
在你之前创建的文件夹中创建一个名为project.yml的文件。
使用你选择的文本编辑器打开刚创建的文件,并添加以下内容:
1 | |
- 这个指令告诉PySpigot我们项目中哪个文件是“main”模块,这样它就知道在加载项目时执行哪个模块。
创建监听器模块¶
接下来,在项目的根文件夹中创建一个Python模块,命名为listener.py。
使用你选择的文本编辑器打开listener.py模块,并添加一些代码:
1 2 3 4 5 6 7 8 | |
- 首先,我们导入pyspigot辅助模块。
- 接下来,我们导入我们想要监听的事件,在这种情况下是
AsyncPlayerChatEvent。 - 然后,我们定义一个函数,作为事件的实际监听器。当事件被触发时,该函数将被调用。将会传递一个包含与事件相关数据的AsyncPlayerChatEvent对象。
- 在此处,我们打印发送的聊天消息到控制台。
- 在这里,我们创建一个可以从项目的主模块中调用的函数,用于注册事件监听器。
- 在这里,利用PySpigot的监听器管理器注册我们的事件,传递我们之前定义的函数以及要监听的事件。
保存文件并退出。
创建主模块¶
最后,在项目的根文件夹中创建另一个Python模块,并命名为main.py。
使用您喜欢的文本编辑器打开main.py模块,并添加以下代码:
1 2 3 4 5 | |
- 首先,我们导入在前一步中创建的监听器模块。
- 接下来,我们导入
Bukkit类以广播消息。 - 然后,我们调用监听器模块中的
register_events函数来注册之前设置的监听器。 - 在此处,我们使用
broadcastMessage函数向服务器广播一条消息,通知监听器已注册。
运行项目¶
如果一切操作正确,项目应在服务器启动时自动加载。这是预期行为;PySpigot 将在插件加载时自动加载和运行scripts和projects文件夹中的所有脚本和项目。
或者,如果服务器已经在运行且 PySpigot 插件已加载并启用,您可以使用命令 /pyspigot load <projectname> 来加载和运行项目,传递根项目文件夹的名称作为projectname。
使用命令 /pyspigot info <projectname> 验证项目已加载并运行,并且已为AsyncPlayerChatEvent注册了监听器。
下一步¶
查看文档的其余部分以获取更高级的脚本编写内容。
如果遇到困难需要帮助,如果还未加入 PySpigot 的 Discord 服务器。