Skip to content

Commit f76ca04

Browse files
committed
Merge remote-tracking branch 'origin/1.19.2' into 1.19.4
2 parents ba9ba01 + d77946a commit f76ca04

File tree

7 files changed

+39
-48
lines changed

7 files changed

+39
-48
lines changed

common/src/main/java/org/embeddedt/modernfix/ModernFixClient.java

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
import com.mojang.datafixers.util.Pair;
44
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
55
import net.minecraft.client.Minecraft;
6-
import net.minecraft.client.gui.screens.ConnectScreen;
7-
import net.minecraft.client.gui.screens.Screen;
8-
import net.minecraft.client.gui.screens.TitleScreen;
96
import net.minecraft.network.syncher.EntityDataAccessor;
107
import net.minecraft.network.syncher.SynchedEntityData;
118
import net.minecraft.server.MinecraftServer;
@@ -28,6 +25,7 @@
2825
import java.util.concurrent.CopyOnWriteArrayList;
2926

3027
public class ModernFixClient {
28+
public static ModernFixClient INSTANCE;
3129
public static long worldLoadStartTime;
3230
private static int numRenderTicks;
3331

@@ -43,6 +41,7 @@ public class ModernFixClient {
4341
public static List<ModernFixClientIntegration> CLIENT_INTEGRATIONS = new CopyOnWriteArrayList<>();
4442

4543
public ModernFixClient() {
44+
INSTANCE = this;
4645
// clear reserve as it's not needed
4746
MemoryReserve.release();
4847
if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.branding.F3Screen")) {
@@ -66,16 +65,14 @@ public void resetWorldLoadStateMachine() {
6665
tagsUpdated = false;
6766
}
6867

69-
public void onScreenOpening(Screen openingScreen) {
70-
if(openingScreen instanceof ConnectScreen) {
71-
worldLoadStartTime = System.nanoTime();
72-
} else if (openingScreen instanceof TitleScreen && gameStartTimeSeconds < 0) {
73-
gameStartTimeSeconds = ManagementFactory.getRuntimeMXBean().getUptime() / 1000f;
74-
if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.measure_time.GameLoad"))
75-
ModernFix.LOGGER.warn("Game took " + gameStartTimeSeconds + " seconds to start");
76-
ModernFixPlatformHooks.INSTANCE.onLaunchComplete();
77-
ClassInfoManager.clear();
78-
}
68+
public void onGameLaunchFinish() {
69+
if(gameStartTimeSeconds >= 0)
70+
return;
71+
gameStartTimeSeconds = ManagementFactory.getRuntimeMXBean().getUptime() / 1000f;
72+
if(ModernFixMixinPlugin.instance.isOptionEnabled("feature.measure_time.GameLoad"))
73+
ModernFix.LOGGER.warn("Game took " + gameStartTimeSeconds + " seconds to start");
74+
ModernFixPlatformHooks.INSTANCE.onLaunchComplete();
75+
ClassInfoManager.clear();
7976
}
8077

8178
public void onRecipesUpdated() {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.embeddedt.modernfix.common.mixin.feature.measure_time;
2+
3+
import net.minecraft.client.gui.screens.ConnectScreen;
4+
import org.embeddedt.modernfix.ModernFixClient;
5+
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
6+
import org.spongepowered.asm.mixin.Mixin;
7+
import org.spongepowered.asm.mixin.injection.At;
8+
import org.spongepowered.asm.mixin.injection.Inject;
9+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
10+
11+
@Mixin(ConnectScreen.class)
12+
@ClientOnlyMixin
13+
public class ConnectScreenMixin {
14+
@Inject(method = "connect", at = @At("HEAD"))
15+
private void recordConnectStartTime(CallbackInfo ci) {
16+
ModernFixClient.worldLoadStartTime = System.nanoTime();
17+
}
18+
}

common/src/main/java/org/embeddedt/modernfix/common/mixin/feature/measure_time/MinecraftMixin.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package org.embeddedt.modernfix.common.mixin.feature.measure_time;
22

33
import net.minecraft.client.Minecraft;
4+
import net.minecraft.client.gui.screens.Overlay;
45
import org.embeddedt.modernfix.ModernFixClient;
56
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
7+
import org.jetbrains.annotations.Nullable;
68
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.Shadow;
710
import org.spongepowered.asm.mixin.injection.At;
811
import org.spongepowered.asm.mixin.injection.Inject;
912
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@@ -12,20 +15,16 @@
1215
@Mixin(Minecraft.class)
1316
@ClientOnlyMixin
1417
public class MinecraftMixin {
15-
/* not supported in 1.19
16-
private long datapackReloadStartTime;
18+
// TODO re-add datapack reload time measurement
19+
@Shadow @Nullable public Overlay overlay;
1720

18-
@Inject(method = "makeWorldStem(Lnet/minecraft/server/packs/repository/PackRepository;ZLnet/minecraft/server/WorldStem$DataPackConfigSupplier;Lnet/minecraft/server/WorldStem$WorldDataSupplier;)Lnet/minecraft/server/WorldStem;", at = @At(value = "HEAD"))
19-
private void recordReloadStart(CallbackInfoReturnable<WorldStem> cir) {
20-
datapackReloadStartTime = System.nanoTime();
21+
@Inject(method = "tick", at = @At("HEAD"))
22+
private void onClientTick(CallbackInfo ci) {
23+
if(this.overlay == null) {
24+
ModernFixClient.INSTANCE.onGameLaunchFinish();
25+
}
2126
}
2227

23-
@Inject(method = "makeWorldStem(Lnet/minecraft/server/packs/repository/PackRepository;ZLnet/minecraft/server/WorldStem$DataPackConfigSupplier;Lnet/minecraft/server/WorldStem$WorldDataSupplier;)Lnet/minecraft/server/WorldStem;", at = @At(value = "RETURN"))
24-
private void recordReloadEnd(CallbackInfoReturnable<WorldStem> cir) {
25-
float timeSpentReloading = ((float)(System.nanoTime() - datapackReloadStartTime) / 1000000000f);
26-
ModernFix.LOGGER.warn("Datapack reload took " + timeSpentReloading + " seconds.");
27-
}
28-
*/
2928
@Inject(method = "doWorldLoad", at = @At("HEAD"))
3029
private void recordWorldLoadStart(CallbackInfo ci) {
3130
ModernFixClient.worldLoadStartTime = System.nanoTime();

fabric/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ dependencies {
3434

3535
modIncludeImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
3636
modIncludeImplementation(fabricApi.module("fabric-lifecycle-events-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
37-
modIncludeImplementation(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
37+
modImplementation(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
3838
modIncludeImplementation(fabricApi.module("fabric-command-api-v2", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
3939
modImplementation(fabricApi.module("fabric-models-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
4040
modImplementation(fabricApi.module("fabric-resource-loader-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }

fabric/src/main/java/org/embeddedt/modernfix/ModernFixClientFabric.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,10 @@
22

33
import net.fabricmc.api.ClientModInitializer;
44
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
5-
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
65
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
76
import net.fabricmc.loader.api.FabricLoader;
8-
import net.minecraft.client.Minecraft;
97
import org.embeddedt.modernfix.fabric.datagen.RuntimeDatagen;
108

11-
import java.util.concurrent.atomic.AtomicBoolean;
12-
139
public class ModernFixClientFabric implements ClientModInitializer {
1410
public static ModernFixClient commonMod;
1511

@@ -18,16 +14,6 @@ public void onInitializeClient() {
1814
commonMod = new ModernFixClient();
1915

2016
ClientTickEvents.END_CLIENT_TICK.register((mc) -> commonMod.onRenderTickEnd());
21-
ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> {
22-
AtomicBoolean hasOpened = new AtomicBoolean(false);
23-
ScreenEvents.beforeTick(screen).register(screen1 -> {
24-
if(Minecraft.getInstance().getOverlay() != null)
25-
return;
26-
if(!hasOpened.getAndSet(true)) {
27-
commonMod.onScreenOpening(screen1);
28-
}
29-
});
30-
});
3117
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
3218
commonMod.onServerStarted(server);
3319
});

fabric/src/main/resources/fabric.mod.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
],
3535
"depends": {
3636
"fabric-lifecycle-events-v1": "*",
37-
"fabric-screen-api-v1": "*",
3837
"fabric-command-api-v2": "*",
3938
"minecraft": ">=1.16.2"
4039
},

forge/src/main/java/org/embeddedt/modernfix/forge/init/ModernFixClientForge.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import net.minecraftforge.client.event.CustomizeGuiOverlayEvent;
99
import net.minecraftforge.client.event.RecipesUpdatedEvent;
1010
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
11-
import net.minecraftforge.client.event.ScreenEvent;
1211
import net.minecraftforge.client.gui.overlay.ForgeGui;
1312
import net.minecraftforge.client.settings.KeyConflictContext;
1413
import net.minecraftforge.event.TagsUpdatedEvent;
@@ -87,11 +86,4 @@ public void onRecipes(RecipesUpdatedEvent e) {
8786
public void onTags(TagsUpdatedEvent e) {
8887
commonMod.onTagsUpdated();
8988
}
90-
91-
@SubscribeEvent(priority = EventPriority.LOWEST)
92-
public void onScreen(ScreenEvent.Init.Pre event) {
93-
if(event.isCanceled())
94-
return;
95-
commonMod.onScreenOpening(event.getScreen());
96-
}
9789
}

0 commit comments

Comments
 (0)