当前位置: 首页>>代码示例>>Java>>正文


Java EntityPlayerMP.getHeldItemMainhand方法代码示例

本文整理汇总了Java中net.minecraft.entity.player.EntityPlayerMP.getHeldItemMainhand方法的典型用法代码示例。如果您正苦于以下问题:Java EntityPlayerMP.getHeldItemMainhand方法的具体用法?Java EntityPlayerMP.getHeldItemMainhand怎么用?Java EntityPlayerMP.getHeldItemMainhand使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在net.minecraft.entity.player.EntityPlayerMP的用法示例。


在下文中一共展示了EntityPlayerMP.getHeldItemMainhand方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: payPrice

import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
public boolean payPrice(EntityPlayerMP p) {
	ItemStack i = p.getHeldItemMainhand();
	if (material == CraftMat.STONE) {
		if (i.getItem() == FirmaMod.pebble) {
			if (i.getCount() > 1) {
				i.setCount(i.getCount() - 1);
				return true;
			}
		}
		return false;
	} else if (material == CraftMat.CLAY) {
		if (i.getItem() == FirmaMod.clay) {
			if (i.getCount() > 5) {
				i.setCount(i.getCount() - 5);
				return true;
			}
		}
		return false;
	}
	return false;
}
 
开发者ID:trigg,项目名称:Firma,代码行数:22,代码来源:Recipe.java

示例2: handle

import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
public static void handle(NBTTagCompound tag)
{
	try
	{
		UUID requesterID = UUID.fromString(tag.getString("uuid"));
		SpecialAttack attack = SpecialAttack.registry.get(tag.getString("attackID"));
		boolean rightClick = tag.getBoolean("rightClick");
		EntityPlayerMP player = FMLCommonHandler.instance().getMinecraftServerInstance().getPlayerList().getPlayerByUUID(requesterID);
		ItemStack is = !player.getHeldItemMainhand().isEmpty() ? player.getHeldItemMainhand() : player.getHeldItemOffhand();
		if (attack.canExecute(player, WeaponType.getType(is), EnumWeaponWeight.getWeaponWeight(is), rightClick))
		{
			IExPPlayer.of(player).setCurrentSpecialAttack(attack.wrap(), true);
			VoidNetwork.sendDataToClient(ExPPackets.SPECIAL_ATTACK, tag, player);
		}
	}
	catch (Exception ex)
	{
		ExPMisc.modLogger.log(LogLevel.Error, "Malformed client combat packet! %s", ex, tag);
	}
}
 
开发者ID:V0idWa1k3r,项目名称:ExPetrum,代码行数:21,代码来源:ServerCombatHandler.java

示例3: handle

import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
private void handle(PacketSetSelectedItem message, MessageContext ctx) {
	EntityPlayerMP player = ctx.getServerHandler().player;
	if (player != null && !player.getHeldItemMainhand().isEmpty() && DankNullUtils.isDankNull(player.getHeldItemMainhand())) {
		InventoryDankNull inventory = new InventoryDankNull(player.getHeldItemMainhand());
		DankNullUtils.setSelectedStackIndex(inventory, index, false);
	}
}
 
开发者ID:p455w0rd,项目名称:DankNull,代码行数:8,代码来源:PacketSetSelectedItem.java

示例4: execute

import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
    EntityPlayerMP player = getCommandSenderAsPlayer(sender);
    ItemStack held = player.getHeldItemMainhand();
    if(held.isEmpty()) {
        held = player.getHeldItemOffhand();
    }
    if(held.isEmpty()) {
        player.sendMessage(new TextComponentTranslation("command.modularmachinery.hand.empty"));
        return;
    }
    Item i = held.getItem();
    StringBuilder sb = new StringBuilder();
    sb.append(i.getRegistryName().toString());
    if(i.getHasSubtypes()) {
        sb.append("@").append(held.getItemDamage());
    }
    NBTTagCompound cmp = held.serializeNBT();
    if(cmp.hasKey("tag")) {
        String json = NBTJsonSerializer.serializeNBT(cmp.getTag("tag"));
        if(!json.isEmpty()) {
            sb.append(" (with nbt: ").append(json).append(" )");
        }
    }

    String str = sb.toString();
    player.sendMessage(new TextComponentString(str));
    ModularMachinery.NET_CHANNEL.sendTo(new PktCopyToClipboard(str), player);

    int burn = TileEntityFurnace.getItemBurnTime(held);
    if(burn > 0) {
        player.sendMessage(new TextComponentString("Fuel BurnTime: " + burn));
    }
}
 
开发者ID:HellFirePvP,项目名称:ModularMachinery,代码行数:35,代码来源:CommandHand.java

示例5: auxHarvestBlock

import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
/**
 * Destroys and tries to harvest a block with the currently active tool, except that instead of calling
 * onBlockDestroyed, it calls onBlockAuxDestroyed on the tool, preventing infinite loops.
 */
public static boolean auxHarvestBlock(World world, BlockPos pos, EntityPlayerMP player) {
	if (world.isRemote) return false; //Shouldn't even be possible if we have an EntityPlayerMP!
	
	GameType gameType = player.interactionManager.getGameType();
	
	int exp = net.minecraftforge.common.ForgeHooks.onBlockBreakEvent(world, gameType, player, pos);
       if (exp == -1) {
           return false;
       } else {
           IBlockState iblockstate = world.getBlockState(pos);
           if (iblockstate.getBlockHardness(world, pos)<0) return false;
           TileEntity tileentity = world.getTileEntity(pos);
           Block block = iblockstate.getBlock();

           if ((block instanceof BlockCommandBlock || block instanceof BlockStructure) && !player.canUseCommandBlock()) {
               world.notifyBlockUpdate(pos, iblockstate, iblockstate, 3);
               return false;
           } else {
               ItemStack stack = player.getHeldItemMainhand();
               if (!stack.isEmpty() && stack.getItem().onBlockStartBreak(stack, pos, player)) return false;

               world.playEvent(player, 2001, pos, Block.getStateId(iblockstate));
               boolean removed = false;

               if (gameType==GameType.CREATIVE) {
                   removed = removeBlock(world, pos, player, false);
                   player.connection.sendPacket(new SPacketBlockChange(world, pos));
               } else {
                   ItemStack itemstack1 = player.getHeldItemMainhand();
                   ItemStack itemstack2 = itemstack1.isEmpty() ? ItemStack.EMPTY : itemstack1.copy();
                   boolean canHarvest = iblockstate.getBlock().canHarvestBlock(world, pos, player);

                   if (!itemstack1.isEmpty()) {
                   //    itemstack1.onBlockDestroyed(world, iblockstate, pos, player);
                    if (itemstack1.getItem() instanceof IAuxDestroyBlock) {
                    	((IAuxDestroyBlock)itemstack1.getItem()).onBlockAuxDestroyed(world, iblockstate, pos, player);
                    }
                   }
                   
                   removed = removeBlock(world, pos, player, canHarvest);
                   if (removed && canHarvest) {
                       iblockstate.getBlock().harvestBlock(world, player, pos, iblockstate, tileentity, itemstack2);
                   }
               }

               // Drop experience
               if (gameType!=GameType.CREATIVE && removed && exp > 0) {
                   iblockstate.getBlock().dropXpOnBlockBreak(world, pos, exp);
               }
               return removed;
           }
       }
}
 
开发者ID:elytra,项目名称:Thermionics,代码行数:58,代码来源:ToolHelper.java

示例6: onBlockBreakEvent

import net.minecraft.entity.player.EntityPlayerMP; //导入方法依赖的package包/类
public static int onBlockBreakEvent(World world, GameType gameType, EntityPlayerMP entityPlayer, BlockPos pos)
{
    // Logic from tryHarvestBlock for pre-canceling the event
    boolean preCancelEvent = false;
    if (gameType.isCreative() && entityPlayer.getHeldItemMainhand() != null && entityPlayer.getHeldItemMainhand().getItem() instanceof ItemSword)
        preCancelEvent = true;

    if (gameType.isAdventure())
    {
        if (gameType == GameType.SPECTATOR)
            preCancelEvent = true;

        if (!entityPlayer.isAllowEdit())
        {
            ItemStack itemstack = entityPlayer.getHeldItemMainhand();
            if (itemstack == null || !itemstack.canDestroy(world.getBlockState(pos).getBlock()))
                preCancelEvent = true;
        }
    }

    // Tell client the block is gone immediately then process events
    if (world.getTileEntity(pos) == null)
    {
        SPacketBlockChange packet = new SPacketBlockChange(world, pos);
        packet.blockState = Blocks.AIR.getDefaultState();
        entityPlayer.connection.sendPacket(packet);
    }

    // Post the block break event
    IBlockState state = world.getBlockState(pos);
    BlockEvent.BreakEvent event = new BlockEvent.BreakEvent(world, pos, state, entityPlayer);
    event.setCanceled(preCancelEvent);
    MinecraftForge.EVENT_BUS.post(event);

    // Handle if the event is canceled
    if (event.isCanceled())
    {
        // Let the client know the block still exists
        entityPlayer.connection.sendPacket(new SPacketBlockChange(world, pos));

        // Update any tile entity data for this block
        TileEntity tileentity = world.getTileEntity(pos);
        if (tileentity != null)
        {
            Packet<?> pkt = tileentity.getUpdatePacket();
            if (pkt != null)
            {
                entityPlayer.connection.sendPacket(pkt);
            }
        }
    }
    return event.isCanceled() ? -1 : event.getExpToDrop();
}
 
开发者ID:F1r3w477,项目名称:CustomWorldGen,代码行数:54,代码来源:ForgeHooks.java


注:本文中的net.minecraft.entity.player.EntityPlayerMP.getHeldItemMainhand方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。