Package com.forgeessentials.core.commands.selections

Source Code of com.forgeessentials.core.commands.selections.CommandWand

package com.forgeessentials.core.commands.selections;

//Depreciated

import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.util.EnumChatFormatting;
import net.minecraftforge.permissions.PermissionsManager.RegisteredPermValue;

import org.apache.commons.lang3.tuple.Pair;

import com.forgeessentials.api.permissions.FEPermissions;
import com.forgeessentials.core.commands.ForgeEssentialsCommandBase;
import com.forgeessentials.util.FunctionHelper;
import com.forgeessentials.util.OutputHandler;
import com.forgeessentials.util.PlayerInfo;

import cpw.mods.fml.common.registry.GameData;

public class CommandWand extends ForgeEssentialsCommandBase {

    @Override
    public String getCommandName()
    {
        return "/fewand";
    }

    @Override
    public void processCommandPlayer(EntityPlayer sender, String[] args)
    {
    // Get the wand item (or hands)
    Item wandItem;
    String wandId, wandName;
    int wandDmg = 0;
    if (sender.getCurrentEquippedItem() != null) {
      wandName = sender.getCurrentEquippedItem().getDisplayName();
      wandItem = sender.getCurrentEquippedItem().getItem();
      wandDmg = sender.getCurrentEquippedItem().getItemDamage();
      wandId = wandItem.getUnlocalizedName();
      if (wandDmg == -1) {
        wandDmg = 0;
      }
    } else {
      wandName = "your hands";
      wandId = "hands";
    }

        PlayerInfo info = PlayerInfo.getPlayerInfo(sender.getPersistentID());

        // Check for rebind
        boolean rebind = args.length > 0 && args[0].equalsIgnoreCase("rebind");
       
    // Check for unbind
    if (!rebind && ((info.isWandEnabled() && info.getWandID().equals(wandId)) | (args.length > 0 && args[0].equalsIgnoreCase("unbind")))) {
      OutputHandler.sendMessage(sender, EnumChatFormatting.LIGHT_PURPLE + "Wand unbound from " + wandName);
      info.setWandEnabled(false);
      return;
    }

    // Check for permissions
    if (!checkCommandPermission(sender))
        throw new CommandException(FEPermissions.MSG_NO_COMMAND_PERM);

    if (args.length > 0 && !rebind) {
      Pair<String, Integer> data = FunctionHelper.parseIdAndMetaFromString(args[0], false);
      wandItem = GameData.getItemRegistry().getObject(data.getLeft());
      wandId = wandItem.getUnlocalizedName();
      wandDmg = data.getRight();
      if (wandDmg == -1) {
        wandDmg = 0;
      }
    }
   
    // Bind wand
    info.setWandEnabled(true);
    info.setWandID(wandId);
    info.setWandDmg(wandDmg);
    OutputHandler.chatConfirmation(sender, "Wand bound to " + wandName);
    }

    @Override
    public boolean canPlayerUseCommand(EntityPlayer player)
    {
        PlayerInfo info = PlayerInfo.getPlayerInfo(player.getPersistentID());
        if (info.isWandEnabled())
        {
            return true;
        }
        else
        {
            return checkCommandPermission(player);
        }
    }

    @Override
    public boolean canConsoleUseCommand()
    {
        return false;
    }

    @Override
    public String getPermissionNode()
    {
        return "fe.core.pos.wand";
    }

    @Override
    public String getCommandUsage(ICommandSender sender)
    {
        return "/" + getCommandName() + " [rebind|unbind|ITEM] Toggles the wand";
    }

    @Override
    public RegisteredPermValue getDefaultPermission()
    {

        return RegisteredPermValue.TRUE;
    }
}
TOP

Related Classes of com.forgeessentials.core.commands.selections.CommandWand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.