Sssss...
本帖最后由 Sssss... 于 2020-1-5 12:29 编辑

ItemBox 物品箱
作者:Hex_27

一、插件功能介绍

本插件允许玩家之间互相发送物品。
每个玩家拥有一个“物品信箱”,当玩家发送物品时,物品将进入对方的仓库,这时对方可打开仓库查收物品。
即使是离线玩家也可接收到物品,不再需要使用箱子等容器存放。
自定义物品箱:可在配置文件或游戏中修改,被领取时将会获得一组(不是指64个)物品,每个物品在领取时获得的概率均可设置。

上图为玩家物品信箱,图1为普通物品,图2为自定义物品箱

插件现有的不足之处:
1. 物品名无法汉化
2. 自定义物品箱不支持物品数量和附魔,lore,自定义名称之外的NBT(直接发送物品支持所有NBT)

二、命令

/itembox 插件命令列表
/itembox open 打开物品仓库
/itembox open <玩家> 打开指定玩家的物品仓库
/itembox send <玩家> 将手中的物品发送给指定玩家
/itembox sendall 将手中物品发送给所有玩家
/itembox claimall 领取所有信箱内的物品
/itembox givedynamicbox <玩家> <自定义物品箱名称> 将自定义物品箱发送给指定玩家/itembox givealldynamicbox <玩家> <自定义物品箱名称> 将自定义物品箱发送给指定玩家
/itembox additemtodynamicbox <自定义物品箱名称> <概率> 将手中物品添加至自定义物品箱(仅记录物品类型,其他物品信息将被忽略,包括数量),概率为玩家领取时得到该物品的概率。概率是一个0-100的数,实际概率为所填参数的1/100(例如指令中填入65,则概率为65%)
/itembox reload 重载插件

三、权限节点

itembox.* 所有权限
itembox.open.others 使用/itembox open [player]打开其他人物品信箱的权限
itembox.open
itembox.claimall
itembox.send
itembox.reload
itembox.givedynamicbox
itembox.givealldynamicbox
itembox.sendall
itembox.additemtodynamicbox
未标注的均为使用对应命令的权限


四、配置文件

config.yml:

chs.yml (汉化文件放入ItemBox/lang):


五、API

本插件支持其他插件调用物品信箱相关的方法。
PlayerInfo对象获取:
  1. PlayerInfo info = ItemBox.getInstance().getPlayerDataManager().getOrLoadPlayerInfo(OfflinePlayer p)
复制代码
方法:
  1. public void clearItems() // 清空物品信箱

  2. public void addItem(ItemStack item) // 向物品信箱添加物品

  3. public void removeItem(ItemStack item) // 从物品信箱移除物品,当信箱内无指定物品时不做任何操作。物品数量有效。

  4. public Collection<ItemStack> getItems() // 返回物品信箱内的所有物品

  5. public OfflinePlayer getPlayer() // 返回对应的玩家
复制代码


六、更新计划

物品存放有效期(从此物品信箱无法作为两个玩家之间的物品仓库)

七、转载授权







Misaka。
支持nbt与否?

Sadan..
不同世界也可以用吗

Sssss...
本帖最后由 Sssss... 于 2020-1-5 12:29 编辑

经测试,自定义物品箱不支持物品数量和附魔,lore,自定义名称之外的NBT(直接发送物品支持所有NBT)(帖内已补充)

东方晓河
新年快乐

wcj520
这个插件我很喜欢,拿去试试,谢谢楼主

瑾某人
ohhh可以替代仓库的样子