refactor: switch to permission builder

This commit is contained in:
Sekwah 2023-05-06 03:45:02 +01:00
parent 59b609415d
commit 313b3b4d53
No known key found for this signature in database
GPG Key ID: 9E0D654FC942286D
11 changed files with 81 additions and 12 deletions

View File

@ -5,6 +5,7 @@ import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.connector.containers.WorldContainer;
import com.sekwah.advancedportals.core.data.BlockLocation;
import com.sekwah.advancedportals.core.data.PlayerLocation;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.repository.ConfigRepository;
import com.sekwah.advancedportals.core.services.PortalServices;
import com.sekwah.advancedportals.core.services.PortalTempDataServices;
@ -78,7 +79,7 @@ public class CoreListeners {
* @return if the block is allowed to be placed
*/
public boolean blockPlace(PlayerContainer player, BlockLocation blockPos, String blockMaterial, String itemInHandMaterial, String itemInHandName) {
if(itemInHandName != null && player != null && player.hasPermission("advancedportals.build")) {
if(itemInHandName != null && player != null && PortalPermissions.BUILD.hasPermission(player)) {
WorldContainer world = player.getWorld();
if(itemInHandName.equals("\u00A75Portal Block Placer")) {
world.setBlock(blockPos, "PORTAL");
@ -114,13 +115,13 @@ public class CoreListeners {
*/
public boolean playerInteractWithBlock(PlayerContainer player, String materialName, String itemName,
BlockLocation blockLoc, boolean leftClick) {
if(itemName != null && (player.isOp() || player.hasPermission("advancedportals.createportal")) &&
if(itemName != null && (player.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(player)) &&
materialName.equalsIgnoreCase(this.configRepository.getSelectorMaterial())
&& (!this.configRepository.getUseOnlySpecialAxe() || itemName.equals("\u00A7ePortal Region Selector"))) {
this.portalTempDataServices.playerSelectorActivate(player, blockLoc, leftClick);
return false;
}
else if(itemName != null && leftClick && itemName.equals("\u00A75Portal Block Placer") && player.hasPermission("advancedportals.build")) {
else if(itemName != null && leftClick && itemName.equals("\u00A75Portal Block Placer") && PortalPermissions.BUILD.hasPermission(player)) {
WorldContainer world = player.getWorld();
if(world.getBlockData(blockLoc) == 1) {
world.setBlockData(blockLoc, (byte) 2);

View File

@ -4,6 +4,7 @@ import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.data.DataTag;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.util.Lang;
import com.sekwah.advancedportals.core.util.TagReader;
@ -47,7 +48,7 @@ public class CreateDestiSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
return sender.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(sender);
}
@Override

View File

@ -5,6 +5,7 @@ import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.data.DataTag;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.portal.AdvancedPortal;
import com.sekwah.advancedportals.core.services.PortalServices;
import com.sekwah.advancedportals.core.util.Lang;
@ -47,7 +48,7 @@ public class CreatePortalSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
return sender.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(sender);
}
@Override

View File

@ -5,6 +5,7 @@ import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.util.Lang;
import java.util.List;
@ -31,7 +32,7 @@ public class EndGatewayBlockSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
return sender.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(sender);
}
@Override

View File

@ -5,6 +5,7 @@ import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.util.Lang;
import java.util.List;
@ -31,7 +32,7 @@ public class EndPortalBlockSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
return sender.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(sender);
}
@Override

View File

@ -4,6 +4,7 @@ import com.google.inject.Inject;
import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.repository.ConfigRepository;
import com.sekwah.advancedportals.core.util.Lang;
@ -65,7 +66,7 @@ public class LangUpdateSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.langupdate");
return sender.isOp() || PortalPermissions.LANG_UPDATE.hasPermission(sender);
}
@Override

View File

@ -5,6 +5,7 @@ import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.util.Lang;
import java.util.List;
@ -33,7 +34,7 @@ public class PortalBlockSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
return sender.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(sender);
}
@Override

View File

@ -4,6 +4,7 @@ import com.google.inject.Inject;
import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.repository.ConfigRepository;
import com.sekwah.advancedportals.core.services.DestinationServices;
import com.sekwah.advancedportals.core.services.PortalServices;
@ -36,7 +37,7 @@ public class ReloadSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.reload");
return sender.isOp() || PortalPermissions.RELOAD.hasPermission(sender);
}
@Override

View File

@ -5,6 +5,7 @@ import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.portal.AdvancedPortal;
import com.sekwah.advancedportals.core.services.PortalServices;
import com.sekwah.advancedportals.core.util.Lang;
@ -50,7 +51,7 @@ public class RemoveSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
return sender.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(sender);
}
@Override

View File

@ -5,6 +5,7 @@ import com.sekwah.advancedportals.core.AdvancedPortalsCore;
import com.sekwah.advancedportals.core.commands.SubCommand;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import com.sekwah.advancedportals.core.permissions.PortalPermissions;
import com.sekwah.advancedportals.core.repository.ConfigRepository;
import com.sekwah.advancedportals.core.util.Lang;
@ -38,7 +39,7 @@ public class SelectorSubCommand implements SubCommand {
@Override
public boolean hasPermission(CommandSenderContainer sender) {
return sender.isOp() || sender.hasPermission("advancedportals.createportal");
return sender.isOp() || PortalPermissions.CREATE_PORTAL.hasPermission(sender);
}
@Override

View File

@ -0,0 +1,59 @@
package com.sekwah.advancedportals.core.permissions;
import com.sekwah.advancedportals.core.connector.containers.CommandSenderContainer;
import com.sekwah.advancedportals.core.connector.containers.PlayerContainer;
import java.util.List;
public class PortalPermissions {
private static final PermissionBuilder PERMISSIONS = new PermissionBuilder("advancedportals");
public static final PermissionBuilder BUILD = PERMISSIONS.createChild("build");
public static final PermissionBuilder CREATE_PORTAL = PERMISSIONS.createChild("createportal");
public static final PermissionBuilder LANG_UPDATE = PERMISSIONS.createChild("langupdate");
public static final PermissionBuilder RELOAD = PERMISSIONS.createChild("reload");
/**
* this will not currently build the permissions for the files, but maybe at some point. I'tll just make it easier though.
*/
public static class PermissionBuilder {
private final String permissionTag;
private final PermissionBuilder parent;
private List<PermissionBuilder>[] children;
PermissionBuilder(String permissionTag) {
this.permissionTag = permissionTag;
this.parent = null;
}
PermissionBuilder(String permissionTag, PermissionBuilder parent) {
this.permissionTag = permissionTag;
this.parent = parent;
}
PermissionBuilder createChild(String permissionTag) {
return new PermissionBuilder(permissionTag, this);
}
@Override
public String toString() {
if(parent != null) {
return parent + "." + permissionTag;
} else {
return permissionTag;
}
}
public boolean hasPermission(CommandSenderContainer player) {
return player.hasPermission(this.toString());
}
public boolean hasPermission(PlayerContainer player) {
return player.hasPermission(this.toString());
}
}
}