Skip to content
This repository was archived by the owner on Nov 12, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/main/java/com/epicplayera10/joinguard/JoinGuard.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.google.gson.JsonObject;
import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.io.File;
Expand All @@ -21,6 +22,7 @@
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;

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

manager.enableUnstableAPI("help");

manager.getCommandCompletions().registerCompletion("not_whitelisted",
c -> Bukkit.getOnlinePlayers().stream()
.map(Player::getName)
.filter(name -> !pluginConfiguration.whitelistedNicks.contains(name))
.collect(Collectors.toList()));

manager.getCommandCompletions().registerCompletion("whitelist",
c -> pluginConfiguration.whitelistedNicks);

manager.registerCommand(new JoinGuardCommand());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,7 @@

import co.aikar.commands.BaseCommand;
import co.aikar.commands.CommandHelp;
import co.aikar.commands.annotation.CommandAlias;
import co.aikar.commands.annotation.CommandPermission;
import co.aikar.commands.annotation.Description;
import co.aikar.commands.annotation.HelpCommand;
import co.aikar.commands.annotation.Subcommand;
import co.aikar.commands.annotation.*;
import co.aikar.commands.bukkit.contexts.OnlinePlayer;
import com.epicplayera10.joinguard.JoinGuard;
import com.epicplayera10.joinguard.utils.ChatUtils;
Expand All @@ -22,7 +18,7 @@
import java.util.Base64;
import java.util.concurrent.CompletableFuture;

@CommandAlias("joinguard")
@CommandAlias("joinguard|jg")
@CommandPermission("joinguard.admin")
public class JoinGuardCommand extends BaseCommand {
@HelpCommand
Expand All @@ -39,24 +35,40 @@ public void reload(CommandSender sender) {
}

@Subcommand("whitelist add")
@Syntax("<gracz>")
@CommandCompletion("@not_whitelisted")
@Description("Dodaj gracza do whitelisty")
public void whitelistAdd(CommandSender sender, String playerName) {
if (JoinGuard.instance().pluginConfiguration().whitelistedNicks.contains(playerName)){
sender.sendMessage(ChatUtils.colorize("&cGracz jest już na whitelistcie"));
return;
}
JoinGuard.instance().pluginConfiguration().whitelistedNicks.add(playerName);
JoinGuard.instance().pluginConfiguration().save();
sender.sendMessage("Player added to whitelist!");
sender.sendMessage("Dodano " + playerName + " do whitelisty");
}

@Subcommand("whitelist remove")
@Syntax("<gracz>")
@CommandCompletion("@whitelist")
@Description("Usuń gracza z whitelisty")
public void whitelistRemove(CommandSender sender, String playerName) {
if (!JoinGuard.instance().pluginConfiguration().whitelistedNicks.contains(playerName)){
sender.sendMessage(ChatUtils.colorize("&cGracza nie ma na whitelistcie"));
return;
}
JoinGuard.instance().pluginConfiguration().whitelistedNicks.remove(playerName);
JoinGuard.instance().pluginConfiguration().save();
sender.sendMessage("Player removed from whitelist!");
sender.sendMessage("Usunięto " + playerName + " z whitelisty");
}

@Subcommand("whitelist list")
@Description("Wyświetl listę graczy na whitelistcie")
public void whitelistList(CommandSender sender) {
if (JoinGuard.instance().pluginConfiguration().whitelistedNicks.isEmpty()){
sender.sendMessage("Na whitelistcie nie ma żadnych graczy");
return;
}
StringBuilder builder = new StringBuilder();
boolean first = true;
for (String nick : JoinGuard.instance().pluginConfiguration().whitelistedNicks) {
Expand All @@ -66,7 +78,7 @@ public void whitelistList(CommandSender sender) {
builder.append(nick);
first = false;
}
sender.sendMessage("Whitelisted players: " + builder);
sender.sendMessage("Gracze na whitelistcie: " + builder);
}

@Subcommand("login")
Expand Down Expand Up @@ -94,6 +106,7 @@ public void login(CommandSender sender) {
}

@Subcommand("report")
@Syntax("<gracz>")
@Description("Zgłoś gracza")
public void reportPlayer(Player player, OnlinePlayer reportedPlayer) {
CompletableFuture.runAsync(() -> {
Expand Down