use of com.laytonsmith.abstraction.MCCommandSender in project CommandHelper by EngineHub.
the class CommandHelperPlugin method onTabComplete.
@Override
public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
MCCommandSender mcsender = BukkitConvertor.BukkitGetCorrectSender(sender);
MCCommand cmd = new BukkitMCCommand(command);
return cmd.handleTabComplete(mcsender, alias, args);
}
use of com.laytonsmith.abstraction.MCCommandSender in project CommandHelper by EngineHub.
the class Static method GetPlayer.
/**
* Returns the player specified by name. Injected players also are returned in this list. If provided a string
* between 1 and 16 characters, the lookup will be name-based. If provided a string that is 32 or 36 characters, the
* lookup will be uuid-based.
*
* @param player
* @param t
* @return
* @throws ConfigRuntimeException
*/
public static MCPlayer GetPlayer(String player, Target t) throws ConfigRuntimeException {
MCCommandSender m;
if (player == null) {
throw new CREPlayerOfflineException("No player was specified!", t);
}
if (player.length() > 0 && player.length() <= 16) {
m = GetCommandSender(player, t);
} else {
try {
m = getServer().getPlayer(GetUUID(player, t));
} catch (ConfigRuntimeException cre) {
if (cre instanceof CRELengthException) {
throw new CRELengthException("The given string was the wrong size to identify a player." + " A player name is expected to be between 1 and 16 characters. " + cre.getMessage(), t);
} else {
throw cre;
}
}
}
if (m == null) {
throw new CREPlayerOfflineException("The specified player (" + player + ") is not online", t);
}
if (!(m instanceof MCPlayer)) {
throw new CREPlayerOfflineException("Expecting a player name, but \"" + player + "\" was found.", t);
}
MCPlayer p = (MCPlayer) m;
if (!p.isOnline()) {
throw new CREPlayerOfflineException("The specified player (" + player + ") is not online", t);
}
return p;
}
use of com.laytonsmith.abstraction.MCCommandSender in project CommandHelper by EngineHub.
the class CommandHelperServerListener method onServerCommand.
@EventHandler(priority = EventPriority.LOWEST)
public void onServerCommand(ServerCommandEvent event) {
// Select the proper CommandSender wrapper.
MCCommandSender sender;
if (event.getSender() instanceof ConsoleCommandSender) {
// Console.
sender = new BukkitMCConsoleCommandSender((ConsoleCommandSender) event.getSender());
} else if (event.getSender() instanceof BlockCommandSender) {
// Commandblock blocks.
sender = new BukkitMCBlockCommandSender((BlockCommandSender) event.getSender());
} else if (event.getSender() instanceof CommandMinecart) {
// Commandblock minecarts.
sender = new BukkitMCCommandMinecart((CommandMinecart) event.getSender());
} else {
// other CommandSenders.
sender = new BukkitMCCommandSender(event.getSender());
}
BukkitMiscEvents.BukkitMCServerCommandEvent cce = new BukkitMiscEvents.BukkitMCServerCommandEvent(event, sender);
EventUtils.TriggerListener(Driver.SERVER_COMMAND, "server_command", cce);
try {
if (event.isCancelled()) {
return;
}
} catch (NoSuchMethodError ex) {
// not cancellable before 1.8.8
}
boolean match = false;
try {
match = Static.getAliasCore().alias("/" + event.getCommand(), sender);
} catch (InternalException e) {
Static.getLogger().log(Level.SEVERE, e.getMessage());
} catch (ConfigRuntimeException e) {
Static.getLogger().log(Level.WARNING, e.getMessage());
} catch (Throwable e) {
sender.sendMessage(MCChatColor.RED + "Command failed with following reason: " + e.getMessage());
// Obviously the command is registered, but it somehow failed. Cancel the event.
e.printStackTrace();
return;
}
// commandhelper null, which just returns true.
if (match) {
event.setCommand("commandhelper null");
}
}
Aggregations