diff options
author | snowleo <schneeleo@gmail.com> | 2011-11-18 01:01:05 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2011-11-18 01:01:05 +0100 |
commit | 603d23659b53be3a5b06e833f68ec7d14984e71d (patch) | |
tree | 22c08fa9ac500c6696cc22767e4a4ba30866aff8 | |
parent | 41c03853ab5774a24722bf0446a21c5e9678eeb8 (diff) | |
download | Essentials-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.java | 42 |
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 |