mirror of
https://github.com/Suiranoil/SkinRestorer.git
synced 2026-01-16 04:42:12 +00:00
add OnServerStopped event
This commit is contained in:
@@ -19,6 +19,7 @@ import net.minecraft.resources.ResourceLocation;
|
|||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.level.storage.LevelResource;
|
import net.minecraft.world.level.storage.LevelResource;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@@ -37,6 +38,7 @@ public final class SkinRestorer {
|
|||||||
private static Path configDir;
|
private static Path configDir;
|
||||||
private static Config config;
|
private static Config config;
|
||||||
private static TickedScheduler tickedScheduler;
|
private static TickedScheduler tickedScheduler;
|
||||||
|
private static MinecraftServer minecraftServer;
|
||||||
|
|
||||||
private SkinRestorer() {}
|
private SkinRestorer() {}
|
||||||
|
|
||||||
@@ -60,6 +62,10 @@ public final class SkinRestorer {
|
|||||||
return SkinRestorer.tickedScheduler;
|
return SkinRestorer.tickedScheduler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static @Nullable MinecraftServer getMinecraftServer() {
|
||||||
|
return SkinRestorer.minecraftServer;
|
||||||
|
}
|
||||||
|
|
||||||
public static Optional<SkinProvider> getProvider(String name) {
|
public static Optional<SkinProvider> getProvider(String name) {
|
||||||
return Optional.ofNullable(SkinRestorer.providersRegistry.get(name));
|
return Optional.ofNullable(SkinRestorer.providersRegistry.get(name));
|
||||||
}
|
}
|
||||||
@@ -173,6 +179,14 @@ public final class SkinRestorer {
|
|||||||
SkinRestorer.skinStorage = new SkinStorage(new SkinIO(worldSkinDirectory));
|
SkinRestorer.skinStorage = new SkinStorage(new SkinIO(worldSkinDirectory));
|
||||||
SkinRestorer.tickedScheduler = new TickedScheduler(server);
|
SkinRestorer.tickedScheduler = new TickedScheduler(server);
|
||||||
server.addTickable(SkinRestorer.tickedScheduler);
|
server.addTickable(SkinRestorer.tickedScheduler);
|
||||||
|
|
||||||
|
SkinRestorer.minecraftServer = server;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onServerStopped(MinecraftServer server) {
|
||||||
|
SkinRestorer.skinStorage = null;
|
||||||
|
SkinRestorer.tickedScheduler = null;
|
||||||
|
SkinRestorer.minecraftServer = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void onCommandRegister(CommandDispatcher<CommandSourceStack> dispatcher) {
|
public static void onCommandRegister(CommandDispatcher<CommandSourceStack> dispatcher) {
|
||||||
|
|||||||
@@ -15,4 +15,10 @@ public abstract class MinecraftServerMixin {
|
|||||||
private void onServerStarted(CallbackInfo ci) {
|
private void onServerStarted(CallbackInfo ci) {
|
||||||
SkinRestorer.Events.onServerStarted((MinecraftServer) (Object) this);
|
SkinRestorer.Events.onServerStarted((MinecraftServer) (Object) this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject(method = "runServer",
|
||||||
|
at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;onServerExit()V"))
|
||||||
|
private void onServerStopped(CallbackInfo ci) {
|
||||||
|
SkinRestorer.Events.onServerStopped((MinecraftServer) (Object) this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import net.lionarius.skinrestorer.SkinRestorer;
|
|||||||
import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility;
|
import net.lionarius.skinrestorer.compat.skinshuffle.SkinShuffleCompatibility;
|
||||||
import net.minecraftforge.event.RegisterCommandsEvent;
|
import net.minecraftforge.event.RegisterCommandsEvent;
|
||||||
import net.minecraftforge.event.server.ServerStartedEvent;
|
import net.minecraftforge.event.server.ServerStartedEvent;
|
||||||
|
import net.minecraftforge.event.server.ServerStoppedEvent;
|
||||||
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.listener.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
|
||||||
@@ -27,4 +28,9 @@ public final class SkinRestorerForge {
|
|||||||
public static void onServerStarted(ServerStartedEvent event) {
|
public static void onServerStarted(ServerStartedEvent event) {
|
||||||
SkinRestorer.Events.onServerStarted(event.getServer());
|
SkinRestorer.Events.onServerStarted(event.getServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onServerStopped(ServerStoppedEvent event) {
|
||||||
|
SkinRestorer.Events.onServerStopped(event.getServer());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import net.neoforged.fml.common.EventBusSubscriber;
|
|||||||
import net.neoforged.fml.common.Mod;
|
import net.neoforged.fml.common.Mod;
|
||||||
import net.neoforged.neoforge.event.RegisterCommandsEvent;
|
import net.neoforged.neoforge.event.RegisterCommandsEvent;
|
||||||
import net.neoforged.neoforge.event.server.ServerStartedEvent;
|
import net.neoforged.neoforge.event.server.ServerStartedEvent;
|
||||||
|
import net.neoforged.neoforge.event.server.ServerStoppedEvent;
|
||||||
|
|
||||||
@Mod(SkinRestorer.MOD_ID)
|
@Mod(SkinRestorer.MOD_ID)
|
||||||
@EventBusSubscriber(modid = SkinRestorer.MOD_ID)
|
@EventBusSubscriber(modid = SkinRestorer.MOD_ID)
|
||||||
@@ -28,4 +29,9 @@ public final class SkinRestorerNeoForge {
|
|||||||
public static void onServerStarted(ServerStartedEvent event) {
|
public static void onServerStarted(ServerStartedEvent event) {
|
||||||
SkinRestorer.Events.onServerStarted(event.getServer());
|
SkinRestorer.Events.onServerStarted(event.getServer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onServerStopped(ServerStoppedEvent event) {
|
||||||
|
SkinRestorer.Events.onServerStopped(event.getServer());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user