Skip to content

Commit dc7d284

Browse files
feat: add queue reasons & fix chat bungee deprecations
1 parent 5196eb7 commit dc7d284

File tree

6 files changed

+42
-45
lines changed

6 files changed

+42
-45
lines changed

bungee/src/main/java/net/pistonmaster/pistonqueue/bungee/listeners/QueueListenerBungee.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void setCancelServer(String server) {
9393

9494
@Override
9595
public void setKickMessage(String message) {
96-
event.setKickReasonComponent(ChatUtils.parseToComponent(message));
96+
event.setReason(ChatUtils.parseToComponent(message));
9797
}
9898

9999
@Override
@@ -108,7 +108,7 @@ public String getKickedFrom() {
108108

109109
@Override
110110
public Optional<String> getKickReason() {
111-
return Optional.ofNullable(event.getKickReasonComponent()).map(TextComponent::toLegacyText);
111+
return Optional.ofNullable(event.getReason()).map(TextComponent::toLegacyText);
112112
}
113113

114114
@Override
@@ -127,7 +127,7 @@ public boolean isCancelled() {
127127

128128
@Override
129129
public void setCancelled(String reason) {
130-
event.setCancelReason(ChatUtils.parseToComponent(reason));
130+
event.setReason(ChatUtils.parseToComponent(reason));
131131
event.setCancelled(true);
132132
}
133133

bungee/src/main/java/net/pistonmaster/pistonqueue/bungee/utils/ChatUtils.java

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@
2121

2222
import net.md_5.bungee.api.ChatColor;
2323
import net.md_5.bungee.api.chat.BaseComponent;
24-
import net.md_5.bungee.api.chat.ComponentBuilder;
2524
import net.md_5.bungee.api.chat.TextComponent;
2625
import net.pistonmaster.pistonqueue.shared.utils.SharedChatUtils;
2726

2827
import java.util.List;
28+
import java.util.stream.Collectors;
2929

3030
public final class ChatUtils {
3131
private ChatUtils() {
@@ -35,21 +35,13 @@ public static String parseToString(String str) {
3535
return ChatColor.translateAlternateColorCodes('&', SharedChatUtils.parseText(str));
3636
}
3737

38-
public static BaseComponent[] parseToComponent(String str) {
39-
return TextComponent.fromLegacyText(parseToString(str));
38+
public static BaseComponent parseToComponent(String str) {
39+
return TextComponent.fromLegacy(parseToString(str));
4040
}
4141

42-
public static BaseComponent[] parseTab(List<String> tab) {
43-
StringBuilder builder = new StringBuilder();
44-
45-
for (int i = 0; i < tab.size(); i++) {
46-
builder.append(ChatUtils.parseToString(tab.get(i)));
47-
48-
if (i != (tab.size() - 1)) {
49-
builder.append("\n");
50-
}
51-
}
52-
53-
return new ComponentBuilder(builder.toString()).create();
42+
public static BaseComponent parseTab(List<String> tab) {
43+
return parseToComponent(tab.stream()
44+
.map(ChatUtils::parseToString)
45+
.collect(Collectors.joining("\n")));
5446
}
5547
}

shared/src/main/java/net/pistonmaster/pistonqueue/shared/plugin/PistonQueuePlugin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ default void scheduleTasks(QueueListenerShared queueListener) {
8383
}
8484
} else if (Config.PAUSE_QUEUE_IF_TARGET_DOWN) {
8585
for (QueueType type : Config.QUEUE_TYPES) {
86-
type.getQueueMap().forEach((UUID id, String str) ->
86+
type.getQueueMap().forEach((id, queuedPlayer) ->
8787
getPlayer(id).ifPresent(value -> value.sendMessage(Config.PAUSE_QUEUE_IF_TARGET_DOWN_MESSAGE)));
8888
}
8989
}
@@ -140,7 +140,7 @@ default void scheduleTasks(QueueListenerShared queueListener) {
140140

141141
default void sendMessage(QueueType queue, MessageType type) {
142142
AtomicInteger position = new AtomicInteger();
143-
for (Map.Entry<UUID, String> entry : new LinkedHashMap<>(queue.getQueueMap()).entrySet()) {
143+
for (Map.Entry<UUID, QueueType.QueuedPlayer> entry : new LinkedHashMap<>(queue.getQueueMap()).entrySet()) {
144144
Optional<PlayerWrapper> player = getPlayer(entry.getKey());
145145
if (player.isEmpty()) {
146146
continue;
@@ -157,7 +157,7 @@ default void sendMessage(QueueType queue, MessageType type) {
157157
default void updateTab(QueueType queue) {
158158
AtomicInteger position = new AtomicInteger();
159159

160-
for (Map.Entry<UUID, String> entry : new LinkedHashMap<>(queue.getQueueMap()).entrySet()) {
160+
for (Map.Entry<UUID, QueueType.QueuedPlayer> entry : new LinkedHashMap<>(queue.getQueueMap()).entrySet()) {
161161
getPlayer(entry.getKey()).ifPresent(player -> {
162162
int incrementedPosition = position.incrementAndGet();
163163

shared/src/main/java/net/pistonmaster/pistonqueue/shared/queue/QueueListenerShared.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ protected void onKick(PQKickedFromServerEvent event) {
7373

7474
QueueType.getQueueType(event.getPlayer())
7575
.getQueueMap()
76-
.put(event.getPlayer().getUniqueId(), event.getKickedFrom());
76+
.put(event.getPlayer().getUniqueId(), new QueueType.QueuedPlayer(event.getKickedFrom(), QueueType.QueueReason.SERVER_DOWN));
7777
});
7878
}
7979

@@ -126,14 +126,17 @@ private void putQueue(PlayerWrapper player, QueueType type, PQServerPreConnectEv
126126

127127
event.setTarget(Config.QUEUE_SERVER);
128128

129-
Map<UUID, String> queueMap = type.getQueueMap();
129+
Map<UUID, QueueType.QueuedPlayer> queueMap = type.getQueueMap();
130130

131+
String queueTarget;
131132
// Store the data concerning the player's original destination
132133
if (Config.FORCE_TARGET_SERVER || originalTarget.isEmpty()) {
133-
queueMap.put(player.getUniqueId(), Config.TARGET_SERVER);
134+
queueTarget = Config.TARGET_SERVER;
134135
} else {
135-
queueMap.put(player.getUniqueId(), originalTarget.get());
136+
queueTarget = originalTarget.get();
136137
}
138+
139+
queueMap.put(player.getUniqueId(), new QueueType.QueuedPlayer(queueTarget, QueueType.QueueReason.SERVER_FULL));
137140
}
138141

139142
private boolean isServerFull(QueueType type) {
@@ -160,7 +163,7 @@ private boolean isSourceToTarget(PQServerPreConnectEvent event) {
160163

161164
public void moveQueue() {
162165
for (QueueType type : Config.QUEUE_TYPES) {
163-
for (Map.Entry<UUID, String> entry : new LinkedHashMap<>(type.getQueueMap()).entrySet()) {
166+
for (Map.Entry<UUID, QueueType.QueuedPlayer> entry : new LinkedHashMap<>(type.getQueueMap()).entrySet()) {
164167
Optional<PlayerWrapper> player = plugin.getPlayer(entry.getKey());
165168

166169
Optional<String> optionalTarget = player.flatMap(PlayerWrapper::getCurrentServer);
@@ -186,7 +189,7 @@ private void doRecovery(PlayerWrapper player) {
186189

187190
Optional<String> currentServer = player.getCurrentServer();
188191
if (!type.getQueueMap().containsKey(player.getUniqueId()) && currentServer.isPresent() && currentServer.get().equals(Config.QUEUE_SERVER)) {
189-
type.getQueueMap().putIfAbsent(player.getUniqueId(), Config.TARGET_SERVER);
192+
type.getQueueMap().putIfAbsent(player.getUniqueId(), new QueueType.QueuedPlayer(Config.TARGET_SERVER, QueueType.QueueReason.RECOVERY));
190193

191194
player.sendMessage(Config.RECOVERY_MESSAGE);
192195
}
@@ -202,7 +205,7 @@ private void connectPlayer(QueueType type) {
202205
if (freeSlots > Config.MAX_PLAYERS_PER_MOVE)
203206
freeSlots = Config.MAX_PLAYERS_PER_MOVE;
204207

205-
for (Map.Entry<UUID, String> entry : new LinkedHashMap<>(type.getQueueMap()).entrySet()) {
208+
for (Map.Entry<UUID, QueueType.QueuedPlayer> entry : new LinkedHashMap<>(type.getQueueMap()).entrySet()) {
206209
Optional<PlayerWrapper> optional = plugin.getPlayer(entry.getKey());
207210
if (optional.isEmpty()) {
208211
continue;
@@ -232,7 +235,7 @@ private void connectPlayer(QueueType type) {
232235
type.getDurationFromPosition().put(position, Duration.between(instant, Instant.now())));
233236
}
234237

235-
player.connect(entry.getValue());
238+
player.connect(entry.getValue().targetServer());
236239

237240
if (--freeSlots <= 0) {
238241
break;

shared/src/main/java/net/pistonmaster/pistonqueue/shared/queue/QueueType.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
@Getter
3535
@AllArgsConstructor
3636
public class QueueType {
37-
private final Map<UUID, String> queueMap = Collections.synchronizedMap(new LinkedHashMap<>());
37+
private final Map<UUID, QueuedPlayer> queueMap = Collections.synchronizedMap(new LinkedHashMap<>());
3838
private final Map<Integer, Duration> durationFromPosition = Collections.synchronizedMap(new LinkedHashMap<>());
3939
private final Map<UUID, Map<Integer, Instant>> positionCache = new ConcurrentHashMap<>();
4040
private final AtomicInteger playersWithTypeInTarget = new AtomicInteger();
@@ -58,4 +58,15 @@ public static QueueType getQueueType(PlayerWrapper player) {
5858
}
5959
throw new RuntimeException("No queue type found for player! (There is no default queue type)");
6060
}
61+
62+
public record QueuedPlayer(
63+
String targetServer,
64+
QueueReason queueReason
65+
) {}
66+
67+
public enum QueueReason {
68+
SERVER_FULL,
69+
SERVER_DOWN,
70+
RECOVERY
71+
}
6172
}

velocity/src/main/java/net/pistonmaster/pistonqueue/velocity/utils/ChatUtils.java

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
*/
2020
package net.pistonmaster.pistonqueue.velocity.utils;
2121

22-
import net.kyori.adventure.text.Component;
2322
import net.kyori.adventure.text.TextComponent;
2423
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
2524
import net.pistonmaster.pistonqueue.shared.utils.SharedChatUtils;
2625

2726
import java.util.List;
27+
import java.util.stream.Collectors;
2828

2929
public final class ChatUtils {
3030
private ChatUtils() {
@@ -39,19 +39,10 @@ public static String parseToString(String str) {
3939
}
4040

4141
public static TextComponent parseTab(List<String> tab) {
42-
if (tab == null)
43-
return Component.empty();
44-
45-
StringBuilder builder = new StringBuilder();
46-
47-
for (int i = 0; i < tab.size(); i++) {
48-
builder.append(parseToString(tab.get(i)));
49-
50-
if (i != (tab.size() - 1)) {
51-
builder.append("\n");
52-
}
53-
}
54-
55-
return LegacyComponentSerializer.legacySection().deserialize(builder.toString());
42+
return parseToComponent(
43+
tab.stream()
44+
.map(ChatUtils::parseToString)
45+
.collect(Collectors.joining("\n"))
46+
);
5647
}
5748
}

0 commit comments

Comments
 (0)