Skip to content

Commit c6e158c

Browse files
Merge pull request #32 from crazysmc/main
fix #31 in resource-loader
2 parents 4264a82 + 229ee0f commit c6e158c

File tree

4 files changed

+84
-40
lines changed

4 files changed

+84
-40
lines changed

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

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,40 @@
2424
import net.minecraft.client.resource.language.TranslationStorage;
2525
import net.minecraft.client.resource.manager.ResourceManager;
2626
import net.minecraft.resource.Identifier;
27+
import org.spongepowered.asm.mixin.injection.Inject;
28+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2729

2830
@Mixin(TranslationStorage.class)
29-
public class TranslationStorageMixin {
31+
public abstract class TranslationStorageMixin {
3032

3133
@Final
3234
@Shadow
3335
private Map<String, String> translations;
3436

35-
@WrapOperation(
37+
@Shadow
38+
protected abstract void load(List<Resource> resources);
39+
40+
@Inject(
3641
method = "load(Lnet/minecraft/client/resource/manager/ResourceManager;Ljava/util/List;)V",
3742
at = @At(
3843
value = "INVOKE",
39-
target = "Lnet/minecraft/client/resource/language/TranslationStorage;load(Ljava/util/List;)V"
44+
target = "Lnet/minecraft/client/resource/manager/ResourceManager;getResources(Lnet/minecraft/resource/Identifier;)Ljava/util/List;"
4045
)
4146
)
42-
private void osl$resource_loader$loadTranslationFiles(TranslationStorage instance, List<Resource> resources, Operation<Void> original,
43-
@Local(argsOnly = true) ResourceManager resourceManager, @Local(ordinal = 0) String languageCode,
44-
@Local(ordinal = 1) String originalPath, @Local(ordinal = 2) String namespace) throws IOException {
45-
String[] paths = new String[]{originalPath, String.format("lang/%s.json", languageCode),
47+
private void osl$resource_loader$loadTranslationFiles(CallbackInfo ci,
48+
@Local(argsOnly = true) ResourceManager resourceManager,
49+
@Local(ordinal = 0) String languageCode,
50+
@Local(ordinal = 2) String namespace) {
51+
String[] paths = new String[] {
52+
String.format("lang/%s.json", languageCode),
4653
String.format("lang/%s.lang", languageCode.toLowerCase(Locale.ROOT)),
47-
String.format("lang/%s.json", languageCode.toLowerCase(Locale.ROOT))};
48-
for (String path : paths){
49-
original.call(instance, resourceManager.getResources(new Identifier(namespace, path)));
54+
String.format("lang/%s.json", languageCode.toLowerCase(Locale.ROOT))
55+
};
56+
for (String path : paths) {
57+
try {
58+
this.load(resourceManager.getResources(new Identifier(namespace, path)));
59+
} catch (IOException ignored) {
60+
}
5061
}
5162
}
5263

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

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,29 +23,40 @@
2323
import net.minecraft.client.resource.language.TranslationStorage;
2424
import net.minecraft.client.resource.manager.ResourceManager;
2525
import net.minecraft.resource.Identifier;
26+
import org.spongepowered.asm.mixin.injection.Inject;
27+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2628

2729
@Mixin(TranslationStorage.class)
28-
public class TranslationStorageMixin {
30+
public abstract class TranslationStorageMixin {
2931

3032
@Final
3133
@Shadow
3234
private Map<String, String> translations;
3335

34-
@WrapOperation(
36+
@Shadow
37+
protected abstract void load(List<Resource> resources);
38+
39+
@Inject(
3540
method = "load(Lnet/minecraft/client/resource/manager/ResourceManager;Ljava/util/List;)V",
3641
at = @At(
3742
value = "INVOKE",
38-
target = "Lnet/minecraft/client/resource/language/TranslationStorage;load(Ljava/util/List;)V"
43+
target = "Lnet/minecraft/client/resource/manager/ResourceManager;getResources(Lnet/minecraft/resource/Identifier;)Ljava/util/List;"
3944
)
4045
)
41-
private void osl$resource_loader$loadTranslationFiles(TranslationStorage instance, List<Resource> resources, Operation<Void> original,
42-
@Local(argsOnly = true) ResourceManager resourceManager, @Local(ordinal = 0) String languageCode,
43-
@Local(ordinal = 1) String originalPath, @Local(ordinal = 2) String namespace) throws IOException {
44-
String[] paths = new String[]{originalPath, String.format("lang/%s.json", languageCode),
46+
private void osl$resource_loader$loadTranslationFiles(CallbackInfo ci,
47+
@Local(argsOnly = true) ResourceManager resourceManager,
48+
@Local(ordinal = 0) String languageCode,
49+
@Local(ordinal = 2) String namespace) {
50+
String[] paths = new String[] {
51+
String.format("lang/%s.json", languageCode),
4552
String.format("lang/%s.lang", languageCode.toLowerCase(Locale.ROOT)),
46-
String.format("lang/%s.json", languageCode.toLowerCase(Locale.ROOT))};
47-
for (String path : paths){
48-
original.call(instance, resourceManager.getResources(new Identifier(namespace, path)));
53+
String.format("lang/%s.json", languageCode.toLowerCase(Locale.ROOT))
54+
};
55+
for (String path : paths) {
56+
try {
57+
this.load(resourceManager.getResources(new Identifier(namespace, path)));
58+
} catch (IOException ignored) {
59+
}
4960
}
5061
}
5162

libraries/resource-loader/resource-loader-mc17w43a-mc19w07a/src/main/java/net/ornithemc/osl/resource/loader/impl/mixin/client/TranslationStorageMixin.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,40 @@
2222
import net.minecraft.client.resource.manager.ResourceManager;
2323
import net.minecraft.resource.Identifier;
2424
import net.minecraft.resource.Resource;
25+
import org.spongepowered.asm.mixin.injection.Inject;
26+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2527

2628
@Mixin(TranslationStorage.class)
27-
public class TranslationStorageMixin {
29+
public abstract class TranslationStorageMixin {
2830

2931
@Final
3032
@Shadow
3133
private Map<String, String> translations;
3234

33-
@WrapOperation(
35+
@Shadow
36+
protected abstract void load(List<Resource> resources);
37+
38+
@Inject(
3439
method = "load(Lnet/minecraft/client/resource/manager/ResourceManager;Ljava/util/List;)V",
3540
at = @At(
3641
value = "INVOKE",
37-
target = "Lnet/minecraft/client/resource/language/TranslationStorage;load(Ljava/util/List;)V"
42+
target = "Lnet/minecraft/client/resource/manager/ResourceManager;getResources(Lnet/minecraft/resource/Identifier;)Ljava/util/List;"
3843
)
3944
)
40-
private void osl$resource_loader$loadTranslationFiles(TranslationStorage instance, List<Resource> resources, Operation<Void> original,
41-
@Local(argsOnly = true) ResourceManager resourceManager, @Local(ordinal = 0) String languageCode,
42-
@Local(ordinal = 1) String originalPath, @Local(ordinal = 2) String namespace) throws IOException {
43-
String[] paths = new String[]{originalPath, String.format("lang/%s.lang", languageCode),
45+
private void osl$resource_loader$loadTranslationFiles(CallbackInfo ci,
46+
@Local(argsOnly = true) ResourceManager resourceManager,
47+
@Local(ordinal = 0) String languageCode,
48+
@Local(ordinal = 2) String namespace) {
49+
String[] paths = new String[] {
50+
String.format("lang/%s.lang", languageCode),
4451
String.format("lang/%s.json", languageCode.toLowerCase(Locale.ROOT)),
45-
String.format("lang/%s.lang", languageCode.toLowerCase(Locale.ROOT))};
46-
for (String path : paths){
47-
original.call(instance, resourceManager.getResources(new Identifier(namespace, path)));
52+
String.format("lang/%s.lang", languageCode.toLowerCase(Locale.ROOT))
53+
};
54+
for (String path : paths) {
55+
try {
56+
this.load(resourceManager.getResources(new Identifier(namespace, path)));
57+
} catch (IOException ignored) {
58+
}
4859
}
4960
}
5061

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

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,40 @@
2222
import net.minecraft.client.resource.manager.ResourceManager;
2323
import net.minecraft.resource.Identifier;
2424
import net.minecraft.resource.Resource;
25+
import org.spongepowered.asm.mixin.injection.Inject;
26+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
2527

2628
@Mixin(TranslationStorage.class)
27-
public class TranslationStorageMixin {
29+
public abstract class TranslationStorageMixin {
2830

2931
@Final
3032
@Shadow
3133
private Map<String, String> translations;
3234

33-
@WrapOperation(
35+
@Shadow
36+
protected abstract void load(List<Resource> resources);
37+
38+
@Inject(
3439
method = "load(Lnet/minecraft/client/resource/manager/ResourceManager;Ljava/util/List;)V",
3540
at = @At(
3641
value = "INVOKE",
37-
target = "Lnet/minecraft/client/resource/language/TranslationStorage;load(Ljava/util/List;)V"
42+
target = "Lnet/minecraft/client/resource/manager/ResourceManager;getResources(Lnet/minecraft/resource/Identifier;)Ljava/util/List;"
3843
)
3944
)
40-
private void osl$resource_loader$loadTranslationFiles(TranslationStorage instance, List<Resource> resources, Operation<Void> original,
41-
@Local(argsOnly = true) ResourceManager resourceManager, @Local(ordinal = 0) String languageCode,
42-
@Local(ordinal = 1) String originalPath, @Local(ordinal = 2) String namespace) throws IOException {
43-
String[] paths = new String[]{originalPath, String.format("lang/%s.lang", languageCode),
45+
private void osl$resource_loader$loadTranslationFiles(CallbackInfo ci,
46+
@Local(argsOnly = true) ResourceManager resourceManager,
47+
@Local(ordinal = 0) String languageCode,
48+
@Local(ordinal = 2) String namespace) {
49+
String[] paths = new String[] {
50+
String.format("lang/%s.lang", languageCode),
4451
String.format("lang/%s.json", languageCode.toLowerCase(Locale.ROOT)),
45-
String.format("lang/%s.lang", languageCode.toLowerCase(Locale.ROOT))};
46-
for (String path : paths){
47-
original.call(instance, resourceManager.getResources(new Identifier(namespace, path)));
52+
String.format("lang/%s.lang", languageCode.toLowerCase(Locale.ROOT))
53+
};
54+
for (String path : paths) {
55+
try {
56+
this.load(resourceManager.getResources(new Identifier(namespace, path)));
57+
} catch (IOException ignored) {
58+
}
4859
}
4960
}
5061

0 commit comments

Comments
 (0)