Merge remote-tracking branch 'origin/1.19.4' into 1.20
This commit is contained in:
commit
fa6b93fad2
|
|
@ -26,7 +26,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
|
||||||
|
|
||||||
public class ModernFixClient {
|
public class ModernFixClient {
|
||||||
public static ModernFixClient INSTANCE;
|
public static ModernFixClient INSTANCE;
|
||||||
public static long worldLoadStartTime;
|
public static long worldLoadStartTime = -1;
|
||||||
private static int numRenderTicks;
|
private static int numRenderTicks;
|
||||||
|
|
||||||
public static float gameStartTimeSeconds = -1;
|
public static float gameStartTimeSeconds = -1;
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,13 @@ public class FerriteCorePostProcess {
|
||||||
toKeyIndex = keyIndex;
|
toKeyIndex = keyIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Object2IntMap<?> EMPTY_MAP = Object2IntMaps.unmodifiable(new Object2IntArrayMap<>());
|
private static final Object2IntMap<?> EMPTY_MAP;
|
||||||
|
|
||||||
|
static {
|
||||||
|
Object2IntArrayMap<?> map = new Object2IntArrayMap<>();
|
||||||
|
map.defaultReturnValue(-1);
|
||||||
|
EMPTY_MAP = Object2IntMaps.unmodifiable(map);
|
||||||
|
}
|
||||||
|
|
||||||
public static <O, S extends StateHolder<O, S>> void postProcess(StateDefinition<O, S> state) {
|
public static <O, S extends StateHolder<O, S>> void postProcess(StateDefinition<O, S> state) {
|
||||||
if(!willPostProcess)
|
if(!willPostProcess)
|
||||||
|
|
|
||||||
|
|
@ -44,10 +44,10 @@ dependencies {
|
||||||
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
|
modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}"
|
||||||
testImplementation "net.fabricmc:fabric-loader-junit:${rootProject.fabric_loader_version}"
|
testImplementation "net.fabricmc:fabric-loader-junit:${rootProject.fabric_loader_version}"
|
||||||
|
|
||||||
modIncludeImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
modImplementation(fabricApi.module("fabric-api-base", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
||||||
modIncludeImplementation(fabricApi.module("fabric-lifecycle-events-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
modImplementation(fabricApi.module("fabric-lifecycle-events-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
||||||
modImplementation(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
modImplementation(fabricApi.module("fabric-screen-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
||||||
modIncludeImplementation(fabricApi.module("fabric-command-api-v2", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
modImplementation(fabricApi.module("fabric-command-api-v2", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
||||||
modImplementation(fabricApi.module("fabric-model-loading-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
modImplementation(fabricApi.module("fabric-model-loading-api-v1", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
||||||
modCompileOnly(fabricApi.module("fabric-models-v0", "0.84.0+1.20.1")) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
modCompileOnly(fabricApi.module("fabric-models-v0", "0.84.0+1.20.1")) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
||||||
modImplementation(fabricApi.module("fabric-resource-loader-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
modImplementation(fabricApi.module("fabric-resource-loader-v0", rootProject.fabric_api_version)) { exclude group: 'net.fabricmc', module: 'fabric-loader' }
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,6 @@
|
||||||
package org.embeddedt.modernfix;
|
package org.embeddedt.modernfix;
|
||||||
|
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
|
|
||||||
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
|
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import org.embeddedt.modernfix.fabric.datagen.RuntimeDatagen;
|
import org.embeddedt.modernfix.fabric.datagen.RuntimeDatagen;
|
||||||
|
|
||||||
|
|
@ -13,10 +11,6 @@ public class ModernFixClientFabric implements ClientModInitializer {
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
commonMod = new ModernFixClient();
|
commonMod = new ModernFixClient();
|
||||||
|
|
||||||
ClientTickEvents.END_CLIENT_TICK.register((mc) -> commonMod.onRenderTickEnd());
|
|
||||||
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
|
|
||||||
commonMod.onServerStarted(server);
|
|
||||||
});
|
|
||||||
if(FabricLoader.getInstance().isModLoaded("fabric-data-generation-api-v1")) {
|
if(FabricLoader.getInstance().isModLoaded("fabric-data-generation-api-v1")) {
|
||||||
RuntimeDatagen.init();
|
RuntimeDatagen.init();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
package org.embeddedt.modernfix;
|
package org.embeddedt.modernfix;
|
||||||
|
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
|
|
||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
|
|
@ -13,16 +12,6 @@ public class ModernFixFabric implements ModInitializer {
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
commonMod = new ModernFix();
|
commonMod = new ModernFix();
|
||||||
|
|
||||||
ServerLifecycleEvents.SERVER_STARTING.register(server -> {
|
|
||||||
theServer = new WeakReference<>(server);
|
|
||||||
});
|
|
||||||
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
|
|
||||||
commonMod.onServerStarted();
|
|
||||||
});
|
|
||||||
ServerLifecycleEvents.SERVER_STOPPED.register(server -> {
|
|
||||||
commonMod.onServerDead(server);
|
|
||||||
});
|
|
||||||
|
|
||||||
// TODO: implement entity ID desync
|
// TODO: implement entity ID desync
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package org.embeddedt.modernfix.fabric.mixin.core;
|
||||||
|
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
import org.embeddedt.modernfix.ModernFixClient;
|
||||||
|
import org.embeddedt.modernfix.annotation.ClientOnlyMixin;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
@Mixin(MinecraftServer.class)
|
||||||
|
@ClientOnlyMixin
|
||||||
|
public class ClientMinecraftServerMixin {
|
||||||
|
@Inject(method = "runServer", at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;getMillis()J", ordinal = 0))
|
||||||
|
private void markServerStarted(CallbackInfo ci) {
|
||||||
|
ModernFixClient.INSTANCE.onServerStarted((MinecraftServer)(Object)this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package org.embeddedt.modernfix.fabric.mixin.core;
|
||||||
|
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import org.embeddedt.modernfix.ModernFixClient;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
@Mixin(Minecraft.class)
|
||||||
|
public class MCMixin_Fabric {
|
||||||
|
@Inject(method = "tick", at = @At("RETURN"))
|
||||||
|
private void onRenderTickEnd(CallbackInfo ci) {
|
||||||
|
ModernFixClient.INSTANCE.onRenderTickEnd();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package org.embeddedt.modernfix.fabric.mixin.core;
|
||||||
|
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
import org.embeddedt.modernfix.ModernFix;
|
||||||
|
import org.embeddedt.modernfix.ModernFixFabric;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
import java.lang.ref.WeakReference;
|
||||||
|
|
||||||
|
@Mixin(MinecraftServer.class)
|
||||||
|
public class MinecraftServerMixin {
|
||||||
|
@Inject(method = "runServer", at = @At("HEAD"))
|
||||||
|
private void changeServerReference(CallbackInfo ci) {
|
||||||
|
ModernFixFabric.theServer = new WeakReference<>((MinecraftServer)(Object)this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject(method = "runServer", at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;getMillis()J", ordinal = 0))
|
||||||
|
private void hookServerStarted(CallbackInfo ci) {
|
||||||
|
ModernFix.INSTANCE.onServerStarted();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject(method = "stopServer", at = @At("RETURN"))
|
||||||
|
private void hookServerShutdown(CallbackInfo ci) {
|
||||||
|
ModernFix.INSTANCE.onServerDead((MinecraftServer)(Object)this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -84,7 +84,8 @@ public class ModernFixPlatformHooksImpl implements ModernFixPlatformHooks {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onServerCommandRegister(Consumer<CommandDispatcher<CommandSourceStack>> handler) {
|
public void onServerCommandRegister(Consumer<CommandDispatcher<CommandSourceStack>> handler) {
|
||||||
CommandRegistrationCallback.EVENT.register((dispatcher, arg, env) -> handler.accept(dispatcher));
|
if(FabricLoader.getInstance().isModLoaded("fabric-command-api-v2"))
|
||||||
|
CommandRegistrationCallback.EVENT.register((dispatcher, arg, env) -> handler.accept(dispatcher));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Multimap<String, String> modOptions;
|
private static Multimap<String, String> modOptions;
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,6 @@
|
||||||
"modernfix-common.mixins.json"
|
"modernfix-common.mixins.json"
|
||||||
],
|
],
|
||||||
"depends": {
|
"depends": {
|
||||||
"fabric-lifecycle-events-v1": "*",
|
|
||||||
"fabric-command-api-v2": "*",
|
|
||||||
"minecraft": ">=1.16.2"
|
"minecraft": ">=1.16.2"
|
||||||
},
|
},
|
||||||
"breaks": {
|
"breaks": {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user