Remove dependencies on ClientApi logger

This commit is contained in:
James Seibel
2022-09-07 07:44:16 -05:00
parent 678eeaa3bf
commit f96196a421
6 changed files with 54 additions and 32 deletions
@@ -6,16 +6,13 @@ import com.seibel.lod.common.wrappers.block.BlockStateWrapper;
import com.seibel.lod.common.wrappers.block.cache.ClientBlockDetailMap;
import com.seibel.lod.common.wrappers.chunk.ChunkWrapper;
import com.seibel.lod.common.wrappers.minecraft.MinecraftClientWrapper;
import com.seibel.lod.core.api.internal.a7.ClientApi;
import com.seibel.lod.core.api.internal.a7.ServerApi;
import com.seibel.lod.core.enums.ELevelType;
import com.seibel.lod.core.logging.DhLoggerBuilder;
import com.seibel.lod.core.objects.DHBlockPos;
import com.seibel.lod.core.objects.DHChunkPos;
import com.seibel.lod.core.wrapperInterfaces.block.IBlockStateWrapper;
import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper;
import com.seibel.lod.core.wrapperInterfaces.world.IBiomeWrapper;
import com.seibel.lod.core.wrapperInterfaces.world.IClientLevelWrapper;
import com.seibel.lod.core.wrapperInterfaces.world.IDimensionTypeWrapper;
import com.seibel.lod.core.wrapperInterfaces.world.IServerLevelWrapper;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.core.BlockPos;
@@ -23,12 +20,14 @@ import net.minecraft.world.level.LightLayer;
import net.minecraft.world.level.chunk.ChunkAccess;
import net.minecraft.world.level.chunk.ChunkSource;
import net.minecraft.world.level.chunk.ChunkStatus;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.Nullable;
import java.util.concurrent.ConcurrentHashMap;
public class ClientLevelWrapper implements IClientLevelWrapper
{
private static final Logger LOGGER = DhLoggerBuilder.getLogger(ClientLevelWrapper.class.getSimpleName());
private static final ConcurrentHashMap<ClientLevel, ClientLevelWrapper>
levelWrapperMap = new ConcurrentHashMap<>();
@@ -52,13 +51,13 @@ public class ClientLevelWrapper implements IClientLevelWrapper
return ServerLevelWrapper.getWrapper(MinecraftClientWrapper.INSTANCE.mc.getSingleplayerServer().getPlayerList()
.getPlayer(MinecraftClientWrapper.INSTANCE.mc.player.getUUID()).getLevel());
} catch (Exception e) {
ClientApi.LOGGER.error("Failed to get server side wrapper for client level {}.", level);
LOGGER.error("Failed to get server side wrapper for client level {}.", level);
return null;
}
}
public static void cleanCheck() {
if (!levelWrapperMap.isEmpty()) {
ServerApi.LOGGER.warn("{} client levels havn't been freed!", levelWrapperMap.size());
LOGGER.warn("{} client levels havn't been freed!", levelWrapperMap.size());
levelWrapperMap.clear();
}
}
@@ -27,8 +27,7 @@ import com.seibel.lod.common.wrappers.block.BiomeWrapper;
import com.seibel.lod.common.wrappers.block.BlockStateWrapper;
import com.seibel.lod.common.wrappers.block.cache.ServerBlockDetailMap;
import com.seibel.lod.common.wrappers.minecraft.MinecraftClientWrapper;
import com.seibel.lod.core.a7.world.WorldEnvironment;
import com.seibel.lod.core.api.internal.a7.ServerApi;
import com.seibel.lod.core.logging.DhLoggerBuilder;
import com.seibel.lod.core.objects.DHBlockPos;
import com.seibel.lod.core.objects.DHChunkPos;
import com.seibel.lod.core.wrapperInterfaces.block.IBlockStateWrapper;
@@ -45,6 +44,7 @@ import net.minecraft.world.level.chunk.ChunkAccess;
import net.minecraft.world.level.chunk.ChunkSource;
import net.minecraft.world.level.chunk.ChunkStatus;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.Nullable;
/**
@@ -54,6 +54,7 @@ import org.jetbrains.annotations.Nullable;
*/
public class ServerLevelWrapper implements IServerLevelWrapper
{
private static final Logger LOGGER = DhLoggerBuilder.getLogger(ServerLevelWrapper.class.getSimpleName());
private static final ConcurrentHashMap<ServerLevel, ServerLevelWrapper>
levelWrapperMap = new ConcurrentHashMap<>();
@@ -67,7 +68,7 @@ public class ServerLevelWrapper implements IServerLevelWrapper
}
public static void cleanCheck() {
if (!levelWrapperMap.isEmpty()) {
ServerApi.LOGGER.warn("{} server levels havn't been freed!", levelWrapperMap.size());
LOGGER.warn("{} server levels havn't been freed!", levelWrapperMap.size());
levelWrapperMap.clear();
}
}
@@ -86,7 +87,7 @@ public class ServerLevelWrapper implements IServerLevelWrapper
MinecraftClientWrapper client = MinecraftClientWrapper.INSTANCE;
return ClientLevelWrapper.getWrapper(client.mc.level);
} catch (Exception e) {
ServerApi.LOGGER.error("Failed to get client side wrapper for server level {}.", level);
LOGGER.error("Failed to get client side wrapper for server level {}.", level);
return null;
}
}
@@ -2,17 +2,21 @@ package com.seibel.lod;
import com.seibel.lod.common.wrappers.DependencySetup;
import com.seibel.lod.common.wrappers.minecraft.MinecraftDedicatedServerWrapper;
import com.seibel.lod.core.api.internal.a7.SharedApi;
import com.seibel.lod.core.util.LodUtil;
import net.fabricmc.api.DedicatedServerModInitializer;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.minecraft.server.dedicated.DedicatedServer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@Environment(EnvType.SERVER)
public class FabricDedicatedServerMain implements DedicatedServerModInitializer {
public static FabricServerProxy server_proxy;
public class FabricDedicatedServerMain implements DedicatedServerModInitializer
{
private static final Logger LOGGER = LogManager.getLogger(FabricDedicatedServerMain.class.getSimpleName());
public static FabricServerProxy server_proxy;
public boolean hasPostSetupDone = false;
@Override
@@ -29,7 +33,7 @@ public class FabricDedicatedServerMain implements DedicatedServerModInitializer
LodUtil.assertTrue(server instanceof DedicatedServer);
MinecraftDedicatedServerWrapper.INSTANCE.dedicatedServer = (DedicatedServer) server;
FabricMain.postInit();
SharedApi.LOGGER.info("Dedicated server inited at {}", server.getServerDirectory());
LOGGER.info("Dedicated server inited at {}", server.getServerDirectory());
});
}
}
@@ -3,24 +3,30 @@ package com.seibel.lod.mixins.client;
import com.seibel.lod.core.api.internal.a7.ClientApi;
import com.seibel.lod.core.api.internal.a7.SharedApi;
import net.minecraft.client.renderer.GameRenderer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
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(GameRenderer.class)
public class MixinGameRenderer {
#if POST_MC_1_17_1
public class MixinGameRenderer
{
private static final Logger LOGGER = LogManager.getLogger(MixinGameRenderer.class.getSimpleName());
#if POST_MC_1_17_1
@Inject(method = "shutdownShaders", at = @At("HEAD"))
public void onShutdownShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Shutting down renderer");
LOGGER.info("Shutting down renderer");
ClientApi.INSTANCE.rendererShutdownEvent();
}
// FIXME: This I think will dup multiple renderStartupEvent calls...
@Inject(method = {"reloadShaders", "preloadUiShader", "preloadShader"}, at = @At("TAIL"))
public void onStartupShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Starting up renderer");
LOGGER.info("Starting up renderer");
ClientApi.INSTANCE.rendererStartupEvent();
}
#else
@@ -28,14 +34,14 @@ public class MixinGameRenderer {
@Inject(method = "shutdownShaders", at = @At("HEAD"))
public void onShutdownShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Shutting down renderer");
LOGGER.info("Shutting down renderer");
ClientApi.INSTANCE.rendererShutdownEvent();
}
// FIXME: This I think will dup multiple renderStartupEvent calls...
@Inject(method = {"reloadShaders", "preloadUiShader", "preloadShader"}, at = @At("TAIL"))
public void onStartupShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Starting up renderer");
LOGGER.info("Starting up renderer");
ClientApi.INSTANCE.rendererStartupEvent();
}
#endif
@@ -1,6 +1,7 @@
package com.seibel.lod.mixins.client;
import com.seibel.lod.common.wrappers.gui.UpdateModScreen;
import com.seibel.lod.common.wrappers.world.ServerLevelWrapper;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.core.api.internal.a7.ClientApi;
import com.seibel.lod.core.config.Config;
@@ -8,11 +9,13 @@ import com.seibel.lod.core.handlers.dependencyInjection.SingletonInjector;
import com.seibel.lod.core.jar.JarUtils;
import com.seibel.lod.core.jar.installer.ModrinthGetter;
import com.seibel.lod.core.jar.installer.WebDownloader;
import com.seibel.lod.core.logging.DhLoggerBuilder;
import com.seibel.lod.core.wrapperInterfaces.IVersionConstants;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.client.gui.screens.TitleScreen;
import net.minecraft.client.main.GameConfig;
import org.apache.logging.log4j.Logger;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -30,9 +33,13 @@ import java.util.Objects;
* @author coolGi
*/
@Mixin(Minecraft.class)
public class MixinMinecraft {
public class MixinMinecraft
{
private static final Logger LOGGER = DhLoggerBuilder.getLogger(ServerLevelWrapper.class.getSimpleName());
private static boolean deleteOldOnClose = false;
@Redirect(
method = "<init>(Lnet/minecraft/client/main/GameConfig;)V",
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;setScreen(Lnet/minecraft/client/gui/screens/Screen;)V")
@@ -59,7 +66,7 @@ public class MixinMinecraft {
return;
ClientApi.LOGGER.info("New version ("+ModrinthGetter.getLatestNameForVersion(mcVersion)+") of "+ModInfo.READABLE_NAME+" is available");
LOGGER.info("New version ("+ModrinthGetter.getLatestNameForVersion(mcVersion)+") of "+ModInfo.READABLE_NAME+" is available");
if (Config.Client.AutoUpdater.promptForUpdate.get()) {
Objects.requireNonNull(Minecraft.getInstance()).setScreen(new UpdateModScreen(
new TitleScreen(false), // We don't want to use the vanilla title screen as it would fade the buttons
@@ -68,12 +75,12 @@ public class MixinMinecraft {
} else {
// Auto-update mod
try {
ClientApi.LOGGER.info("Attempting to auto update "+ModInfo.READABLE_NAME);
LOGGER.info("Attempting to auto update "+ModInfo.READABLE_NAME);
WebDownloader.downloadAsFile(ModrinthGetter.getLatestDownloadForVersion(mcVersion), JarUtils.jarFile.getParentFile().toPath().resolve(ModInfo.NAME+"-"+ModrinthGetter.getLatestNameForVersion(mcVersion)+".jar").toFile());
deleteOldOnClose = true;
ClientApi.LOGGER.info(ModInfo.READABLE_NAME+" successfully updated. It will apply on game's relaunch");
LOGGER.info(ModInfo.READABLE_NAME+" successfully updated. It will apply on game's relaunch");
} catch (Exception e) {
ClientApi.LOGGER.info("Failed to update "+ModInfo.READABLE_NAME+" to version "+ModrinthGetter.getLatestNameForVersion(mcVersion));
LOGGER.info("Failed to update "+ModInfo.READABLE_NAME+" to version "+ModrinthGetter.getLatestNameForVersion(mcVersion));
e.printStackTrace();
}
}
@@ -85,7 +92,7 @@ public class MixinMinecraft {
try {
Files.delete(JarUtils.jarFile.toPath());
} catch (Exception e) {
ClientApi.LOGGER.warn("Failed to delete previous " + ModInfo.READABLE_NAME + " file, please delete it manually at [" + JarUtils.jarFile + "]");
LOGGER.warn("Failed to delete previous " + ModInfo.READABLE_NAME + " file, please delete it manually at [" + JarUtils.jarFile + "]");
e.printStackTrace();
}
}
@@ -3,6 +3,8 @@ package com.seibel.lod.mixins.client;
import com.seibel.lod.core.api.internal.a7.ClientApi;
import com.seibel.lod.core.api.internal.a7.SharedApi;
import net.minecraft.client.renderer.GameRenderer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -10,18 +12,21 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
// TODO: Check if this port from fabric works
@Mixin(GameRenderer.class)
public class MixinGameRenderer {
public class MixinGameRenderer
{
private static final Logger LOGGER = LogManager.getLogger(MixinGameRenderer.class.getSimpleName());
#if POST_MC_1_17_1
@Inject(method = "shutdownShaders", at = @At("HEAD"))
public void onShutdownShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Shutting down renderer");
LOGGER.info("Shutting down renderer");
ClientApi.INSTANCE.rendererShutdownEvent();
}
// FIXME: This I think will dup multiple renderStartupEvent calls...
@Inject(method = {"reloadShaders", "preloadUiShader", "preloadShader"}, at = @At("TAIL"))
public void onStartupShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Starting up renderer");
LOGGER.info("Starting up renderer");
ClientApi.INSTANCE.rendererStartupEvent();
}
#else
@@ -29,14 +34,14 @@ public class MixinGameRenderer {
@Inject(method = "shutdownShaders", at = @At("HEAD"))
public void onShutdownShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Shutting down renderer");
LOGGER.info("Shutting down renderer");
ClientApi.INSTANCE.rendererShutdownEvent();
}
// FIXME: This I think will dup multiple renderStartupEvent calls...
@Inject(method = {"reloadShaders", "preloadUiShader", "preloadShader"}, at = @At("TAIL"))
public void onStartupShaders(CallbackInfo ci) {
SharedApi.LOGGER.info("Starting up renderer");
LOGGER.info("Starting up renderer");
ClientApi.INSTANCE.rendererStartupEvent();
}
#endif