From bf69a0a1dd663943da598c6756eafe0f3fdc532e Mon Sep 17 00:00:00 2001 From: Flemmli97 Date: Sat, 7 Nov 2020 13:44:26 +0100 Subject: [PATCH] fix #13 this time for real --- Changelog.txt | 4 ++++ gradle.properties | 2 +- .../java/com/flemmli97/flan/event/ItemInteractEvents.java | 5 ++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 3fb5522..469ff98 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,7 @@ +Flan 1.1.4 +====================== +- Directly check player class for item usage. So fake players get ignored. + Flan 1.1.3 ====================== - Ignore item usage with non player (e.g. with modded machines). Fix #12 diff --git a/gradle.properties b/gradle.properties index c9b2784..bc3e4e6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx2G loader_version=0.9.1+build.205 # Mod Properties - mod_version = 1.1.3 + mod_version = 1.1.4 maven_group = com.flemmli97.flan archives_base_name = flan diff --git a/src/main/java/com/flemmli97/flan/event/ItemInteractEvents.java b/src/main/java/com/flemmli97/flan/event/ItemInteractEvents.java index 138c2de..76aeb10 100644 --- a/src/main/java/com/flemmli97/flan/event/ItemInteractEvents.java +++ b/src/main/java/com/flemmli97/flan/event/ItemInteractEvents.java @@ -73,7 +73,8 @@ public class ItemInteractEvents { private static final Set blackListedItems = Sets.newHashSet(Items.COMPASS, Items.FILLED_MAP, Items.FIREWORK_ROCKET); public static ActionResult onItemUseBlock(ItemUsageContext context) { - if (context.getWorld().isClient || context.getStack().isEmpty()) + //Check for Fakeplayer. Since there is no api for that directly check the class + if (!(context.getPlayer() instanceof ServerPlayerEntity) || !context.getPlayer().getClass().equals(ServerPlayerEntity.class) || context.getStack().isEmpty()) return ActionResult.PASS; ClaimStorage storage = ClaimStorage.get((ServerWorld) context.getWorld()); BlockPos placePos = new ItemPlacementContext(context).getBlockPos(); @@ -84,8 +85,6 @@ public class ItemInteractEvents { return ActionResult.PASS; boolean actualInClaim = !(claim instanceof Claim) || placePos.getY() >= ((Claim) claim).getDimensions()[4]; ServerPlayerEntity player = (ServerPlayerEntity) context.getPlayer(); - if(player==null) - return ActionResult.PASS; if (context.getStack().getItem() == Items.END_CRYSTAL) { if (claim.canInteract(player, EnumPermission.ENDCRYSTALPLACE, placePos, false)) return ActionResult.PASS;