diff --git a/src/main/java/ch/njol/skript/command/Commands.java b/src/main/java/ch/njol/skript/command/Commands.java index 3d16ee6d667..1e3711cf9a6 100644 --- a/src/main/java/ch/njol/skript/command/Commands.java +++ b/src/main/java/ch/njol/skript/command/Commands.java @@ -506,10 +506,10 @@ else if (aliases.get(0).isEmpty()) return c; } -// public static boolean skriptCommandExists(final String command) { -// final ScriptCommand c = commands.get(command); -// return c != null && c.getName().equals(command); -// } + public static boolean skriptCommandExists(final String command) { + final ScriptCommand c = commands.get(command); + return c != null && c.getName().equals(command); + } public static void registerCommand(final ScriptCommand command) { // Validate that there are no duplicates diff --git a/src/main/java/ch/njol/skript/conditions/CondIsSkriptCommand.java b/src/main/java/ch/njol/skript/conditions/CondIsSkriptCommand.java new file mode 100644 index 00000000000..380cabb18a9 --- /dev/null +++ b/src/main/java/ch/njol/skript/conditions/CondIsSkriptCommand.java @@ -0,0 +1,55 @@ +/** + * This file is part of Skript. + * + * Skript is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Skript is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Skript. If not, see . + * + * Copyright Peter Güttinger, SkriptLang team and contributors + */ +package ch.njol.skript.conditions; + +import static ch.njol.skript.command.Commands.skriptCommandExists; + +import ch.njol.skript.conditions.base.PropertyCondition; +import ch.njol.skript.doc.Description; +import ch.njol.skript.doc.Examples; +import ch.njol.skript.doc.Name; +import ch.njol.skript.doc.Since; + +@Name("Is a Skript command") +@Description("Checks whether a command/string is a custom Skript command.") +@Examples( + {"# Example 1", + "on command:", + "\tcommand is a skript command", + "", + "# Example 2", + "\"sometext\" is a skript command"}) +@Since("INSERT VERSION") +public class CondIsSkriptCommand extends PropertyCondition { + + static { + register(CondIsSkriptCommand.class, PropertyType.BE, "[a] s(k|c)ript (command|cmd)", "string"); + } + + @Override + public boolean check(String cmd) { + return skriptCommandExists(cmd); + } + + @Override + protected String getPropertyName() { + return "skript command"; + } + +} diff --git a/src/main/java/ch/njol/skript/events/EvtCommand.java b/src/main/java/ch/njol/skript/events/EvtCommand.java index 2848dc24008..67fb0335aa2 100644 --- a/src/main/java/ch/njol/skript/events/EvtCommand.java +++ b/src/main/java/ch/njol/skript/events/EvtCommand.java @@ -37,7 +37,7 @@ public class EvtCommand extends SkriptEvent { // TODO condition to check whether a given command exists, & a conditon to check whether it's a custom skript command static { Skript.registerEvent("Command", EvtCommand.class, CollectionUtils.array(PlayerCommandPreprocessEvent.class, ServerCommandEvent.class), "command [%-string%]") - .description("Called when a player enters a command (not neccessarily a Skript command).") + .description("Called when a player enters a command (not necessarily a Skript command) but you can check if command is a skript command, see Is a Skript command condition.") .examples("on command:", "on command \"/stop\":", "on command \"pm Njol \":") .since("2.0"); }