Skip to content

Commit

Permalink
Some performance improvements (6000% faster)
Browse files Browse the repository at this point in the history
  • Loading branch information
hexadecimal233 committed Jul 15, 2023
1 parent 133178b commit d1ac2b5
Showing 1 changed file with 13 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,27 @@
import net.minecraft.text.TranslatableTextContent;
import net.minecraft.util.Language;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

import java.util.Arrays;

@Mixin(TranslatableTextContent.class)
public class TranslatableTextContentMixin {
@Unique private boolean forceEnglish = false;

private static final Language EN_US = LanguageAccessor.create();

// Force English translation in Names.get() as Custom Fonts currently doesn't support English
@Redirect(method = "updateTranslations", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/Language;getInstance()Lnet/minecraft/util/Language;"))
@SuppressWarnings("removal")
private Language onUpdateTranslation() {
return forceEnglish ? EN_US : Language.getInstance();
}

// Force English translation in Names.get() as Custom Fonts currently doesn't support English
@Inject(method = "<init>", at = @At("TAIL"))
private void onInit(String key, String fallback, Object[] args, CallbackInfo info) {
if (Arrays.stream(Thread.currentThread().getStackTrace()).anyMatch(e -> e.getClassName().equals(Names.class.getName())))
forceEnglish = true;
for (Class<?> clazz : new SecurityManager() {
@Override
public Class<?>[] getClassContext() {
return super.getClassContext();
}
}.getClassContext()) {
if (clazz.equals(Names.class)) {
return EN_US;
}
}
return Language.getInstance();
}
}

0 comments on commit d1ac2b5

Please sign in to comment.