Skip to content

Commit 7b77f33

Browse files
committed
Proper check for successful connections
1 parent d0ac9dc commit 7b77f33

File tree

13 files changed

+25
-24
lines changed

13 files changed

+25
-24
lines changed

src/main/java/com/jaimemartz/playerbalancer/commands/FallbackCommand.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,7 @@ public void execute(CommandSender sender, String[] args) {
8585
MessageUtils.send(player, ConfigEntries.INVALID_INPUT_MESSAGE.get());
8686
}
8787
} else {
88-
//TODO instead of checking if the sections are the same, we have to check if the section the player is
89-
//TODO currently going to contains the server the player is connected to
90-
//TODO this should be done in ConnectionIntent instead of here
91-
ServerSection current = plugin.getSectionManager().getByPlayer(player);
92-
if (current != target) {
93-
ConnectionIntent.simple(plugin, player, target);
94-
} else {
95-
MessageUtils.send(player, ConfigEntries.SAME_SECTION.get());
96-
}
88+
ConnectionIntent.simple(plugin, player, target);
9789
}
9890
}
9991
} catch (Exception e) {

src/main/java/com/jaimemartz/playerbalancer/connection/ConnectionIntent.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +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.connection.Server;
1213

1314
import java.util.ArrayList;
1415
import java.util.List;
@@ -30,7 +31,15 @@ public ConnectionIntent(PlayerBalancer plugin, ProxiedPlayer player, ProviderTyp
3031
);
3132

3233
if (servers == section.getServers()) {
33-
throw new IllegalStateException("The servers list parameter is the same object as the section servers list, this cannot happen");
34+
throw new IllegalStateException("The servers list parameter is the same reference, this cannot happen");
35+
}
36+
37+
Server current = player.getServer();
38+
if (current != null) {
39+
if (section.getServers().contains(current.getInfo())) {
40+
MessageUtils.send(player, ConfigEntries.SAME_SECTION.get());
41+
return;
42+
}
3443
}
3544

3645
if (section.getProvider() != ProviderType.NONE) {

src/main/java/com/jaimemartz/playerbalancer/connection/types/DirectionConnection.java

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/main/java/com/jaimemartz/playerbalancer/listener/ServerConnectListener.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.jaimemartz.playerbalancer.manager.PlayerLocker;
88
import com.jaimemartz.playerbalancer.section.ServerSection;
99
import com.jaimemartz.playerbalancer.utils.MessageUtils;
10+
import net.md_5.bungee.api.Callback;
1011
import net.md_5.bungee.api.config.ServerInfo;
1112
import net.md_5.bungee.api.connection.ProxiedPlayer;
1213
import net.md_5.bungee.api.event.ServerConnectEvent;
@@ -64,12 +65,13 @@ public void onConnect(ServerConnectEvent event) {
6465
if (section != null) {
6566
new ConnectionIntent(plugin, player, section) {
6667
@Override
67-
public void connect(ServerInfo server) {
68+
public void connect(ServerInfo server, Callback<Boolean> callback) {
6869
if (ConfigEntries.ASSIGN_TARGETS_ENABLED.get()) {
6970
ServerAssignRegistry.assignTarget(player, section, server);
7071
}
7172

7273
event.setTarget(server);
74+
callback.done(true, null);
7375
}
7476
};
7577
}

src/main/java/com/jaimemartz/playerbalancer/listener/ServerKickListener.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.jaimemartz.playerbalancer.manager.PlayerLocker;
77
import com.jaimemartz.playerbalancer.section.ServerSection;
88
import com.jaimemartz.playerbalancer.utils.MessageUtils;
9+
import net.md_5.bungee.api.Callback;
910
import net.md_5.bungee.api.chat.TextComponent;
1011
import net.md_5.bungee.api.config.ServerInfo;
1112
import net.md_5.bungee.api.connection.ProxiedPlayer;
@@ -110,7 +111,7 @@ public void onKick(ServerKickEvent event) {
110111

111112
new ConnectionIntent(plugin, player, section, servers) {
112113
@Override
113-
public void connect(ServerInfo server) {
114+
public void connect(ServerInfo server, Callback<Boolean> callback) {
114115
PlayerLocker.lock(player);
115116
MessageUtils.send(player, ConfigEntries.KICK_MESSAGE.get(),
116117
(str) -> str.replace("{from}", from.getName())
@@ -121,6 +122,7 @@ public void connect(ServerInfo server) {
121122
plugin.getProxy().getScheduler().schedule(plugin, () -> {
122123
PlayerLocker.unlock(player);
123124
}, 5, TimeUnit.SECONDS);
125+
callback.done(true, null);
124126
}
125127
};
126128
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public void load() throws RuntimeException {
5656
section.postInit();
5757
});
5858

59+
//todo unify loading code with SectionManager
5960
if (ConfigEntries.SERVERS_UPDATE.get()) {
6061
updateTask = plugin.getProxy().getScheduler().schedule(plugin, () -> {
6162
this.sections.forEach((name, section) -> {

src/main/java/com/jaimemartz/playerbalancer/utils/AlphanumComparator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
* Use the static "sort" method from the java.util.Collections class:
4040
* Collections.sort(your list, new AlphanumComparator());
4141
*/
42-
public class AlphanumComparator implements Comparator
42+
public final class AlphanumComparator implements Comparator
4343
{
4444
private final boolean isDigit(char ch)
4545
{

src/main/java/com/jaimemartz/playerbalancer/utils/DigitUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.jaimemartz.playerbalancer.utils;
22

3-
public class DigitUtils {
3+
public final class DigitUtils {
44
public static int getDigits(String string, int digits) {
55
StringBuilder builder = new StringBuilder();
66

src/main/java/com/jaimemartz/playerbalancer/utils/FixedAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import java.util.HashMap;
88
import java.util.Map;
99

10-
public class FixedAdapter extends AdapterWrapper {
10+
public final class FixedAdapter extends AdapterWrapper {
1111
private static final Map<String, ServerInfo> fakeServers = new HashMap<>();
1212

1313
static {

src/main/java/com/jaimemartz/playerbalancer/utils/GuestPaste.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import java.util.List;
1616

1717
@Data
18-
public class GuestPaste {
18+
public final class GuestPaste {
1919
private final String key;
2020
private final String code;
2121

0 commit comments

Comments
 (0)