Skip to content

Commit fa4e80c

Browse files
committed
feat: Open waystone settings even if waystone blocks are shift-clicked with an item in hand
1 parent bd3c377 commit fa4e80c

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

shared/src/main/java/net/blay09/mods/waystones/client/WaystonesClient.java

+24
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
package net.blay09.mods.waystones.client;
22

3+
import net.blay09.mods.balm.api.Balm;
34
import net.blay09.mods.balm.api.client.BalmClient;
5+
import net.blay09.mods.balm.api.event.client.UseItemInputEvent;
46
import net.blay09.mods.waystones.InternalClientMethodsImpl;
57
import net.blay09.mods.waystones.api.client.WaystonesClientAPI;
8+
import net.blay09.mods.waystones.block.entity.WaystoneBlockEntityBase;
69
import net.blay09.mods.waystones.client.requirement.RequirementClientRegistry;
710
import net.blay09.mods.waystones.compat.Compat;
11+
import net.blay09.mods.waystones.network.message.RequestEditWaystoneMessage;
812
import net.minecraft.client.ClientBrandRetriever;
13+
import net.minecraft.client.Minecraft;
14+
import net.minecraft.world.phys.BlockHitResult;
15+
import net.minecraft.world.phys.HitResult;
916

1017
import java.util.Locale;
1118

@@ -22,5 +29,22 @@ public static void initialize() {
2229
InventoryButtonGuiHandler.initialize();
2330

2431
Compat.isVivecraftInstalled = ClientBrandRetriever.getClientModName().toLowerCase(Locale.ENGLISH).contains(Compat.VIVECRAFT);
32+
33+
Balm.getEvents().onEvent(UseItemInputEvent.class, event -> {
34+
final var mc = Minecraft.getInstance();
35+
if (mc.level == null || mc.player == null || mc.hitResult == null || mc.hitResult.getType() != HitResult.Type.BLOCK) {
36+
return;
37+
}
38+
39+
if (mc.player.isShiftKeyDown()) {
40+
final var blockHitResult = (BlockHitResult) mc.hitResult;
41+
final var targetBlockEntity = mc.level.getBlockEntity(blockHitResult.getBlockPos());
42+
if (targetBlockEntity instanceof WaystoneBlockEntityBase waystoneBlockEntity) {
43+
Balm.getNetworking().sendToServer(new RequestEditWaystoneMessage(waystoneBlockEntity.getBlockPos()));
44+
mc.player.swing(event.getHand());
45+
event.setCanceled(true);
46+
}
47+
}
48+
});
2549
}
2650
}

0 commit comments

Comments
 (0)