尘晓凡
  1. List<ItemStack> items = new ArrayList<ItemStack>();
  2.                    if(e.getInventory().getItem(28)!=null){
  3.                   items.add(e.getInventory().getItem(28));
  4.                    }
  5.                    if(e.getInventory().getItem(29)!=null){
  6.                            items.add(e.getInventory().getItem(29));
  7.                    }
  8.                    if(e.getInventory().getItem(37)!=null){
  9.                            items.add(e.getInventory().getItem(37));
  10.                    }
  11.                    if(e.getInventory().getItem(38)!=null){
  12.                            items.add(e.getInventory().getItem(38));
  13.                    }
  14.                    if(e.getInventory().getItem(33)!=null){
  15.                            items.add(e.getInventory().getItem(33));
  16.                   
  17.                    }
  18.                    if(e.getInventory().getItem(40)!=null){
  19.                            items.add(e.getInventory().getItem(40));
  20.                    }
  21.                    for(ItemStack item:items){
  22.                            e.getPlayer().getInventory().addItem(item);
  23.                    }
复制代码
28 29 37 38 40这个几个gui的位置都是我要还原的物品,
在5个都放在gui上时,关闭gui,按理应该会全部到玩家背包,但是有的时候只到背包了3、4个,有时候一个都没,也可能都有
这是为什么?很奇葩,非常奇怪?有没有大佬可以解答?


a8105
尝试items.add(inv.getItem(XXX).clone());
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那个是获取鼠标上正在拿着的物品

JackC92
在玩家背包内添加ItemStack后需要执行方法updateInventory()。如名字所示,该方法的用途就是更新玩家的Inventory,原理是发包。而你所遇到的问题就是服务端内有添加,但没有将该操作同步到客户端,所以客户端有可能看不到。

第一页 上一页 下一页 最后一页