Use specific dependencies in MVPermissions.

This commit is contained in:
Jeremy Wood 2023-03-07 18:54:33 -05:00
parent 397101f712
commit 160f49bbae
No known key found for this signature in database
GPG Key ID: C5BAD04C77B91B4B

View File

@ -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);
}
/**