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
commit00cf51e07980d780052201790ac5a79592eeedf6 (patch)
tree4e4e2468e1737597a059f1d298aefa8c7e66b1a1
parent39a4a363f667b511a4538d5dabee697600b22478 (diff)
downloadEssentials-00cf51e07980d780052201790ac5a79592eeedf6.tar
Essentials-00cf51e07980d780052201790ac5a79592eeedf6.tar.gz
Essentials-00cf51e07980d780052201790ac5a79592eeedf6.tar.lz
Essentials-00cf51e07980d780052201790ac5a79592eeedf6.tar.xz
Essentials-00cf51e07980d780052201790ac5a79592eeedf6.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