- 支持核心
- paper,folia
- 原创/转载
- 原创
- 作者
- silent
- 前置
- 无
- 支持版本
- 1.12.2-1.21.10
BeaconAuth
整套系统由网页前后端 + QQ 机器人 + 前置授权插件三部分构成,全部源码开源、免费开放给所有 MC 插件开发者使用。
玩家用户仅需在插件配置文件中,填写个人 ID、插件名称、授权码即可完成授权激活;同时网页端与 QQ 端均支持自助解绑,操作简单便捷。
本授权系统永久免费,所有插件开发者均可无条件接入使用。
BeaconAuth 是一个用于验证 Beacon 平台付费插件授权的 Minecraft 插件。 其他开发者可以通过以下步骤将授权系统集成到自己的插件中。
在您的插件 plugin.yml 中添加 BeaconAuth 作为依赖:
name: MyPaidPlugin version: 1.0.0 main: com.example.myplugin.MyPlugin depend: [BeaconAuth] # 强制依赖
或者
softdepend: [BeaconAuth] # 软依赖(如果不强制用户安装验证插件)
在您的插件 onEnable 方法中调用验证接口:import com.beaconmc.auth.AuthAPI;<br>import org.bukkit.plugin.java.JavaPlugin;<br><br>public class MyPlugin extends JavaPlugin {<br><br> @Override<br> public void onEnable() {<br> // 验证授权 (异步)<br> AuthAPI.verify("MyPaidPlugin").thenAccept(isValid -> {<br> if (isValid) {<br> getLogger().info("授权验证成功!感谢您的购买。");<br> // 通过 runTask 回到主线程初始化插件<br> getServer().getScheduler().runTask(this, () -> {<br> initPlugin();<br> });<br> } else {<br> getLogger().warning("授权验证失败!请购买正版插件。");<br> // 通过 runTask 回到主线程禁用插件<br> getServer().getScheduler().runTask(this, () -> {<br> getServer().getPluginManager().disablePlugin(this);<br> });<br> }<br> }).exceptionally(ex -> {<br> getLogger().severe("验证服务器连接失败: " + ex.getMessage());<br> getServer().getScheduler().runTask(this, () -> {<br> getServer().getPluginManager().disablePlugin(this);<br> });<br> return null;<br> });<br> }<br><br> private void initPlugin() {<br> // 插件逻辑<br> }<br>}
如果您不想在编译时依赖 BeaconAuth,可以使用反射,但较为复杂。建议直接通过 Maven/Gradle 引入 BeaconAuth.jar 作为 provided 依赖。
用户在使用您的插件前,需要在 plugins/BeaconAuth/config.yml 中配置他们的 Beacon 账号以及每个插件的授权码(授权码可在 Beacon 平台「授权中心 → 我的授权」页面查看):
auth:<br> account: "user123"<br><br>plugins:<br> - name: "MyPaidPlugin"<br> auth_code: "BC-A1B2C3D4E5F6G7H8"
BeaconAuth 已经支持 Paper 和 Folia 服务端。 AuthAPI.verify 方法是异步的,不会阻塞主线程,因此在 Folia 中也是安全的。 注意:不要在 thenAccept 回调中直接操作 Bukkit API (如生成方块),除非您确定当前上下文是安全的。建议使用 getScheduler().runTask(this, ...) (Spigot) 或 getRegionScheduler().execute(...) (Folia) 回到主线程/区域线程。
- AuthAPI.verify(String pluginName): 异步验证,返回 CompletableFuture<Boolean>。
- AuthAPI.verifySync(String pluginName): 同步验证 (不推荐在主线程使用)。