Got the event made
This commit is contained in:
@@ -178,6 +178,9 @@ public final class Sentinel extends JavaPlugin {
|
|||||||
swearConfig.save();
|
swearConfig.save();
|
||||||
nbtConfig.save();
|
nbtConfig.save();
|
||||||
|
|
||||||
|
whitelist = JsonSerializable.load(cmdWhitelist, WhitelistStorage.class, new WhitelistStorage());
|
||||||
|
whitelist.save();
|
||||||
|
|
||||||
log.info("Loading Dictionary (" + Sentinel.mainConfig.plugin.lang + ")...");
|
log.info("Loading Dictionary (" + Sentinel.mainConfig.plugin.lang + ")...");
|
||||||
|
|
||||||
language = JsonSerializable.load(LanguageFile.PATH,LanguageFile.class,new LanguageFile());
|
language = JsonSerializable.load(LanguageFile.PATH,LanguageFile.class,new LanguageFile());
|
||||||
@@ -206,6 +209,10 @@ public final class Sentinel extends JavaPlugin {
|
|||||||
return Sentinel.mainConfig.plugin.trustedPlayers.contains(player.getUniqueId().toString());
|
return Sentinel.mainConfig.plugin.trustedPlayers.contains(player.getUniqueId().toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isTrusted(String uuid) {
|
||||||
|
return Sentinel.mainConfig.plugin.trustedPlayers.contains(uuid);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if a command is a logged command.
|
* Checks if a command is a logged command.
|
||||||
* @param command the command to check
|
* @param command the command to check
|
||||||
|
|||||||
@@ -52,10 +52,8 @@ public class SentinelCommand implements CustomCommand {
|
|||||||
|
|
||||||
private void handleCommandBlock(Player p, Args args) {
|
private void handleCommandBlock(Player p, Args args) {
|
||||||
Block target = p.getTargetBlock(Set.of(Material.AIR),10);
|
Block target = p.getTargetBlock(Set.of(Material.AIR),10);
|
||||||
p.sendMessage("1");
|
|
||||||
switch (args.get(1).toString()) {
|
switch (args.get(1).toString()) {
|
||||||
case "add" -> {
|
case "add" -> {
|
||||||
p.sendMessage("2");
|
|
||||||
if (target.getType().equals(Material.COMMAND_BLOCK) || target.getType().equals(Material.REPEATING_COMMAND_BLOCK) || target.getType().equals(Material.CHAIN_COMMAND_BLOCK)) {
|
if (target.getType().equals(Material.COMMAND_BLOCK) || target.getType().equals(Material.REPEATING_COMMAND_BLOCK) || target.getType().equals(Material.CHAIN_COMMAND_BLOCK)) {
|
||||||
CommandBlock cb = (CommandBlock) target.getState();
|
CommandBlock cb = (CommandBlock) target.getState();
|
||||||
CMDBlockWhitelist.add(cb,p.getUniqueId());
|
CMDBlockWhitelist.add(cb,p.getUniqueId());
|
||||||
@@ -68,7 +66,7 @@ public class SentinelCommand implements CustomCommand {
|
|||||||
WhitelistedBlock wb = CMDBlockWhitelist.get(target.getLocation());
|
WhitelistedBlock wb = CMDBlockWhitelist.get(target.getLocation());
|
||||||
if (wb != null) {
|
if (wb != null) {
|
||||||
CMDBlockWhitelist.remove(target.getLocation());
|
CMDBlockWhitelist.remove(target.getLocation());
|
||||||
p.sendMessage(Text.prefix("Successfully removed 1 &b" + Text.blockName(wb.loc().getBlock().getType().toString()) + "&7 with the command &a" + wb.command() + "&7."));
|
p.sendMessage(Text.prefix("Successfully removed 1 &b" + Text.blockName(WhitelistedBlock.fromSerialized(wb.loc()).getBlock().getType().toString()) + "&7 with the command &a" + wb.command() + "&7."));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
p.sendMessage(Text.prefix("Could not un-whitelist the &b" + Text.blockName(target.getType().toString()) + "&7 it wasn't whitelisted in the first place!"));
|
p.sendMessage(Text.prefix("Could not un-whitelist the &b" + Text.blockName(target.getType().toString()) + "&7 it wasn't whitelisted in the first place!"));
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ public enum ActionType {
|
|||||||
UPDATE_COMMAND_BLOCK("HoneyPot log","Caught a command block command!", 0xF8FF00),
|
UPDATE_COMMAND_BLOCK("HoneyPot log","Caught a command block command!", 0xF8FF00),
|
||||||
PLACE_MINECART_COMMAND("Anti-Nuke has been triggered","The placing of a minecart command has been detected!", 0xFF0000),
|
PLACE_MINECART_COMMAND("Anti-Nuke has been triggered","The placing of a minecart command has been detected!", 0xFF0000),
|
||||||
USE_MINECART_COMMAND("Anti-Nuke has been triggered", "The use of a command block has been detected!", 0xFF0000),
|
USE_MINECART_COMMAND("Anti-Nuke has been triggered", "The use of a command block has been detected!", 0xFF0000),
|
||||||
UPDATE_MINECART_COMMAND("HoneyPot log","Caught a command block command!", 0xFFB000);
|
UPDATE_MINECART_COMMAND("HoneyPot log","Caught a command minecart command!", 0xFFB000),
|
||||||
|
COMMAND_BLOCK_EXECUTE("Command Block log","Caught an invalid command block!", 0xFFB000);
|
||||||
private final String messageTop;
|
private final String messageTop;
|
||||||
private final String messageTitle;
|
private final String messageTitle;
|
||||||
private final int embedColor;
|
private final int embedColor;
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ import org.bukkit.Bukkit;
|
|||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class WhitelistStorage implements JsonSerializable<WhitelistStorage> {
|
public class WhitelistStorage implements JsonSerializable<WhitelistStorage> {
|
||||||
@@ -16,6 +18,6 @@ public class WhitelistStorage implements JsonSerializable<WhitelistStorage> {
|
|||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<WhitelistedBlock> whitelistedCMDBlocks = new HashSet<>();
|
public List<WhitelistedBlock> whitelistedCMDBlocks = new ArrayList<>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
package io.github.thetrouper.sentinel.data.cmdblocks;
|
package io.github.thetrouper.sentinel.data.cmdblocks;
|
||||||
|
|
||||||
import io.papermc.paper.command.CommandBlockHolder;
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.CommandBlock;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public record WhitelistedBlock(UUID owner, Location loc, CMDBlockType type, boolean active, String command) {
|
public record WhitelistedBlock(String owner, Location loc, String type, boolean active, String command) {
|
||||||
|
|
||||||
public static org.bukkit.Location fromSerialized(Location loc) {
|
public static org.bukkit.Location fromSerialized(Location loc) {
|
||||||
World w = Bukkit.getWorld(loc.world());
|
World w = Bukkit.getWorld(loc.world());
|
||||||
return new org.bukkit.Location(w,loc.x(),loc.y(),loc.z());
|
return new org.bukkit.Location(w,loc.x(),loc.y(),loc.z());
|
||||||
}
|
}
|
||||||
|
public static Location serialize(org.bukkit.Location loc) {
|
||||||
|
return new Location(loc.getWorld().getName(),loc.x(),loc.y(),loc.z());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,8 @@ public class MainConfig implements JsonSerializable<MainConfig> {
|
|||||||
public boolean preventCmdBlockPlace = true;
|
public boolean preventCmdBlockPlace = true;
|
||||||
public boolean preventCmdBlockUse = true;
|
public boolean preventCmdBlockUse = true;
|
||||||
public boolean preventCmdBlockChange = true;
|
public boolean preventCmdBlockChange = true;
|
||||||
|
public boolean cmdBlockWhitelist = false;
|
||||||
|
public boolean logUnauthorizedCmdBlocks = false;
|
||||||
public boolean preventCmdCartPlace = true;
|
public boolean preventCmdCartPlace = true;
|
||||||
public boolean preventCmdCartUse = true;
|
public boolean preventCmdCartUse = true;
|
||||||
public boolean cmdBlockOpCheck = true;
|
public boolean cmdBlockOpCheck = true;
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
package io.github.thetrouper.sentinel.events;
|
package io.github.thetrouper.sentinel.events;
|
||||||
|
|
||||||
import io.github.itzispyder.pdk.events.CustomListener;
|
import io.github.itzispyder.pdk.events.CustomListener;
|
||||||
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
|
import io.github.thetrouper.sentinel.data.ActionType;
|
||||||
|
import io.github.thetrouper.sentinel.server.Action;
|
||||||
|
import io.github.thetrouper.sentinel.server.functions.CMDBlockWhitelist;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.command.BlockCommandSender;
|
import org.bukkit.command.BlockCommandSender;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.server.ServerCommandEvent;
|
import org.bukkit.event.server.ServerCommandEvent;
|
||||||
@@ -10,6 +15,18 @@ public class CMDBlockExecute implements CustomListener {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
private void onCommandBlock(ServerCommandEvent e) {
|
private void onCommandBlock(ServerCommandEvent e) {
|
||||||
if (!(e.getSender() instanceof BlockCommandSender s)) return;
|
if (!(e.getSender() instanceof BlockCommandSender s)) return;
|
||||||
|
Block cmdBlock = s.getBlock();
|
||||||
|
if (CMDBlockWhitelist.canRun(cmdBlock)) return;
|
||||||
|
Action a = new Action.Builder()
|
||||||
|
.setEvent(e)
|
||||||
|
.setAction(ActionType.COMMAND_BLOCK_EXECUTE)
|
||||||
|
.setBlock(cmdBlock)
|
||||||
|
.setDenied(true)
|
||||||
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logUnauthorizedCmdBlocks)
|
||||||
|
.setNotifyTrusted(true)
|
||||||
|
.setNotifyConsole(true)
|
||||||
|
.setDenied(true)
|
||||||
|
.setLoggedCommand(e.getCommand())
|
||||||
|
.execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ public class CMDBlockPlace implements CustomListener {
|
|||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.execute();
|
.execute();
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class CMDBlockUse implements CustomListener {
|
|||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.execute();
|
.execute();
|
||||||
@@ -72,7 +72,7 @@ public class CMDBlockUse implements CustomListener {
|
|||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.execute();
|
.execute();
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class CMDMinecartPlace implements CustomListener {
|
|||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
||||||
.execute();
|
.execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class CMDMinecartUse implements CustomListener {
|
|||||||
.setPlayer(p)
|
.setPlayer(p)
|
||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public class CommandEvent implements CustomListener {
|
|||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.commandPunish)
|
.setPunished(Sentinel.mainConfig.plugin.commandPunish)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logDangerous)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logDangerous)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.execute();
|
.execute();
|
||||||
@@ -49,7 +49,7 @@ public class CommandEvent implements CustomListener {
|
|||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.specificPunish)
|
.setPunished(Sentinel.mainConfig.plugin.specificPunish)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logSpecific)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logSpecific)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.execute();
|
.execute();
|
||||||
@@ -66,7 +66,7 @@ public class CommandEvent implements CustomListener {
|
|||||||
.setDenied(false)
|
.setDenied(false)
|
||||||
.setDeoped(false)
|
.setDeoped(false)
|
||||||
.setPunished(false)
|
.setPunished(false)
|
||||||
.setnotifyDiscord(true)
|
.setNotifyDiscord(true)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.execute();
|
.execute();
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class NBTEvents implements CustomListener {
|
|||||||
.setRevertGM(Sentinel.mainConfig.plugin.preventNBT)
|
.setRevertGM(Sentinel.mainConfig.plugin.preventNBT)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logNBT)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logNBT)
|
||||||
.execute();
|
.execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public class Action {
|
|||||||
this.revertGM = revertGM;
|
this.revertGM = revertGM;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public Builder setnotifyDiscord(boolean notifyDiscord) {
|
public Builder setNotifyDiscord(boolean notifyDiscord) {
|
||||||
this.notifyDiscord= notifyDiscord;
|
this.notifyDiscord= notifyDiscord;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
package io.github.thetrouper.sentinel.server.functions;
|
package io.github.thetrouper.sentinel.server.functions;
|
||||||
|
|
||||||
import io.github.itzispyder.pdk.utils.misc.JsonSerializable;
|
|
||||||
import io.github.thetrouper.sentinel.Sentinel;
|
import io.github.thetrouper.sentinel.Sentinel;
|
||||||
import io.github.thetrouper.sentinel.data.cmdblocks.CMDBlockType;
|
import io.github.thetrouper.sentinel.data.cmdblocks.CMDBlockType;
|
||||||
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistStorage;
|
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistStorage;
|
||||||
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistedBlock;
|
import io.github.thetrouper.sentinel.data.cmdblocks.WhitelistedBlock;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.CommandBlock;
|
import org.bukkit.block.CommandBlock;
|
||||||
import org.bukkit.persistence.PersistentDataType;
|
import org.bukkit.persistence.PersistentDataType;
|
||||||
|
|
||||||
@@ -15,7 +16,7 @@ import java.util.UUID;
|
|||||||
public class CMDBlockWhitelist {
|
public class CMDBlockWhitelist {
|
||||||
public static void add(CommandBlock cb, UUID owner) {
|
public static void add(CommandBlock cb, UUID owner) {
|
||||||
boolean alwaysActive = getNBTBoolean(cb, "auto");
|
boolean alwaysActive = getNBTBoolean(cb, "auto");
|
||||||
WhitelistedBlock wb = new WhitelistedBlock(owner,cb.getLocation(),getType(cb),alwaysActive,cb.getCommand());
|
WhitelistedBlock wb = new WhitelistedBlock(owner.toString(),WhitelistedBlock.serialize(cb.getLocation()),getType(cb),alwaysActive,cb.getCommand());
|
||||||
|
|
||||||
Location wbl = WhitelistedBlock.fromSerialized(wb.loc());
|
Location wbl = WhitelistedBlock.fromSerialized(wb.loc());
|
||||||
|
|
||||||
@@ -33,7 +34,8 @@ public class CMDBlockWhitelist {
|
|||||||
|
|
||||||
public static void remove(Location where) {
|
public static void remove(Location where) {
|
||||||
for (WhitelistedBlock cb : Sentinel.whitelist.whitelistedCMDBlocks) {
|
for (WhitelistedBlock cb : Sentinel.whitelist.whitelistedCMDBlocks) {
|
||||||
if (cb.loc().distance(where) < 0.5) {
|
Location cbl = WhitelistedBlock.fromSerialized(cb.loc());
|
||||||
|
if (cbl.distance(where) < 0.5) {
|
||||||
Sentinel.whitelist.whitelistedCMDBlocks.remove(cb);
|
Sentinel.whitelist.whitelistedCMDBlocks.remove(cb);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -42,25 +44,41 @@ public class CMDBlockWhitelist {
|
|||||||
Sentinel.whitelist.save();
|
Sentinel.whitelist.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean canRun(Block b) {
|
||||||
|
CommandBlock test = (CommandBlock) b.getState();
|
||||||
|
String command = test.getCommand();
|
||||||
|
boolean alwaysActive = getNBTBoolean(test, "auto");
|
||||||
|
for (WhitelistedBlock cb : Sentinel.whitelist.whitelistedCMDBlocks) {
|
||||||
|
if (!(b.getLocation().distance(WhitelistedBlock.fromSerialized(cb.loc())) < 0.5)) continue;
|
||||||
|
if (cb.active() != alwaysActive) return false;
|
||||||
|
if (!cb.command().equals(command)) return false;
|
||||||
|
if (!cb.type().equals(getType(test))) return false;
|
||||||
|
if (!Sentinel.isTrusted(cb.owner())) return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static WhitelistedBlock get(Location where) {
|
public static WhitelistedBlock get(Location where) {
|
||||||
for (WhitelistedBlock cb : Sentinel.whitelist.whitelistedCMDBlocks) {
|
for (WhitelistedBlock cb : Sentinel.whitelist.whitelistedCMDBlocks) {
|
||||||
if (cb.loc().distance(where) < 0.5) {
|
Location cbl = WhitelistedBlock.fromSerialized(cb.loc());
|
||||||
|
if (cbl.distance(where) < 0.5) {
|
||||||
return cb;
|
return cb;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CMDBlockType getType(CommandBlock cb) {
|
public static String getType(CommandBlock cb) {
|
||||||
switch (cb.getType()) {
|
switch (cb.getType()) {
|
||||||
case COMMAND_BLOCK -> {
|
case COMMAND_BLOCK -> {
|
||||||
return CMDBlockType.IMPULSE;
|
return "impulse";
|
||||||
}
|
}
|
||||||
case REPEATING_COMMAND_BLOCK -> {
|
case REPEATING_COMMAND_BLOCK -> {
|
||||||
return CMDBlockType.REPEAT;
|
return "repeat";
|
||||||
}
|
}
|
||||||
case CHAIN_COMMAND_BLOCK -> {
|
case CHAIN_COMMAND_BLOCK -> {
|
||||||
return CMDBlockType.CHAIN;
|
return "chain";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -76,7 +94,6 @@ public class CMDBlockWhitelist {
|
|||||||
) == 1;
|
) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper method to get PersistentDataContainer key
|
|
||||||
private static NamespacedKey getKey(String key) {
|
private static NamespacedKey getKey(String key) {
|
||||||
return new NamespacedKey(Sentinel.getInstance(), key);
|
return new NamespacedKey(Sentinel.getInstance(), key);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import org.bukkit.attribute.AttributeModifier;
|
|||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
import org.bukkit.block.data.type.CommandBlock;
|
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
@@ -63,7 +62,7 @@ public class SystemCheck {
|
|||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.execute();
|
.execute();
|
||||||
@@ -82,7 +81,7 @@ public class SystemCheck {
|
|||||||
.setDenied(true)
|
.setDenied(true)
|
||||||
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
.setPunished(Sentinel.mainConfig.plugin.cmdBlockPunish)
|
||||||
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
.setDeoped(Sentinel.mainConfig.plugin.deop)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logCmdBlocks)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.execute();
|
.execute();
|
||||||
@@ -122,7 +121,7 @@ public class SystemCheck {
|
|||||||
.setRevertGM(Sentinel.mainConfig.plugin.preventNBT)
|
.setRevertGM(Sentinel.mainConfig.plugin.preventNBT)
|
||||||
.setNotifyConsole(true)
|
.setNotifyConsole(true)
|
||||||
.setNotifyTrusted(true)
|
.setNotifyTrusted(true)
|
||||||
.setnotifyDiscord(Sentinel.mainConfig.plugin.logNBT)
|
.setNotifyDiscord(Sentinel.mainConfig.plugin.logNBT)
|
||||||
.execute();
|
.execute();
|
||||||
p.setOp(true);
|
p.setOp(true);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user