aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/moe/ymc/acron/MinecraftServerHolder.java
blob: f52288416b54ec7b7a23deae6cbb8a74ae24b7cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package moe.ymc.acron;

import net.minecraft.server.dedicated.MinecraftDedicatedServer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.jetbrains.annotations.NotNull;

public class MinecraftServerHolder {
    private static final Logger LOGGER = LogManager.getLogger();
    public static MinecraftDedicatedServer server;

    public static void setServer(@NotNull MinecraftDedicatedServer server) {
        if (MinecraftServerHolder.server != null) {
            throw new IllegalStateException();
        }
        LOGGER.debug("Got MinecraftDedicatedServer on thread {}.",
                Thread.currentThread().getName());
        MinecraftServerHolder.server = server;
    }

    public static @NotNull MinecraftDedicatedServer getServer() {
        if (server == null) {
            throw new IllegalStateException(String.format("[%s] getServer() called before a server is ready.",
                    Thread.currentThread().getName()));
        }
        return server;
    }
}