面向 Minecraft 插件开发者
你的 Minecraft 插件,只在付费服务器上运行。
每个 jar 一个密钥,每个许可证都有服务器数量限制。
Java
- Paper
- Velocity
- BuiltByBit
- SpigotMC
- Voxel Shop
- Tebex
- Discord
你将获得
为你的销售方式而打造。
密钥在 jar 里
BuiltByBit 和 Voxel Shop 的占位符会把它写进去。
%%__SUNLICENSE__%%每个许可证的服务器数
每个密钥 1、2 或 10 台服务器。
TOO_MANY_MACHINES退款即停用
Voxel Shop 和 Tebex 的退款会吊销密钥。
绝不会让服务器宕机
即使无法连接 SunLicense,模板也会继续运行。
Discord 买家角色
认领即获得角色;吊销即收回。
/claimSentinel 找到泄露
标记在太多服务器上使用的密钥。
所有套餐工作原理
在下次发布前上线。
- 1免费创建账号
- 2添加商店占位符
- 3在 onEnable 中验证一次
MyPlugin.java
// BuiltByBit or Voxel Shop writes the buyer's key here
private static final String LICENSE_KEY = "%%__SUNLICENSE__%%";
@Override
public void onEnable() {
SunLicense client = new SunLicense.Builder()
.baseUrl("https://api.sunlicense.com")
.token(API_KEY) // slk_..., can only validate
.build();
getServer().getScheduler().runTaskAsynchronously(this, () -> {
if (!client.validate(LICENSE_KEY, Map.of("host", serverId())).isValid()) {
getLogger().severe("License denied, disabling.");
getServer().getScheduler().runTask(this,
() -> getServer().getPluginManager().disablePlugin(this));
}
});
}常见问题
常见问题解答。
如何防止我的 Minecraft 插件被泄露?
任何验证都拦不住一心想改 jar 的人。真正有效的是每个买家一个密钥:BuiltByBit 和 Voxel Shop 在下载时把密钥写入 jar,所以泄露的 jar 带着泄露者的密钥。吊销这一个许可证,这个 jar 的所有副本都会在下次验证时停止,而其他买家的服务器照常运行。
支持 BuiltByBit、SpigotMC 付费资源和 Tebex 吗?
支持。BuiltByBit 的 External license key 占位符和 Voxel Shop 的 External API 占位符会把每个买家的密钥放进下载文件。在 SpigotMC 上,你的插件会用 SpigotMC 注入的买家 ID 换取该买家的密钥。Tebex 在每笔付款时发放密钥。BuiltByBit 和 SpigotMC 不会发送退款信号,所以已退款的买家需要你自己吊销。
如何把插件限制为每次购买一台服务器?
把策略设为 1 台设备,并像 Paper 模板那样发送一个稳定的服务器 ID;或者为它设置 IP 限制:每个新地址占用一个名额,30 天未使用的地址会自动释放。买家更换主机时,可以在客户门户(Lite 和 Standard)中释放旧名额,你也可以在许可证页面释放。
如果 SunLicense 宕机,我的插件会让服务器崩掉吗?
用我们的模板不会。它们不会把“没有响应”当作拒绝:如果买家有签名的离线许可证文件就使用它,否则继续运行并每 10 分钟重试一次。只有真正的拒绝(例如密钥已吊销或未知)才会禁用插件。
SunLicense