From 376bbf7e844a853d4d22caad9b439317bb20aeee Mon Sep 17 00:00:00 2001 From: PrototypeTrousers Date: Fri, 30 Sep 2022 20:06:00 -0300 Subject: [PATCH] additional security checks to P2P parts --- .../java/appeng/parts/p2p/PartP2PTunnel.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/appeng/parts/p2p/PartP2PTunnel.java b/src/main/java/appeng/parts/p2p/PartP2PTunnel.java index b2415fac9..53e0241b3 100644 --- a/src/main/java/appeng/parts/p2p/PartP2PTunnel.java +++ b/src/main/java/appeng/parts/p2p/PartP2PTunnel.java @@ -23,6 +23,7 @@ import appeng.api.AEApi; import appeng.api.config.Actionable; import appeng.api.config.PowerMultiplier; import appeng.api.config.PowerUnits; +import appeng.api.config.SecurityPermissions; import appeng.api.config.TunnelType; import appeng.api.definitions.IParts; import appeng.api.implementations.items.IMemoryCard; @@ -189,6 +190,15 @@ public abstract class PartP2PTunnel extends PartBasicSt // UniqueIdentifier id = GameRegistry.findUniqueIdentifierFor( is.getItem() ); // AELog.info( "ID:" + id.toString() + " : " + is.getItemDamage() ); + try { + boolean hasPerms = this.getProxy().getSecurity().hasPermission(player, SecurityPermissions.BUILD); + if (!hasPerms) { + return false; + } + } catch (GridAccessException e) { + return false; + } + final TunnelType tt = AEApi.instance().registries().p2pTunnel().getTunnelTypeByItem(is); if (!is.isEmpty() && is.getItem() instanceof IMemoryCard) { final IMemoryCard mc = (IMemoryCard) is.getItem(); @@ -327,6 +337,16 @@ public abstract class PartP2PTunnel extends PartBasicSt @Override public boolean onPartShiftActivate(final EntityPlayer player, final EnumHand hand, final Vec3d pos) { + + try { + boolean hasPerms = this.getProxy().getSecurity().hasPermission(player, SecurityPermissions.BUILD); + if (!hasPerms) { + return false; + } + } catch (GridAccessException e) { + return false; + } + final ItemStack is = player.inventory.getCurrentItem(); if (!is.isEmpty() && is.getItem() instanceof IMemoryCard) { if (Platform.isClient()) {