This commit is contained in:
@@ -19,18 +19,12 @@
|
|||||||
|
|
||||||
package de.steamwar.velocitycore.commands;
|
package de.steamwar.velocitycore.commands;
|
||||||
|
|
||||||
import com.velocitypowered.api.network.ProtocolVersion;
|
|
||||||
import com.velocitypowered.api.proxy.ConnectionRequestBuilder;
|
import com.velocitypowered.api.proxy.ConnectionRequestBuilder;
|
||||||
|
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||||
import com.velocitypowered.api.proxy.server.ServerInfo;
|
import com.velocitypowered.api.proxy.server.ServerInfo;
|
||||||
|
import com.velocitypowered.api.proxy.server.ServerPing;
|
||||||
import com.viaversion.viaversion.api.Via;
|
import com.viaversion.viaversion.api.Via;
|
||||||
import com.viaversion.viaversion.velocity.platform.VelocityViaAPI;
|
|
||||||
import com.viaversion.viaversion.velocity.platform.VelocityViaConfig;
|
import com.viaversion.viaversion.velocity.platform.VelocityViaConfig;
|
||||||
import de.steamwar.persistent.Storage;
|
|
||||||
import de.steamwar.velocitycore.ServerVersion;
|
|
||||||
import de.steamwar.velocitycore.VelocityCore;
|
|
||||||
import de.steamwar.velocitycore.discord.DiscordBot;
|
|
||||||
import de.steamwar.velocitycore.inventory.SWItem;
|
|
||||||
import de.steamwar.velocitycore.inventory.SWListInv;
|
|
||||||
import de.steamwar.command.PreviousArguments;
|
import de.steamwar.command.PreviousArguments;
|
||||||
import de.steamwar.command.SWCommand;
|
import de.steamwar.command.SWCommand;
|
||||||
import de.steamwar.command.TypeMapper;
|
import de.steamwar.command.TypeMapper;
|
||||||
@@ -38,7 +32,12 @@ import de.steamwar.command.TypeValidator;
|
|||||||
import de.steamwar.messages.Chatter;
|
import de.steamwar.messages.Chatter;
|
||||||
import de.steamwar.messages.Message;
|
import de.steamwar.messages.Message;
|
||||||
import de.steamwar.messages.PlayerChatter;
|
import de.steamwar.messages.PlayerChatter;
|
||||||
|
import de.steamwar.persistent.Storage;
|
||||||
import de.steamwar.sql.*;
|
import de.steamwar.sql.*;
|
||||||
|
import de.steamwar.velocitycore.VelocityCore;
|
||||||
|
import de.steamwar.velocitycore.discord.DiscordBot;
|
||||||
|
import de.steamwar.velocitycore.inventory.SWItem;
|
||||||
|
import de.steamwar.velocitycore.inventory.SWListInv;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.event.ClickEvent;
|
import net.kyori.adventure.text.event.ClickEvent;
|
||||||
import net.kyori.adventure.text.event.HoverEvent;
|
import net.kyori.adventure.text.event.HoverEvent;
|
||||||
@@ -406,14 +405,21 @@ public class TeamCommand extends SWCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
InetSocketAddress address = new InetSocketAddress(targetTeam.getAddress(), targetTeam.getPort());
|
InetSocketAddress address;
|
||||||
ServerInfo serverInfo = Storage.teamServers.computeIfAbsent(targetTeam.getTeamId(), integer -> {
|
ServerInfo serverInfo;
|
||||||
|
try {
|
||||||
|
address = new InetSocketAddress(targetTeam.getAddress(), targetTeam.getPort());
|
||||||
|
serverInfo = Storage.teamServers.computeIfAbsent(targetTeam.getTeamId(), integer -> {
|
||||||
ServerInfo info = new ServerInfo("Team " + targetTeam.getTeamKuerzel(), address);
|
ServerInfo info = new ServerInfo("Team " + targetTeam.getTeamKuerzel(), address);
|
||||||
VelocityCore.getProxy().registerServer(info);
|
RegisteredServer server = VelocityCore.getProxy().registerServer(info);
|
||||||
// This is needed because otherwise ViaVersion uses the wrong version!
|
ServerPing serverPing = server.ping().join();
|
||||||
((VelocityViaConfig) Via.getConfig()).getVelocityServerProtocols().put(info.getName(), ProtocolVersion.MAXIMUM_VERSION.getProtocol());
|
((VelocityViaConfig) Via.getConfig()).getVelocityServerProtocols().put(info.getName(), serverPing.getVersion().getProtocol());
|
||||||
return info;
|
return info;
|
||||||
});
|
});
|
||||||
|
} catch (Exception e) {
|
||||||
|
sender.system("TEAM_NO_ADDRESS");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!address.equals(serverInfo.getAddress())) {
|
if (!address.equals(serverInfo.getAddress())) {
|
||||||
VelocityCore.getProxy().unregisterServer(Storage.teamServers.remove(targetTeam.getTeamId()));
|
VelocityCore.getProxy().unregisterServer(Storage.teamServers.remove(targetTeam.getTeamId()));
|
||||||
|
|||||||
Reference in New Issue
Block a user