Skip to content

Commit 4c1bbac

Browse files
committed
Revert "some stuff"
This reverts commit 49c64bb.
1 parent 2297777 commit 4c1bbac

File tree

5 files changed

+67
-42
lines changed

5 files changed

+67
-42
lines changed

balancer/src/main/java/com/jaimemartz/playerbalancer/PlayerBalancer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ private void execStart() {
143143
}
144144

145145
networkManager = new NetworkManager(this);
146-
getProxy().registerChannel("BungeeCord");
146+
147147
sectionManager = new SectionManager(this);
148148
sectionManager.load();
149149

balancer/src/main/java/com/jaimemartz/playerbalancer/listeners/PluginMessageListener.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,10 @@
1616
import net.md_5.bungee.api.event.PluginMessageEvent;
1717
import net.md_5.bungee.api.plugin.Listener;
1818
import net.md_5.bungee.event.EventHandler;
19-
import net.md_5.bungee.event.EventPriority;
2019

2120
import java.io.ByteArrayOutputStream;
2221
import java.io.DataOutputStream;
2322
import java.io.IOException;
24-
import java.util.Collection;
25-
import java.util.stream.Collectors;
2623

2724
public class PluginMessageListener implements Listener {
2825
private final PlayerBalancer plugin;
@@ -41,7 +38,7 @@ public PluginMessageListener(PlayerBalancer plugin) {
4138
gson = builder.create();
4239
}
4340

44-
@EventHandler(priority = EventPriority.LOWEST)
41+
@EventHandler
4542
public void onPluginMessage(PluginMessageEvent event) {
4643
if (event.getTag().equals("PlayerBalancer") && event.getSender() instanceof Server) {
4744
ByteArrayDataInput in = ByteStreams.newDataInput(event.getData());

balancer/src/main/java/com/jaimemartz/playerbalancer/listeners/ServerConnectListener.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
import net.md_5.bungee.api.Callback;
1010
import net.md_5.bungee.api.config.ServerInfo;
1111
import net.md_5.bungee.api.connection.ProxiedPlayer;
12-
import net.md_5.bungee.api.event.PostLoginEvent;
13-
import net.md_5.bungee.api.event.PreLoginEvent;
1412
import net.md_5.bungee.api.event.ServerConnectEvent;
15-
import net.md_5.bungee.api.event.ServerConnectedEvent;
1613
import net.md_5.bungee.api.plugin.Listener;
1714
import net.md_5.bungee.event.EventHandler;
1815
import net.md_5.bungee.event.EventPriority;

balancer/src/main/java/com/jaimemartz/playerbalancer/section/SectionManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,11 @@ public void execute(String sectionName, SectionProps sectionProps, ServerSection
128128
@Override
129129
public void execute(String sectionName, SectionProps sectionProps, ServerSection section) throws RuntimeException {
130130
if (sectionProps.getServerName() != null) {
131-
SectionServer server = new SectionServer(plugin, section);
132-
plugin.getProxy().getPluginManager().registerListener(plugin, server);
131+
SectionServer server = new SectionServer(props, section);
132+
section.setServer(server);
133+
plugin.getSectionManager().registerServer(server, section);
134+
FixedAdapter.getFakeServers().put(server.getName(), server);
135+
plugin.getProxy().getServers().put(server.getName(), server);
133136
}
134137
}
135138
});
Lines changed: 60 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
package com.jaimemartz.playerbalancer.section;
22

3-
import com.google.common.io.ByteArrayDataInput;
4-
import com.google.common.io.ByteStreams;
5-
import com.jaimemartz.playerbalancer.PlayerBalancer;
6-
import com.jaimemartz.playerbalancer.connection.ConnectionIntent;
7-
import com.jaimemartz.playerbalancer.listeners.PluginMessageListener;
83
import com.jaimemartz.playerbalancer.settings.props.features.BalancerProps;
94
import net.md_5.bungee.BungeeServerInfo;
105
import net.md_5.bungee.api.Callback;
@@ -13,43 +8,76 @@
138
import net.md_5.bungee.api.chat.TextComponent;
149
import net.md_5.bungee.api.config.ServerInfo;
1510
import net.md_5.bungee.api.connection.ProxiedPlayer;
16-
import net.md_5.bungee.api.connection.Server;
17-
import net.md_5.bungee.api.event.PluginMessageEvent;
18-
import net.md_5.bungee.api.plugin.Listener;
19-
import net.md_5.bungee.event.EventHandler;
20-
import net.md_5.bungee.event.EventPriority;
2111

2212
import java.net.InetSocketAddress;
2313
import java.util.Collection;
2414
import java.util.Collections;
2515
import java.util.stream.Collectors;
2616

27-
public class SectionServer implements Listener {
28-
private final PlayerBalancer plugin;
17+
public class SectionServer extends BungeeServerInfo {
18+
private final BalancerProps props;
2919
private final ServerSection section;
3020

31-
public SectionServer(PlayerBalancer plugin, ServerSection section) {
32-
this.plugin = plugin;
21+
public SectionServer(BalancerProps props, ServerSection section) {
22+
super(
23+
"@" + section.getProps().getServerName(),
24+
new InetSocketAddress("0.0.0.0", (int) Math.floor(Math.random() * (0xFFFF + 1))),
25+
"Section server of " + section.getName(),
26+
false
27+
);
28+
29+
this.props = props;
3330
this.section = section;
3431
}
3532

36-
@EventHandler(priority = EventPriority.LOWEST)
37-
public void on(PluginMessageEvent event) {
38-
if (event.getTag().equals("BungeeCord")) {
39-
ByteArrayDataInput in = ByteStreams.newDataInput(event.getData());
40-
String request = in.readUTF();
41-
42-
if (request.equals("Connect")) {
43-
if (event.getReceiver() instanceof ProxiedPlayer) {
44-
ProxiedPlayer player = (ProxiedPlayer) event.getReceiver();
45-
String target = in.readUTF();
46-
47-
if (target.equals("@" + section.getProps().getServerName())) {
48-
ConnectionIntent.simple(plugin, player, section);
49-
event.setCancelled(true);
50-
}
51-
}
52-
}
53-
}
33+
@Override
34+
public Collection<ProxiedPlayer> getPlayers() {
35+
if (props.isShowPlayers()) {
36+
return section.getServers().stream()
37+
.map(ServerInfo::getPlayers)
38+
.flatMap(Collection::stream)
39+
.collect(Collectors.toList());
40+
} else return Collections.emptyList();
41+
}
42+
43+
@Override
44+
public void sendData(String channel, byte[] data) {
45+
this.sendData(channel, data, true);
46+
}
47+
48+
@Override
49+
public boolean sendData(String channel, byte[] data, boolean queue) {
50+
//Nothing to do
51+
return true;
52+
}
53+
54+
@Override
55+
public void ping(Callback<ServerPing> callback) {
56+
this.ping(callback, ProxyServer.getInstance().getProtocolVersion());
57+
}
58+
59+
@Override
60+
public void ping(Callback<ServerPing> callback, int protocolVersion) {
61+
ServerPing ping = new ServerPing();
62+
63+
ping.setDescriptionComponent(new TextComponent(
64+
TextComponent.fromLegacyText(this.getMotd())
65+
));
66+
67+
ping.setVersion(new ServerPing.Protocol(
68+
ProxyServer.getInstance().getName(),
69+
protocolVersion
70+
));
71+
72+
Collection<ProxiedPlayer> players = getPlayers();
73+
ping.setPlayers(new ServerPing.Players(
74+
Integer.MAX_VALUE,
75+
players.size(),
76+
players.stream().map(
77+
player -> new ServerPing.PlayerInfo(player.getName(), player.getUniqueId())
78+
).toArray(ServerPing.PlayerInfo[]::new)
79+
));
80+
81+
callback.done(ping, null);
5482
}
5583
}

0 commit comments

Comments
 (0)