功能
允许每个玩家拥有扩展背包获得额外的空间。- 可自定义每个玩家的容量(通过权限设置)
- 可选在死亡时清空扩展背包
- 可选在清档时清空扩展背包
- 可选物品限制
- 可选通过GUI按钮打开扩展背包
- 可选将收集的物品自动移至扩展背包
- 可选将扩展背包中的物品用于制作、建造
bind <按键> backpack
。例如bind b backpack
。快速使用
允许所有玩家打开扩展背包
代码:
o.grant group default backpacks.use
/backpack
或backpack
打开扩展背包。默认情况下,所有扩展背包都有6格的容量(1行),但可以通过配置或权限进行更改。允许所有玩家使用GUI按钮
代码:
o.grant group default backpacks.gui
/backpackgui
隐藏或显示按钮。如果要默认禁用按钮,让玩家自行启用,可以在配置中设置。指令
- backpack / backpack.open - 打开自己的背包。需要
backpacks.use
权限。如果背包已经打开,将切换到下一页,如果没有更多页面,则关闭背包。 - backpack.fetch <物品短名称/id> <数量> - 从背包提取物品。
- backpackgui - 开启关闭GUI按钮显示。
- backpack.setgathermode <All|Existing|Off> <页数> - 为指定的扩展背包页面设置收集模式。如果未指定页数,则应用于第一页。这个指令对于通过绑定按键快速更改收集模式非常有用,而无需打开背包。 注:如果要始终通过聊天而不是控制台接收此指令的消息提示,则应该绑定这样绑定
bind <按键> chat.say "/backpack.setgathermode All"
而不是bind <按键> backpack.setgathermode All
。
管理员指令
- viewbackpack <玩家名称/ID> - 查看指定玩家的扩展背包(需要backpacks.admin权限)
服务器指令
- backpack.erase <玩家ID> - 强制清空指定玩家的背包,即使拥有backpack.keeponwipe.*权限也会清空。
权限
- backpacks.use - 打开自己的扩展背包所需的权限。
- backpacks.admin - 使用viewbackpack指令所需的权限。
- backpacks.gui - 显示GUI按钮所需的权限。
- backpacks.fetch - 使用backpack.fetch指令所需的权限。
- backpacks.keepondeath - 死亡时不会掉落扩展背包物品的权限。
- backpacks.gather - 允许为每个背包页面启用收集模式,这会自动将新获取的物品转移到扩展背包中。
- 注意:当玩家与服务器断开连接并在一段时间后重新连接时,收集模式将不会激活,除非玩家至少再打开一次扩展背包。
- backpacks.retrieve - 允许为每个背包页面启用取回模式。启用取回模式时,玩家可以使用背包中指定页面的物品进行建造、制作等。需要Item Retriever插件。
- 注意:当玩家与服务器断连接并在一段时间后重新连接时,在玩家至少打开背包一次之前,取回模式不会被激活。 此外,在(重新)连接到服务器后,重装武器弹药、切换武器弹药、从自动售货机购买物品以及从NPC购买车辆将无法从页面获取物品,直到玩家至少查看这些页面一次。
大小权限
如果要将指定玩家或组的扩展背包容量授予大于默认容量(Backpack size->Permission sizes
),则可以通过权限来实现。Backpack size->Permission sizes
配置选项中存在的每个数字将让插件生成格式为backpacks.size.<数字>
的权限,为玩家或组分配相应的容量。例如backpacks.size.18
将分配18格的容量(3行)。插件默认配置自带以下权限:
- backpacks.size.6 - 1行
- backpacks.size.12 - 2行
- backpacks.size.18 - 3行
- backpacks.size.24 - 4行
- backpacks.size.30 - 5行
- backpacks.size.36 - 6行
- backpacks.size.42 - 7行
- backpacks.size.48 - 8行
- backpacks.size.96 - 16行(2+页面)
- backpacks.size.144 - 24行(3+页面)
Backpack size->Permission sizes
的配置选项中并重载插件,就可以新增权限。注:如果玩家被授予多个大小权限,则应用最大的。
动态背包大小(高级/实验性)
如果您想允许玩家升级他们的背包大小,可以通过上述的 backpacks.size.* 权限来实现,只需在玩家进行购买或执行操作以获得更大尺寸时,分配更高的权限(您需要负责在适当的时候使用其他插件来授予和/或撤销权限)。然而,使用权限来确定背包大小并不适用于所有类型的服务器,可能会导致以下一些问题:- 如果您希望在每次服务器重置时重置背包大小,您将需要另一个插件在那个时候重置权限。
- 如果您希望玩家可以通过多种方式增加背包大小,例如通过技能树、商店购买、在玩家之间找到和/或交易的可消耗物品,那么这种组合可能根本不可行,因为每个升级来源都可能覆盖其他来源,或者如果授予的权限对应于比玩家当前拥有的尺寸小的尺寸,则可能没有效果。
要开始使用动态背包大小,请将 "
Dynamic Size (EXPERIMENTAL) -> Enabled
" 配置选项设置为 true
,然后重新加载插件。然后,授予以下权限之一(或您在配置中定义的新权限):以下权限包含在插件的默认配置中。可以在配置中定义其他大小配置文件,这将生成额外的权限。
- backpacks.size.profile.6-48 - 6 到 48 个栏位
- backpacks.size.profile.6-96 - 6 到 96 个栏位
- backpacks.size.profile.6-144 - 6 到 144 个栏位
- 如果玩家被授予多个
backpacks.size.profile.*
权限,将生效最后一个,根据配置文件中的配置顺序。 - 如果玩家被授予任何
backpacks.size.profile.*
权限,它将覆盖配置文件中的默认背包大小,以及他们被授予的任何 backpacks.size.<数字> 权限,因为带下配置文件优先于所有其他配置/权限。 - 该插件当前不提供内置功能来升级背包容量,因此必须使用其他插件来处理此类用例。插件开发人员可以参考下面的 API 文档,了解如何查询和修改背包容量的详细信息。下面是一些重要的 API 方法名称。
- API_IsDynamicCapacityEnabled
- API_GetBackpackCapacity
- API_GetBackpackInitialCapacity
- API_GetBackpackMaxCapacity
- API_AddBackpackCapacity
- API_SetBackpackCapacity
- 其他插件也可以使用
backpack.addsize
和backpack.setsize
指令,但根据您的具体设置,这可能会导致玩家在已达到最大容量时有效浪费资源购买升级的情况。建议使用API更精确的集成,因为其他插件可以查询 Backpacks 插件以确定在向玩家升级之前是否可以升级。
物品限制权限
如果要限制指定玩家或组的扩展背包可放入的物品与默认限制不同(Clear on wipe->Default ruleset
)的物品,则可通过权限实现。Clear on wipe->Rulesets by permission
配置选项中定义的每个规则集将让插件生成格式为backpacks.restrictions.<名称>
的权限。 授予该权限会将相应的规则集分配给相应的玩家或组。插件默认配置自带以下权限:
- backpacks.restrictions.allowall - 允许扩展背包中存放所有物品。只有在自定义了默认规则集来限制物品时,此权限才会起作用。
backpacks.restrictions.*
权限,则应用配置中的规则集顺序的最后一个。免清空权限
如果要允许特定玩家或组的扩展背包在清档过程中保留与默认的 (Clear on wipe> Default ruleset
) 不同的物品,那么您可以通过权限来实现。Clear on wipe>Rulesets by permission
配置选项中定义的每个规则集都会让插件生成格式为backpacks.keeponwipe.<名称>
的权限。授予该权限会将该规则集分配给相应的玩家或组。插件默认配置自带以下权限:
- backpacks.keeponwipe.all - 允许所有物品都在清档时保留。
backpacks.keeponwipe.*
权限,则应用配置中的规则集顺序的最后一个。旧版权限
- backpacks.use.11-8 -- 像backpacks.size.*但分配指定的行数而不是槽数。
- 当
"Backpack size"->"Enable legacy backpacks.use.1-8 row permissions": true
配置选项这样设置时,会生成这些权限,如果在从旧版插件升级时设置了"Backpack Size (1-8 Rows)"
配置选项,则会自动添加到配置中。
- 当
- backpacks.noblacklist - 使玩家免受物品限制,允许任何物品放入背包中。
- 当
"Item restrictions"->"Enable legacy noblacklist permission": true
配置选项这样设置时,则会生成此权限,如果在从旧版插件升级时设置了"Use Whitelist (true/false)": true 或 "Use Blacklist (true/false)": true
配置选项,则会自动添加到配置中。
- 当
- backpacks.keeponwipe - 在清档时玩家的背包内容不会被清除。
- 当
"Clear on wipe"->"Enable legacy keeponwipe permission": true
配置选项这样设置时,则会生成此权限,如果在从旧版插件升级时设置了"Clear Backpacks on Map-Wipe (true/false)": true
配置选项,则会自动添加到配置中。
- 当
配置文件
默认配置文件
JSON:
{
"Backpack size": {
"Default size": 6,
"Max size per page": 48,
"Enable legacy backpacks.use.1-8 row permissions": false,
"Permission sizes": [
6,
12,
18,
24,
30,
36,
42,
48,
96,
144
]
},
"Drop on Death (true/false)": true,
"Erase on Death (true/false)": false,
"Minimum Despawn Time (Seconds)": 300.0,
"GUI Button": {
"Enabled": true,
"Enabled by default (for players with permission)": true,
"Skin Id": 0,
"Image": "https://i.imgur.com/T6orn2Q.png",
"Background Color": "0.969 0.922 0.882 0.035",
"GUI Button Position": {
"Anchors Min": "0.5 0.0",
"Anchors Max": "0.5 0.0",
"Offsets Min": "185 18",
"Offsets Max": "245 78"
}
},
"Container UI": {
"Show page buttons on container bar": false
},
"Softcore": {
"Reclaim Fraction": 0.5
},
"Item restrictions": {
"Enabled": false,
"Enable legacy noblacklist permission": false,
"Feedback effect": "assets/prefabs/locks/keypad/effects/lock.code.denied.prefab",
"Default ruleset": {
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
"Rulesets by permission": [
{
"Name": "allowall",
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
}
]
},
"Clear on wipe": {
"Enabled": false,
"Enable legacy keeponwipe permission": false,
"Default ruleset": {
"Max slots to keep": 0,
"Allowed item categories": [],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
},
"Rulesets by permission": [
{
"Name": "all",
"Max slots to keep": -1,
"Allowed item categories": [
"All"
],
"Disallowed item categories": [],
"Allowed item short names": [],
"Disallowed item short names": [],
"Allowed skin IDs": [],
"Disallowed skin IDs": []
}
]
},
}