- 支持核心
- Paper
- 原创/转载
- 原创
- 作者
- 秋华
- 前置
- 必须:ArcartX 可选:PlayerPoints、Vault、NeigeItems
- 支持版本
- 1.20.1
ItemSpace
物品空间
一款简单的仓库插件。
改插件内容较为简单,但也够用。
功能列表
- 自动拾取
- 无限堆叠、无限容量
- neigeItem指令兼容
- 支持任意界面访问仓库
- 货币解锁容量
指令
[]为必填 <>为可选- /ItemSpace reload [权限: itemspace.reload] 重新加载全部配置文件
- /ItemSpace open [空间id] <玩家名字> [权限: itemspace.open.空间id] 打开一个指定物品空间
- /ItemSpace unlock [空间id] <数量> <玩家名字> [权限: itemspace.unlock.空间id] 解锁指定空间指定数量的格子
配置文件
YAML:
Debug: true
#是否在在其他插件的界面中注入物品空间功能
UiHacker: true
#每次发包时发送的物品数量 也可以理解成一页中显示的数量
DisplayItemAmount: 36
#物品额外显示的lore信息
AddLoreInfo:
- " "
- "&2[!]&7当前数量 <Amount>"
#白名单世界 如果填了内容 那只有在这个世界内才能使用仓库的功能
WhitelistWorld:
#其他插件自动拾取适配
Hook:
#ni物品库 兼容指令获取物品
#ni give指令触发
#ni givePack指令触发
neigeItem: true
#数据库
Database:
type: sqlite #sqlite或者mysql mysql才需要配置下面的部分
dataBaseName: ItemSpace #数据库名称
username: root #账户名称
password: root #密码
port: 3306 #端口
ip: 127.0.0.1 #ip
autoSave: 15 #自动保存间隔 分钟
loadDelay: 40 #加载延迟tick
Space为空间配置 文件名称则为空间id
YAML:
#自定义的信息传递 包头ItemSpacePacket ax那边使用该节点名称即可获取 支持papi解析 解析对象为查看者
#这个包内置了
#sizeMax 空间最大容量
#unlockSize 空间已解锁容量
#size 已使用的容量
#isAutoPickup 是否开启了自动拾取
Packet:
title: "示例仓库"
#自动拾取是否默认关闭
IsAutoPickup: false
#默认大小 -1则为无限大 如果设置0 那仓库默认将无法放入东西
DefaultSize: 10
#最大大小 -1则为无限大
SizeMax: 20
#放入条件
Condition:
#条件类型 name 判断名称是否包含该字符串 lore判断lore内是否包含该字符串 nbt判断物品是否有该nbt
type: name
#条件内容 支持多行 不填就不检查条件
value:
#购买大小的价值
SizePrice:
#经济类型 vault和points
type: vault
#每个格子的价格
value: 100
如何在其他界面访问仓库
如果不想看这里可以直接下载该链接的文件 里面有完整例子 在背包界面内打开仓库这里也不讲解原理 仅讲解数据包的结构和包名
图片中的配置也在这里面
通过网盘分享的文件:插件示例配置.zip
链接: https://pan.baidu.com/s/1ZDBTU8FEhgZjB-qs8qdY-A?pwd=856h 提取码: 856h
ui.packetHandler内有一个包
该包内置的数据
在任意位置使用该方法即可 Packet.send('itemspace', 'switchSpace', '空间名称')
这个是切换空间 也可以唤起空间 你能够在任何界面发送
当你发送了这个包后 服务端会往客户端发送ItemSpacePacket以及将空间的物品映射到指定槽位上
觉得不理解?就和原版的箱子界面一样 他会在指定的槽位生成物品
ItemSpace使用的槽位是ItemSpaceSlot_数字 数字从0开始 取决于你Config.DisplayItemAmount中配置的数量
默认情况是36 也就是ItemSpaceSlot_0-35
到这里 你就可以在界面上显示物品了
Packet.send('itemspace', 'giveItem', 槽位id, 数量)
这个包是在指定槽位上获取指定数量的物品 你可以这样使用
在slot组件中配置这个动作 可以使得你在点击他时获取上面的物品
Packet.send('itemspace', 'autoPickup')
这个包是切换当前空间的自定拾取功能
Packet.send('itemspace', 'addItem')
这个包是添加当前光标上的物品到当前空间
- sizeMax 空间最大容量
- unlockSize 空间已解锁容量
- size 已使用的容量
- isAutoPickup 是否开启了自动拾取
在任意位置使用该方法即可 Packet.send('itemspace', 'switchSpace', '空间名称')
这个是切换空间 也可以唤起空间 你能够在任何界面发送
当你发送了这个包后 服务端会往客户端发送ItemSpacePacket以及将空间的物品映射到指定槽位上
觉得不理解?就和原版的箱子界面一样 他会在指定的槽位生成物品
ItemSpace使用的槽位是ItemSpaceSlot_数字 数字从0开始 取决于你Config.DisplayItemAmount中配置的数量
默认情况是36 也就是ItemSpaceSlot_0-35
到这里 你就可以在界面上显示物品了
Packet.send('itemspace', 'giveItem', 槽位id, 数量)
这个包是在指定槽位上获取指定数量的物品 你可以这样使用
在slot组件中配置这个动作 可以使得你在点击他时获取上面的物品
YAML:
action:
click: |-
if(self.getSlotItemStack().getCount() != 0){
Packet.send('itemspace', 'giveItem', self.id, 1)
}
Packet.send('itemspace', 'autoPickup')
这个包是切换当前空间的自定拾取功能
Packet.send('itemspace', 'addItem')
这个包是添加当前光标上的物品到当前空间