Skip to content
This repository was archived by the owner on Nov 12, 2025. It is now read-only.

Commit d99ff81

Browse files
Merge pull request #4 from flezeusz/master
command improvements
2 parents 17dba17 + 0e753f8 commit d99ff81

File tree

2 files changed

+33
-9
lines changed

2 files changed

+33
-9
lines changed

src/main/java/com/epicplayera10/joinguard/JoinGuard.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import com.google.gson.JsonObject;
1313
import org.bstats.bukkit.Metrics;
1414
import org.bukkit.Bukkit;
15+
import org.bukkit.entity.Player;
1516
import org.bukkit.plugin.java.JavaPlugin;
1617

1718
import java.io.File;
@@ -21,6 +22,7 @@
2122
import java.net.http.HttpRequest;
2223
import java.net.http.HttpResponse;
2324
import java.util.concurrent.CompletableFuture;
25+
import java.util.stream.Collectors;
2426

2527
public final class JoinGuard extends JavaPlugin {
2628
public static final Gson GSON = new Gson();
@@ -70,6 +72,15 @@ private void registerCommands() {
7072

7173
manager.enableUnstableAPI("help");
7274

75+
manager.getCommandCompletions().registerCompletion("not_whitelisted",
76+
c -> Bukkit.getOnlinePlayers().stream()
77+
.map(Player::getName)
78+
.filter(name -> !pluginConfiguration.whitelistedNicks.contains(name))
79+
.collect(Collectors.toList()));
80+
81+
manager.getCommandCompletions().registerCompletion("whitelist",
82+
c -> pluginConfiguration.whitelistedNicks);
83+
7384
manager.registerCommand(new JoinGuardCommand());
7485
}
7586

src/main/java/com/epicplayera10/joinguard/commands/JoinGuardCommand.java

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22

33
import co.aikar.commands.BaseCommand;
44
import co.aikar.commands.CommandHelp;
5-
import co.aikar.commands.annotation.CommandAlias;
6-
import co.aikar.commands.annotation.CommandPermission;
7-
import co.aikar.commands.annotation.Description;
8-
import co.aikar.commands.annotation.HelpCommand;
9-
import co.aikar.commands.annotation.Subcommand;
5+
import co.aikar.commands.annotation.*;
106
import co.aikar.commands.bukkit.contexts.OnlinePlayer;
117
import com.epicplayera10.joinguard.JoinGuard;
128
import com.epicplayera10.joinguard.utils.ChatUtils;
@@ -22,7 +18,7 @@
2218
import java.util.Base64;
2319
import java.util.concurrent.CompletableFuture;
2420

25-
@CommandAlias("joinguard")
21+
@CommandAlias("joinguard|jg")
2622
@CommandPermission("joinguard.admin")
2723
public class JoinGuardCommand extends BaseCommand {
2824
@HelpCommand
@@ -39,24 +35,40 @@ public void reload(CommandSender sender) {
3935
}
4036

4137
@Subcommand("whitelist add")
38+
@Syntax("<gracz>")
39+
@CommandCompletion("@not_whitelisted")
4240
@Description("Dodaj gracza do whitelisty")
4341
public void whitelistAdd(CommandSender sender, String playerName) {
42+
if (JoinGuard.instance().pluginConfiguration().whitelistedNicks.contains(playerName)){
43+
sender.sendMessage(ChatUtils.colorize("&cGracz jest już na whitelistcie"));
44+
return;
45+
}
4446
JoinGuard.instance().pluginConfiguration().whitelistedNicks.add(playerName);
4547
JoinGuard.instance().pluginConfiguration().save();
46-
sender.sendMessage("Player added to whitelist!");
48+
sender.sendMessage("Dodano " + playerName + " do whitelisty");
4749
}
4850

4951
@Subcommand("whitelist remove")
52+
@Syntax("<gracz>")
53+
@CommandCompletion("@whitelist")
5054
@Description("Usuń gracza z whitelisty")
5155
public void whitelistRemove(CommandSender sender, String playerName) {
56+
if (!JoinGuard.instance().pluginConfiguration().whitelistedNicks.contains(playerName)){
57+
sender.sendMessage(ChatUtils.colorize("&cGracza nie ma na whitelistcie"));
58+
return;
59+
}
5260
JoinGuard.instance().pluginConfiguration().whitelistedNicks.remove(playerName);
5361
JoinGuard.instance().pluginConfiguration().save();
54-
sender.sendMessage("Player removed from whitelist!");
62+
sender.sendMessage("Usunięto " + playerName + " z whitelisty");
5563
}
5664

5765
@Subcommand("whitelist list")
5866
@Description("Wyświetl listę graczy na whitelistcie")
5967
public void whitelistList(CommandSender sender) {
68+
if (JoinGuard.instance().pluginConfiguration().whitelistedNicks.isEmpty()){
69+
sender.sendMessage("Na whitelistcie nie ma żadnych graczy");
70+
return;
71+
}
6072
StringBuilder builder = new StringBuilder();
6173
boolean first = true;
6274
for (String nick : JoinGuard.instance().pluginConfiguration().whitelistedNicks) {
@@ -66,7 +78,7 @@ public void whitelistList(CommandSender sender) {
6678
builder.append(nick);
6779
first = false;
6880
}
69-
sender.sendMessage("Whitelisted players: " + builder);
81+
sender.sendMessage("Gracze na whitelistcie: " + builder);
7082
}
7183

7284
@Subcommand("login")
@@ -94,6 +106,7 @@ public void login(CommandSender sender) {
94106
}
95107

96108
@Subcommand("report")
109+
@Syntax("<gracz>")
97110
@Description("Zgłoś gracza")
98111
public void reportPlayer(Player player, OnlinePlayer reportedPlayer) {
99112
CompletableFuture.runAsync(() -> {

0 commit comments

Comments
 (0)