Skip to content

Commit 55652bf

Browse files
committed
feat: update for 26.1
1 parent bd969ab commit 55652bf

9 files changed

Lines changed: 65 additions & 67 deletions

File tree

build.gradle

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
plugins {
2-
id "fabric-loom" version "1.11-SNAPSHOT"
2+
id 'net.fabricmc.fabric-loom' version "1.16-SNAPSHOT"
33
}
4-
54
java {
65
toolchain {
7-
languageVersion = JavaLanguageVersion.of(21)
6+
languageVersion = JavaLanguageVersion.of(25)
87
}
98

109
withSourcesJar()
@@ -14,9 +13,8 @@ version = "0.4.0"
1413
group = "dev.chachy"
1514

1615
dependencies {
17-
minecraft "com.mojang:minecraft:1.21.11"
18-
mappings "net.fabricmc:yarn:1.21.11+build.1:v2"
19-
modImplementation "net.fabricmc:fabric-loader:0.16.14"
16+
minecraft "com.mojang:minecraft:26.1"
17+
implementation "net.fabricmc:fabric-loader:0.18.6"
2018
}
2119

2220
processResources {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

src/main/java/dev/chachy/lazylanguageloader/client/impl/state/StateManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package dev.chachy.lazylanguageloader.client.impl.state;
22

3-
import net.minecraft.resource.ResourceReloader;
3+
import net.minecraft.server.packs.resources.PreparableReloadListener;
44

55
import java.util.ArrayList;
66
import java.util.List;
77

88
public class StateManager {
9-
private static final List<ResourceReloader> reloaders = new ArrayList<>();
9+
private static final List<PreparableReloadListener> reloaders = new ArrayList<>();
1010
private static boolean resourceLoadViaLanguage = false;
1111

1212
public static boolean isResourceLoadViaLanguage() {
@@ -17,7 +17,7 @@ public static void setResourceLoadViaLanguage(boolean resourceLoadViaLanguage) {
1717
StateManager.resourceLoadViaLanguage = resourceLoadViaLanguage;
1818
}
1919

20-
public static List<ResourceReloader> getResourceReloaders() {
20+
public static List<PreparableReloadListener> getResourceReloaders() {
2121
return reloaders;
2222
}
2323

@@ -28,7 +28,7 @@ public static List<ResourceReloader> getResourceReloaders() {
2828
*
2929
* @param reloader Reloader to be used on language reloads
3030
*/
31-
public static void addResourceReloader(ResourceReloader reloader) {
31+
public static void addResourceReloader(PreparableReloadListener reloader) {
3232
reloaders.add(reloader);
3333
}
3434

src/main/java/dev/chachy/lazylanguageloader/client/mixin/optimizations/loading/MixinLanguageOptionsScreen.java renamed to src/main/java/dev/chachy/lazylanguageloader/client/mixin/optimizations/loading/MixinLanguageSelectScreen.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
package dev.chachy.lazylanguageloader.client.mixin.optimizations.loading;
22

33
import dev.chachy.lazylanguageloader.client.impl.state.StateManager;
4-
import net.minecraft.client.gui.screen.option.LanguageOptionsScreen;
4+
import net.minecraft.client.gui.screens.options.LanguageSelectScreen;
55
import org.spongepowered.asm.mixin.Mixin;
66
import org.spongepowered.asm.mixin.injection.At;
77
import org.spongepowered.asm.mixin.injection.Inject;
88
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
99

10-
@Mixin(LanguageOptionsScreen.class)
11-
public class MixinLanguageOptionsScreen {
10+
@Mixin(LanguageSelectScreen.class)
11+
public class MixinLanguageSelectScreen {
1212
@Inject(
1313
method = "onDone",
1414
at = @At(
1515
value = "INVOKE",
16-
target = "Lnet/minecraft/client/MinecraftClient;reloadResources()Ljava/util/concurrent/CompletableFuture;",
16+
target = "Lnet/minecraft/client/Minecraft;reloadResourcePacks()Ljava/util/concurrent/CompletableFuture;",
1717
ordinal = 0
1818
)
1919
)
@@ -25,7 +25,7 @@ public class MixinLanguageOptionsScreen {
2525
method = "onDone",
2626
at = @At(
2727
value = "INVOKE",
28-
target = "Lnet/minecraft/client/MinecraftClient;reloadResources()Ljava/util/concurrent/CompletableFuture;",
28+
target = "Lnet/minecraft/client/Minecraft;reloadResourcePacks()Ljava/util/concurrent/CompletableFuture;",
2929
ordinal = 0,
3030
shift = At.Shift.AFTER
3131
)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package dev.chachy.lazylanguageloader.client.mixin.optimizations.loading;
2+
3+
import dev.chachy.lazylanguageloader.client.impl.state.StateManager;
4+
import net.minecraft.client.multiplayer.SessionSearchTrees;
5+
import net.minecraft.client.resources.language.LanguageManager;
6+
import net.minecraft.server.packs.resources.PreparableReloadListener;
7+
import net.minecraft.server.packs.resources.ReloadableResourceManager;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.ModifyArg;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13+
14+
import java.util.List;
15+
16+
@Mixin(ReloadableResourceManager.class)
17+
public class MixinReloadableResourceManager {
18+
@ModifyArg(
19+
method = "createReload",
20+
at = @At(
21+
value = "INVOKE",
22+
target = "Lnet/minecraft/server/packs/resources/SimpleReloadInstance;create(Lnet/minecraft/server/packs/resources/ResourceManager;Ljava/util/List;Ljava/util/concurrent/Executor;Ljava/util/concurrent/Executor;Ljava/util/concurrent/CompletableFuture;Z)Lnet/minecraft/server/packs/resources/ReloadInstance;"
23+
)
24+
)
25+
private List<PreparableReloadListener> lazyLanguageLoader$$onReload(List<PreparableReloadListener> reloaders) {
26+
return StateManager.isResourceLoadViaLanguage() ? StateManager.getResourceReloaders() : reloaders;
27+
}
28+
29+
@Inject(method = "registerReloadListener", at = @At("HEAD"))
30+
private void lazyLanguageLoader$$onRegisterReloader(PreparableReloadListener listener, CallbackInfo ci) {
31+
if (listener instanceof LanguageManager || listener instanceof SessionSearchTrees) {
32+
StateManager.addResourceReloader(listener);
33+
}
34+
}
35+
}

src/main/java/dev/chachy/lazylanguageloader/client/mixin/optimizations/loading/MixinReloadableResourceManagerImpl.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/main/java/dev/chachy/lazylanguageloader/client/mixin/optimizations/splash/MixinMinecraftClient.java renamed to src/main/java/dev/chachy/lazylanguageloader/client/mixin/optimizations/splash/MixinMinecraft.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11
package dev.chachy.lazylanguageloader.client.mixin.optimizations.splash;
22

3-
import net.minecraft.client.MinecraftClient;
4-
import net.minecraft.client.gui.screen.Overlay;
5-
import net.minecraft.client.gui.screen.Screen;
6-
import net.minecraft.client.gui.screen.SplashOverlay;
7-
import net.minecraft.client.gui.screen.ingame.CraftingScreen;
8-
import net.minecraft.client.gui.screen.option.LanguageOptionsScreen;
9-
import org.jetbrains.annotations.Nullable;
3+
import net.minecraft.client.Minecraft;
4+
import net.minecraft.client.gui.screens.LoadingOverlay;
5+
import net.minecraft.client.gui.screens.Overlay;
6+
import net.minecraft.client.gui.screens.Screen;
7+
import net.minecraft.client.gui.screens.inventory.CraftingScreen;
8+
import net.minecraft.client.gui.screens.options.LanguageSelectScreen;
9+
import org.jspecify.annotations.Nullable;
1010
import org.spongepowered.asm.mixin.Mixin;
1111
import org.spongepowered.asm.mixin.Shadow;
1212
import org.spongepowered.asm.mixin.Unique;
1313
import org.spongepowered.asm.mixin.injection.At;
1414
import org.spongepowered.asm.mixin.injection.Inject;
1515
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1616

17-
@Mixin(MinecraftClient.class)
18-
public class MixinMinecraftClient {
17+
@Mixin(Minecraft.class)
18+
public class MixinMinecraft {
1919
@Shadow
2020
@Nullable
21-
public Screen currentScreen;
21+
public Screen screen;
2222

2323
@Inject(method = "setOverlay", at = @At("HEAD"), cancellable = true)
2424
private void lazyLanguageLoader$$setOverlay(Overlay overlay, CallbackInfo ci) {
25-
if (overlay instanceof SplashOverlay && lazyLanguageLoader$$verifyScreen(currentScreen)) {
25+
if (overlay instanceof LoadingOverlay && lazyLanguageLoader$$verifyScreen(this.screen)) {
2626
ci.cancel();
2727
}
2828
}
2929

3030
@Unique
3131
private boolean lazyLanguageLoader$$verifyScreen(Screen screen) {
32-
return screen instanceof LanguageOptionsScreen || screen instanceof CraftingScreen;
32+
return screen instanceof LanguageSelectScreen || screen instanceof CraftingScreen;
3333
}
3434
}

src/main/resources/fabric.mod.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
],
2020
"icon": "assets/lazy-language-loader/icon/icon_128.png",
2121
"depends": {
22-
"minecraft": ">=1.21.11",
22+
"minecraft": ">=26.1",
2323
"java": ">=21"
2424
}
2525
}

src/main/resources/lazy-language-loader.mixin.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
"package": "dev.chachy.lazylanguageloader.client.mixin",
55
"compatibilityLevel": "JAVA_21",
66
"client": [
7-
"optimizations.loading.MixinLanguageOptionsScreen",
8-
"optimizations.loading.MixinReloadableResourceManagerImpl",
9-
"optimizations.splash.MixinMinecraftClient"
7+
"optimizations.loading.MixinLanguageSelectScreen",
8+
"optimizations.loading.MixinReloadableResourceManager",
9+
"optimizations.splash.MixinMinecraft"
1010
],
1111
"injectors": {
1212
"defaultRequire": 1

0 commit comments

Comments
 (0)