summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2011-11-18 01:01:05 +0100
committersnowleo <schneeleo@gmail.com>2011-11-18 01:01:05 +0100
commit603d23659b53be3a5b06e833f68ec7d14984e71d (patch)
tree22c08fa9ac500c6696cc22767e4a4ba30866aff8
parent41c03853ab5774a24722bf0446a21c5e9678eeb8 (diff)
downloadEssentials-603d23659b53be3a5b06e833f68ec7d14984e71d.tar
Essentials-603d23659b53be3a5b06e833f68ec7d14984e71d.tar.gz
Essentials-603d23659b53be3a5b06e833f68ec7d14984e71d.tar.lz
Essentials-603d23659b53be3a5b06e833f68ec7d14984e71d.tar.xz
Essentials-603d23659b53be3a5b06e833f68ec7d14984e71d.zip
Check for other plugin aliases and run them instead.
-rw-r--r--Essentials/src/com/earth2me/essentials/Essentials.java42
1 files changed, 41 insertions, 1 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java
index 392321f9f..21628629b 100644
--- a/Essentials/src/com/earth2me/essentials/Essentials.java
+++ b/Essentials/src/com/earth2me/essentials/Essentials.java
@@ -36,6 +36,7 @@ import com.earth2me.essentials.signs.SignPlayerListener;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.bukkit.command.PluginCommand;
+import org.bukkit.command.PluginCommandYamlParser;
import org.bukkit.entity.Player;
import org.bukkit.event.Event.Priority;
import org.bukkit.event.Event.Type;
@@ -383,12 +384,51 @@ public class Essentials extends JavaPlugin implements IEssentials
continue;
}
- final PluginCommand pc = getServer().getPluginCommand(desc.getName() + ":" + commandLabel);
+ final PluginCommand pc = getServer().getPluginCommand(desc.getName().toLowerCase() + ":" + commandLabel);
if (pc != null)
{
+ LOGGER.info("Essentials: Alternative command " + commandLabel + " found, using " + desc.getName().toLowerCase() + ":" + commandLabel);
return pc.execute(sender, commandLabel, args);
}
}
+ for (Plugin p : getServer().getPluginManager().getPlugins())
+ {
+ if (p.getDescription().getMain().contains("com.earth2me.essentials"))
+ {
+ continue;
+ }
+ final List<Command> commands = PluginCommandYamlParser.parse(p);
+ for (Command c : commands)
+ {
+ if (c.getAliases().contains(commandLabel))
+ {
+ final PluginDescriptionFile desc = p.getDescription();
+ if (desc == null)
+ {
+ continue;
+ }
+
+ if (desc.getName() == null)
+ {
+ continue;
+ }
+
+ final PluginCommand pc = getServer().getPluginCommand(desc.getName().toLowerCase() + ":" + c.getName().toLowerCase());
+ if (pc != null)
+ {
+ LOGGER.info("Essentials: Alternative alias " + commandLabel + " found, using " + desc.getName().toLowerCase() + ":" + c.getName().toLowerCase());
+ return pc.execute(sender, commandLabel, args);
+ }
+
+ final PluginCommand pc2 = getServer().getPluginCommand(c.getName().toLowerCase());
+ if (pc2 != null)
+ {
+ LOGGER.info("Essentials: Alternative alias " + commandLabel + " found, using " + c.getName().toLowerCase());
+ return pc2.execute(sender, commandLabel, args);
+ }
+ }
+ }
+ }
}
try