From 1bd454082e97366bf602bfb53789b00bf291f4f8 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 18 Mar 2016 00:29:35 -0400 Subject: [PATCH] Add sender name to commands.yml replacement This allows you to use $sender in commands.yml definitions to make commands that auto target self. --- ...der-name-to-commands.yml-replacement.patch | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 Spigot-API-Patches/0025-Add-sender-name-to-commands.yml-replacement.patch diff --git a/Spigot-API-Patches/0025-Add-sender-name-to-commands.yml-replacement.patch b/Spigot-API-Patches/0025-Add-sender-name-to-commands.yml-replacement.patch new file mode 100644 index 0000000000..f81e32ca77 --- /dev/null +++ b/Spigot-API-Patches/0025-Add-sender-name-to-commands.yml-replacement.patch @@ -0,0 +1,45 @@ +From 69a33cc93b8fdb90057a7cb3a82fddfe61074033 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Wed, 22 Jul 2015 18:50:41 -0400 +Subject: [PATCH] Add sender name to commands.yml replacement + +This allows you to use $sender in commands.yml definitions to make +commands that auto target self. + +diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java +index f89ad07..a3e9c63 100644 +--- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java ++++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java +@@ -2,6 +2,8 @@ package org.bukkit.command; + + import java.util.ArrayList; + import java.util.logging.Level; ++import java.util.regex.Matcher; ++import java.util.regex.Pattern; + + import org.bukkit.Bukkit; + import org.bukkit.entity.Player; +@@ -24,7 +26,7 @@ public class FormattedCommandAlias extends Command { + ArrayList commands = new ArrayList(); + for (String formatString : formatStrings) { + try { +- commands.add(buildCommand(formatString, args)); ++ commands.add(buildCommand(sender, formatString, args)); // Paper + } catch (Throwable throwable) { + if (throwable instanceof IllegalArgumentException) { + sender.sendMessage(throwable.getMessage()); +@@ -42,7 +44,10 @@ public class FormattedCommandAlias extends Command { + return result; + } + +- private String buildCommand(String formatString, String[] args) { ++ private String buildCommand(CommandSender sender, String formatString, String[] args) { // Paper ++ if (formatString.contains("$sender")) { // Paper ++ formatString = formatString.replaceAll(Pattern.quote("$sender"), Matcher.quoteReplacement(sender.getName())); // Paper ++ } // Paper + int index = formatString.indexOf("$"); + while (index != -1) { + int start = index; +-- +2.7.3 +