2017-03-20 11 views
1

안녕하세요 모두가 멍청한 질문 일 것입니다. 나는 다른 사람의 재고품을 열고 그것을 변경하는 법을 안다. 하지만 내가 원하는 것은 플레이어 인벤토리를 변경하지 않고 인벤토리를 열면된다는 것입니다. 그냥 미리보기.편집하지 않고 인벤토리보기

Player target = Bukkit.getPlayer(args[0]); 
     if (target != null) { 
     p.openInventory(target.getInventory()); 
     } 

다른 사람이 인벤토리를보고 다른 항목을 가져 가게하지 못하게하는 방법을 아는 사람이 있습니까?

감사합니다.

+0

'InventoryClickEvent'를 사용하여 인벤토리가 타겟의 인벤토리인지, 클릭 한 사람이 명령을 실행하는 플레이어인지 확인한 다음 취소 할 수 있습니다. – Li357

답변

2

InventoryClickEvent을 통해이 작업을 수행 할 수 있습니다. 앤드류 리 (Andrew Li)의 의견에 따르면 ,

@EventHandler 
public void onInventoryClick(InventoryClickEvent e) { 
HumanEntity clicker = e.getWhoClicked(); 
Inventory inv = e.getClickedInventory(); 
if (/*inv is your saved inv*/) { 
e.setCancelled(true); 
} 

당신이 재고 클릭을 취소 할 수 있습니다이 방법을 재고에서 발생하여 조치를 :

InventoryClick 방금과 같이, 대상 목록에 클릭 재고를 비교해야, 취소 해 이벤트 항목을 가져 가거나 가져가는 것과 같지만 인벤토리를 볼 수있게하는 것과 같습니다.

+0

안녕하세요, 귀하의 설명을 따르려고 노력하고 있지만 'getClickedInventory'메소드를 사용할 수 없습니다 ... – user5717551

+0

무슨 문제입니까? – Kerooker