forked from SteamWar/SteamWar
Merge pull request 'Remove ViaVersion requirement from dev servers' (#10) from VelocityCore/DevVersion into main
Reviewed-on: SteamWar/SteamWar#10 Reviewed-by: YoyoNow <yoyonow@noreply.localhost>
This commit is contained in:
@@ -86,6 +86,17 @@ public enum ServerVersion {
|
|||||||
return chatMap.keySet();
|
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 String serverJar;
|
||||||
private final int versionSuffix;
|
private final int versionSuffix;
|
||||||
private final ProtocolVersion protocolVersion;
|
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.RegisteredServer;
|
||||||
import com.velocitypowered.api.proxy.server.ServerInfo;
|
import com.velocitypowered.api.proxy.server.ServerInfo;
|
||||||
import de.steamwar.messages.Chatter;
|
import com.viaversion.viaversion.api.Via;
|
||||||
import de.steamwar.messages.Message;
|
import com.viaversion.viaversion.velocity.platform.VelocityViaConfig;
|
||||||
import de.steamwar.sql.UserPerm;
|
|
||||||
import de.steamwar.velocitycore.ArenaMode;
|
|
||||||
import de.steamwar.velocitycore.VelocityCore;
|
|
||||||
import de.steamwar.command.SWCommand;
|
import de.steamwar.command.SWCommand;
|
||||||
import de.steamwar.command.SWCommandUtils;
|
import de.steamwar.command.SWCommandUtils;
|
||||||
import de.steamwar.command.TypeMapper;
|
import de.steamwar.command.TypeMapper;
|
||||||
import de.steamwar.command.TypeValidator;
|
import de.steamwar.command.TypeValidator;
|
||||||
|
import de.steamwar.messages.Chatter;
|
||||||
|
import de.steamwar.messages.Message;
|
||||||
import de.steamwar.messages.PlayerChatter;
|
import de.steamwar.messages.PlayerChatter;
|
||||||
import de.steamwar.sql.Punishment;
|
import de.steamwar.sql.Punishment;
|
||||||
import de.steamwar.sql.SteamwarUser;
|
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 lombok.Getter;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -113,28 +116,32 @@ public class DevCommand extends SWCommand {
|
|||||||
private void updateDevServers() {
|
private void updateDevServers() {
|
||||||
String[] serverFiles = devServerDir.list();
|
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) {
|
if (serverFiles != null) {
|
||||||
for (String serverFile : serverFiles) {
|
for (String serverFile : serverFiles) {
|
||||||
String[] server = serverFile.split("\\.");
|
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 -> {
|
devServers.entrySet().removeIf(entry -> {
|
||||||
if (!devServerFiles.containsKey(entry.getKey())) {
|
if (!devServerPorts.containsKey(entry.getKey())) {
|
||||||
VelocityCore.getProxy().unregisterServer(entry.getValue().getServerInfo());
|
VelocityCore.getProxy().unregisterServer(entry.getValue().getServerInfo());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
devServerFiles.forEach((key, value) -> {
|
devServerPorts.forEach((username, value) -> {
|
||||||
if (devServers.containsKey(key))
|
if (devServers.containsKey(username))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
SteamwarUser user = SteamwarUser.get(key);
|
SteamwarUser user = SteamwarUser.get(username);
|
||||||
devServers.put(user.getUserName().toLowerCase(), VelocityCore.getProxy().registerServer(new ServerInfo("Dev " + user.getUserName(), new InetSocketAddress("127.0.0.1", value))));
|
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