NPLKernel 接入开发文档

Plugins are separate from Nukkit and linked at runtime, not compiled into one so it technically doesn't violate GPL

NPL 并不违反 Nukkit 的 GPLv3 协议,悉知

post
checkLicense

NPLKernel.checkLicense(pluginId, versionNum, s1);
调用 NPLKernel 检查服务器是否拥有插件授权,建议try catch 如有错误直接关服
Request
Response
Request
Path Parameters
pluginId
required
integer
插件在NPL系统中注册获得的唯一Id
versionNum
required
integer
用于比较云端数字版本,来判断插件是否需要更新
s1
required
integer
长随机数(Long)
Response
200: OK
无返回

get
checkLicenseStatus

NPLKernel.checkLicenseStatus(pluginId, s2);
用于检测插件授权是否成功,在上一个方法中 NPLKernel 当检测到无授权会自动终止服务器。(最新版本需要每个插件进行手动检查) 但因为种种魔法原因,建议在插件的各个位置都加上这个方法用于判断插件授权是否成功 例如MoveEvent监听 或者是什么Task里头 不成功可以强制使用反射关闭服务器 且需要try catch有错误直接关服
Request
Response
Request
Path Parameters
pluginId
required
integer
插件在NPL系统中注册获得的唯一Id
s2
required
integer
长随机数(Long)
Response
200: OK
如果授权正常 则授权签名为 md5(priKey+s1) 这里s1就是之前checkLicense生成的随机数 如果不正常,随机返回错误签名 返回一个checkSign,checkSign = md5(获得的授权sign + s2)

get
checkKernel

NPLKernel.checkKernel(pluginId, s3, kernelVersion);
在202021的Kernel版本中添加了 kernelVersion参数。 202021之前的插件支持向下兼容。 当前Kernel的版本号为 202021 用于检查Kernel是否损坏(或被篡改),Kernel不会主动检查自身完整性,建议插件在Task或者异步任务中调用此检查,或者设置检查状态,写在各个频繁调用的方法前 需要try catch 有错误直接关服
Request
Response
Request
Path Parameters
kernelVersion
optional
integer
插件支持的Kernel版本 一般填写当前最新版本号
pluginId
required
integer
插件在NPL系统中注册获得的唯一Id
s3
required
integer
长随机数(Long)
Response
200: OK
返回checkSign = md5(授权sign + md5(NPLKernel) + s3)