pqrsc
대표칭호 없음
이해도 | 플러그인 |
---|---|
게임버전 (JE) | 버킷 |
@EventHandler public void onPlayerUseGold(PlayerInteractEvent e){ Player p = e.getPlayer(); if(e.getItem().getType() == Material.GOLD_INGOT && e.getAction() == Action.RIGHT_CLICK_AIR && p.getCooldown(Material.GOLD_INGOT) == 0) { p.setCooldown(Material.GOLD_INGOT, 1200); Inventory inv = Bukkit.createInventory(null, 26, "Alchemy"); ItemStack i = new ItemStack(Material.DIAMOND); inv.setItem(12, i); p.openInventory(inv); } }
여기서 인벤에 있는 다이아 클릭하면 다이아가 인벤에 들어오고 금을 하나 차감하는 시스템을 만들고 싶어요
A_bins
2021.08.17InventoryClickEvent를 EventHandler로 리스닝 하셔서 제어 하시면 될텐데욘?
pqrsc
2021.08.17넵 감사합니다
pqrsc
2021.08.17그런데
@EventHandler
public void playerCloseGui(InventoryClickEvent e, PlayerInteractEvent event){
Player p = (Player)e.getWhoClicked();
Inventory inv = Bukkit.createInventory(null,26,"AlchemySlot");
ItemStack alchemyItem = new ItemStack(Material.DIAMOND);
ItemStack closingItem = new ItemStack(Material.BARRIER);
inv.setItem(13, alchemyItem);
inv.setItem(26, closingItem);
if(event.getAction() == Action.RIGHT_CLICK_AIR && event.getItem().getType() == Material.GOLD_INGOT && p.getCooldown(Material.GOLD_INGOT) == 0){
p.openInventory(inv);
if (event.getClickedBlock().getType() == Material.DIAMOND) {
p.getInventory().addItem(alchemyItem);
p.setCooldown(Material.GOLD_INGOT, 6000);
p.closeInventory();
}
if(event.getClickedBlock().getType() == Material.BARRIER) {
p.closeInventory();
p.sendMessage("You closed your alchemySlot");
}
}
}
이렇게 수정했거든요? 근데 인벤토리가 열리지 않는데 어떤점이 문제인지 확인해주실 수 있나요?
A_bins
2021.08.17한 함수에 두가지 이상의 인수를 받으시면 안되요
A_bins
2021.08.17정확히는 한 이벤트 핸들러에 말이죤
pqrsc
2021.08.18음 그럼 따로따로 해야겠네요 감사합니다