为什么getItemInHand被划掉(见下图)

时间:2016-07-08 00:16:39

标签: java eclipse bukkit

我是创建Minecraft插件的新手,但不是新编程,我正在非常彻底地阅读教程,视频有良好的评级,所以它是值得信赖的,在观看视频的时候,这家伙没有任何问题{{3所以我对解决方案进行了一些研究,但总是通过代码进行研究。

Eclipse为我提供了以下选项:@SuppressWarnings(“deprecation”),它允许代码仍然使用,但我宁愿不需要这种用法。

基本上我的问题是为什么需要通过代码的行,以及如何找到解决方案来摆脱它。

主要课程:

package com.jc1;

import org.bukkit.Material;

import org.bukkit.command.Command;

import org.bukkit.command.CommandSender;

import org.bukkit.entity.Player;

import org.bukkit.inventory.ItemStack;

import org.bukkit.permissions.Permission;

import org.bukkit.plugin.PluginManager;

import org.bukkit.plugin.java.JavaPlugin;

public class Core extends JavaPlugin
{
     public Permission pPermission = new Permission("playerAbilities.allowed");

@Override
public void onEnable()
{
    new BlockListener(this);
    PluginManager pm = getServer().getPluginManager();
    pm.addPermission(pPermission);
}
@Override
public void onDisable()
{

}

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
{
    if(cmd.getName().equalsIgnoreCase("giveitems") && sender instanceof Player)
    {
        Player p = (Player) sender;

        if(p.hasPermission("playerAbilities.allowed"))
        {
            p.setItemInHand(new ItemStack(Material.DIAMOND_BOOTS));

        }
        return true;

    }
    return false;
  }

}

中学阶段:

package com.jc1;

import org.bukkit.entity.Player;

import org.bukkit.event.EventHandler;

import org.bukkit.event.Listener;

import org.bukkit.event.block.BlockPlaceEvent;

public class BlockListener implements Listener
{
    public BlockListener(Core plugin) 
    {
        plugin.getServer().getPluginManager().registerEvents(this, plugin);
    }

    @EventHandler
    public void onBlockPlace(BlockPlaceEvent e)
    {
       Player p = e.getPlayer();

       if(!p.hasPermission("playerAbilities.allowed"))
       {
           e.setCancelled(true);

       }
    }
 }

2 个答案:

答案 0 :(得分:2)

该方法已弃用,这意味着不建议再使用它,并且很可能会被其他方法替换。

已弃用的方法仍可按预期工作。

简单搜索该方法会显示(this)文档,说明:

  

玩家可以决定现在使用特定手牌的方法

引用@see引用: getItemInMainHand()getItemInOffHand()

答案 1 :(得分:0)

使用此:

player.getInventory().getItemInMainHand()

而不是:

player.getItemInHand()

希望这有帮助! :d