diff --git a/src/main/java/net/pietru/cookie_utils/api/Area.java b/src/main/java/net/pietru/cookie_utils/api/Area.java index c289920..90532e2 100644 --- a/src/main/java/net/pietru/cookie_utils/api/Area.java +++ b/src/main/java/net/pietru/cookie_utils/api/Area.java @@ -49,7 +49,7 @@ public class Area { } public boolean does_intersect(BoundingBox c){ - return space.contains(c); + return space.intersects(c); } public boolean get_action_bool(String action,String player_id){ diff --git a/src/main/java/net/pietru/cookie_utils/mixins/BlockEntitySignMixin.java b/src/main/java/net/pietru/cookie_utils/mixins/BlockEntitySignMixin.java index 4091f01..dd69a8b 100644 --- a/src/main/java/net/pietru/cookie_utils/mixins/BlockEntitySignMixin.java +++ b/src/main/java/net/pietru/cookie_utils/mixins/BlockEntitySignMixin.java @@ -3,6 +3,7 @@ package net.pietru.cookie_utils.mixins; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.math.collision.BoundingBox; import com.llamalad7.mixinextras.sugar.Local; +import finalforeach.cosmicreach.blockentities.BlockEntity; import finalforeach.cosmicreach.blockentities.BlockEntitySign; import finalforeach.cosmicreach.entities.player.Player; import finalforeach.cosmicreach.networking.packets.MessagePacket; @@ -19,23 +20,22 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import static net.pietru.cookie_utils.utils.block_util.isInt; + @Mixin(BlockEntitySign.class) public class BlockEntitySignMixin { @Shadow private String[] texts = new String[]{"", "", "", "", ""}; - @Shadow - Zone zone; - @Shadow - int x; - @Shadow - int y; - @Shadow - int z; @Inject(method = "onInteract", at = @At("HEAD"), cancellable = true) private void event_onInteract(CallbackInfo ci, @Local Player player, @Local Zone zone){ if (texts[0].equals("[CLAIM]") && texts[2].isEmpty() && !player.isProne) { + BlockEntity be = (BlockEntity) (Object) this; + int x = be.getGlobalX(); + int y = be.getGlobalY(); + int z = be.getGlobalZ(); + String ownerId = player.getAccount().getUniqueId(); int c = Region.get_owned_areas(ownerId); if (Permissions.has_perm(ownerId,"claims.limit."+(c+1))) { @@ -46,6 +46,7 @@ public class BlockEntitySignMixin { boolean can_claim = true; for (int i = 0; (i< Region.areas.size && can_claim); i++){ Area a = Region.areas.get(i); + System.out.println(a.does_intersect(test)+"_"+a.name); if (a.piority>=0 && a.does_intersect(test)) { can_claim=false; } @@ -57,7 +58,7 @@ public class BlockEntitySignMixin { area.enabled = true; ObjectPermList.get_default_perms(area.perms); area.setCorners(ca, cb); - area.name = "self_claim_sign_" + ownerId.replace(":", "_") + ".json"; + area.name = "self_claim_sign_"+c+"_" + ownerId.replace(":", "_") + ".json"; area.zoneId = zone.zoneId; PlayerAreaPerm plr_perm = PlayerAreaPerm.get_owner_perm(ownerId); @@ -84,13 +85,4 @@ public class BlockEntitySignMixin { } } } - - public static boolean isInt(String str) { - try { - Integer.parseInt(str); - return true; - } catch(NumberFormatException e){ - return false; - } - } } diff --git a/src/main/java/net/pietru/cookie_utils/utils/block_util.java b/src/main/java/net/pietru/cookie_utils/utils/block_util.java index d8326be..c6e40c9 100644 --- a/src/main/java/net/pietru/cookie_utils/utils/block_util.java +++ b/src/main/java/net/pietru/cookie_utils/utils/block_util.java @@ -16,4 +16,13 @@ public class block_util { return new BlockPosition(c,x,y,z); } } + + public static boolean isInt(String str) { + try { + Integer.parseInt(str); + return true; + } catch(NumberFormatException e){ + return false; + } + } }