Fixed infinite queue of data to fake servers

This commit is contained in:
Jaime 2018-03-03 16:12:34 +01:00
parent 124ebaeb41
commit b19e51cf56
2 changed files with 56 additions and 2 deletions

View File

@ -11,7 +11,7 @@
<name>PlayerBalancer Plugin</name> <name>PlayerBalancer Plugin</name>
<artifactId>playerbalancer-plugin</artifactId> <artifactId>playerbalancer-plugin</artifactId>
<version>2.1.5.3</version> <version>2.1.5.4</version>
<build> <build>
<finalName>PlayerBalancer</finalName> <finalName>PlayerBalancer</finalName>
@ -65,13 +65,17 @@
<id>bstats-repo</id> <id>bstats-repo</id>
<url>http://repo.bstats.org/content/repositories/releases/</url> <url>http://repo.bstats.org/content/repositories/releases/</url>
</repository> </repository>
<repository>
<id>codemc-repo</id>
<url>https://repo.codemc.org/repository/maven-public/</url>
</repository>
</repositories> </repositories>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>net.md-5</groupId> <groupId>net.md-5</groupId>
<artifactId>bungeecord-proxy</artifactId> <artifactId>bungeecord-proxy</artifactId>
<version>local</version> <version>LATEST</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -2,12 +2,21 @@ package com.jaimemartz.playerbalancer.section;
import com.jaimemartz.playerbalancer.settings.props.features.BalancerProps; import com.jaimemartz.playerbalancer.settings.props.features.BalancerProps;
import net.md_5.bungee.BungeeServerInfo; import net.md_5.bungee.BungeeServerInfo;
import net.md_5.bungee.api.Callback;
import net.md_5.bungee.api.ProxyServer;
import net.md_5.bungee.api.ServerPing;
import net.md_5.bungee.api.chat.ComponentBuilder;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.config.ServerInfo; 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 javax.xml.soap.Text;
import java.awt.*;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.Queue;
import java.util.function.IntFunction;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class SectionServer extends BungeeServerInfo { public class SectionServer extends BungeeServerInfo {
@ -35,4 +44,45 @@ public class SectionServer extends BungeeServerInfo {
.collect(Collectors.toList()); .collect(Collectors.toList());
} else return Collections.emptyList(); } else return Collections.emptyList();
} }
@Override
public void sendData(String channel, byte[] data) {
this.sendData(channel, data, true);
}
@Override
public boolean sendData(String channel, byte[] data, boolean queue) {
//Nothing to do
return true;
}
@Override
public void ping(Callback<ServerPing> callback) {
this.ping(callback, ProxyServer.getInstance().getProtocolVersion());
}
@Override
public void ping(Callback<ServerPing> callback, int protocolVersion) {
ServerPing ping = new ServerPing();
ping.setDescriptionComponent(new TextComponent(
TextComponent.fromLegacyText(this.getMotd())
));
ping.setVersion(new ServerPing.Protocol(
ProxyServer.getInstance().getName(),
protocolVersion
));
Collection<ProxiedPlayer> players = getPlayers();
ping.setPlayers(new ServerPing.Players(
Integer.MAX_VALUE,
players.size(),
players.stream().map(
player -> new ServerPing.PlayerInfo(player.getName(), player.getUniqueId())
).toArray(ServerPing.PlayerInfo[]::new)
));
callback.done(ping, null);
}
} }