ItemMeta - 命令和监听器

时间:2016-07-17 09:13:59

标签: java bukkit

如何在另一个班级中使用itemmeta?

public class Kart implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        Player p = (Player) sender;

        if (label.equalsIgnoreCase("kart")) {
            if (p.hasPermission("teamenders.komut.kart")) {

                ItemStack kart = new ItemStack(Material.PAPER);
                ItemMeta kartM = kart.getItemMeta();
                ArrayList<String> tt = new ArrayList<String>();
                kartM.setDisplayName(ChatColor.DARK_AQUA + "Yetki Karti");
                tt.add(ChatColor.DARK_GREEN + "Giris Yetkisi");
                kartM.setLore(tt);
                kart.setItemMeta(kartM);
                p.getInventory().addItem(new ItemStack(kart));

            } else {
                p.sendMessage(ChatColor.DARK_RED + "Yetersiz Yetki!!!!!");
            }
        }
        return false;
    }
}

我的第二堂课:

@EventHandler
public void onPInteract(PlayerInteractEvent e) {
    Player p = e.getPlayer();
    if (e.getAction() == Action.RIGHT_CLICK_AIR) {
        if (p.getItemInHand().getType() == Material.PAPER && p.getItemInHand().hasItemMeta()) {
            p.sendMessage(ChatColor.DARK_AQUA + "Yetkiyi aldin.");
        }
    }
}

我希望在第二课itemmeta

中使用第一课"p.getItemInHand"

2 个答案:

答案 0 :(得分:0)

使用Kart类之外的ArrayList存储它,然后在EventHandler中检索数据。

答案 1 :(得分:0)

在第一堂课中,创建一个全局变量(在任何函数之外)并存储kart.getItemMeta()的值。

仍在第一堂课中,创建一个返回此变量的函数。

在第二节课中,创建另一个全局变量Kart kart并创建一个函数public *nameOfYourClass*(Kart kart){this.kart = kart}。然后,您应该能够kart.*functionOfFirstStep*

如果我不够清楚,请告诉我。