Skip to content

Commit 54dda96

Browse files
committed
Merge remote-tracking branch 'origin/1.16' into 1.18
2 parents f4ab932 + acec611 commit 54dda96

File tree

11 files changed

+90
-30
lines changed

11 files changed

+90
-30
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
public class ModernFixClient {
2828
public static ModernFixClient INSTANCE;
29-
public static long worldLoadStartTime;
29+
public static long worldLoadStartTime = -1;
3030
private static int numRenderTicks;
3131

3232
public static float gameStartTimeSeconds = -1;

fabric/build.gradle

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,10 @@ dependencies {
3232
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
3333
testImplementation "net.fabricmc:fabric-loader-junit:${rootProject.fabric_loader_version}"
3434

35-
modIncludeImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
36-
modIncludeImplementation(fabricApi.module("fabric-lifecycle-events-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
35+
modImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
3736
modImplementation(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
38-
modIncludeImplementation(fabricApi.module("fabric-command-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
39-
modIncludeImplementation(fabricApi.module("fabric-models-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
37+
modImplementation(fabricApi.module("fabric-command-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
38+
modImplementation(fabricApi.module("fabric-models-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
4039
modIncludeImplementation(fabricApi.module("fabric-resource-loader-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
4140
modImplementation(fabricApi.module("fabric-data-generation-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
4241
modImplementation("com.terraformersmc:modmenu:${rootProject.modmenu_version}") { transitive false }

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package org.embeddedt.modernfix;
22

33
import net.fabricmc.api.ClientModInitializer;
4-
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
5-
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
64
import net.fabricmc.loader.api.FabricLoader;
75
import org.embeddedt.modernfix.fabric.datagen.RuntimeDatagen;
86

@@ -13,10 +11,6 @@ public class ModernFixClientFabric implements ClientModInitializer {
1311
public void onInitializeClient() {
1412
commonMod = new ModernFixClient();
1513

16-
ClientTickEvents.END_CLIENT_TICK.register((mc) -> commonMod.onRenderTickEnd());
17-
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
18-
commonMod.onServerStarted(server);
19-
});
2014
if(FabricLoader.getInstance().isModLoaded("fabric-data-generation-api-v1")) {
2115
RuntimeDatagen.init();
2216
}

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.embeddedt.modernfix;
22

33
import net.fabricmc.api.ModInitializer;
4-
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
54
import net.minecraft.server.MinecraftServer;
65

76
import java.lang.ref.WeakReference;
@@ -13,16 +12,6 @@ public class ModernFixFabric implements ModInitializer {
1312
public void onInitialize() {
1413
commonMod = new ModernFix();
1514

16-
ServerLifecycleEvents.SERVER_STARTING.register(server -> {
17-
theServer = new WeakReference<>(server);
18-
});
19-
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
20-
commonMod.onServerStarted();
21-
});
22-
ServerLifecycleEvents.SERVER_STOPPED.register(server -> {
23-
commonMod.onServerDead(server);
24-
});
25-
2615
// TODO: implement entity ID desync
2716
}
2817

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.embeddedt.modernfix.fabric.bridge;
2+
3+
import net.fabricmc.fabric.impl.client.model.ModelLoadingRegistryImpl;
4+
import net.minecraft.client.resources.model.ModelBakery;
5+
import net.minecraft.resources.ResourceLocation;
6+
import net.minecraft.server.packs.resources.ResourceManager;
7+
8+
import java.util.function.Consumer;
9+
10+
public class ModelV0Bridge {
11+
public static void populate(Consumer<ResourceLocation> modelConsumer, ModelBakery bakery, ResourceManager manager) {
12+
ModelLoadingRegistryImpl.LoaderInstance instance = ModelLoadingRegistryImpl.begin(bakery, manager);
13+
instance.onModelPopulation(modelConsumer);
14+
instance.finish();
15+
}
16+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.embeddedt.modernfix.fabric.mixin.core;
2+
3+
import net.minecraft.server.MinecraftServer;
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(MinecraftServer.class)
12+
@ClientOnlyMixin
13+
public class ClientMinecraftServerMixin {
14+
@Inject(method = "runServer", at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;getMillis()J", ordinal = 0))
15+
private void markServerStarted(CallbackInfo ci) {
16+
ModernFixClient.INSTANCE.onServerStarted((MinecraftServer)(Object)this);
17+
}
18+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package org.embeddedt.modernfix.fabric.mixin.core;
2+
3+
import net.minecraft.client.Minecraft;
4+
import org.embeddedt.modernfix.ModernFixClient;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
import org.spongepowered.asm.mixin.injection.At;
7+
import org.spongepowered.asm.mixin.injection.Inject;
8+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
9+
10+
@Mixin(Minecraft.class)
11+
public class MCMixin_Fabric {
12+
@Inject(method = "tick", at = @At("RETURN"))
13+
private void onRenderTickEnd(CallbackInfo ci) {
14+
ModernFixClient.INSTANCE.onRenderTickEnd();
15+
}
16+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package org.embeddedt.modernfix.fabric.mixin.core;
2+
3+
import net.minecraft.server.MinecraftServer;
4+
import org.embeddedt.modernfix.ModernFix;
5+
import org.embeddedt.modernfix.ModernFixFabric;
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+
import java.lang.ref.WeakReference;
12+
13+
@Mixin(MinecraftServer.class)
14+
public class MinecraftServerMixin {
15+
@Inject(method = "runServer", at = @At("HEAD"))
16+
private void changeServerReference(CallbackInfo ci) {
17+
ModernFixFabric.theServer = new WeakReference<>((MinecraftServer)(Object)this);
18+
}
19+
20+
@Inject(method = "runServer", at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;getMillis()J", ordinal = 0))
21+
private void hookServerStarted(CallbackInfo ci) {
22+
ModernFix.INSTANCE.onServerStarted();
23+
}
24+
25+
@Inject(method = "stopServer", at = @At("RETURN"))
26+
private void hookServerShutdown(CallbackInfo ci) {
27+
ModernFix.INSTANCE.onServerDead((MinecraftServer)(Object)this);
28+
}
29+
}

fabric/src/main/java/org/embeddedt/modernfix/fabric/mixin/perf/dynamic_resources/ModelBakeryMixin.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.google.common.collect.ImmutableList;
99
import com.mojang.math.Transformation;
1010
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
11-
import net.fabricmc.fabric.impl.client.model.ModelLoadingRegistryImpl;
11+
import net.fabricmc.loader.api.FabricLoader;
1212
import net.minecraft.client.Minecraft;
1313
import net.minecraft.client.renderer.block.model.BlockModel;
1414
import net.minecraft.client.renderer.block.model.BlockModelDefinition;
@@ -38,6 +38,7 @@
3838
import org.embeddedt.modernfix.duck.IExtendedModelBakery;
3939
import org.embeddedt.modernfix.dynamicresources.DynamicBakedModelProvider;
4040
import org.embeddedt.modernfix.dynamicresources.ModelBakeryHelpers;
41+
import org.embeddedt.modernfix.fabric.bridge.ModelV0Bridge;
4142
import org.embeddedt.modernfix.util.LayeredForwardingMap;
4243
import org.jetbrains.annotations.Nullable;
4344
import org.slf4j.Logger;
@@ -145,9 +146,9 @@ public UnbakedModel put(ResourceLocation key, UnbakedModel value) {
145146
};
146147
filler.push(s);
147148
this.injectedModels = new ObjectOpenHashSet<>();
148-
ModelLoadingRegistryImpl.LoaderInstance instance = ModelLoadingRegistryImpl.begin((ModelBakery)(Object)this, this.resourceManager);
149-
instance.onModelPopulation(this.injectedModels::add);
150-
instance.finish();
149+
if(FabricLoader.getInstance().isModLoaded("fabric-models-v0")) {
150+
ModelV0Bridge.populate(this.injectedModels::add, (ModelBakery)(Object)this, this.resourceManager);
151+
}
151152
}
152153

153154
private <K, V> void onModelRemoved(RemovalNotification<K, V> notification) {

fabric/src/main/java/org/embeddedt/modernfix/platform/fabric/ModernFixPlatformHooksImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ public void applyASMTransformers(String mixinClassName, ClassNode targetClass) {
9393
}
9494

9595
public void onServerCommandRegister(Consumer<CommandDispatcher<CommandSourceStack>> handler) {
96-
CommandRegistrationCallback.EVENT.register((dispatcher, arg) -> handler.accept(dispatcher));
96+
if(FabricLoader.getInstance().isModLoaded("fabric-command-api-v1"))
97+
CommandRegistrationCallback.EVENT.register((dispatcher, arg) -> handler.accept(dispatcher));
9798
}
9899

99100
private static Multimap<String, String> modOptions;

0 commit comments

Comments
 (0)