高级 Minecraft 模组,每个玩家一个密钥。
免费版放在 Modrinth,高级版按玩家用密钥解锁。
Java
- Fabric
- NeoForge
- Modrinth
- CurseForge
- BuiltByBit
- Voxel Shop
- Gumroad
- Ko-fi
- Discord
为你的销售方式而打造。
每次购买一个密钥
在 jar 里,或在收据上。
两台电脑,而不是二十台
共享的密钥在第三台电脑上就会失效。
TOO_MANY_MACHINES退款即关闭高级版
Voxel Shop、Gumroad 和 Stripe 的退款会吊销密钥。
这里免费,那里高级
Modrinth 上免费,高级版在允许的地方销售。
Discord 高级版角色
密钥被吊销时随之移除。
离线照样可用
签名许可证文件可离线验证。
Ed25519在下次发布前上线。
- 1免费创建账号
- 2连接 BuiltByBit 或 Gumroad
- 3添加 Java SDK
public final class MyModClient implements ClientModInitializer {
static volatile boolean premium;
@Override
public void onInitializeClient() {
SunLicense sl = new SunLicense.Builder()
.baseUrl("https://api.sunlicense.com")
.token(Build.API_KEY) // validate-only slk_ key
.build();
String key = Config.licenseKey(); // AX8P-XXXX-XXXX-XXXX
String pc = Config.deviceId(); // random id in config/
// off the render thread; Premium stays off until it says yes
CompletableFuture.runAsync(() -> premium =
sl.validate(key, Map.of("host", pc)).isValid());
}
}常见问题解答。
Modrinth 或 CurseForge 上的模组可以使用许可证密钥吗?
Modrinth 和 CurseForge 用于免费下载。Modrinth 并不禁止许可证验证,但需要在项目页面上说明网络请求。在 CurseForge 上,有些游戏直接禁止付费模组,所以请先查看游戏规则。通常的做法是在那里发布功能完整的免费版,在 BuiltByBit、Voxel Shop 或 Gumroad 上销售高级版。
Fabric 或 Forge 客户端模组如何验证许可证?
把 SunLicense Java SDK 打包进模组 jar,从配置文件读取密钥,并用一个保存在配置目录中的随机设备 ID 调用 validate。在启动时以及之后每隔几小时,在渲染线程之外执行验证,并在验证通过之前保持高级功能关闭。我们在 GitHub 上的 Fabric 模板展示了完整做法;它是服务端模组,同样的验证也可以放在客户端初始化器中。
别人不能直接把验证代码从 jar 里改掉吗?
任何执意的人都能修改在自己电脑上运行的代码,没有哪个许可证系统能阻止。SunLicense 阻止的是简单的途径:分享密钥或分享买来的 jar。每个密钥只能在你设定的电脑数量上使用,已退款和已泄露的密钥会在下一次验证时停止;在 Standard 套餐中,通过 SunLicense 下载的每份副本都带有隐藏标记,能告诉你是谁的副本泄露了。
要多少钱?
Free 套餐包含三个产品、100 个许可证和每月 10,000 次许可证验证,无需信用卡。Lite 每月 5 美元,含 5 个产品和 2,500 个许可证。来自玩家游戏的许可证验证永远不会因为你的套餐而被拒绝,即使超出也是如此。
SunLicense