VSCode 比较万能,基本上是什么语言都能写,但是功能不如专门这方面的语言。
下面就讲讲怎么使用VSCode配置Bukkit(Spigot)插件的环境。
扩展插件
Maven for Java不是必须的,打包主要靠Project Manager for Java。
还有YAML扩展,使得编写 plugin.yml 更方便。
插件
(上面这幅图只是一个示例,其中 cn.himpqblog.PlayerBagIsolation.main 为插件主文件, cn.himpqblog.PlayerBagIsolation.WorldInventorys 为主文件需要导入的文件)
随后创建这样一个结构的目录,其中 cn\himpqblog\PlayerBagIsolation 是你的包目录,在这些文件夹下的main.java(或plugin.yml内声明的main)为你插件的主文件,Bukkit/Spigot会找到main所指的类并启动(onEnable、onDisable、onLoad)。
就绪,但是我们编写的是 Bukkit/Spigot 插件,如果我们需要代码提示,那么就需要指定该项目的依赖:
因为安装了项目管理工具,框内的 Referenced Libraries 即为依赖的包。
点击加号,选中下载的 Bukkit/Spigot 服务器核心jar文件。
即可。
请注意,不要将该核心文件放入插件的文件夹内,否则打包时工具会将其视为插件的一部分打包进jar文件中。
打包插件
点击导出按钮(上图的红圈处),随后会让你勾选打包的文件
只勾选第一个 bin,即本插件,第二个为服务器核心,不需要打包进jar文件中。
点击确定,打包完成:
打包完成后请务必将打包后的jar文件移出插件项目文件夹,否则下次打包时会将该文件也打包进去。
打包不挪走jar文件的后果:
文件体积为原文件体积的一倍,这是因为里面有一个第一次打包的Bag.jar文件。
关于 plugin.yml 文件一直提示需要声明api
因为YAML扩展识别到了这是一个mc服务器插件描述信息的配置文件,但是不知道是哪一种:PocketMine、Bukkit、BungeeCord。
因为 PocketMine 的服务器插件默认在 plugin.yml 中需要声明 api,但是 Bukkit 不需要。
打开 .vscode/setting.json
"yaml.schemas": {
"https://json.schemastore.org/bukkit-plugin": ["plugin.yml"]
}
Code language: JavaScript (javascript)
在其中新增上面这一行:
即可。