36 lines
1.5 KiB
Java
36 lines
1.5 KiB
Java
package cn.infstar.essentialsC.maintenance;
|
|
|
|
import cn.infstar.essentialsC.EssentialsC;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
import java.lang.reflect.InvocationTargetException;
|
|
|
|
final class MaintenancePermissionResolverFactory {
|
|
|
|
private static final String LUCKPERMS_RESOLVER_CLASS =
|
|
"cn.infstar.essentialsC.maintenance.LuckPermsMaintenancePermissionResolver";
|
|
|
|
private MaintenancePermissionResolverFactory() {
|
|
}
|
|
|
|
static MaintenancePermissionResolver create(EssentialsC plugin) {
|
|
Plugin luckPerms = plugin.getServer().getPluginManager().getPlugin("LuckPerms");
|
|
if (luckPerms == null || !luckPerms.isEnabled()) {
|
|
plugin.getLogger().info("未检测到 LuckPerms,维护模式将在玩家加入后复核绕过权限。");
|
|
return null;
|
|
}
|
|
|
|
try {
|
|
Class<?> resolverClass = Class.forName(LUCKPERMS_RESOLVER_CLASS, true, plugin.getClass().getClassLoader());
|
|
return (MaintenancePermissionResolver) resolverClass
|
|
.getConstructor(EssentialsC.class)
|
|
.newInstance(plugin);
|
|
} catch (ClassNotFoundException | NoSuchMethodException | InstantiationException
|
|
| IllegalAccessException | InvocationTargetException | LinkageError exception) {
|
|
plugin.getLogger().warning("LuckPerms 维护权限解析器初始化失败,将在玩家加入后复核权限: "
|
|
+ exception.getMessage());
|
|
return null;
|
|
}
|
|
}
|
|
}
|