1850343382
在关闭容器的时候,如果放进了物品,在打开的时候就没有了,有什么方法可以避免吗
求大佬解答

ddyy163
mod还是plugin?
还有 提问时最好附上相关代码

1850343382
ddyy163 发表于 2017-10-12 17:24
mod还是plugin?
还有 提问时最好附上相关代码

是插件
  1. Inventory in = Bukkit.createInventory()
复制代码

创建之后放进去了一些物品
在玩家openInventory()打开容器之后
如果放了物品进去,再次打开就会没有了
我想知道怎么去解决,求大佬告知

Meagic
1850343382 发表于 2017-10-12 17:49
是插件

创建之后放进去了一些物品

其实吧 你只要单纯的创建一个背包就好了。
然后你不要继续弄事件了
然后就ok

a8105
因为玩家每次打开都是一个新的背包对象
一直保持一个就可以避免你所说的情况
但也仅限于开服时,关服了就没了
所以你得把界面的物品用你自己的方法储存
然后开服时载入到界面里

ddyy163
1850343382 发表于 2017-10-12 17:49
是插件

创建之后放进去了一些物品

创造一个全局的static类型的inventory对象
玩家打开背包的话就打开这个

如果你想每个玩家都有自己特定的背包,那就建一个static的HashMap<Player,Inventory>
从这个map里读取每个玩家自己的背包

当然如果你想保存编辑过后的背包
那么可以使用itemStack自带的序列化
例如:Inventory inv = hashMap.get(player);
ItemStack[] items = inv.getContents();
config.set(xxx.xxx,items);

初始化背包的读取时就可以:
ItemStack[] items = (ItemStack[])config.get(xxx.xxx);
Inventory inv = new Inventory(参数自己填);
inv.setContents(items);
hashMap.put(player,inv);
搞定

ddyy163
最后,我看你昨天   问题很多,其实我建议你加个新手讨论群或者自己多思考思考,在论坛发这么多基础问题,总感觉……

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