mirror of
				https://github.com/chylex/Minecraft-Window-Title.git
				synced 2025-11-03 19:40:13 +01:00 
			
		
		
		
	Compare commits
	
		
			3 Commits
		
	
	
		
			73dab6b277
			...
			425eb3f380
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						
						
							
						
						425eb3f380
	
				 | 
					
					
						|||
| 
						
						
							
						
						43698d23b5
	
				 | 
					
					
						|||
| 
						
						
							
						
						dbbd5b60f5
	
				 | 
					
					
						
							
								
								
									
										2
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/FUNDING.yml
									
									
									
									
										vendored
									
									
								
							@@ -1,3 +1 @@
 | 
				
			|||||||
github: chylex
 | 
					 | 
				
			||||||
patreon: chylex
 | 
					 | 
				
			||||||
ko_fi: chylex
 | 
					ko_fi: chylex
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,8 @@
 | 
				
			|||||||
 | 
					import net.fabricmc.loom.configuration.ide.RunConfigSettings
 | 
				
			||||||
import org.gradle.jvm.tasks.Jar
 | 
					import org.gradle.jvm.tasks.Jar
 | 
				
			||||||
 | 
					
 | 
				
			||||||
val modId: String by project
 | 
					val modId: String by project
 | 
				
			||||||
 | 
					val modSides: String by project
 | 
				
			||||||
val minecraftVersion: String by project
 | 
					val minecraftVersion: String by project
 | 
				
			||||||
val fabricVersion: String by project
 | 
					val fabricVersion: String by project
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -24,12 +26,24 @@ loom {
 | 
				
			|||||||
			ideConfigGenerated(true)
 | 
								ideConfigGenerated(true)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		named("client") {
 | 
							fun side(name: String, configure: RunConfigSettings.() -> Unit) {
 | 
				
			||||||
 | 
								if (modSides == "both" || modSides == name) {
 | 
				
			||||||
 | 
									named(name, configure)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								else {
 | 
				
			||||||
 | 
									findByName(name)?.let(::remove)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							side("client") {
 | 
				
			||||||
			configName = "Fabric Client"
 | 
								configName = "Fabric Client"
 | 
				
			||||||
			client()
 | 
								client()
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		findByName("server")?.let(::remove)
 | 
							side("server") {
 | 
				
			||||||
 | 
								configName = "Fabric Server"
 | 
				
			||||||
 | 
								server()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	mixin {
 | 
						mixin {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
package chylex.customwindowtitle.fabric;
 | 
					package chylex.customwindowtitle.fabric;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import chylex.customwindowtitle.TitleChanger;
 | 
				
			||||||
import chylex.customwindowtitle.TitleConfig;
 | 
					import chylex.customwindowtitle.TitleConfig;
 | 
				
			||||||
import chylex.customwindowtitle.TitleParser;
 | 
					 | 
				
			||||||
import chylex.customwindowtitle.data.CommonTokenData;
 | 
					import chylex.customwindowtitle.data.CommonTokenData;
 | 
				
			||||||
import net.fabricmc.api.ClientModInitializer;
 | 
					import net.fabricmc.api.ClientModInitializer;
 | 
				
			||||||
import net.fabricmc.loader.api.FabricLoader;
 | 
					import net.fabricmc.loader.api.FabricLoader;
 | 
				
			||||||
@@ -17,10 +17,6 @@ public class CustomWindowTitle implements ClientModInitializer {
 | 
				
			|||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public void onInitializeClient() {
 | 
						public void onInitializeClient() {
 | 
				
			||||||
		CommonTokenData.register(new TokenProvider());
 | 
							CommonTokenData.register(new TokenProvider());
 | 
				
			||||||
		Minecraft.getInstance().execute(this::updateTitle);
 | 
							Minecraft.getInstance().execute(() -> TitleChanger.setTitle(config));
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	private void updateTitle() {
 | 
					 | 
				
			||||||
		Minecraft.getInstance().getWindow().setTitle(TitleParser.parse(config.getTitle()));
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,7 @@
 | 
				
			|||||||
 | 
					import net.neoforged.moddevgradle.dsl.RunModel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
val modId: String by project
 | 
					val modId: String by project
 | 
				
			||||||
 | 
					val modSides: String by project
 | 
				
			||||||
val neoForgeVersion: String by project
 | 
					val neoForgeVersion: String by project
 | 
				
			||||||
 | 
					
 | 
				
			||||||
plugins {
 | 
					plugins {
 | 
				
			||||||
@@ -23,10 +26,21 @@ neoForge {
 | 
				
			|||||||
			jvmArguments.addAll(runJvmArgs)
 | 
								jvmArguments.addAll(runJvmArgs)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		
 | 
							
 | 
				
			||||||
		register("client") {
 | 
							fun side(name: String, configure: RunModel.() -> Unit) {
 | 
				
			||||||
 | 
								if (modSides == "both" || modSides == name) {
 | 
				
			||||||
 | 
									register(name, configure)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							side("client") {
 | 
				
			||||||
			ideName.set("NeoForge Client")
 | 
								ideName.set("NeoForge Client")
 | 
				
			||||||
			client()
 | 
								client()
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							side("server") {
 | 
				
			||||||
 | 
								ideName.set("NeoForge Server")
 | 
				
			||||||
 | 
								server()
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,8 @@
 | 
				
			|||||||
package chylex.customwindowtitle.neoforge;
 | 
					package chylex.customwindowtitle.neoforge;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import chylex.customwindowtitle.TitleChanger;
 | 
				
			||||||
import chylex.customwindowtitle.TitleConfig;
 | 
					import chylex.customwindowtitle.TitleConfig;
 | 
				
			||||||
import chylex.customwindowtitle.TitleParser;
 | 
					 | 
				
			||||||
import chylex.customwindowtitle.data.CommonTokenData;
 | 
					import chylex.customwindowtitle.data.CommonTokenData;
 | 
				
			||||||
import net.minecraft.client.Minecraft;
 | 
					 | 
				
			||||||
import net.neoforged.bus.api.IEventBus;
 | 
					import net.neoforged.bus.api.IEventBus;
 | 
				
			||||||
import net.neoforged.bus.api.SubscribeEvent;
 | 
					import net.neoforged.bus.api.SubscribeEvent;
 | 
				
			||||||
import net.neoforged.fml.common.Mod;
 | 
					import net.neoforged.fml.common.Mod;
 | 
				
			||||||
@@ -18,15 +17,11 @@ public class CustomWindowTitle {
 | 
				
			|||||||
	public CustomWindowTitle(IEventBus eventBus) {
 | 
						public CustomWindowTitle(IEventBus eventBus) {
 | 
				
			||||||
		config = TitleConfig.load(FMLPaths.CONFIGDIR.get().toString());
 | 
							config = TitleConfig.load(FMLPaths.CONFIGDIR.get().toString());
 | 
				
			||||||
		eventBus.addListener(this::onClientSetup);
 | 
							eventBus.addListener(this::onClientSetup);
 | 
				
			||||||
		CommonTokenData.register(new TokenProvider());
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	@SubscribeEvent
 | 
						@SubscribeEvent
 | 
				
			||||||
	public void onClientSetup(final FMLClientSetupEvent e) {
 | 
						public void onClientSetup(final FMLClientSetupEvent e) {
 | 
				
			||||||
		e.enqueueWork(this::updateTitle);
 | 
							CommonTokenData.register(new TokenProvider());
 | 
				
			||||||
	}
 | 
							e.enqueueWork(() -> TitleChanger.setTitle(config));
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	private void updateTitle() {
 | 
					 | 
				
			||||||
		Minecraft.getInstance().getWindow().setTitle(TitleParser.parse(config.getTitle()));
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -116,6 +116,10 @@ allprojects {
 | 
				
			|||||||
		inputs.property("minimumMinecraftVersion", minimumMinecraftVersion)
 | 
							inputs.property("minimumMinecraftVersion", minimumMinecraftVersion)
 | 
				
			||||||
		inputs.property("minimumNeoForgeVersion", minimumNeoForgeVersion)
 | 
							inputs.property("minimumNeoForgeVersion", minimumNeoForgeVersion)
 | 
				
			||||||
		inputs.property("minimumFabricVersion", minimumFabricVersion)
 | 
							inputs.property("minimumFabricVersion", minimumFabricVersion)
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							from(rootProject.file("logo.png")) {
 | 
				
			||||||
 | 
								into("assets/$modId")
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	tasks.withType<AbstractArchiveTask>().configureEach {
 | 
						tasks.withType<AbstractArchiveTask>().configureEach {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,13 +10,14 @@ modIssuesURL=https://github.com/chylex/Minecraft-Window-Title/issues
 | 
				
			|||||||
modSides=client
 | 
					modSides=client
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Dependencies
 | 
					# Dependencies
 | 
				
			||||||
minecraftVersion=1.21
 | 
					minecraftVersion=1.21.4
 | 
				
			||||||
neoForgeVersion=21.0.0-beta
 | 
					neoForgeVersion=21.4.77-beta
 | 
				
			||||||
neoModDevVersion=1.0.21
 | 
					neoModDevVersion=2.0.76
 | 
				
			||||||
fabricVersion=0.15.11
 | 
					fabricVersion=0.16.10
 | 
				
			||||||
loomVersion=1.7
 | 
					loomVersion=1.9
 | 
				
			||||||
mixinVersion=0.12.5+mixin.0.8.5
 | 
					mixinVersion=0.12.5+mixin.0.8.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# https://projects.neoforged.net/neoforged/neoforge
 | 
				
			||||||
# https://projects.neoforged.net/neoforged/moddevgradle
 | 
					# https://projects.neoforged.net/neoforged/moddevgradle
 | 
				
			||||||
# https://fabricmc.net/develop/
 | 
					# https://fabricmc.net/develop/
 | 
				
			||||||
# https://github.com/FabricMC/fabric-loom/releases
 | 
					# https://github.com/FabricMC/fabric-loom/releases
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gradle/wrapper/gradle-wrapper.jar
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradle/wrapper/gradle-wrapper.properties
									
									
									
									
										vendored
									
									
								
							@@ -1,6 +1,6 @@
 | 
				
			|||||||
distributionBase=GRADLE_USER_HOME
 | 
					distributionBase=GRADLE_USER_HOME
 | 
				
			||||||
distributionPath=wrapper/dists
 | 
					distributionPath=wrapper/dists
 | 
				
			||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
 | 
					distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
 | 
				
			||||||
networkTimeout=10000
 | 
					networkTimeout=10000
 | 
				
			||||||
validateDistributionUrl=true
 | 
					validateDistributionUrl=true
 | 
				
			||||||
zipStoreBase=GRADLE_USER_HOME
 | 
					zipStoreBase=GRADLE_USER_HOME
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										4
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								gradlew
									
									
									
									
										vendored
									
									
								
							@@ -15,6 +15,8 @@
 | 
				
			|||||||
# See the License for the specific language governing permissions and
 | 
					# See the License for the specific language governing permissions and
 | 
				
			||||||
# limitations under the License.
 | 
					# limitations under the License.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##############################################################################
 | 
					##############################################################################
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
@@ -84,7 +86,7 @@ done
 | 
				
			|||||||
# shellcheck disable=SC2034
 | 
					# shellcheck disable=SC2034
 | 
				
			||||||
APP_BASE_NAME=${0##*/}
 | 
					APP_BASE_NAME=${0##*/}
 | 
				
			||||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
 | 
					# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
 | 
				
			||||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
 | 
					APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
 | 
					# Use the maximum available, or set MAX_FD != -1 to use that value.
 | 
				
			||||||
MAX_FD=maximum
 | 
					MAX_FD=maximum
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								gradlew.bat
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								gradlew.bat
									
									
									
									
										vendored
									
									
								
							@@ -13,6 +13,8 @@
 | 
				
			|||||||
@rem See the License for the specific language governing permissions and
 | 
					@rem See the License for the specific language governing permissions and
 | 
				
			||||||
@rem limitations under the License.
 | 
					@rem limitations under the License.
 | 
				
			||||||
@rem
 | 
					@rem
 | 
				
			||||||
 | 
					@rem SPDX-License-Identifier: Apache-2.0
 | 
				
			||||||
 | 
					@rem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@if "%DEBUG%"=="" @echo off
 | 
					@if "%DEBUG%"=="" @echo off
 | 
				
			||||||
@rem ##########################################################################
 | 
					@rem ##########################################################################
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								src/main/java/chylex/customwindowtitle/TitleChanger.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								src/main/java/chylex/customwindowtitle/TitleChanger.java
									
									
									
									
									
										Normal 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()));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -7,7 +7,7 @@ import org.apache.logging.log4j.Logger;
 | 
				
			|||||||
import java.util.regex.Matcher;
 | 
					import java.util.regex.Matcher;
 | 
				
			||||||
import java.util.regex.Pattern;
 | 
					import java.util.regex.Pattern;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public final class TitleParser {
 | 
					final class TitleParser {
 | 
				
			||||||
	private static final Pattern tokenRegex = Pattern.compile("\\{([a-z]+)(?::([^}]+))?}");
 | 
						private static final Pattern tokenRegex = Pattern.compile("\\{([a-z]+)(?::([^}]+))?}");
 | 
				
			||||||
	private static final Logger logger = LogManager.getLogger("CustomWindowTitle");
 | 
						private static final Logger logger = LogManager.getLogger("CustomWindowTitle");
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user