Skip to content

Commit b3f068d

Browse files
Port ExprCommandInfo
1 parent c3ee50e commit b3f068d

10 files changed

Lines changed: 255 additions & 192 deletions

File tree

src/main/java/ch/njol/skript/expressions/ExprCommandInfo.java

Lines changed: 0 additions & 182 deletions
This file was deleted.

src/main/java/ch/njol/skript/util/Patterns.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,23 @@ public Patterns(Object[][] info) {
4040
}
4141
}
4242

43+
/**
44+
* Creates a new {@link Patterns} with the provided paired inputs.
45+
* @param info Pattern-Value pairs, for example:
46+
* <code>
47+
* new Patterns("pattern1", value1, "pattern2", value2);
48+
* </code>
49+
*/
50+
public Patterns(Object... info) {
51+
patterns = new String[info.length / 2];
52+
types = new Object[info.length / 2];
53+
for (int i = 0; i < info.length; i += 2) {
54+
patterns[i / 2] = (String) info[i];
55+
types[i / 2] = info[i + 1];
56+
matchedPatterns.computeIfAbsent(info[i + 1], list -> new ArrayList<>()).add(i / 2);
57+
}
58+
}
59+
4360
/**
4461
* Returns an array of the registered patterns.
4562
* @return An {@link java.lang.reflect.Array} of {@link String}s.

src/main/java/org/skriptlang/skript/bukkit/command/CommandModule.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.skriptlang.skript.bukkit.command.elements.effects.EffCancelCooldown;
99
import org.skriptlang.skript.bukkit.command.elements.expressions.ExprArgument;
1010
import org.skriptlang.skript.bukkit.command.elements.expressions.ExprCmdCooldownInfo;
11+
import org.skriptlang.skript.bukkit.command.elements.expressions.ExprCommandInfo;
1112
import org.skriptlang.skript.bukkit.command.elements.structures.StructCommand;
1213

1314
public class CommandModule extends HierarchicalAddonModule {
@@ -24,6 +25,7 @@ protected void loadSelf(SkriptAddon addon) {
2425
EffCancelCooldown::register,
2526
ExprArgument::register,
2627
ExprCmdCooldownInfo::register,
28+
ExprCommandInfo::register,
2729
syntaxRegistry -> StructCommand.register(addon, syntaxRegistry)
2830
);
2931
}

src/main/java/org/skriptlang/skript/bukkit/command/custom/ScriptBrigadierCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@ public record ScriptBrigadierCommand(
2121
Collection<String> aliases,
2222
@Nullable String description,
2323
@Nullable String usage,
24-
@Nullable String namespace
24+
@Nullable String namespace,
25+
@Nullable String permission
2526
) { }

src/main/java/org/skriptlang/skript/bukkit/command/custom/ScriptCommandEvent.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,22 @@
1313
*/
1414
public class ScriptCommandEvent extends Event {
1515

16+
private final String label;
1617
private final CommandSender sender;
1718
private final ScriptCommandExecutor executor;
1819

1920
final Map<String, Object> arguments = new HashMap<>();
2021

21-
public ScriptCommandEvent(CommandSender sender, ScriptCommandExecutor executor) {
22+
public ScriptCommandEvent(String label, CommandSender sender, ScriptCommandExecutor executor) {
23+
this.label = label;
2224
this.sender = sender;
2325
this.executor = executor;
2426
}
2527

28+
public String getLabel() {
29+
return label;
30+
}
31+
2632
public CommandSender getSender() {
2733
return sender;
2834
}

src/main/java/org/skriptlang/skript/bukkit/command/custom/ScriptCommandExecutor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import com.mojang.brigadier.context.CommandContext;
77
import com.mojang.brigadier.exceptions.CommandSyntaxException;
88
import com.mojang.brigadier.tree.ArgumentCommandNode;
9+
import com.mojang.brigadier.tree.LiteralCommandNode;
10+
import com.mojang.brigadier.tree.RootCommandNode;
911
import io.papermc.paper.command.brigadier.CommandSourceStack;
1012
import io.papermc.paper.command.brigadier.argument.resolvers.ArgumentResolver;
1113
import org.bukkit.command.CommandSender;
@@ -53,7 +55,8 @@ public ScriptCommandExecutor(Trigger trigger, List<ArgumentData<?>> arguments, @
5355

5456
public int execute(CommandContext<CommandSourceStack> context) throws CommandSyntaxException {
5557
CommandSender sender = context.getSource().getSender();
56-
ScriptCommandEvent commandEvent = new ScriptCommandEvent(sender, this);
58+
ScriptCommandEvent commandEvent =
59+
new ScriptCommandEvent(context.getNodes().getFirst().getNode().getName(), sender, this);
5760

5861
// final validations
5962
if (cooldownManager != null && !cooldownManager.checkExecution(commandEvent, sender)) {

0 commit comments

Comments
 (0)