Config File!
This commit is contained in:
parent
6460be6e1c
commit
d70cd98001
|
|
@ -5,7 +5,7 @@
|
|||
<profile name="Gradle Imported" enabled="true">
|
||||
<outputRelativeToContentRoot value="true" />
|
||||
<processorPath useClasspath="false">
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.velocitypowered/velocity-api/3.1.2-SNAPSHOT/5b05f9d06210af389f1bc92fc177ce0c72ab2fd7/velocity-api-3.1.2-SNAPSHOT.jar" />
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.velocitypowered/velocity-api/3.1.2-SNAPSHOT/88f0b9c39c98439596b8f7f419a817a0371ffb2b/velocity-api-3.1.2-SNAPSHOT.jar" />
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.moandjiezana.toml/toml4j/0.7.2/a03337911d0bd2c40932aca3946edb30d0e7d0c/toml4j-0.7.2.jar" />
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.spongepowered/configurate-gson/3.7.2/431733e80d7dfc62b37962c2723bba5c996548f/configurate-gson-3.7.2.jar" />
|
||||
<entry name="$USER_HOME$/.gradle/caches/modules-2/files-2.1/net.kyori/adventure-text-minimessage/4.10.1/c433cd701761c75ca06b7f36eb2623068203dd61/adventure-text-minimessage-4.10.1.jar" />
|
||||
|
|
|
|||
|
|
@ -10,9 +10,11 @@ repositories {
|
|||
name 'papermc'
|
||||
url 'https://repo.papermc.io/repository/maven-public/'
|
||||
}
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.velocitypowered:velocity-api:3.1.2-SNAPSHOT'
|
||||
implementation 'com.electronwill.night-config:toml:3.6.5'
|
||||
annotationProcessor 'com.velocitypowered:velocity-api:3.1.2-SNAPSHOT'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,26 +1,21 @@
|
|||
package org.adde0109.ambassador;
|
||||
|
||||
import com.google.common.io.ByteArrayDataInput;
|
||||
import com.electronwill.nightconfig.core.ConfigSpec;
|
||||
import com.electronwill.nightconfig.core.io.ParsingException;
|
||||
import com.google.inject.Inject;
|
||||
import com.velocitypowered.api.event.Continuation;
|
||||
import com.velocitypowered.api.event.Subscribe;
|
||||
import com.velocitypowered.api.event.connection.PreLoginEvent;
|
||||
import com.velocitypowered.api.event.player.ServerLoginPluginMessageEvent;
|
||||
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
||||
import com.velocitypowered.api.plugin.Plugin;
|
||||
import com.velocitypowered.api.plugin.annotation.DataDirectory;
|
||||
import com.velocitypowered.api.proxy.LoginPhaseConnection;
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import com.velocitypowered.api.proxy.messages.ChannelIdentifier;
|
||||
import com.velocitypowered.api.proxy.messages.MinecraftChannelIdentifier;
|
||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||
import com.velocitypowered.api.proxy.server.ServerPing;
|
||||
import com.velocitypowered.api.util.ModInfo;
|
||||
import java.io.EOFException;
|
||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import org.slf4j.Logger;
|
||||
import com.electronwill.nightconfig.core.file.FileConfig;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileAlreadyExistsException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.*;
|
||||
|
||||
|
|
@ -30,7 +25,8 @@ public class Ambassador {
|
|||
private final ProxyServer server;
|
||||
private final Logger logger;
|
||||
private final Path dataDirectory;
|
||||
private RegisteredServer forgeServer;
|
||||
private Optional<RegisteredServer> forgeServer;
|
||||
private FileConfig config;
|
||||
|
||||
private static ForgeHandshakeDataHandler forgeHandshakeDataHandler;
|
||||
|
||||
|
|
@ -43,20 +39,60 @@ public class Ambassador {
|
|||
|
||||
@Subscribe
|
||||
public void onProxyInitialization(ProxyInitializeEvent event) {
|
||||
Path serverFilePath = dataDirectory.resolve("forgeServer.txt");
|
||||
/*try {
|
||||
Files.createDirectory(dataDirectory);
|
||||
serverFilePath.toFile().createNewFile()
|
||||
if(readOrCreateConfig()) {
|
||||
forgeHandshakeDataHandler = new ForgeHandshakeDataHandler(forgeServer.get(),logger);
|
||||
server.getEventManager().register(this, forgeHandshakeDataHandler);
|
||||
}
|
||||
else {
|
||||
logger.info("Ambassador will be disabled because of errors");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean readOrCreateConfig() {
|
||||
try {
|
||||
Files.createDirectories(dataDirectory);
|
||||
Files.createFile(dataDirectory.resolve("forgeServer.toml"));
|
||||
|
||||
}
|
||||
catch (FileAlreadyExistsException ignored) {
|
||||
|
||||
}
|
||||
catch (IOException e) {
|
||||
logger.error("Config related error: " + e.toString());
|
||||
return false;
|
||||
}
|
||||
|
||||
*/
|
||||
try {
|
||||
config = FileConfig.of(dataDirectory.resolve("forgeServer.toml"));
|
||||
config.load();
|
||||
}
|
||||
catch (ParsingException e) {
|
||||
logger.error("Config related error: " + e.toString());
|
||||
return false;
|
||||
}
|
||||
|
||||
forgeServer = server.getServer("lobby").orElseThrow(IllegalAccessError::new);
|
||||
|
||||
forgeHandshakeDataHandler = new ForgeHandshakeDataHandler(forgeServer,logger);
|
||||
server.getEventManager().register(this, forgeHandshakeDataHandler);
|
||||
ConfigSpec spec = new ConfigSpec();
|
||||
spec.define("Forge Server", "");
|
||||
|
||||
spec.correct(config);
|
||||
|
||||
config.save();
|
||||
if(config.get("Forge Server") != "") {
|
||||
forgeServer = server.getServer(config.get("Forge Server"));
|
||||
if(!forgeServer.isPresent()) {
|
||||
logger.error("Could not find " + config.get("Forge Server") + " in registered servers!");
|
||||
config.close();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
logger.error("Please specify the forge server in the config");
|
||||
config.close();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user