1
0
mirror of https://github.com/chylex/Minecraft-Window-Title.git synced 2025-05-08 22:34:03 +02:00

Refactor changing window title

This commit is contained in:
chylex 2025-01-29 17:03:22 +01:00
parent 43698d23b5
commit 425eb3f380
Signed by: chylex
SSH Key Fingerprint: SHA256:WqM8X/1DDn11LbYM0H5wsqZUjbcKxVsic37L+ERcF4o
4 changed files with 17 additions and 15 deletions
Fabric/src/main/java/chylex/customwindowtitle/fabric
NeoForge/src/main/java/chylex/customwindowtitle/neoforge
src/main/java/chylex/customwindowtitle

View File

@ -1,7 +1,7 @@
package chylex.customwindowtitle.fabric;
import chylex.customwindowtitle.TitleChanger;
import chylex.customwindowtitle.TitleConfig;
import chylex.customwindowtitle.TitleParser;
import chylex.customwindowtitle.data.CommonTokenData;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.loader.api.FabricLoader;
@ -17,10 +17,6 @@ public class CustomWindowTitle implements ClientModInitializer {
@Override
public void onInitializeClient() {
CommonTokenData.register(new TokenProvider());
Minecraft.getInstance().execute(this::updateTitle);
}
private void updateTitle() {
Minecraft.getInstance().getWindow().setTitle(TitleParser.parse(config.getTitle()));
Minecraft.getInstance().execute(() -> TitleChanger.setTitle(config));
}
}

View File

@ -1,9 +1,8 @@
package chylex.customwindowtitle.neoforge;
import chylex.customwindowtitle.TitleChanger;
import chylex.customwindowtitle.TitleConfig;
import chylex.customwindowtitle.TitleParser;
import chylex.customwindowtitle.data.CommonTokenData;
import net.minecraft.client.Minecraft;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.Mod;
@ -18,15 +17,11 @@ public class CustomWindowTitle {
public CustomWindowTitle(IEventBus eventBus) {
config = TitleConfig.load(FMLPaths.CONFIGDIR.get().toString());
eventBus.addListener(this::onClientSetup);
CommonTokenData.register(new TokenProvider());
}
@SubscribeEvent
public void onClientSetup(final FMLClientSetupEvent e) {
e.enqueueWork(this::updateTitle);
}
private void updateTitle() {
Minecraft.getInstance().getWindow().setTitle(TitleParser.parse(config.getTitle()));
CommonTokenData.register(new TokenProvider());
e.enqueueWork(() -> TitleChanger.setTitle(config));
}
}

View File

@ -0,0 +1,11 @@
package chylex.customwindowtitle;
import net.minecraft.client.Minecraft;
public final class TitleChanger {
private TitleChanger() {}
public static void setTitle(TitleConfig config) {
Minecraft.getInstance().getWindow().setTitle(TitleParser.parse(config.getTitle()));
}
}

View File

@ -7,7 +7,7 @@ import org.apache.logging.log4j.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class TitleParser {
final class TitleParser {
private static final Pattern tokenRegex = Pattern.compile("\\{([a-z]+)(?::([^}]+))?}");
private static final Logger logger = LogManager.getLogger("CustomWindowTitle");