Config File!
This commit is contained in:
parent
6460be6e1c
commit
d70cd98001
|
|
@ -5,7 +5,7 @@
|
||||||
<profile name="Gradle Imported" enabled="true">
|
<profile name="Gradle Imported" enabled="true">
|
||||||
<outputRelativeToContentRoot value="true" />
|
<outputRelativeToContentRoot value="true" />
|
||||||
<processorPath useClasspath="false">
|
<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/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/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" />
|
<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'
|
name 'papermc'
|
||||||
url 'https://repo.papermc.io/repository/maven-public/'
|
url 'https://repo.papermc.io/repository/maven-public/'
|
||||||
}
|
}
|
||||||
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.velocitypowered:velocity-api:3.1.2-SNAPSHOT'
|
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'
|
annotationProcessor 'com.velocitypowered:velocity-api:3.1.2-SNAPSHOT'
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,21 @@
|
||||||
package org.adde0109.ambassador;
|
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.google.inject.Inject;
|
||||||
import com.velocitypowered.api.event.Continuation;
|
|
||||||
import com.velocitypowered.api.event.Subscribe;
|
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.event.proxy.ProxyInitializeEvent;
|
||||||
import com.velocitypowered.api.plugin.Plugin;
|
import com.velocitypowered.api.plugin.Plugin;
|
||||||
import com.velocitypowered.api.plugin.annotation.DataDirectory;
|
import com.velocitypowered.api.plugin.annotation.DataDirectory;
|
||||||
import com.velocitypowered.api.proxy.LoginPhaseConnection;
|
|
||||||
import com.velocitypowered.api.proxy.ProxyServer;
|
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.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.nio.file.Path;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
@ -30,7 +25,8 @@ public class Ambassador {
|
||||||
private final ProxyServer server;
|
private final ProxyServer server;
|
||||||
private final Logger logger;
|
private final Logger logger;
|
||||||
private final Path dataDirectory;
|
private final Path dataDirectory;
|
||||||
private RegisteredServer forgeServer;
|
private Optional<RegisteredServer> forgeServer;
|
||||||
|
private FileConfig config;
|
||||||
|
|
||||||
private static ForgeHandshakeDataHandler forgeHandshakeDataHandler;
|
private static ForgeHandshakeDataHandler forgeHandshakeDataHandler;
|
||||||
|
|
||||||
|
|
@ -43,20 +39,60 @@ public class Ambassador {
|
||||||
|
|
||||||
@Subscribe
|
@Subscribe
|
||||||
public void onProxyInitialization(ProxyInitializeEvent event) {
|
public void onProxyInitialization(ProxyInitializeEvent event) {
|
||||||
Path serverFilePath = dataDirectory.resolve("forgeServer.txt");
|
if(readOrCreateConfig()) {
|
||||||
/*try {
|
forgeHandshakeDataHandler = new ForgeHandshakeDataHandler(forgeServer.get(),logger);
|
||||||
Files.createDirectory(dataDirectory);
|
server.getEventManager().register(this, forgeHandshakeDataHandler);
|
||||||
serverFilePath.toFile().createNewFile()
|
}
|
||||||
|
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) {
|
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);
|
ConfigSpec spec = new ConfigSpec();
|
||||||
server.getEventManager().register(this, forgeHandshakeDataHandler);
|
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