Skip to content

Commit 4e72a63

Browse files
committed
🐛 Fixed a bug where players could join the queue of a server that didn't have one.
1 parent 45e89b3 commit 4e72a63

9 files changed

Lines changed: 44 additions & 28 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import org.apache.tools.ant.filters.ReplaceTokens
33
apply plugin: 'java'
44

55
group = 'fr.customentity'
6-
version = '0.3.2'
6+
version = '1.1'
77

88
sourceCompatibility = '1.8'
99
targetCompatibility = '1.8'

src/main/java/fr/customentity/advancedbungeequeue/bungee/AdvancedBungeeQueue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void onEnable() {
4646
"%all%", queuedPlayers.size() + "",
4747
"%position%", queuedPlayers.indexOf(queuedPlayer) + 1 + "",
4848
"%priority%", queuedPlayer.getPriority().getName()
49-
))), 1, 1, TimeUnit.SECONDS);
49+
))), 1, getConfigFile().getInt("remember-queue-position-delay", 1), TimeUnit.SECONDS);
5050

5151
this.socketManager = new SocketManager(this);
5252
this.socketManager.initListener();

src/main/java/fr/customentity/advancedbungeequeue/bungee/command/QueueCommand.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,18 @@ public void execute(CommandSender sender, String[] args) {
2828
if (!(sender instanceof ProxiedPlayer)) return;
2929
ProxiedPlayer proxiedPlayer = (ProxiedPlayer) sender;
3030
if (args.length != 2) {
31-
plugin.sendConfigMessage(proxiedPlayer, "commands.join.syntax");
31+
plugin.sendConfigMessage(proxiedPlayer, "commands.join-command.syntax");
3232
return;
3333
}
3434
String serverName = args[1];
3535
ServerInfo serverInfo = plugin.getProxy().getServerInfo(serverName);
3636
if (serverInfo == null) {
37-
plugin.sendConfigMessage(proxiedPlayer, "commands.join.server-doesnt-exist");
37+
plugin.sendConfigMessage(proxiedPlayer, "commands.join-command.server-doesnt-exist");
38+
return;
39+
}
40+
41+
if(!this.plugin.getConfigFile().getStringList("queued-servers").contains(serverInfo.getName())) {
42+
plugin.sendConfigMessage(proxiedPlayer, "commands.join-command.server-not-queued");
3843
return;
3944
}
4045

@@ -45,44 +50,44 @@ public void execute(CommandSender sender, String[] args) {
4550
return;
4651
}
4752
if (plugin.getQueueManager().isEnabled()) {
48-
plugin.sendConfigMessage(sender, "commands.on.error");
53+
plugin.sendConfigMessage(sender, "commands.on-command.error");
4954
return;
5055
}
5156
plugin.getQueueManager().setEnabled(true);
52-
plugin.sendConfigMessage(sender, "commands.on.success");
57+
plugin.sendConfigMessage(sender, "commands.on-command.success");
5358
} else if (args[0].equalsIgnoreCase("off")) {
5459
if (!sender.hasPermission(plugin.getConfigFile().getString("permissions.off-queue-command"))) {
5560
plugin.sendConfigMessage(sender, "commands.no-permission");
5661
return;
5762
}
5863
if (!plugin.getQueueManager().isEnabled()) {
59-
plugin.sendConfigMessage(sender, "commands.off.error");
64+
plugin.sendConfigMessage(sender, "commands.off-command.error");
6065
return;
6166
}
6267
plugin.getQueueManager().setEnabled(false);
63-
plugin.sendConfigMessage(sender, "commands.off.success");
68+
plugin.sendConfigMessage(sender, "commands.off-command.success");
6469
} else if (args[0].equalsIgnoreCase("pause")) {
6570
if (!sender.hasPermission(plugin.getConfigFile().getString("permissions.pause-queue-command"))) {
6671
plugin.sendConfigMessage(sender, "commands.no-permission");
6772
return;
6873
}
6974
if (plugin.getQueueManager().isPaused()) {
70-
plugin.sendConfigMessage(sender, "commands.pause.error");
75+
plugin.sendConfigMessage(sender, "commands.pause-command.error");
7176
return;
7277
}
7378
plugin.getQueueManager().setPaused(true);
74-
plugin.sendConfigMessage(sender, "commands.pause.success");
79+
plugin.sendConfigMessage(sender, "commands.pause-command.success");
7580
} else if (args[0].equalsIgnoreCase("unpause")) {
7681
if (!sender.hasPermission(plugin.getConfigFile().getString("permissions.unpause-queue-command"))) {
7782
plugin.sendConfigMessage(sender, "commands.no-permission");
7883
return;
7984
}
8085
if (!plugin.getQueueManager().isPaused()) {
81-
plugin.sendConfigMessage(sender, "commands.unpause.error");
86+
plugin.sendConfigMessage(sender, "commands.unpause-command.error");
8287
return;
8388
}
8489
plugin.getQueueManager().setPaused(false);
85-
plugin.sendConfigMessage(sender, "commands.unpause.success");
90+
plugin.sendConfigMessage(sender, "commands.unpause-command.success");
8691
}
8792
}
8893
}

src/main/java/fr/customentity/advancedbungeequeue/bungee/i18n/YamlResourceBundle.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,9 @@ public List<String> getStringList(String path) {
7676
}
7777

7878
public String getString(String path, boolean useCacheIfPresent) {
79-
if (useCacheIfPresent)
79+
if (useCacheIfPresent) {
8080
return cachedResourceContent.getOrDefault(path, Collections.singletonList(yamlConfig.getString(path))).get(0);
81+
}
8182
return yamlConfig.getString(path);
8283
}
8384

src/main/java/fr/customentity/advancedbungeequeue/bungee/manager/QueueManager.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public boolean isEnabled() {
5454
public void setEnabled(boolean enabled) {
5555
if (this.enabled && !enabled) {
5656
queue.clear();
57+
QueuedPlayer.getQueuedPlayerSet().clear();
5758
Thread thread = new Thread(() -> {
5859
this.scheduledExecutorService.shutdown();
5960
try {
@@ -110,7 +111,13 @@ public void addPlayerInQueue(ProxiedPlayer proxiedPlayer, ServerInfo serverInfo)
110111
}
111112

112113
public void removePlayerFromQueue(QueuedPlayer queuedPlayer) {
113-
queue.get(queuedPlayer.getTargetServer()).remove(queuedPlayer);
114+
ServerInfo targetServer = queuedPlayer.getTargetServer();
115+
116+
if (this.plugin.getConfigFile().getBoolean("use-same-queue"))
117+
targetServer = queue.keySet().stream().findFirst().get();
118+
119+
if(!queue.containsKey(targetServer))return;
120+
queue.get(targetServer).remove(queuedPlayer);
114121
QueuedPlayer.getQueuedPlayerSet().remove(queuedPlayer);
115122
}
116123

@@ -138,7 +145,7 @@ public void connectNextPlayers(ServerInfo serverInfo) {
138145
if (i >= queuedPlayers.size()) return;
139146
QueuedPlayer queuedPlayer = queuedPlayers.get(i);
140147
if (queuedPlayer == null) continue;
141-
serverInfo.ping((serverPing, pingError) -> {
148+
queuedPlayer.getTargetServer().ping((serverPing, pingError) -> {
142149
if (serverPing == null) {
143150
plugin.sendConfigMessage(queuedPlayer.getProxiedPlayer(), "general.kick-unavailable-server");
144151
} else {
@@ -152,7 +159,7 @@ public void connectNextPlayers(ServerInfo serverInfo) {
152159
return;
153160
}
154161
queuedPlayer.setConnecting(true);
155-
queuedPlayer.getProxiedPlayer().connect(serverInfo, (result, error) -> {
162+
queuedPlayer.getProxiedPlayer().connect(queuedPlayer.getTargetServer(), (result, error) -> {
156163
if (!result) {
157164
queuedPlayer.setConnecting(false);
158165
}
@@ -169,7 +176,7 @@ public void loadServersQueue() {
169176
if (serverInfo != null) {
170177
queue.putIfAbsent(serverInfo, Collections.synchronizedList(new ArrayList<>()));
171178
plugin.log(Level.INFO, "Queue enabled for server: " + serverInfo.getName());
172-
if (!this.plugin.getConfigFile().getBoolean("use-same-queue")) break;
179+
if (this.plugin.getConfigFile().getBoolean("use-same-queue")) break;
173180
}
174181
}
175182
}

src/main/java/fr/customentity/advancedbungeequeue/bungee/socket/ServerThread.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
import fr.customentity.advancedbungeequeue.common.actions.all.ConfirmConnectionAction;
99
import fr.customentity.advancedbungeequeue.common.actions.all.ExecuteCommandAction;
1010
import net.md_5.bungee.api.connection.ProxiedPlayer;
11+
import net.md_5.bungee.protocol.packet.Chat;
1112

1213
import java.io.IOException;
1314
import java.io.InputStream;
1415
import java.io.ObjectInputStream;
1516
import java.net.Socket;
1617
import java.util.Optional;
17-
import java.util.UUID;
1818

1919
public class ServerThread implements Runnable {
2020

@@ -33,11 +33,11 @@ public void run() {
3333
ObjectInputStream reader = new ObjectInputStream(in);
3434

3535
String passwd = reader.readUTF();
36-
if(plugin.getConfigFile().getString("socket-password").equals(passwd)) {
36+
if (plugin.getConfigFile().getString("socket-password").equals(passwd)) {
3737
Action<?> action = (Action<?>) reader.readObject();
3838
if (action instanceof PlayerAction) {
39-
if(action instanceof ConfirmConnectionAction) {
40-
ConfirmConnectionAction confirmConnectionAction = (ConfirmConnectionAction)action;
39+
if (action instanceof ConfirmConnectionAction) {
40+
ConfirmConnectionAction confirmConnectionAction = (ConfirmConnectionAction) action;
4141
QueueResult result = confirmConnectionAction.getQueueResult();
4242
Optional<QueuedPlayer> queuedPlayer = QueuedPlayer.get(confirmConnectionAction.getSenderUniqueId());
4343
if (result == QueueResult.ALLOWED) {
@@ -51,8 +51,8 @@ public void run() {
5151
} else if (result == QueueResult.KICK_OTHER) {
5252
queuedPlayer.ifPresent(queuedPlayer1 -> plugin.sendConfigMessage(queuedPlayer1.getProxiedPlayer(), "general.kick-unavailable-server"));
5353
}
54-
} else if(action instanceof ExecuteCommandAction) {
55-
ExecuteCommandAction executeCommandAction = (ExecuteCommandAction)action;
54+
} else if (action instanceof ExecuteCommandAction) {
55+
ExecuteCommandAction executeCommandAction = (ExecuteCommandAction) action;
5656
ProxiedPlayer proxiedPlayer = plugin.getProxy().getPlayer(executeCommandAction.getSenderUniqueId());
5757
plugin.getProxy().getPluginManager().dispatchCommand(proxiedPlayer, executeCommandAction.getCommand());
5858
}

src/main/java/fr/customentity/advancedbungeequeue/spigot/AdvancedSpigotQueue.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.google.common.io.ByteStreams;
55
import fr.customentity.advancedbungeequeue.common.QueueResult;
66
import fr.customentity.advancedbungeequeue.bungee.i18n.I18n;
7+
import net.md_5.bungee.api.event.ServerKickEvent;
78
import org.bukkit.Bukkit;
89
import org.bukkit.command.Command;
910
import org.bukkit.command.CommandSender;

src/main/resources/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ queue-speed: 2000
55
player-amount: 2
66
socket-host: localhost
77
socket-port: 1233
8+
remember-queue-position-delay: 1
89
socket-password: "TOABSOLUTELYCHANGE"
910
use-same-queue: false
1011
default-servers:

src/main/resources/messages_en.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,22 @@ help:
1111
- "&6«&6&m-&e&m-----------------------------------------&6&m-&6»"
1212
commands:
1313
no-permission: "%prefix% &cYou don't have permission to execute that &ccommand !"
14-
join:
14+
join-command:
1515
syntax: "%prefix% &cPlease use: /queue join <server>"
1616
success: "%prefix% &eYou have successfully joined the queue! You &eare currently &6%position%&7/&6%all% &ein the queue. &bPriority: &6%priority%"
1717
cannot-join-queue: "%prefix% &cYou cannot join queue in this server!"
1818
server-doesnt-exist: "%prefix% &cServer doesn't exist"
19-
on:
19+
server-not-queued: "%prefix% You cannot join the queue of this server !"
20+
on-command:
2021
success: "%prefix% &eThe queue has been &aenabled&e!"
2122
error: "%prefix% &cThe queue is already enabled!"
22-
off:
23+
off-command:
2324
success: "%prefix% &eThe queue has been &cdisabled&e!"
2425
error: "%prefix% &cThe queue is already &cdisabled!"
25-
pause:
26+
pause-command:
2627
success: "%prefix% &eThe queue has been paused!"
2728
error: "%prefix% &cThe queue is already paused!"
28-
unpause:
29+
unpause-command:
2930
success: "%prefix% &eThe queue has been unpaused!"
3031
error: "%prefix% &cThe queue is already unpaused!"
3132
general:

0 commit comments

Comments
 (0)