forked from SteamWar/SteamWar
Remove ViaVersion requirement from dev servers
This commit is contained in:
@@ -86,6 +86,17 @@ public enum ServerVersion {
|
||||
return chatMap.keySet();
|
||||
}
|
||||
|
||||
private static final Map<Integer, ServerVersion> versionMap = new HashMap<>();
|
||||
|
||||
static {
|
||||
for(ServerVersion version : values())
|
||||
versionMap.put(version.getVersionSuffix(), version);
|
||||
}
|
||||
|
||||
public static ServerVersion get(int version) {
|
||||
return versionMap.get(version);
|
||||
}
|
||||
|
||||
private final String serverJar;
|
||||
private final int versionSuffix;
|
||||
private final ProtocolVersion protocolVersion;
|
||||
|
||||
@@ -21,18 +21,21 @@ package de.steamwar.velocitycore.commands;
|
||||
|
||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||
import com.velocitypowered.api.proxy.server.ServerInfo;
|
||||
import de.steamwar.messages.Chatter;
|
||||
import de.steamwar.messages.Message;
|
||||
import de.steamwar.sql.UserPerm;
|
||||
import de.steamwar.velocitycore.ArenaMode;
|
||||
import de.steamwar.velocitycore.VelocityCore;
|
||||
import com.viaversion.viaversion.api.Via;
|
||||
import com.viaversion.viaversion.velocity.platform.VelocityViaConfig;
|
||||
import de.steamwar.command.SWCommand;
|
||||
import de.steamwar.command.SWCommandUtils;
|
||||
import de.steamwar.command.TypeMapper;
|
||||
import de.steamwar.command.TypeValidator;
|
||||
import de.steamwar.messages.Chatter;
|
||||
import de.steamwar.messages.Message;
|
||||
import de.steamwar.messages.PlayerChatter;
|
||||
import de.steamwar.sql.Punishment;
|
||||
import de.steamwar.sql.SteamwarUser;
|
||||
import de.steamwar.sql.UserPerm;
|
||||
import de.steamwar.velocitycore.ArenaMode;
|
||||
import de.steamwar.velocitycore.ServerVersion;
|
||||
import de.steamwar.velocitycore.VelocityCore;
|
||||
import lombok.Getter;
|
||||
|
||||
import java.io.File;
|
||||
@@ -113,28 +116,32 @@ public class DevCommand extends SWCommand {
|
||||
private void updateDevServers() {
|
||||
String[] serverFiles = devServerDir.list();
|
||||
|
||||
Map<String, Integer> devServerFiles = new HashMap<>();
|
||||
Map<String, Integer> devServerPorts = new HashMap<>();
|
||||
Map<String, Integer> devServerVersions = new HashMap<>();
|
||||
if (serverFiles != null) {
|
||||
for (String serverFile : serverFiles) {
|
||||
String[] server = serverFile.split("\\.");
|
||||
devServerFiles.put(server[0], Integer.parseInt(server[1]));
|
||||
devServerPorts.put(server[0], Integer.parseInt(server[1]));
|
||||
devServerVersions.put(server[0], Integer.parseInt(server[2]));
|
||||
}
|
||||
}
|
||||
|
||||
devServers.entrySet().removeIf(entry -> {
|
||||
if (!devServerFiles.containsKey(entry.getKey())) {
|
||||
if (!devServerPorts.containsKey(entry.getKey())) {
|
||||
VelocityCore.getProxy().unregisterServer(entry.getValue().getServerInfo());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
devServerFiles.forEach((key, value) -> {
|
||||
if (devServers.containsKey(key))
|
||||
devServerPorts.forEach((username, value) -> {
|
||||
if (devServers.containsKey(username))
|
||||
return;
|
||||
|
||||
SteamwarUser user = SteamwarUser.get(key);
|
||||
devServers.put(user.getUserName().toLowerCase(), VelocityCore.getProxy().registerServer(new ServerInfo("Dev " + user.getUserName(), new InetSocketAddress("127.0.0.1", value))));
|
||||
SteamwarUser user = SteamwarUser.get(username);
|
||||
String name = "Dev " + user.getUserName();
|
||||
((VelocityViaConfig) Via.getConfig()).getVelocityServerProtocols().put(name, ServerVersion.get(devServerVersions.get(username)).getProtocolVersion().getProtocol());
|
||||
devServers.put(user.getUserName().toLowerCase(), VelocityCore.getProxy().registerServer(new ServerInfo(name, new InetSocketAddress("127.0.0.1", value))));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user