Skip to content

Commit 25d2daf

Browse files
refactor: remove fallback server names, require explicit queue group servers
Replace silent fallbacks with validation errors when queue groups have empty server lists. Add missing @comment on forceTargetServer. Remove redundant forced target-server inclusion in kickWhenDownServers. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent e45aa85 commit 25d2daf

4 files changed

Lines changed: 17 additions & 29 deletions

File tree

shared/src/main/java/net/pistonmaster/pistonqueue/shared/config/Config.java

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ public final class Config {
119119
@Comment("Load balancing strategy for multiple queue servers: ROUND_ROBIN, LEAST_PLAYERS, RANDOM")
120120
private LoadBalancingStrategy queueLoadBalancing = LoadBalancingStrategy.LEAST_PLAYERS;
121121

122+
@Comment("Ignore the player's intended target server and always use the queue group's default target.")
122123
private boolean forceTargetServer = false;
123124

124125
@Comment({
@@ -127,13 +128,6 @@ public final class Config {
127128
})
128129
private boolean enableSourceServer = false;
129130

130-
@Ignore
131-
private String queueServer = "queue";
132-
@Ignore
133-
private String targetServer = "main";
134-
@Ignore
135-
private String sourceServer = "lobby";
136-
137131
@Comment("Connecting to server message")
138132
private String joiningTargetServer = "&6Connecting to the server...";
139133

@@ -621,12 +615,6 @@ private void rebuildKickWhenDownServers() {
621615
}
622616
}
623617
}
624-
// Always include all target servers
625-
for (String target : allTargetServers) {
626-
if (!resolved.contains(target)) {
627-
resolved.add(target);
628-
}
629-
}
630618
kickWhenDownServers = resolved;
631619
}
632620

@@ -688,17 +676,17 @@ private void rebuildQueueGroups() {
688676

689677
List<String> resolvedQueueServers = configuration.getQueueServers();
690678
if (resolvedQueueServers.isEmpty()) {
691-
resolvedQueueServers = List.of(queueServer);
679+
throw new IllegalStateException("Queue group \"" + name + "\" must specify at least one queue server");
692680
}
693681

694682
List<String> targetServers = configuration.getTargetServers();
695683
if (targetServers.isEmpty()) {
696-
targetServers = List.of(targetServer);
684+
throw new IllegalStateException("Queue group \"" + name + "\" must specify at least one target server");
697685
}
698686

699687
List<String> sourceServers = enableSourceServer ? configuration.getSourceServers() : List.of();
700-
if (enableSourceServer && sourceServers.isEmpty() && sourceServer != null && !sourceServer.isBlank()) {
701-
sourceServers = List.of(sourceServer);
688+
if (enableSourceServer && sourceServers.isEmpty()) {
689+
throw new IllegalStateException("Queue group \"" + name + "\" must specify at least one source server when enableSourceServer is true");
702690
}
703691

704692
List<String> typeNames = configuration.getQueueTypes();
@@ -833,9 +821,9 @@ private Map<String, QueueTypeConfiguration> defaultQueueTypes() {
833821
private Map<String, QueueGroupConfiguration> defaultQueueGroups() {
834822
Map<String, QueueGroupConfiguration> defaults = new LinkedHashMap<>();
835823
QueueGroupConfiguration configuration = new QueueGroupConfiguration();
836-
configuration.queueServers = new ArrayList<>(List.of(queueServer));
837-
configuration.targetServers = new ArrayList<>(List.of(targetServer));
838-
configuration.sourceServers = new ArrayList<>(List.of(sourceServer));
824+
configuration.queueServers = new ArrayList<>(List.of("queue"));
825+
configuration.targetServers = new ArrayList<>(List.of("main"));
826+
configuration.sourceServers = new ArrayList<>(List.of("lobby"));
839827
configuration.queueTypes = new ArrayList<>(queueTypes.keySet());
840828
configuration.defaultGroup = true;
841829
defaults.put("default", configuration);

shared/src/test/java/net/pistonmaster/pistonqueue/shared/config/ConfigTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ void queueGroupReferencingUnknownTypeThrows() {
235235

236236
Config.QueueGroupConfiguration groupConfig = new Config.QueueGroupConfiguration();
237237
groupConfig.setDefaultGroup(true);
238-
groupConfig.setQueueServers(List.of());
238+
groupConfig.setQueueServers(List.of("queue"));
239239
groupConfig.setTargetServers(List.of("main"));
240240
groupConfig.setSourceServers(List.of());
241241
groupConfig.setQueueTypes(List.of("NONEXISTENT_TYPE"));
@@ -290,7 +290,7 @@ private Config createConfigWithMultipleQueueTypes() {
290290

291291
Config.QueueGroupConfiguration groupConfig = new Config.QueueGroupConfiguration();
292292
groupConfig.setDefaultGroup(true);
293-
groupConfig.setQueueServers(List.of());
293+
groupConfig.setQueueServers(List.of("queue"));
294294
groupConfig.setTargetServers(List.of("main"));
295295
groupConfig.setSourceServers(List.of());
296296
groupConfig.setQueueTypes(List.of("VETERAN", "PRIORITY", "REGULAR"));
@@ -313,7 +313,7 @@ private Config createConfigWithNoDefaultType() {
313313

314314
Config.QueueGroupConfiguration groupConfig = new Config.QueueGroupConfiguration();
315315
groupConfig.setDefaultGroup(true);
316-
groupConfig.setQueueServers(List.of());
316+
groupConfig.setQueueServers(List.of("queue"));
317317
groupConfig.setTargetServers(List.of("main"));
318318
groupConfig.setSourceServers(List.of());
319319
groupConfig.setQueueTypes(List.of("VIP", "PREMIUM"));

shared/src/test/java/net/pistonmaster/pistonqueue/shared/queue/logic/QueuePlacementCoordinatorTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,6 @@ void disconnectsWhenRequiredServerDown() {
164164
@Test
165165
void skipsQueueWhenSourceServerUnsupported() {
166166
Config config = QueueTestUtils.createConfigWithSingleQueueType(1);
167-
String targetServer = QueueTestUtils.defaultTargetServer(config);
168-
config.setEnableSourceServer(true);
169167

170168
// Rebuild groups with source server
171169
Config.QueueGroupConfiguration groupConfig = new Config.QueueGroupConfiguration();
@@ -175,6 +173,8 @@ void skipsQueueWhenSourceServerUnsupported() {
175173
groupConfig.setSourceServers(List.of("lobby"));
176174
groupConfig.setQueueTypes(List.of("DEFAULT"));
177175
config.setQueueGroupDefinitions(java.util.Map.of("default", groupConfig));
176+
config.setEnableSourceServer(true);
177+
String targetServer = QueueTestUtils.defaultTargetServer(config);
178178

179179
QueueType type = config.getAllQueueTypes().getFirst();
180180
type.getPlayersWithTypeInTarget().set(1);
@@ -191,8 +191,6 @@ void skipsQueueWhenSourceServerUnsupported() {
191191
@Test
192192
void queuesWhenSourceMatchesRequirement() {
193193
Config config = QueueTestUtils.createConfigWithSingleQueueType(1);
194-
String targetServer = QueueTestUtils.defaultTargetServer(config);
195-
config.setEnableSourceServer(true);
196194

197195
// Rebuild groups with source server
198196
Config.QueueGroupConfiguration groupConfig = new Config.QueueGroupConfiguration();
@@ -202,6 +200,8 @@ void queuesWhenSourceMatchesRequirement() {
202200
groupConfig.setSourceServers(List.of("lobby"));
203201
groupConfig.setQueueTypes(List.of("DEFAULT"));
204202
config.setQueueGroupDefinitions(java.util.Map.of("default", groupConfig));
203+
config.setEnableSourceServer(true);
204+
String targetServer = QueueTestUtils.defaultTargetServer(config);
205205

206206
QueueType type = config.getAllQueueTypes().getFirst();
207207
type.getPlayersWithTypeInTarget().set(1);

shared/src/test/java/net/pistonmaster/pistonqueue/shared/queue/logic/QueueTestUtils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ static Config createConfigWithSingleQueueType(int slots) {
9494

9595
Config.QueueGroupConfiguration groupConfiguration = new Config.QueueGroupConfiguration();
9696
groupConfiguration.setDefaultGroup(true);
97-
groupConfiguration.setQueueServers(List.of());
98-
groupConfiguration.setTargetServers(List.of());
97+
groupConfiguration.setQueueServers(List.of("queue"));
98+
groupConfiguration.setTargetServers(List.of("target"));
9999
groupConfiguration.setSourceServers(List.of());
100100
groupConfiguration.setQueueTypes(List.of("DEFAULT"));
101101

0 commit comments

Comments
 (0)