我試圖創建一些類似Permissions的插件,但我的問題是我不知道如何給播放器例如權限aplugin.chat
和aplugin.color
當我只給他的權限aplugin.*
。當然,如果權限已註冊,則不會有任何問題,我可以從Bukkit.getPluginManager().getPermissions()
檢查每個權限。如果未註冊,我該如何解決?在BungeeCord有一個事件,我可以看到所需的權限,但在Spigot/Bukkit中?創建權限plugin(aplugin。*) - Spigot/Bukkit - Java
這裏是設置權限我的代碼最新版本:
// setPerms
public static void setPerms(Player p) {
try {
PreparedStatement ps = MySQL.getConnection()
.prepareStatement("SELECT Permission FROM Permissions WHERE Gruppe = ?");
ps.setString(1, User.getPermGroup(p.getName()));
ResultSet rs = ps.executeQuery();
PermissionAttachment pa;
if (main.perms.containsKey(p.getName())) {
pa = main.perms.get(p.getName());
} else {
pa = p.addAttachment(plugin);
}
while (rs.next() == true) {
String perm = rs.getString("Permission");
boolean value = true;
if (perm.startsWith("-")) {
perm = perm.substring(1);
value = false;
}
if (perm.endsWith("*")) {
if (perm.equals("*")) {
for (Permission pe : Bukkit.getPluginManager().getPermissions()) {
pa.setPermission(pe, value);
}
pa.setPermission(perm, value);
} else {
String search = perm.substring(0, perm.length() - 1);
for (Permission pe : Bukkit.getPluginManager().getPermissions()) {
if (pe.getName().startsWith(search)) {
pa.setPermission(pe, value);
}
}
pa.setPermission(perm, value);
}
}
pa.setPermission(perm, value);
}
main.perms.replace(p.getName(), pa);
} catch (SQLException e) {
e.printStackTrace();
}
}
謝謝您的幫助,我的英語不好對不起;)
你無法解決它,bukkits權限模型是基於該插件註冊一個權限,並且該權限有子級。如果你正在爲失蹤的明星製作你自己的系統,一些插件將會出現bug – Ferrybig
好的:/比謝謝:) – Nightfighter001
只有一個問題:對於像PermissionsEx這樣的插件怎麼可能? – Nightfighter001