Skip to content

Commit e894124

Browse files
committed
Bump loader version + cleanup
1 parent e2679ff commit e894124

File tree

3 files changed

+44
-44
lines changed

3 files changed

+44
-44
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ repositories {
1313
}
1414

1515
dependencies {
16-
compileOnly("com.github.Weave-MC:Weave-Loader:0c09d7496f")
16+
compileOnly("com.github.Weave-MC:Weave-Loader:454f9a8cca")
1717
}
1818

1919
tasks.compileJava {

src/main/java/com/example/mod/ExampleMod.java

Lines changed: 9 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,63 +5,29 @@
55
import club.maxstats.weave.loader.api.HookManager;
66
import club.maxstats.weave.loader.api.event.*;
77
import com.example.mod.command.TestCommand;
8-
import com.example.mod.listener.RenderGameOverlayListener;
9-
import kotlin.Unit;
8+
import com.example.mod.hook.MinecraftHook;
109
import net.minecraft.client.Minecraft;
1110
import net.minecraft.util.ChatComponentText;
1211
import org.lwjgl.input.Keyboard;
13-
import org.lwjgl.input.Mouse;
14-
import org.objectweb.asm.Opcodes;
15-
import org.objectweb.asm.Type;
16-
import org.objectweb.asm.tree.MethodInsnNode;
1712

1813
public class ExampleMod implements ModInitializer {
1914
@Override
2015
public void preInit(HookManager hookManager) {
21-
hookManager.register("net/minecraft/client/Minecraft", cn -> {
22-
cn.methods.stream()
23-
.filter(m -> m.name.equals("startGame"))
24-
.findFirst().orElseThrow()
25-
.instructions.insert(
26-
new MethodInsnNode(
27-
Opcodes.INVOKESTATIC,
28-
Type.getInternalName(this.getClass()),
29-
"onStart",
30-
"()V"
31-
)
32-
);
33-
});
16+
System.out.println("Initializing ExampleMod!");
3417

35-
EventBus.INSTANCE.subscribe(KeyboardEvent.class, e -> {
36-
Minecraft.getMinecraft().thePlayer.addChatMessage(
37-
new ChatComponentText("Key Pressed: " + Keyboard.getKeyName(e.getKeyCode()))
38-
);
39-
});
18+
hookManager.register(new MinecraftHook());
19+
CommandBus.INSTANCE.register(new TestCommand());
4020

41-
EventBus.INSTANCE.subscribe(MouseEvent.class, e -> {
42-
if (e.getButton() >= 0) {
21+
EventBus.INSTANCE.subscribe(KeyboardEvent.class, e -> {
22+
if (Minecraft.getMinecraft().currentScreen == null && e.getKeyState()) {
4323
Minecraft.getMinecraft().thePlayer.addChatMessage(
44-
new ChatComponentText("Mouse Pressed: " + Mouse.getButtonName(e.getButton()))
24+
new ChatComponentText("Key Pressed: " + Keyboard.getKeyName(e.getKeyCode()))
4525
);
4626
}
4727
});
4828

49-
EventBus.INSTANCE.subscribe(ShutdownEvent.class, e -> System.out.println("Shutdown Event"));
50-
EventBus.INSTANCE.subscribe(ChatSentEvent.class, e -> {
51-
if (e.getMessage().equals("Test")) {
52-
e.setCancelled(true);
53-
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText("Cancelled 'Test' Message"));
54-
}
29+
EventBus.INSTANCE.subscribe(RenderHandEvent.class, e -> {
30+
e.setCancelled(true);
5531
});
56-
57-
EventBus.INSTANCE.subscribe(new RenderGameOverlayListener());
58-
EventBus.INSTANCE.subscribe(StartGameEvent.Pre.class, e -> System.out.println("Pre StartGame"));
59-
EventBus.INSTANCE.subscribe(StartGameEvent.Post.class, e -> System.out.println("Post StartGame"));
60-
61-
CommandBus.INSTANCE.register(new TestCommand());
62-
}
63-
64-
public static void onStart() {
65-
System.out.println("Hello World from Minecraft#startGame");
6632
}
6733
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.example.mod.hook;
2+
3+
import club.maxstats.weave.loader.api.Hook;
4+
import org.jetbrains.annotations.NotNull;
5+
import org.objectweb.asm.Opcodes;
6+
import org.objectweb.asm.Type;
7+
import org.objectweb.asm.tree.ClassNode;
8+
import org.objectweb.asm.tree.MethodInsnNode;
9+
10+
public class MinecraftHook extends Hook {
11+
public MinecraftHook() {
12+
super("net/minecraft/client/Minecraft");
13+
}
14+
15+
@Override
16+
public void transform(@NotNull ClassNode classNode, @NotNull AssemblerConfig assemblerConfig) {
17+
classNode.methods.stream()
18+
.filter(m -> m.name.equals("startGame"))
19+
.findFirst().orElseThrow()
20+
.instructions.insert(
21+
new MethodInsnNode(
22+
Opcodes.INVOKESTATIC,
23+
Type.getInternalName(MinecraftHook.class),
24+
"onStartGame",
25+
"()V"
26+
)
27+
);
28+
}
29+
30+
@SuppressWarnings("unused")
31+
public static void onStartGame() {
32+
System.out.println("onStartGame");
33+
}
34+
}

0 commit comments

Comments
 (0)