Skip to content

Commit 18c1b30

Browse files
committed
feat(26.1/fabric): introduce router to handle unobfuscated code
- Add obfuscated class detection in `Init` to select appropriate sender - Migrate `sendConfig` to use unobfuscated names - Retain `sendConfigObf` for pre-26.1 compatibility - Remove explicit `fabric` dependency in `fabric.mod.json` Ref: Minecraft 26.1 support
1 parent 177dc4b commit 18c1b30

8 files changed

Lines changed: 139 additions & 5 deletions

File tree

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
- **Added support for Minecraft 26.1** 🐤
2+
- Added router to handle [unobfuscated code](https://www.minecraft.net/en-us/article/removing-obfuscation-in-java-edition)
23
- Bumped pack format and protocol version

fabric.mod.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
},
2323
"depends": {
2424
"minecraft": "${mc_version_range_fabric}",
25-
"fabric": ">=0.34.0",
2625
"java": ">=8"
2726
},
2827
"recommends": {
303 Bytes
Binary file not shown.
35 Bytes
Binary file not shown.
7.03 KB
Binary file not shown.

src/main/java/net/tschipcraft/dynamiclights/fabric/Init.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,13 @@ public void onInitialize() {
3131
if (FabricLoader.getInstance().isModLoaded("midnightlib")) {
3232
// Use MidnightLib features
3333
LOGGER.info("[Dynamic Lights] Sending global config to world ...");
34-
sendConfig.sendConfig(server);
34+
try {
35+
// Check for obfuscated class name to determine if we're running a pre 26.1 version
36+
Class.forName("net.minecraft.class_2168");
37+
sendConfigObf.sendConfig(server);
38+
} catch (ClassNotFoundException e) {
39+
sendConfig.sendConfig(server);
40+
}
3541
}
3642
});
3743
}

src/main/java/net/tschipcraft/dynamiclights/fabric/sendConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package net.tschipcraft.dynamiclights.fabric;
22

33
import com.mojang.brigadier.exceptions.CommandSyntaxException;
4+
import net.minecraft.commands.CommandSourceStack;
45
import net.minecraft.server.MinecraftServer;
5-
import net.minecraft.server.command.ServerCommandSource;
66

77
public class sendConfig {
88

@@ -118,9 +118,9 @@ public static void sendConfig(MinecraftServer server) {
118118
}
119119

120120
public static void sendCommand(String command, MinecraftServer server) {
121-
ServerCommandSource commandSource = server.getCommandSource();
121+
CommandSourceStack commandSource = server.createCommandSourceStack();
122122
try {
123-
server.getCommandManager().getDispatcher().execute(command, commandSource);
123+
server.getCommands().getDispatcher().execute(command, commandSource);
124124
} catch (CommandSyntaxException ignored) {
125125
}
126126
}
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
package net.tschipcraft.dynamiclights.fabric;
2+
3+
import com.mojang.brigadier.exceptions.CommandSyntaxException;
4+
import net.minecraft.server.MinecraftServer;
5+
import net.minecraft.server.command.ServerCommandSource;
6+
7+
public class sendConfigObf {
8+
9+
public static void sendConfig(MinecraftServer server) {
10+
sendCommand("scoreboard objectives add ts.dl.settings dummy", server);
11+
if (Config.enable == Config.bool.YES) {
12+
sendCommand("scoreboard players set $enable ts.dl.settings 2", server);
13+
} else if (Config.enable == Config.bool.NO) {
14+
sendCommand("scoreboard players set $enable ts.dl.settings -1", server);
15+
} else {
16+
sendCommand("execute if score $enable ts.dl.settings matches -1 run scoreboard players set $enable ts.dl.settings 0", server);
17+
sendCommand("execute if score $enable ts.dl.settings matches 2 run scoreboard players set $enable ts.dl.settings 1", server);
18+
}
19+
20+
if (Config.enable_on_fire == Config.bool.YES) {
21+
sendCommand("scoreboard players set $enable_on_fire ts.dl.settings 2", server);
22+
} else if (Config.enable_on_fire == Config.bool.NO) {
23+
sendCommand("scoreboard players set $enable_on_fire ts.dl.settings -1", server);
24+
} else {
25+
sendCommand("execute if score $enable_on_fire ts.dl.settings matches -1 run scoreboard players set $enable_on_fire ts.dl.settings 0", server);
26+
sendCommand("execute if score $enable_on_fire ts.dl.settings matches 2 run scoreboard players set $enable_on_fire ts.dl.settings 1", server);
27+
}
28+
29+
if (Config.enable_glowing == Config.bool.YES) {
30+
sendCommand("scoreboard players set $enable_glowing ts.dl.settings 2", server);
31+
} else if (Config.enable_glowing == Config.bool.NO) {
32+
sendCommand("scoreboard players set $enable_glowing ts.dl.settings -1", server);
33+
} else {
34+
sendCommand("execute if score $enable_glowing ts.dl.settings matches -1 run scoreboard players set $enable_glowing ts.dl.settings 0", server);
35+
sendCommand("execute if score $enable_glowing ts.dl.settings matches 2 run scoreboard players set $enable_glowing ts.dl.settings 1", server);
36+
}
37+
38+
if (Config.enable_ghast == Config.bool.YES) {
39+
sendCommand("scoreboard players set $enable_ghast ts.dl.settings 2", server);
40+
} else if (Config.enable_ghast == Config.bool.NO) {
41+
sendCommand("scoreboard players set $enable_ghast ts.dl.settings -1", server);
42+
} else {
43+
sendCommand("execute if score $enable_ghast ts.dl.settings matches -1 run scoreboard players set $enable_ghast ts.dl.settings 0", server);
44+
sendCommand("execute if score $enable_ghast ts.dl.settings matches 2 run scoreboard players set $enable_ghast ts.dl.settings 1", server);
45+
}
46+
47+
if (Config.enable_enchanted_items == Config.bool.YES) {
48+
sendCommand("scoreboard players set $enchanted_items ts.dl.settings 2", server);
49+
} else if (Config.enable_enchanted_items == Config.bool.NO) {
50+
sendCommand("scoreboard players set $enchanted_items ts.dl.settings -1", server);
51+
} else {
52+
sendCommand("execute if score $enchanted_items ts.dl.settings matches -1 run scoreboard players set $enchanted_items ts.dl.settings 0", server);
53+
sendCommand("execute if score $enchanted_items ts.dl.settings matches 2 run scoreboard players set $enchanted_items ts.dl.settings 1", server);
54+
}
55+
56+
if (Config.enable_amethyst_trimmed == Config.bool.YES) {
57+
sendCommand("scoreboard players set $amethyst_trimmed ts.dl.settings 2", server);
58+
} else if (Config.enable_amethyst_trimmed == Config.bool.NO) {
59+
sendCommand("scoreboard players set $amethyst_trimmed ts.dl.settings -1", server);
60+
} else {
61+
sendCommand("execute if score $amethyst_trimmed ts.dl.settings matches -1 run scoreboard players set $amethyst_trimmed ts.dl.settings 0", server);
62+
sendCommand("execute if score $amethyst_trimmed ts.dl.settings matches 2 run scoreboard players set $amethyst_trimmed ts.dl.settings 1", server);
63+
}
64+
65+
if (Config.enable_fire_aspect == Config.bool.YES) {
66+
sendCommand("scoreboard players set $fire_aspect ts.dl.settings 2", server);
67+
} else if (Config.enable_fire_aspect == Config.bool.NO) {
68+
sendCommand("scoreboard players set $fire_aspect ts.dl.settings -1", server);
69+
} else {
70+
sendCommand("execute if score $fire_aspect ts.dl.settings matches -1 run scoreboard players set $fire_aspect ts.dl.settings 0", server);
71+
sendCommand("execute if score $fire_aspect ts.dl.settings matches 2 run scoreboard players set $fire_aspect ts.dl.settings 1", server);
72+
}
73+
74+
if (Config.enable_riptide == Config.bool.YES) {
75+
sendCommand("scoreboard players set $riptide ts.dl.settings 2", server);
76+
} else if (Config.enable_riptide == Config.bool.NO) {
77+
sendCommand("scoreboard players set $riptide ts.dl.settings -1", server);
78+
} else {
79+
sendCommand("execute if score $riptide ts.dl.settings matches -1 run scoreboard players set $riptide ts.dl.settings 0", server);
80+
sendCommand("execute if score $riptide ts.dl.settings matches 2 run scoreboard players set $riptide ts.dl.settings 1", server);
81+
}
82+
83+
if (Config.enable_channeling == Config.bool.YES) {
84+
sendCommand("scoreboard players set $channeling ts.dl.settings 2", server);
85+
} else if (Config.enable_channeling == Config.bool.NO) {
86+
sendCommand("scoreboard players set $channeling ts.dl.settings -1", server);
87+
} else {
88+
sendCommand("execute if score $channeling ts.dl.settings matches -1 run scoreboard players set $channeling ts.dl.settings 0", server);
89+
sendCommand("execute if score $channeling ts.dl.settings matches 2 run scoreboard players set $channeling ts.dl.settings 1", server);
90+
}
91+
92+
if (Config.enable_water_sensitive == Config.bool.YES) {
93+
sendCommand("scoreboard players set $water_sensitive ts.dl.settings 2", server);
94+
} else if (Config.enable_water_sensitive == Config.bool.NO) {
95+
sendCommand("scoreboard players set $water_sensitive ts.dl.settings -1", server);
96+
} else {
97+
sendCommand("execute if score $water_sensitive ts.dl.settings matches -1 run scoreboard players set $water_sensitive ts.dl.settings 0", server);
98+
sendCommand("execute if score $water_sensitive ts.dl.settings matches 2 run scoreboard players set $water_sensitive ts.dl.settings 1", server);
99+
}
100+
101+
if (Config.enable_sound == Config.bool.YES) {
102+
sendCommand("scoreboard players set $enable_sound ts.dl.settings 2", server);
103+
} else if (Config.enable_sound == Config.bool.NO) {
104+
sendCommand("scoreboard players set $enable_sound ts.dl.settings -1", server);
105+
} else {
106+
sendCommand("execute if score $enable_sound ts.dl.settings matches -1 run scoreboard players set $enable_sound ts.dl.settings 0", server);
107+
sendCommand("execute if score $enable_sound ts.dl.settings matches 2 run scoreboard players set $enable_sound ts.dl.settings 1", server);
108+
}
109+
110+
if (Config.enable_rain_sensitive == Config.bool.YES) {
111+
sendCommand("scoreboard players set $rain_sensitive ts.dl.settings 2", server);
112+
} else if (Config.enable_rain_sensitive == Config.bool.NO) {
113+
sendCommand("scoreboard players set $rain_sensitive ts.dl.settings -1", server);
114+
} else {
115+
sendCommand("execute if score $rain_sensitive ts.dl.settings matches -1 run scoreboard players set $rain_sensitive ts.dl.settings 0", server);
116+
sendCommand("execute if score $rain_sensitive ts.dl.settings matches 2 run scoreboard players set $rain_sensitive ts.dl.settings 1", server);
117+
}
118+
}
119+
120+
public static void sendCommand(String command, MinecraftServer server) {
121+
ServerCommandSource commandSource = server.getCommandSource();
122+
try {
123+
server.getCommandManager().getDispatcher().execute(command, commandSource);
124+
} catch (CommandSyntaxException ignored) {
125+
}
126+
}
127+
128+
}

0 commit comments

Comments
 (0)