From 6b263e0e8bf535b3d6ecb8a42711c8a9ad924b6b Mon Sep 17 00:00:00 2001 From: marc-go Date: Tue, 6 Jan 2026 19:05:54 +0100 Subject: [PATCH] Add filter function --- .../de/marc/advancedKill/AdvancedKill.java | 15 ++++++- .../marc/advancedKill/AdvancedKillFilter.java | 45 +++++++++++++++++++ src/main/resources/config.yml | 8 ++++ src/main/resources/plugin.yml | 10 +++-- 4 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 src/main/java/de/marc/advancedKill/AdvancedKillFilter.java create mode 100644 src/main/resources/config.yml diff --git a/src/main/java/de/marc/advancedKill/AdvancedKill.java b/src/main/java/de/marc/advancedKill/AdvancedKill.java index 8a88e9e..42ed51a 100644 --- a/src/main/java/de/marc/advancedKill/AdvancedKill.java +++ b/src/main/java/de/marc/advancedKill/AdvancedKill.java @@ -5,7 +5,6 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; -import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import de.marc.advancedKill.commands.*; @@ -17,7 +16,10 @@ public final class AdvancedKill extends JavaPlugin { @Override public void onEnable() { // Plugin startup logic + saveDefaultConfig(); + getCommand("akill").setExecutor(this); + getCommand("afilter").setExecutor(new AdvancedKillFilter()); getLogger().info("AdvancedKill was loaded!"); } @@ -46,7 +48,7 @@ public final class AdvancedKill extends JavaPlugin { } - //Define mode et player + //Define mode and player String mode = args[0].toLowerCase(); Player target = Bukkit.getPlayer(args[1]); @@ -55,6 +57,15 @@ public final class AdvancedKill extends JavaPlugin { return true; } + //Check filter + List filter = getConfig().getStringList("bypass-players"); + + String uuid = target.getUniqueId().toString(); + + if (filter.contains(uuid)) { + sender.sendMessage("§cYou can not kill this player!"); + return true; + } //Run Commands switch (mode) { diff --git a/src/main/java/de/marc/advancedKill/AdvancedKillFilter.java b/src/main/java/de/marc/advancedKill/AdvancedKillFilter.java new file mode 100644 index 0000000..6e3b7c2 --- /dev/null +++ b/src/main/java/de/marc/advancedKill/AdvancedKillFilter.java @@ -0,0 +1,45 @@ +package de.marc.advancedKill; + +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.entity.Player; + +import java.util.List; + +public class AdvancedKillFilter extends JavaPlugin { + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (!sender.hasPermission("akill.admin")) { + sender.sendMessage("§cPermission denied!"); + return true; + } + + Player target = Bukkit.getPlayer(args[0]); + + if (target == null) { + sender.sendMessage("§cPlayer not found!"); + return true; + } + + String uuid = target.getUniqueId().toString(); + + List players = getConfig().getStringList("bypass-players"); + + String msg = ""; + + if (players.contains(uuid)) { + players.remove(uuid); + msg = "§aPlayer was removed successfully!"; + }else{ + players.add(uuid); + msg = "§aPlayer was added successfully!"; + } + + getConfig().set("bypass-players", players); + + sender.sendMessage(msg); + + return true; + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100644 index 0000000..8aa2519 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,8 @@ +# Active Filter Function + +filter-player: true + +# To filter player, run /afilter to filter players + +# Filter List +bypass-players: [] \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index b08245b..0abed92 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -5,13 +5,17 @@ api-version: '1.21' commands: akill: - description: aKill Befehl + description: aKill Command usage: /akill + afilter: + description: Filter Players + usage: /afilter + permissions: akill.use: - description: Darf /akill benutzen + description: Can use /akill default: op akill.admin: - description: Darf 470Hacker töten + description: Can use /afilter default: op \ No newline at end of file