Add option to force using the generic Vault permission handler hook
Requested in #1350
This commit is contained in:
parent
e3dd719b0e
commit
d8d87c8b67
@ -9,6 +9,8 @@ import fr.xephi.authme.permission.handlers.PermissionHandlerException;
|
||||
import fr.xephi.authme.permission.handlers.PermissionsExHandler;
|
||||
import fr.xephi.authme.permission.handlers.VaultHandler;
|
||||
import fr.xephi.authme.permission.handlers.ZPermissionsHandler;
|
||||
import fr.xephi.authme.settings.Settings;
|
||||
import fr.xephi.authme.settings.properties.PluginSettings;
|
||||
import fr.xephi.authme.util.StringUtils;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.Server;
|
||||
@ -38,6 +40,8 @@ public class PermissionsManager implements Reloadable {
|
||||
private final Server server;
|
||||
private final PluginManager pluginManager;
|
||||
|
||||
private Settings settings;
|
||||
|
||||
/**
|
||||
* The permission handler that is currently in use.
|
||||
* Null if no permission system is hooked.
|
||||
@ -51,9 +55,10 @@ public class PermissionsManager implements Reloadable {
|
||||
* @param pluginManager Bukkit plugin manager
|
||||
*/
|
||||
@Inject
|
||||
public PermissionsManager(Server server, PluginManager pluginManager) {
|
||||
public PermissionsManager(Server server, PluginManager pluginManager, Settings settings) {
|
||||
this.server = server;
|
||||
this.pluginManager = pluginManager;
|
||||
this.settings = settings;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -70,19 +75,33 @@ public class PermissionsManager implements Reloadable {
|
||||
*/
|
||||
@PostConstruct
|
||||
private void setup() {
|
||||
// Loop through all the available permissions system types
|
||||
for (PermissionsSystemType type : PermissionsSystemType.values()) {
|
||||
if(settings.getProperty(PluginSettings.FORCE_VAULT_HOOK)) {
|
||||
try {
|
||||
PermissionHandler handler = createPermissionHandler(type);
|
||||
PermissionHandler handler = createPermissionHandler(PermissionsSystemType.VAULT);
|
||||
if (handler != null) {
|
||||
// Show a success message and return
|
||||
this.handler = handler;
|
||||
ConsoleLogger.info("Hooked into " + type.getDisplayName() + "!");
|
||||
ConsoleLogger.info("Hooked into " + PermissionsSystemType.VAULT.getDisplayName() + "!");
|
||||
return;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
// An error occurred, show a warning message
|
||||
ConsoleLogger.logException("Error while hooking into " + type.getDisplayName(), ex);
|
||||
} catch (PermissionHandlerException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else {
|
||||
// Loop through all the available permissions system types
|
||||
for (PermissionsSystemType type : PermissionsSystemType.values()) {
|
||||
try {
|
||||
PermissionHandler handler = createPermissionHandler(type);
|
||||
if (handler != null) {
|
||||
// Show a success message and return
|
||||
this.handler = handler;
|
||||
ConsoleLogger.info("Hooked into " + type.getDisplayName() + "!");
|
||||
return;
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
// An error occurred, show a warning message
|
||||
ConsoleLogger.logException("Error while hooking into " + type.getDisplayName(), ex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -63,6 +63,10 @@ public final class PluginSettings implements SettingsHolder {
|
||||
public static final Property<String> UNREGISTERED_GROUP =
|
||||
newProperty("GroupOptions.unregisteredPlayerGroup", "");
|
||||
|
||||
@Comment("Forces authme to hook into Vault instead of a specific permission handler system.")
|
||||
public static final Property<Boolean> FORCE_VAULT_HOOK =
|
||||
newProperty("settings.forceVaultHook", false);
|
||||
|
||||
@Comment({
|
||||
"Log level: INFO, FINE, DEBUG. Use INFO for general messages,",
|
||||
"FINE for some additional detailed ones (like password failed),",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user