You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
player.sendMessage(mm("<gold>You were sent back to the queue for: <red>").append(reason).append(mm("<reset>")));
109
-
log.info(mm("<white>" + player.getUsername() + "<dark_aqua> was sent back to server <yellow>" + Config.queue + "<dark_aqua> after a disconnection (\"").append(reason).append(mm("<dark_aqua>\"). Kicked count is " + kickedPlayers.size() + ".")));
110
-
} else {
111
-
// set the disconnect reason from the target server (not the bungee message)
112
-
player.disconnect(reason);
113
-
}
105
+
KickOrRequeue(player, reason);
114
106
} catch (InterruptedExceptione1) {
115
107
e1.printStackTrace();
116
108
} finally {
@@ -119,6 +111,30 @@ public void onKickedFromServer(KickedFromServerEvent event) {
119
111
}
120
112
}
121
113
114
+
/**
115
+
* Kick a player if kicking is allowed in the config
116
+
*
117
+
* @param player Player to kick
118
+
* @param reason kicking reason from the target server
player.sendMessage(mm("<gold>You were sent back to the queue for: <red>").append(reason).append(mm("<reset>")));
128
+
log.info(mm("<white>" + player.getUsername() + "<dark_aqua> was sent back to server <yellow>" + Config.queue + "<dark_aqua> after a disconnection (\"").append(reason).append(mm("<dark_aqua>\"). Kicked count is " + kickedPlayers.size() + ".")));
129
+
} else {
130
+
playerQueue.remove(player);
131
+
132
+
// set the disconnect reason from the parameter (not the velocity message)
133
+
player.disconnect(reason);
134
+
log.info(mm("<white>" + player.getUsername() + "<dark_aqua> was kicked from the server (\"").append(reason).append(mm("<dark_aqua>\"). Queue count is " + playerQueue.size() + ".")));
135
+
}
136
+
}
137
+
122
138
/**
123
139
* Try to connect one player to the server.
124
140
*/
@@ -166,6 +182,7 @@ public void flushQueue() {
166
182
break;
167
183
}
168
184
185
+
// no player to connect to the main server
169
186
if (currPlayer == null) {
170
187
mutex.release();
171
188
return;
@@ -178,23 +195,29 @@ public void flushQueue() {
178
195
serverQueue.getPlayersConnected().stream()
179
196
.filter(p -> p.getUniqueId().equals(uuid))
180
197
.findAny().ifPresentOrElse(p -> {
181
-
// TODO: direct connection to the main server if the queue is empty
182
198
p.sendMessage(mm(Config.messageConnecting));
183
199
try {
184
-
if (p.createConnectionRequest(serverMain).connect().get().isSuccessful()) {
log.error(mm("<white>" + p.getUsername() + "s<red> connection to server <aqua>" + Config.target + "<red> failed: " + e.getMessage()));
190
-
// count that as a kick ;)
214
+
log.error(mm("<white>" + p.getUsername() + "s<red> connection to server <aqua>" + Config.target + "<red> failed with an exception: " + e.getMessage()));
log.error(mm("<white>" + finalCurrPlayer.getUsername() + "s<red> connection to server <aqua>" + Config.target + "<red> failed: player is not connected to " + serverQueue.getServerInfo().getName()));
196
-
playerQueue.removeFirst();
197
-
}
219
+
// player is in the queue, but not connected to the queue server
0 commit comments