mirror of
https://github.com/Freezy-Studios/BlazeSMP.git
synced 2025-04-21 20:54:04 +02:00
Blocked tabcomplete for some commands!
Fixed message bug!
This commit is contained in:
parent
45aaed9112
commit
8fe081424f
2 changed files with 212 additions and 182 deletions
|
@ -1,5 +1,6 @@
|
||||||
package me.freezy.plugins.papermc.blazesmp.listener;
|
package me.freezy.plugins.papermc.blazesmp.listener;
|
||||||
|
|
||||||
|
import com.destroystokyo.paper.event.server.AsyncTabCompleteEvent;
|
||||||
import net.kyori.adventure.text.minimessage.MiniMessage;
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
@ -8,10 +9,10 @@ import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.List;
|
import java.util.Set;
|
||||||
|
|
||||||
public class PlayerCommandBlockerListener implements Listener {
|
public class PlayerCommandBlockerListener implements Listener {
|
||||||
private final LinkedHashSet<String> blockedCommands = new LinkedHashSet<>(Arrays.asList(
|
private final Set<String> blockedCommands = new LinkedHashSet<>(Arrays.asList(
|
||||||
"/bukkit:?",
|
"/bukkit:?",
|
||||||
"/?",
|
"/?",
|
||||||
"/bukkit:about",
|
"/bukkit:about",
|
||||||
|
@ -182,19 +183,45 @@ public class PlayerCommandBlockerListener implements Listener {
|
||||||
"/xp",
|
"/xp",
|
||||||
"/icanhasbukkit"
|
"/icanhasbukkit"
|
||||||
));
|
));
|
||||||
@EventHandler
|
|
||||||
public void onPlayerCommandPreproccess(PlayerCommandPreprocessEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
String message = event.getMessage();
|
|
||||||
|
|
||||||
if (!player.isOp()) {
|
private boolean isBlocked(String input) {
|
||||||
for (String blockedCommand : blockedCommands) {
|
String normalized = input.toLowerCase().trim();
|
||||||
if (message.matches(blockedCommand)) {
|
for (String blocked : blockedCommands) {
|
||||||
|
blocked = blocked.toLowerCase().trim();
|
||||||
|
if (normalized.equals(blocked) || normalized.startsWith(blocked + " ")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
if (player.isOp()) return; // OPs werden nicht blockiert
|
||||||
|
|
||||||
|
String message = event.getMessage();
|
||||||
|
if (isBlocked(message)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
player.sendMessage(MiniMessage.miniMessage().deserialize("<red>Unkown or incomplete command, see below for error\n<u>%s</u><i><--[HERE]</i>".formatted(blockedCommand)));
|
// Zeige den blockierten Befehl als Hinweis (hier der erste Teil der Nachricht)
|
||||||
return;
|
String blockedPart = message.split(" ")[0];
|
||||||
|
player.sendMessage(MiniMessage.miniMessage().deserialize(
|
||||||
|
"<red>Unknown or incomplete command, see below for error\n<u>" + blockedPart + "</u><i> <--[HERE]</i>"
|
||||||
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onTabComplete(AsyncTabCompleteEvent event) {
|
||||||
|
Player player = (Player) event.getSender();
|
||||||
|
if (player.isOp()) return; // OPs erhalten weiterhin Tab-Vorschläge
|
||||||
|
|
||||||
|
String buffer = event.getBuffer();
|
||||||
|
if (isBlocked(buffer)) {
|
||||||
|
// Alle Tab-Vorschläge entfernen und das Event abbrechen,
|
||||||
|
// wenn der eingegebene Befehl blockiert ist.
|
||||||
|
event.getCompletions().clear();
|
||||||
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package me.freezy.plugins.papermc.blazesmp.listener;
|
package me.freezy.plugins.papermc.blazesmp.listener;
|
||||||
|
|
||||||
import me.freezy.plugins.papermc.blazesmp.manager.PlayerManager;
|
import me.freezy.plugins.papermc.blazesmp.manager.PlayerManager;
|
||||||
|
import net.kyori.adventure.text.minimessage.MiniMessage;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
@ -11,5 +12,7 @@ public class PlayerJoinListener implements Listener {
|
||||||
public void onJoin(PlayerJoinEvent event) {
|
public void onJoin(PlayerJoinEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
new PlayerManager().setPlayerTeam(player);
|
new PlayerManager().setPlayerTeam(player);
|
||||||
|
|
||||||
|
event.joinMessage(MiniMessage.miniMessage().deserialize("<gray>[<green>+</green>]</gray> <reset>").append(player.teamDisplayName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue