mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2025-03-11 14:22:25 +01:00
Use specific dependencies in MVPermissions.
This commit is contained in:
parent
397101f712
commit
160f49bbae
@ -10,10 +10,10 @@ package com.onarandombox.MultiverseCore.utils;
|
||||
import java.util.List;
|
||||
|
||||
import com.dumptruckman.minecraft.util.Logging;
|
||||
import com.onarandombox.MultiverseCore.MultiverseCore;
|
||||
import com.onarandombox.MultiverseCore.api.MVDestination;
|
||||
import com.onarandombox.MultiverseCore.api.MVWorldManager;
|
||||
import com.onarandombox.MultiverseCore.api.MVWorld;
|
||||
import com.onarandombox.MultiverseCore.config.MVCoreConfigProvider;
|
||||
import jakarta.inject.Inject;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Location;
|
||||
@ -21,6 +21,7 @@ import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.permissions.Permission;
|
||||
import org.bukkit.permissions.PermissionDefault;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.jvnet.hk2.annotations.Service;
|
||||
|
||||
/**
|
||||
@ -29,13 +30,19 @@ import org.jvnet.hk2.annotations.Service;
|
||||
@Service
|
||||
public class MVPermissions {
|
||||
|
||||
private MultiverseCore plugin;
|
||||
private MVWorldManager worldMgr;
|
||||
private final PluginManager pluginManager;
|
||||
private final MVCoreConfigProvider configProvider;
|
||||
private final MVWorldManager worldMgr;
|
||||
|
||||
@Inject
|
||||
public MVPermissions(MultiverseCore plugin) {
|
||||
this.plugin = plugin;
|
||||
this.worldMgr = plugin.getMVWorldManager();
|
||||
public MVPermissions(
|
||||
PluginManager pluginManager,
|
||||
MVCoreConfigProvider configProvider,
|
||||
MVWorldManager worldManager
|
||||
) {
|
||||
this.pluginManager = pluginManager;
|
||||
this.configProvider = configProvider;
|
||||
this.worldMgr = worldManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -101,7 +108,7 @@ public class MVPermissions {
|
||||
*/
|
||||
public boolean canEnterWorld(Player p, MVWorld w) {
|
||||
// If we're not enforcing access, anyone can enter.
|
||||
if (!plugin.getMVConfig().getEnforceAccess()) {
|
||||
if (!configProvider.getConfigUnsafe().getEnforceAccess()) {
|
||||
Logging.finest("EnforceAccess is OFF. Player was allowed in " + w.getAlias());
|
||||
return true;
|
||||
}
|
||||
@ -113,7 +120,7 @@ public class MVPermissions {
|
||||
return false;
|
||||
}
|
||||
String worldName = l.getWorld().getName();
|
||||
if (!this.plugin.getMVWorldManager().isMVWorld(worldName)) {
|
||||
if (!this.worldMgr.isMVWorld(worldName)) {
|
||||
return false;
|
||||
}
|
||||
return this.hasPermission(p, "multiverse.access." + worldName, false);
|
||||
@ -342,12 +349,12 @@ public class MVPermissions {
|
||||
* @return The permission as {@link Permission}.
|
||||
*/
|
||||
public Permission addPermission(String string, PermissionDefault defaultValue) {
|
||||
if (this.plugin.getServer().getPluginManager().getPermission(string) == null) {
|
||||
if (this.pluginManager.getPermission(string) == null) {
|
||||
Permission permission = new Permission(string, defaultValue);
|
||||
this.plugin.getServer().getPluginManager().addPermission(permission);
|
||||
this.pluginManager.addPermission(permission);
|
||||
this.addToParentPerms(string);
|
||||
}
|
||||
return this.plugin.getServer().getPluginManager().getPermission(string);
|
||||
return this.pluginManager.getPermission(string);
|
||||
}
|
||||
|
||||
private void addToParentPerms(String permString) {
|
||||
@ -360,36 +367,36 @@ public class MVPermissions {
|
||||
addToRootPermission("*.*", permStringChopped);
|
||||
return;
|
||||
}
|
||||
Permission parentPermission = this.plugin.getServer().getPluginManager().getPermission(parentPermString);
|
||||
Permission parentPermission = this.pluginManager.getPermission(parentPermString);
|
||||
// Creat parent and grandparents
|
||||
if (parentPermission == null) {
|
||||
parentPermission = new Permission(parentPermString);
|
||||
this.plugin.getServer().getPluginManager().addPermission(parentPermission);
|
||||
this.pluginManager.addPermission(parentPermission);
|
||||
|
||||
this.addToParentPerms(parentPermString);
|
||||
}
|
||||
// Create actual perm.
|
||||
Permission actualPermission = this.plugin.getServer().getPluginManager().getPermission(permString);
|
||||
Permission actualPermission = this.pluginManager.getPermission(permString);
|
||||
// Extra check just to make sure the actual one is added
|
||||
if (actualPermission == null) {
|
||||
|
||||
actualPermission = new Permission(permString);
|
||||
this.plugin.getServer().getPluginManager().addPermission(actualPermission);
|
||||
this.pluginManager.addPermission(actualPermission);
|
||||
}
|
||||
if (!parentPermission.getChildren().containsKey(permString)) {
|
||||
parentPermission.getChildren().put(actualPermission.getName(), true);
|
||||
this.plugin.getServer().getPluginManager().recalculatePermissionDefaults(parentPermission);
|
||||
this.pluginManager.recalculatePermissionDefaults(parentPermission);
|
||||
}
|
||||
}
|
||||
|
||||
private void addToRootPermission(String rootPerm, String permStringChopped) {
|
||||
Permission rootPermission = this.plugin.getServer().getPluginManager().getPermission(rootPerm);
|
||||
Permission rootPermission = this.pluginManager.getPermission(rootPerm);
|
||||
if (rootPermission == null) {
|
||||
rootPermission = new Permission(rootPerm);
|
||||
this.plugin.getServer().getPluginManager().addPermission(rootPermission);
|
||||
this.pluginManager.addPermission(rootPermission);
|
||||
}
|
||||
rootPermission.getChildren().put(permStringChopped + ".*", true);
|
||||
this.plugin.getServer().getPluginManager().recalculatePermissionDefaults(rootPermission);
|
||||
this.pluginManager.recalculatePermissionDefaults(rootPermission);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user