Skip to content

Commit 1523c82

Browse files
committed
added mixin, changed Utils, registered Listener in CoflModClient to open custom Auction UI
1 parent d53e8e1 commit 1523c82

File tree

4 files changed

+50
-8
lines changed

4 files changed

+50
-8
lines changed

src/client/java/com/coflnet/CoflModClient.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
import CoflCore.events.OnModChatMessage;
88
import CoflCore.events.OnWriteToChatReceive;
99
import com.coflnet.gui.RenderUtils;
10+
import com.coflnet.gui.cofl.CoflBinGUI;
11+
import com.coflnet.gui.tfm.TfmBinGUI;
1012
import com.mojang.brigadier.arguments.StringArgumentType;
1113
import net.fabricmc.api.ClientModInitializer;
1214
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
@@ -15,10 +17,13 @@
1517
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
1618
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
1719
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayConnectionEvents;
20+
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
1821
import net.fabricmc.loader.api.FabricLoader;
1922
import net.minecraft.client.MinecraftClient;
23+
import net.minecraft.client.gui.screen.ingame.GenericContainerScreen;
2024
import net.minecraft.client.option.KeyBinding;
2125
import net.minecraft.client.util.InputUtil;
26+
import net.minecraft.item.Items;
2227
import net.minecraft.text.Text;
2328
import org.greenrobot.eventbus.Subscribe;
2429
import org.lwjgl.glfw.GLFW;
@@ -70,6 +75,26 @@ public void onInitializeClient() {
7075
})));
7176
});
7277

78+
ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> {
79+
if (screen instanceof GenericContainerScreen gcs) {
80+
ScreenEvents.beforeRender(gcs).register((screen1, drawContext, mouseX, mouseY, tickDelta) -> {
81+
GenericContainerScreen gcs1 = (GenericContainerScreen) screen1;
82+
if (CoflCore.config.purchaseOverlay != null
83+
&& gcs.getTitle().getLiteralString().contains("BIN Auction View")
84+
&& gcs.getScreenHandler().getInventory().size() == 9 * 6) {
85+
if (!(client.currentScreen instanceof CoflBinGUI || client.currentScreen instanceof TfmBinGUI)) {
86+
switch (CoflCore.config.purchaseOverlay) {
87+
case COFL: client.setScreen(new CoflBinGUI(Items.BREAD, gcs1.getScreenHandler()));break;
88+
case TFM: client.setScreen(new TfmBinGUI(Items.BREAD));break;
89+
case null: default: break;
90+
}
91+
System.out.println("Empty?: " + gcs.getScreenHandler().getInventory().isEmpty());
92+
}
93+
}
94+
});
95+
}
96+
});
97+
7398
}
7499

75100
@Subscribe

src/client/java/com/coflnet/Utils.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,14 @@ public static MutableText ChatComponent(ChatMessage cmd) {
1111
MutableText message = Text.literal(cmd.getText());
1212
if (cmd.getOnClick() != null) {
1313
if (cmd.getOnClick().startsWith("http")) {
14-
message
15-
.styled((style) -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, cmd.getOnClick())));
14+
message.styled((style) -> style.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, cmd.getOnClick())));
1615
} else {
17-
message
18-
.styled((style) -> style.withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, cmd.getOnClick())));
16+
message.styled((style) -> style.withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, cmd.getOnClick())));
1917
}
2018
}
2119

2220
if (cmd.getHover() != null && !cmd.getHover().isEmpty()) {
23-
message.copy()
24-
.styled((style) -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Text.of(cmd.getHover()))));
21+
message.styled((style) -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, Text.of(cmd.getHover()))));
2522
}
2623
return message;
2724
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.coflnet.mixin;
2+
3+
import com.coflnet.gui.cofl.CoflBinGUI;
4+
import net.minecraft.client.MinecraftClient;
5+
import net.minecraft.client.gui.widget.ScrollableWidget;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.injection.At;
8+
import org.spongepowered.asm.mixin.injection.ModifyArg;
9+
10+
@Mixin(ScrollableWidget.class)
11+
public class ScrollableWidgetMixin {
12+
@ModifyArg(method = "drawScrollbar", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawGuiTexture(Lnet/minecraft/util/Identifier;IIII)V"), index = 3)
13+
private int drawBox(int x){
14+
if(MinecraftClient.getInstance().currentScreen instanceof CoflBinGUI){
15+
return 2;
16+
} else {
17+
return x;
18+
}
19+
}
20+
}

src/client/resources/coflmod.client.mixins.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
{
22
"required": true,
3-
"package": "com.coflnet.mixin.client",
3+
"package": "com.coflnet.mixin",
44
"compatibilityLevel": "JAVA_21",
55
"client": [
6-
"ExampleClientMixin"
6+
"ScrollableWidgetMixin"
77
],
88
"injectors": {
99
"defaultRequire": 1

0 commit comments

Comments
 (0)