package com.sijobe.spc.wrapper;
import net.minecraft.src.ChatMessageComponent;
import net.minecraft.src.EntityPlayer;
import net.minecraft.src.ICommandSender;
import net.minecraft.src.StatCollector;
/**
* Provides a wrapper around the ICommandSender interface
*
* @author simo_415
*/
public class CommandSender {
private final ICommandSender sender;
/**
* Standard constructor that accepts the sender to wrap
*
* @param sender - The sender to wrap
*/
public CommandSender(ICommandSender sender) {
this.sender = sender;
}
/**
* Creates an instance of a command sender using the player instance
*
* @param player - The player to create a command sender
*/
public CommandSender(Player player) {
this (player.getMinecraftPlayer());
}
/**
* Gets the senders name, commonly this is the player's username
*
* @return The senders name
*/
public String getSenderName() {
return sender.getCommandSenderName();
}
/**
* Returns true if the sender can use the specified command
*
* @param command - The command name
* @return True is returned if the sender can use the specified command
*/
public boolean canUseCommand(String command) {
return sender.canCommandSenderUseCommand(4, command);
}
/**
* Sends the specified message to the sender. The sender should display this
* message.
*
* @param message - The message to display
*/
public void sendMessageToPlayer(String message) {
sender.sendChatToPlayer(ChatMessageComponent.func_111066_d(message));
}
/**
* Translates the provided key translate with the provided parameters
*
* @param translate - The string to translate
* @param params - The parameters
* @return The translated String
*/
public String translateString(String translate, Object ... params) {
return StatCollector.translateToLocalFormatted(translate, params);
}
/**
* Gets the raw data object that this class is wrapping around
*
* @return The ICommandSender class
*/
public ICommandSender getMinecraftISender() {
return sender;
}
/**
* Returns true if this command sender object is a player
*
* @return True if the command sender is a player, false otherwise
*/
public boolean isPlayer() {
return sender instanceof EntityPlayer;
}
}