check if a player is in a queue server and isnt queued

This commit is contained in:
ajgeiss0702
2021-07-31 14:11:30 -07:00
parent f644745c24
commit f569353213
4 changed files with 40 additions and 2 deletions
@@ -3,6 +3,7 @@ package us.ajg0702.queue.api;
import us.ajg0702.queue.api.commands.IBaseCommand; import us.ajg0702.queue.api.commands.IBaseCommand;
import us.ajg0702.queue.api.commands.ICommandSender; import us.ajg0702.queue.api.commands.ICommandSender;
import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.server.AdaptedServer;
import java.util.List; import java.util.List;
@@ -42,4 +43,6 @@ public interface PlatformMethods {
* @return if the plugin is on the server * @return if the plugin is on the server
*/ */
boolean hasPlugin(String pluginName); boolean hasPlugin(String pluginName);
AdaptedServer getServer(String name);
} }
@@ -194,8 +194,8 @@ public class QueueManagerImpl implements QueueManager {
servers.addAll(main.getServerBuilder().buildServers()); servers.addAll(main.getServerBuilder().buildServers());
List<String> groupsraw = main.getConfig().getStringList("server-groups"); List<String> groupsRaw = main.getConfig().getStringList("server-groups");
for(String groupraw : groupsraw) { for(String groupraw : groupsRaw) {
if(groupraw.isEmpty()) { if(groupraw.isEmpty()) {
main.getLogger().warning("Empty group string! If you dont want server groups, set server-groups like this: server-groups: []"); main.getLogger().warning("Empty group string! If you dont want server groups, set server-groups like this: server-groups: []");
continue; continue;
@@ -272,6 +272,21 @@ public class QueueManagerImpl implements QueueManager {
@Override @Override
public void sendQueueEvents() { public void sendQueueEvents() {
List<String> svs = main.getConfig().getStringList("queue-servers");
for(String s : svs) {
if(!s.contains(":")) continue;
String[] parts = s.split(":");
String fromName = parts[0];
String toName = parts[1];
AdaptedServer from = main.getPlatformMethods().getServer(fromName);
QueueServer to = findServer(toName);
if(from == null || to == null) continue;
from.getPlayers().forEach(player -> {
if(!getPlayerQueues(player).contains(to)) {
addToQueue(player, to);
}
});
}
for (QueueServer s : servers) { for (QueueServer s : servers) {
for (QueuePlayer queuePlayer : s.getQueue()) { for (QueuePlayer queuePlayer : s.getQueue()) {
AdaptedPlayer player = queuePlayer.getPlayer(); AdaptedPlayer player = queuePlayer.getPlayer();
@@ -3,14 +3,17 @@ package us.ajg0702.queue.platforms.bungeecord;
import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams; import com.google.common.io.ByteStreams;
import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.config.ServerInfo;
import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.connection.ProxiedPlayer;
import us.ajg0702.queue.api.PlatformMethods; import us.ajg0702.queue.api.PlatformMethods;
import us.ajg0702.queue.api.commands.IBaseCommand; import us.ajg0702.queue.api.commands.IBaseCommand;
import us.ajg0702.queue.api.commands.ICommandSender; import us.ajg0702.queue.api.commands.ICommandSender;
import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.api.util.QueueLogger; import us.ajg0702.queue.api.util.QueueLogger;
import us.ajg0702.queue.commands.commands.PlayerSender; import us.ajg0702.queue.commands.commands.PlayerSender;
import us.ajg0702.queue.platforms.bungeecord.players.BungeePlayer; import us.ajg0702.queue.platforms.bungeecord.players.BungeePlayer;
import us.ajg0702.queue.platforms.bungeecord.server.BungeeServer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
@@ -100,4 +103,11 @@ public class BungeeMethods implements PlatformMethods {
public boolean hasPlugin(String pluginName) { public boolean hasPlugin(String pluginName) {
return proxyServer.getPluginManager().getPlugin(pluginName) != null; return proxyServer.getPluginManager().getPlugin(pluginName) != null;
} }
@Override
public AdaptedServer getServer(String name) {
ServerInfo server = proxyServer.getServerInfo(name);
if(server == null) return null;
return new BungeeServer(server);
}
} }
@@ -13,15 +13,18 @@ import us.ajg0702.queue.api.PlatformMethods;
import us.ajg0702.queue.api.commands.IBaseCommand; import us.ajg0702.queue.api.commands.IBaseCommand;
import us.ajg0702.queue.api.commands.ICommandSender; import us.ajg0702.queue.api.commands.ICommandSender;
import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.AdaptedPlayer;
import us.ajg0702.queue.api.server.AdaptedServer;
import us.ajg0702.queue.api.util.QueueLogger; import us.ajg0702.queue.api.util.QueueLogger;
import us.ajg0702.queue.commands.commands.PlayerSender; import us.ajg0702.queue.commands.commands.PlayerSender;
import us.ajg0702.queue.platforms.velocity.players.VelocityPlayer; import us.ajg0702.queue.platforms.velocity.players.VelocityPlayer;
import us.ajg0702.queue.platforms.velocity.server.VelocityServer;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Optional; import java.util.Optional;
@SuppressWarnings("OptionalIsPresent")
public class VelocityMethods implements PlatformMethods { public class VelocityMethods implements PlatformMethods {
final ProxyServer proxyServer; final ProxyServer proxyServer;
@@ -122,4 +125,11 @@ public class VelocityMethods implements PlatformMethods {
public boolean hasPlugin(String pluginName) { public boolean hasPlugin(String pluginName) {
return proxyServer.getPluginManager().getPlugin(pluginName.toLowerCase(Locale.ROOT)).isPresent(); return proxyServer.getPluginManager().getPlugin(pluginName.toLowerCase(Locale.ROOT)).isPresent();
} }
@Override
public AdaptedServer getServer(String name) {
Optional<RegisteredServer> server = proxyServer.getServer(name);
if(!server.isPresent()) return null;
return new VelocityServer(server.get());
}
} }