aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authordarkkeks <darkkeks@rambler.ru>2024-12-13 08:15:57 +0500
committerGitHub <noreply@github.com>2024-12-12 22:15:57 -0500
commit911030d481d54367ac66459d5370628191c2c03b (patch)
tree9751d2f1ee3e8803d07dfef4b1bdfdeb4f637d45 /src/main/java
parent5badda586d737d2c02c8148b0111d9dbafffab83 (diff)
downloadSkyblocker-911030d481d54367ac66459d5370628191c2c03b.tar.gz
Skyblocker-911030d481d54367ac66459d5370628191c2c03b.tar.bz2
Skyblocker-911030d481d54367ac66459d5370628191c2c03b.zip
Prevent placing procted items in item frames (#1073)
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java
index dd9b2157..b3caf11d 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/item/ItemProtection.java
@@ -14,15 +14,23 @@ import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
+import net.fabricmc.fabric.api.event.player.UseEntityCallback;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.command.CommandRegistryAccess;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.decoration.ItemFrameEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.text.Text;
+import net.minecraft.util.ActionResult;
+import net.minecraft.util.Hand;
import net.minecraft.util.Identifier;
+import net.minecraft.util.hit.EntityHitResult;
+import net.minecraft.world.World;
+import org.jetbrains.annotations.Nullable;
import org.lwjgl.glfw.GLFW;
public class ItemProtection {
@@ -37,6 +45,7 @@ public class ItemProtection {
"key.categories.skyblocker"
));
ClientCommandRegistrationCallback.EVENT.register(ItemProtection::registerCommand);
+ UseEntityCallback.EVENT.register(ItemProtection::onEntityInteract);
}
public static boolean isItemProtected(ItemStack stack) {
@@ -122,4 +131,14 @@ public class ItemProtection {
handleKeyPressed(heldItem);
}
}
+
+ private static ActionResult onEntityInteract(PlayerEntity playerEntity, World world, Hand hand, Entity entity, @Nullable EntityHitResult entityHitResult) {
+ if (!Utils.isOnSkyblock() || !world.isClient) return ActionResult.PASS;
+ if (entity instanceof ItemFrameEntity itemFrame && itemFrame.getHeldItemStack().isEmpty()) {
+ if (isItemProtected(playerEntity.getStackInHand(hand)) || HotbarSlotLock.isLocked(playerEntity.getInventory().selectedSlot)) {
+ return ActionResult.FAIL;
+ }
+ }
+ return ActionResult.PASS;
+ }
}