- List<ItemStack> items = new ArrayList<ItemStack>();
- if(e.getInventory().getItem(28)!=null){
- items.add(e.getInventory().getItem(28));
- }
- if(e.getInventory().getItem(29)!=null){
- items.add(e.getInventory().getItem(29));
- }
- if(e.getInventory().getItem(37)!=null){
- items.add(e.getInventory().getItem(37));
- }
- if(e.getInventory().getItem(38)!=null){
- items.add(e.getInventory().getItem(38));
- }
- if(e.getInventory().getItem(33)!=null){
- items.add(e.getInventory().getItem(33));
-
- }
- if(e.getInventory().getItem(40)!=null){
- items.add(e.getInventory().getItem(40));
- }
- for(ItemStack item:items){
- e.getPlayer().getInventory().addItem(item);
- }
在5个都放在gui上时,关闭gui,按理应该会全部到玩家背包,但是有的时候只到背包了3、4个,有时候一个都没,也可能都有
这是为什么?很奇葩,非常奇怪?有没有大佬可以解答?
尝试items.add(inv.getItem(XXX).clone());
Edit:
以及player.updateInventory();
Edit:
以及player.updateInventory();
810587921 发表于 2017-8-3 18:45
尝试items.add(inv.getItem(XXX).clone());
Edit:
以及player.updateInventory();
8哥,我看你的箱子交易插件,里面似乎有getItemCursor和setitemCursor
您的插件gui关闭时是这样,能否详细说明您的方法呢?
帅比小樊 发表于 2017-8-3 22:46
8哥,我看你的箱子交易插件,里面似乎有getItemCursor和setitemCursor
您的插件gui关闭时是这样,能否详细说 ...
getItemCursor那个是获取鼠标上正在拿着的物品
在玩家背包内添加ItemStack后需要执行方法updateInventory()。如名字所示,该方法的用途就是更新玩家的Inventory,原理是发包。而你所遇到的问题就是服务端内有添加,但没有将该操作同步到客户端,所以客户端有可能看不到。