feat: Add descriptions for config options
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
package moe.nea.firmament.mixins.devenv;
|
||||
|
||||
import net.minecraft.text.TranslatableTextContent;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(TranslatableTextContent.class)
|
||||
public abstract class EarlyInstantiateTranslations {
|
||||
@Shadow
|
||||
protected abstract void updateTranslations();
|
||||
|
||||
@Inject(method = "<init>", at = @At("TAIL"))
|
||||
private void onInit(String key, String fallback, Object[] args, CallbackInfo ci) {
|
||||
updateTranslations();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package moe.nea.firmament.mixins.devenv;
|
||||
|
||||
import moe.nea.firmament.features.debug.DeveloperFeatures;
|
||||
import moe.nea.firmament.util.MC;
|
||||
import net.minecraft.client.resource.language.TranslationStorage;
|
||||
import net.minecraft.text.Text;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
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.callback.CallbackInfoReturnable;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
@Mixin(TranslationStorage.class)
|
||||
public abstract class WarnOnMissingTranslations {
|
||||
@Shadow
|
||||
public abstract boolean hasTranslation(String key);
|
||||
|
||||
@Unique
|
||||
private final Set<String> missingTranslations = new TreeSet<>();
|
||||
|
||||
@Inject(method = "get", at = @At("HEAD"))
|
||||
private void onGetTranslationKey(String key, String fallback, CallbackInfoReturnable<String> cir) {
|
||||
warnForMissingTranslation(key);
|
||||
}
|
||||
|
||||
@Unique
|
||||
private void warnForMissingTranslation(String key) {
|
||||
if (!key.contains("firmament")) return;
|
||||
if (hasTranslation(key)) return;
|
||||
if (!missingTranslations.add(key)) return;
|
||||
MC.INSTANCE.sendChat(Text.literal("Missing firmament translation: " + key));
|
||||
DeveloperFeatures.hookMissingTranslations(missingTranslations);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user