95 lines
3.7 KiB
Java
95 lines
3.7 KiB
Java
package com.xeovalyte.polarcraft;
|
|
|
|
import com.xeovalyte.polarcraft.util.messageFunctions;
|
|
import com.xeovalyte.polarcraft.util.verifyFunction;
|
|
|
|
import net.fabricmc.api.ModInitializer;
|
|
import org.apache.commons.io.FileUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
|
|
import net.fabricmc.loader.api.FabricLoader;
|
|
import net.minecraft.server.network.ServerPlayerEntity;
|
|
import java.io.IOException;
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.io.File;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.GsonBuilder;
|
|
|
|
import net.fabricmc.fabric.api.message.v1.ServerMessageEvents;
|
|
|
|
public class PolarcraftMod implements ModInitializer {
|
|
// This logger is used to write text to the console and the log file.
|
|
// It is considered best practice to use your mod id as the logger's name.
|
|
// That way, it's clear which mod wrote info, warnings, and errors.
|
|
public static final Logger LOGGER = LoggerFactory.getLogger("polarcraft-mod");
|
|
|
|
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
|
|
private static final File CONFIG_FILE = new File(FabricLoader.getInstance().getConfigDir().toFile(), "polarcraft.json");
|
|
|
|
public static String configChatMessageUrl = "https://example.com/api/minecraft/message/chattodiscord";
|
|
public static String configGameMessageUrl = "https://example.com/api/minecraft/message/gametodiscord";
|
|
public static String configVerifyUrl = "https://example.com/verifyminecraft";
|
|
|
|
@Override
|
|
public void onInitialize() {
|
|
// This code runs as soon as Minecraft is in a mod-load-ready state.
|
|
// However, some things (like resources) may still be uninitialized.
|
|
// Proceed with mild caution.
|
|
loadConfig();
|
|
|
|
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> {
|
|
ServerPlayerEntity player = (ServerPlayerEntity) handler.player;
|
|
|
|
verifyFunction.onPlayerJoin(player, server);
|
|
});
|
|
|
|
ServerPlayConnectionEvents.DISCONNECT.register((handler, server) -> {
|
|
ServerPlayerEntity player = (ServerPlayerEntity) handler.player;
|
|
messageFunctions.sendGameMessage(player.getUuid(), player.getDisplayName().getString() + " left the game");
|
|
});
|
|
|
|
ServerMessageEvents.CHAT_MESSAGE.register((message, sender, params) -> {
|
|
messageFunctions.sendChatMessage(message, sender);
|
|
});
|
|
}
|
|
|
|
private void loadConfig() {
|
|
if (!CONFIG_FILE.exists()) {
|
|
saveConfig();
|
|
return;
|
|
}
|
|
|
|
try {
|
|
MyModConfig config = GSON.fromJson(FileUtils.readFileToString(CONFIG_FILE, StandardCharsets.UTF_8), MyModConfig.class);
|
|
configChatMessageUrl = config.chatMessageUrl;
|
|
configGameMessageUrl = config.gameMessageUrl;
|
|
configVerifyUrl = config.verifyUrl;
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
private void saveConfig() {
|
|
try {
|
|
FileUtils.writeStringToFile(CONFIG_FILE, GSON.toJson(new MyModConfig(configChatMessageUrl, configGameMessageUrl, configVerifyUrl)), StandardCharsets.UTF_8);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public static class MyModConfig {
|
|
public String chatMessageUrl;
|
|
public String gameMessageUrl;
|
|
public String verifyUrl;
|
|
|
|
public MyModConfig(String chatMessageUrl, String gameMessageUrl,String verifyUrl) {
|
|
this.chatMessageUrl = chatMessageUrl;
|
|
this.gameMessageUrl = gameMessageUrl;
|
|
this.verifyUrl = verifyUrl;
|
|
}
|
|
}
|
|
}
|