Respackopts/src/client/java/io/gitlab/jfronny/respackopts/mixin/LanguageManagerMixin.java

26 lines
1.2 KiB
Java

package io.gitlab.jfronny.respackopts.mixin;
import io.gitlab.jfronny.respackopts.util.FallbackI18n;
import io.gitlab.jfronny.respackopts.util.OverlayMap;
import net.minecraft.client.resource.language.LanguageManager;
import net.minecraft.client.resource.language.TranslationStorage;
import net.minecraft.resource.ResourceManager;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
import java.util.*;
@Mixin(LanguageManager.class)
public class LanguageManagerMixin {
@Inject(method = "reload(Lnet/minecraft/resource/ResourceManager;)V", at = @At("TAIL"), locals = LocalCapture.CAPTURE_FAILEXCEPTION)
private void rpo$appendTranslations(ResourceManager manager, CallbackInfo ci, List<String> list, boolean bl, TranslationStorage translationStorage) {
TranslationStorageAccessor storage = (TranslationStorageAccessor) translationStorage;
Map<String, String> map = new HashMap<>();
FallbackI18n.insertInto(map);
storage.setTranslations(new OverlayMap<>(storage.getTranslations(), map));
}
}