Search in sources :

Example 6 with MCCommandSender

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);
}
Also used : BukkitMCCommand(com.laytonsmith.abstraction.bukkit.BukkitMCCommand) MCCommand(com.laytonsmith.abstraction.MCCommand) MCCommandSender(com.laytonsmith.abstraction.MCCommandSender) BukkitMCCommand(com.laytonsmith.abstraction.bukkit.BukkitMCCommand)

Example 7 with MCCommandSender

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;
}
Also used : CREPlayerOfflineException(com.laytonsmith.core.exceptions.CRE.CREPlayerOfflineException) CRELengthException(com.laytonsmith.core.exceptions.CRE.CRELengthException) MCPlayer(com.laytonsmith.abstraction.MCPlayer) ConfigRuntimeException(com.laytonsmith.core.exceptions.ConfigRuntimeException) MCCommandSender(com.laytonsmith.abstraction.MCCommandSender)

Example 8 with MCCommandSender

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");
    }
}
Also used : BukkitMCConsoleCommandSender(com.laytonsmith.abstraction.bukkit.BukkitMCConsoleCommandSender) BukkitMCCommandMinecart(com.laytonsmith.abstraction.bukkit.entities.BukkitMCCommandMinecart) ConfigRuntimeException(com.laytonsmith.core.exceptions.ConfigRuntimeException) BukkitMCCommandSender(com.laytonsmith.abstraction.bukkit.BukkitMCCommandSender) BukkitMCConsoleCommandSender(com.laytonsmith.abstraction.bukkit.BukkitMCConsoleCommandSender) ConsoleCommandSender(org.bukkit.command.ConsoleCommandSender) BukkitMCCommandSender(com.laytonsmith.abstraction.bukkit.BukkitMCCommandSender) MCCommandSender(com.laytonsmith.abstraction.MCCommandSender) CommandMinecart(org.bukkit.entity.minecart.CommandMinecart) BukkitMCCommandMinecart(com.laytonsmith.abstraction.bukkit.entities.BukkitMCCommandMinecart) InternalException(com.laytonsmith.core.InternalException) BukkitMCBlockCommandSender(com.laytonsmith.abstraction.bukkit.BukkitMCBlockCommandSender) BukkitMiscEvents(com.laytonsmith.abstraction.bukkit.events.BukkitMiscEvents) BlockCommandSender(org.bukkit.command.BlockCommandSender) BukkitMCBlockCommandSender(com.laytonsmith.abstraction.bukkit.BukkitMCBlockCommandSender) EventHandler(org.bukkit.event.EventHandler)

Aggregations

MCCommandSender (com.laytonsmith.abstraction.MCCommandSender)8 ConfigRuntimeException (com.laytonsmith.core.exceptions.ConfigRuntimeException)3 MCCommand (com.laytonsmith.abstraction.MCCommand)2 MCPlayer (com.laytonsmith.abstraction.MCPlayer)2 BukkitMCCommand (com.laytonsmith.abstraction.bukkit.BukkitMCCommand)2 Construct (com.laytonsmith.core.constructs.Construct)2 CommandHelperEnvironment (com.laytonsmith.core.environments.CommandHelperEnvironment)2 GlobalEnv (com.laytonsmith.core.environments.GlobalEnv)2 BlockCommandSender (org.bukkit.command.BlockCommandSender)2 ConsoleCommandSender (org.bukkit.command.ConsoleCommandSender)2 CommandMinecart (org.bukkit.entity.minecart.CommandMinecart)2 MCConsoleCommandSender (com.laytonsmith.abstraction.MCConsoleCommandSender)1 BukkitMCBlockCommandSender (com.laytonsmith.abstraction.bukkit.BukkitMCBlockCommandSender)1 BukkitMCCommandSender (com.laytonsmith.abstraction.bukkit.BukkitMCCommandSender)1 BukkitMCConsoleCommandSender (com.laytonsmith.abstraction.bukkit.BukkitMCConsoleCommandSender)1 BukkitMCCommandMinecart (com.laytonsmith.abstraction.bukkit.entities.BukkitMCCommandMinecart)1 BukkitMCPlayer (com.laytonsmith.abstraction.bukkit.entities.BukkitMCPlayer)1 BukkitMiscEvents (com.laytonsmith.abstraction.bukkit.events.BukkitMiscEvents)1 InternalException (com.laytonsmith.core.InternalException)1 CArray (com.laytonsmith.core.constructs.CArray)1