added configuration options

This commit is contained in:
Elias Müller 2023-11-11 22:38:08 +01:00
parent 6dc4269367
commit 5191d5ece3
4 changed files with 50 additions and 12 deletions

2
.gitignore vendored
View File

@ -29,3 +29,5 @@ replay_pid*
.idea
.gradle
build/*
/resources

View File

@ -7,10 +7,15 @@ import eu.mhsl.minenet.minigames.server.tasks.TablistUpdateTask;
import eu.mhsl.minenet.minigames.server.provider.ByPlayerNameUuidProvider;
import io.github.bloepiloepi.pvp.PvpExtension;
import net.minestom.server.MinecraftServer;
import net.minestom.server.extras.bungee.BungeeCordProxy;
import net.minestom.server.extras.lan.OpenToLAN;
import net.minestom.server.extras.velocity.VelocityProxy;
import net.minestom.server.timer.TaskSchedule;
import org.spongepowered.configurate.ConfigurateException;
import org.spongepowered.configurate.ConfigurationNode;
import org.spongepowered.configurate.yaml.YamlConfigurationLoader;
import java.util.Objects;
import java.util.logging.Logger;
public class Main {
@ -18,15 +23,28 @@ public class Main {
* Starts minenet minigames services
*/
private final static Logger logger = Logger.getGlobal();
public static void main(String[] args) {
private static ConfigurationNode globalConfig;
public static void main(String[] args) throws ConfigurateException {
//noinspection ResultOfMethodCallIgnored
Resource.values(); // This initializes and preloads the enum and extracts the resources
Languages.getInstance(); //Preload languages into the jvm
globalConfig = YamlConfigurationLoader
.builder()
.path(Resource.CONFIG.getPath())
.build()
.load();
ConfigurationNode serverConfig = globalConfig.node("server");
logger.info("Initialize Minecraft server...");
MinecraftServer server = MinecraftServer.init();
PvpExtension.init();
MinecraftServer.setBrandName("mhsl.eu - minenet - credits to minestom");
MinecraftServer.setCompressionThreshold(0);
System.setProperty("minestom.chunk-view-distance", "12");
MinecraftServer.setCompressionThreshold(serverConfig.node("compression-threshold").getInt(0));
System.setProperty("minestom.chunk-view-distance", String.valueOf(serverConfig.node("view-distance").getInt()));
MinecraftServer.getConnectionManager().setUuidProvider(new ByPlayerNameUuidProvider());
@ -35,15 +53,18 @@ public class Main {
MinecraftServer.getSchedulerManager().scheduleTask(new TablistUpdateTask(), TaskSchedule.tick(20), TaskSchedule.tick(20));
//noinspection ResultOfMethodCallIgnored
Resource.values(); // This initializes and preloads the enum and extracts the resources
Languages.getInstance(); //Preload languages into the jvm
logger.info("Starting Minecraft server ... ");
OpenToLAN.open();
//MojangAuth.init(); LET NON MIGRATORS PLAY!
VelocityProxy.enable("sKkDO9lGfpS7");
server.start("0.0.0.0", 25565);
if(serverConfig.node("open-to-lan").getBoolean()) OpenToLAN.open();
if(globalConfig.node("bungeecord", "enabled").getBoolean()) BungeeCordProxy.enable();
if(globalConfig.node("velocity", "enabled").getBoolean()) {
VelocityProxy.enable(Objects.requireNonNull(globalConfig.node("velocity", "secret").getString()));
}
server.start("0.0.0.0", serverConfig.node("port").getInt(25565));
System.gc();
MinecraftServer.getSchedulerManager().scheduleNextTick(() -> logger.info("Minecraft server is now running!"));

View File

@ -11,6 +11,7 @@ import java.util.logging.Logger;
* Predefined resources which are extracted on Runtime
*/
public enum Resource {
CONFIG("config.yml"),
HUB_MAP("maps/hub"),
LOBBY_MAP("maps/lobby"),

View File

@ -0,0 +1,14 @@
server:
port: 25565
view-distance: 12
compression-threshold: 0
open-to-lan: false
bungeecord:
enabled: false
velocity:
enabled: false
secret: ''