Java ItemMeta-命令和侦听器
如何在另一个类中使用itemmetaJava ItemMeta-命令和侦听器,java,bukkit,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("ka
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;
}
}
我想在第二类中使用第一类
itemmeta
“p.getItemInHand”在Kart类之外使用数组列表存储它,然后在EventHandler中检索数据。在第一类中,创建一个全局变量(在任何函数之外)并存储Kart.getItemMeta()
的值
在第一个类中,创建一个返回此变量的函数
在第二个类中,创建另一个全局变量Kart Kart
,并创建一个函数public*nameOfYourClass*(Kart Kart){this.Kart=Kart}
。然后,您应该能够执行kart.*functionofirststep*
如果我不够清楚,请告诉我。你能给我的插件举个例子吗?我不太懂。你知道面向对象编程是如何工作的吗?
@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.");
}
}
}