Velocity version checker

This commit is contained in:
Adrian Bergqvist 2023-10-17 22:44:39 +02:00
parent f9ea48f93b
commit 0e5f3feb49
No known key found for this signature in database
GPG Key ID: FAE7D8EDE225E686
2 changed files with 22 additions and 2 deletions

View File

@ -5,7 +5,7 @@ plugins {
} }
group = "org.adde0109" group = "org.adde0109"
version = "1.4.2-beta" version = "1.4.3-beta"
repositories { repositories {
mavenCentral() mavenCentral()

View File

@ -18,7 +18,9 @@ import java.util.Map;
import com.velocitypowered.api.proxy.server.RegisteredServer; import com.velocitypowered.api.proxy.server.RegisteredServer;
import com.velocitypowered.proxy.VelocityServer; import com.velocitypowered.proxy.VelocityServer;
import com.velocitypowered.proxy.connection.MinecraftConnection;
import com.velocitypowered.proxy.network.ConnectionManager; import com.velocitypowered.proxy.network.ConnectionManager;
import com.velocitypowered.proxy.protocol.StateRegistry;
import com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentIdentifier; import com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentIdentifier;
import com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentPropertyRegistry; import com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentPropertyRegistry;
import com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentPropertySerializer; import com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentPropertySerializer;
@ -43,6 +45,9 @@ import static com.velocitypowered.proxy.protocol.packet.brigadier.ArgumentIdenti
@Plugin(id = "ambassador", name = "Ambassador", version = "1.4.3-beta", authors = {"adde0109"}) @Plugin(id = "ambassador", name = "Ambassador", version = "1.4.3-beta", authors = {"adde0109"})
public class Ambassador { public class Ambassador {
//Don't forget to update checkCompatibleVersion() when changing this value
private static final String minVelocityVersion = "velocity-3.2.0-SNAPSHOT-266";
public ProxyServer server; public ProxyServer server;
public final Logger logger; public final Logger logger;
private final Metrics.Factory metricsFactory; private final Metrics.Factory metricsFactory;
@ -67,11 +72,26 @@ public class Ambassador {
Ambassador.instance = this; Ambassador.instance = this;
} }
boolean checkCompatibleVersion() {
//Update this when changing minVelocityVersion
try {
MinecraftConnection.class.getDeclaredMethod("setActiveSessionHandler", StateRegistry.class);
} catch (NoSuchMethodException e) {
return false;
}
return true;
}
@Subscribe(order = PostOrder.LAST) @Subscribe(order = PostOrder.LAST)
public void onProxyInitialization(ProxyInitializeEvent event) { public void onProxyInitialization(ProxyInitializeEvent event) {
initMetrics(); initMetrics();
try { try {
if (!checkCompatibleVersion()) {
logger.error("Incompatible velocity version! Please use '" + minVelocityVersion + "' or higher.");
return;
}
Files.createDirectories(dataDirectory); Files.createDirectories(dataDirectory);
Path configPath = dataDirectory.resolve("Ambassador.toml"); Path configPath = dataDirectory.resolve("Ambassador.toml");
@ -82,7 +102,7 @@ public class Ambassador {
server.getEventManager().register(this, new VelocityEventHandler(this)); server.getEventManager().register(this, new VelocityEventHandler(this));
} catch (Exception e) { } catch (Exception e) {
logger.error(e.toString()); logger.error("An error prevented Ambassador to load correctly: "+ e.toString());
} }
} }