Skip to content

Commit 8f6fce0

Browse files
committed
fix NoSuchMethodError in resource loader 13w16a-14w21b
1 parent 4f2515d commit 8f6fce0

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package net.ornithemc.osl.resource.loader.impl.mixin.client;
2+
3+
import org.spongepowered.asm.mixin.Mixin;
4+
import org.spongepowered.asm.mixin.gen.Accessor;
5+
6+
import net.minecraft.client.resource.SimpleResource;
7+
import net.minecraft.resource.Identifier;
8+
9+
@Mixin(SimpleResource.class)
10+
public interface SimpleResourceAccessor {
11+
12+
// the SimpleResource#getLocation method only exists in 14w25a and above
13+
@Accessor("location")
14+
Identifier osl$resource_loader$getLocation();
15+
16+
}

libraries/resource-loader/resource-loader-mc13w26a-mc1.10.2/src/main/java/net/ornithemc/osl/resource/loader/impl/mixin/client/TranslationStorageMixin.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.llamalad7.mixinextras.sugar.Local;
2121

2222
import net.minecraft.client.resource.Resource;
23+
import net.minecraft.client.resource.SimpleResource;
2324
import net.minecraft.client.resource.language.TranslationStorage;
2425
import net.minecraft.client.resource.manager.ResourceManager;
2526
import net.minecraft.resource.Identifier;
@@ -57,10 +58,20 @@ public class TranslationStorageMixin {
5758
)
5859
)
5960
private void osl$resource_loader$loadTranslationFiles(TranslationStorage instance, InputStream is, Operation<Void> original, @Local Resource resource) throws IOException{
60-
if (resource.getLocation().getPath().endsWith(".lang")){
61-
original.call(instance, is); // load .lang
62-
} else {
61+
boolean loadAsJson = false;
62+
63+
if (resource instanceof SimpleResource) {
64+
Identifier location = ((SimpleResourceAccessor)resource).osl$resource_loader$getLocation();
65+
66+
if (location.getPath().endsWith(".json")) {
67+
loadAsJson = true;
68+
}
69+
}
70+
71+
if (loadAsJson){
6372
loadJson(is);
73+
} else {
74+
original.call(instance, is); // load .lang
6475
}
6576
}
6677

0 commit comments

Comments
 (0)