|
|
|
@@ -84,6 +84,39 @@ class EquipmentAdminCommandNativeTest {
|
|
|
|
|
release.countDown();}}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test void recoveryCompletionIsPermissionAwarePrefixFilteredUuidOnlyAndReadOnly() throws Exception {
|
|
|
|
|
try (var f = new FantasyStickLifecycleNativeTest.Fixture(data)) {
|
|
|
|
|
f.plugin.setEnabled(true);
|
|
|
|
|
var first = new FantasyStickLifecycleNativeTest.Actor(data);
|
|
|
|
|
var second = new FantasyStickLifecycleNativeTest.Actor(data);
|
|
|
|
|
var offline = new FantasyStickLifecycleNativeTest.Actor(data);
|
|
|
|
|
offline.core.online = false;
|
|
|
|
|
f.players.put(first.core.id, first.player); f.players.put(second.core.id, second.player); f.players.put(offline.core.id, offline.player);
|
|
|
|
|
var sender = new Sender();
|
|
|
|
|
var expected = java.util.stream.Stream.of(first.core.id.toString(), second.core.id.toString()).sorted().toList();
|
|
|
|
|
assertEquals(List.of("config", "give", "inspect", "recover"), f.command.tabComplete(sender.port, "fantasystick", new String[]{""}));
|
|
|
|
|
assertEquals(List.of("inspect"), f.command.tabComplete(sender.port, "fantasystick", new String[]{"in"}));
|
|
|
|
|
assertEquals(List.of("recover"), f.command.tabComplete(sender.port, "fantasystick", new String[]{"rec"}));
|
|
|
|
|
assertEquals(expected, f.command.tabComplete(sender.port, "fantasystick", new String[]{"inspect", ""}));
|
|
|
|
|
String prefix = expected.getFirst().substring(0, 8);
|
|
|
|
|
assertEquals(expected.stream().filter(id -> id.startsWith(prefix)).toList(),
|
|
|
|
|
f.command.tabComplete(sender.port, "fantasystick", new String[]{"recover", prefix}));
|
|
|
|
|
assertFalse(f.command.tabComplete(sender.port, "fantasystick", new String[]{"inspect", ""}).contains("Account"));
|
|
|
|
|
assertTrue(f.command.tabComplete(sender.port, "fantasystick", new String[]{"inspect", expected.getFirst(), ""}).isEmpty());
|
|
|
|
|
assertTrue(f.command.tabComplete(sender.port, "fantasystick", new String[]{"unknown", ""}).isEmpty());
|
|
|
|
|
assertEquals(List.of("adventure-mode"), f.command.tabComplete(sender.port, "fantasystick", new String[]{"config", "adventure-m"}));
|
|
|
|
|
assertEquals(List.of("false", "true"), f.command.tabComplete(sender.port, "fantasystick", new String[]{"config", "adventure-mode", ""}));
|
|
|
|
|
assertEquals(List.of("true"), f.command.tabComplete(sender.port, "fantasystick", new String[]{"config", "adventure-mode", "t"}));
|
|
|
|
|
assertTrue(f.command.tabComplete(sender.port, "fantasystick", new String[]{"config", "adventure-mode", "true", ""}).isEmpty());
|
|
|
|
|
sender.allowed = false;
|
|
|
|
|
for (String[] args : List.of(new String[]{""}, new String[]{"inspect", ""}, new String[]{"config", ""},
|
|
|
|
|
new String[]{"config", "adventure-mode", ""})) {
|
|
|
|
|
assertTrue(f.command.tabComplete(sender.port, "fantasystick", args).isEmpty());
|
|
|
|
|
}
|
|
|
|
|
assertTrue(f.tasks.isEmpty()); assertFalse(Files.exists(data.resolve("sessions")));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test void adventureConfigurationCommandReadsValidatesPersistsAndReopensWithoutTouchingPlayers() throws Exception {
|
|
|
|
|
try (var f = new FantasyStickLifecycleNativeTest.Fixture(data)) {
|
|
|
|
|
f.plugin.setEnabled(true);
|
|
|
|
|