From b453812fc0cfe61256fbb75d72f498ba55cb1e8c Mon Sep 17 00:00:00 2001 From: DaTTV <104141141+DrFreezyYT@users.noreply.github.com> Date: Mon, 17 Feb 2025 18:41:05 +0100 Subject: [PATCH] Added blocked commands --- .../PlayerCommandBlockerListener.java | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerCommandBlockerListener.java diff --git a/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerCommandBlockerListener.java b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerCommandBlockerListener.java new file mode 100644 index 0000000..f77cf92 --- /dev/null +++ b/src/main/java/me/freezy/plugins/papermc/blazesmp/listener/PlayerCommandBlockerListener.java @@ -0,0 +1,200 @@ +package me.freezy.plugins.papermc.blazesmp.listener; + +import net.kyori.adventure.text.minimessage.MiniMessage; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; + +import java.util.Arrays; +import java.util.LinkedHashSet; +import java.util.List; + +public class PlayerCommandBlockerListener implements Listener { + private final LinkedHashSet blockedCommands = new LinkedHashSet<>(Arrays.asList( + "/bukkit:?", + "/?", + "/bukkit:about", + "/about", + "/bukkit:help", + "/help", + "/bukkit:pl", + "/pl", + "/bukkit:plugins", + "/plugins", + "/bukkit:reload", + "/reload", + "/bukkit:rl", + "/rl", + "/bukkit:timings", + "/timings", + "/bukkit:ver", + "/ver", + "/bukkit:version", + "/version", + "/paper:callback", + "/callback", + "/paper:mspt", + "/mspt", + "/paper:paper", + "/paper", + "/paper:spark", + "/spark", + "/minecraft:advancement", + "/advancement", + "/minecraft:attribute", + "/attribute", + "/minecraft:ban", + "/ban", + "/minecraft:ban-ip", + "/ban-ip", + "/minecraft:banlist", + "/banlist", + "/minecraft:bossbar", + "/bossbar", + "/minecraft:clear", + "/clear", + "/minecraft:clone", + "/clone", + "/minecraft:damage", + "/damage", + "/minecraft:data", + "/data", + "/minecraft:datapack", + "/datapack", + "/minecraft:difficulty", + "/difficulty", + "/minecraft:effect", + "/effect", + "/minecraft:enchant", + "/enchant", + "/minecraft:execute", + "/execute", + "/minecraft:experience", + "/experience", + "/minecraft:fill", + "/fill", + "/minecraft:fillbiome", + "/fillbiome", + "/minecraft:foreload", + "/foreload", + "/minecraft:gamerule", + "/gamerule", + "/minecraft:give", + "/give", + "/minecraft:help", + "/help", + "/minecraft:item", + "/item", + "/minecraft:jfr", + "/jfr", + "/minecraft:kick", + "/kick", + "/minecraft:kill", + "/kill", + "/minecraft:list", + "/list", + "/minecraft:locate", + "/locate", + "/minecraft:loot", + "/loot", + "/minecraft:me", + "/me", + "/minecraft:op", + "/op", + "/minecraft:pardon", + "/pardon", + "/minecraft:pardon-ip", + "/pardon-ip", + "/minecraft:particle", + "/particle", + "/minecraft:perf", + "/perf", + "/minecraft:place", + "/place", + "/minecraft:playsound", + "/playsound", + "/minecraft:random", + "/random", + "/minecraft:recipe", + "/recipe", + "/minecraft:reload", + "/reload", + "/minecraft:ride", + "/ride", + "/minecraft:rotate", + "/rotate", + "/minecraft:save-all", + "/save-all", + "/minecraft:save-off", + "/save-off", + "/minecraft:save-on", + "/save-on", + "/minecraft:say", + "/say", + "/minecraft:schedule", + "/schedule", + "/minecraft:scoreboard", + "/scoreboard", + "/minecraft:seed", + "/seed", + "/minecraft:setblock", + "/setblock", + "/minecraft:setidletimeout", + "/setidletimeout", + "/minecraft:setworldspawn", + "/setworldspawn", + "/minecraft:spawnpoint", + "/spawnpoint", + "/minecraft:spectate", + "/spectate", + "/minecraft:tag", + "/tag", + "/minecraft:team", + "/team", + "/minecraft:teammsg", + "/teammsg", + "/minecraft:teleport", + "/teleport", + "/minecraft:tellraw", + "/tellraw", + "/minecraft:tick", + "/tick", + "/minecraft:time", + "/time", + "/minecraft:title", + "/title", + "/minecraft:tm", + "/tm", + "/minecraft:tp", + "/tp", + "/minecraft:transfer", + "/transfer", + "/minecraft:trigger", + "/trigger", + "/minecraft:weather", + "/weather", + "/minecraft:whitelist", + "/whitelist", + "/minecraft:worldborder", + "/worldborder", + "/minecraft:xp", + "/xp", + "/icanhasbukkit" + )); + @EventHandler + public void onPlayerCommandPreproccess(PlayerCommandPreprocessEvent event) { + Player player = event.getPlayer(); + String message = event.getMessage(); + + if (!player.isOp()) { + for (String blockedCommand : blockedCommands) { + if (message.matches(blockedCommand)) { + event.setCancelled(true); + player.sendMessage(MiniMessage.miniMessage().deserialize("Unkown or incomplete command, see below for error\n%s<--[HERE]".formatted(blockedCommand))); + return; + } + } + } + } +}