Fix permissions for command, fix webserver surviving server stop
This commit is contained in:
parent
eca8209e48
commit
758980a32c
|
@ -6,7 +6,7 @@ minecraft_version=1.16.2
|
||||||
yarn_mappings=1.16.2+build.47
|
yarn_mappings=1.16.2+build.47
|
||||||
loader_version=0.9.3+build.207
|
loader_version=0.9.3+build.207
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version=1.0-SNAPSHOT
|
mod_version=1.0
|
||||||
maven_group=io.gitlab.jfronny
|
maven_group=io.gitlab.jfronny
|
||||||
archives_base_name=dynres
|
archives_base_name=dynres
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
|
|
@ -9,11 +9,10 @@ import net.fabricmc.api.DedicatedServerModInitializer;
|
||||||
import net.fabricmc.api.EnvType;
|
import net.fabricmc.api.EnvType;
|
||||||
import net.fabricmc.api.Environment;
|
import net.fabricmc.api.Environment;
|
||||||
import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
|
import net.fabricmc.fabric.api.command.v1.CommandRegistrationCallback;
|
||||||
|
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
|
||||||
import net.fabricmc.loader.api.FabricLoader;
|
import net.fabricmc.loader.api.FabricLoader;
|
||||||
import net.fabricmc.loader.gui.FabricGuiEntry;
|
import net.fabricmc.loader.gui.FabricGuiEntry;
|
||||||
import net.minecraft.server.MinecraftServer;
|
|
||||||
import net.minecraft.server.command.CommandManager;
|
import net.minecraft.server.command.CommandManager;
|
||||||
import net.minecraft.server.dedicated.MinecraftDedicatedServer;
|
|
||||||
import net.minecraft.text.LiteralText;
|
import net.minecraft.text.LiteralText;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -40,13 +39,25 @@ public class DynRes implements DedicatedServerModInitializer {
|
||||||
public void onInitializeServer() {
|
public void onInitializeServer() {
|
||||||
server = new WebServer(cfg.port, cfg.maxConnections, null, new RequestHandler("resources.zip"));
|
server = new WebServer(cfg.port, cfg.maxConnections, null, new RequestHandler("resources.zip"));
|
||||||
server.start();
|
server.start();
|
||||||
|
ServerLifecycleEvents.SERVER_STOPPED.register(t -> {
|
||||||
|
try {
|
||||||
|
server.close();
|
||||||
|
server.join();
|
||||||
|
} catch (Throwable e) {
|
||||||
|
System.err.println("Failed to stop web server");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> {
|
CommandRegistrationCallback.EVENT.register((dispatcher, dedicated) -> {
|
||||||
if (dedicated) {
|
if (dedicated) {
|
||||||
dispatcher.register(CommandManager.literal("dynres").executes(context -> {
|
dispatcher.register(CommandManager.literal("dynres").requires((serverCommandSource) -> serverCommandSource.hasPermissionLevel(4))
|
||||||
|
.executes(context -> {
|
||||||
context.getSource().sendFeedback(new LiteralText("DynRes is active. Use dynres restart to reload"), false);
|
context.getSource().sendFeedback(new LiteralText("DynRes is active. Use dynres restart to reload"), false);
|
||||||
return Command.SINGLE_SUCCESS;
|
return Command.SINGLE_SUCCESS;
|
||||||
}));
|
}));
|
||||||
dispatcher.register(CommandManager.literal("dynres").then(CommandManager.literal("restart").executes(context -> {
|
dispatcher.register(CommandManager.literal("dynres").requires((serverCommandSource) -> serverCommandSource.hasPermissionLevel(4))
|
||||||
|
.then(CommandManager.literal("restart").executes(context -> {
|
||||||
try {
|
try {
|
||||||
context.getSource().sendFeedback(new LiteralText("Restarting DynRes"), true);
|
context.getSource().sendFeedback(new LiteralText("Restarting DynRes"), true);
|
||||||
cfg = AutoConfig.getConfigHolder(Cfg.class).getConfig();
|
cfg = AutoConfig.getConfigHolder(Cfg.class).getConfig();
|
||||||
|
|
Loading…
Reference in New Issue