团队系统#
BentoBox 为游戏模式提供团队系统. 团队系统使玩家们可以在一个岛屿中合作. 每个团队由一个队长和至少一个成员组成.
团队系统指令#
这是玩家团队系统指令列表. 这些指令需要与主指令结合使用, 例如在 BSkyBlock 中指令为 /island team
.
指令 | 功能 | 权限 |
team | 管理你的团队 | [游戏模式].island.team |
team accept | 同意一个团队邀请 | [游戏模式].island.team |
team coop | 设置玩家的身份组为合作者 | [游戏模式].island.team.coop |
team demote | 使玩家身份降低一级 | [游戏模式].island.team |
team leave | 离开团队 | [游戏模式].island.team |
team invite | 发起团队邀请 | [游戏模式].island.team |
team kick | 从团队中移除一个成员 | [游戏模式].island.expel |
team promote | 使玩家身份升高一级 | [游戏模式].island.team |
team reject | 拒绝一个团队邀请 | [游戏模式].island.team |
team setowner | 转让团队 | [游戏模式].island.team |
team trust | 设置玩家的身份组为可信者 | [游戏模式].island.team.trust |
团队系统主命令#
团队系统主命令为 team
. 要成功执行此指令你必须拥有一个岛屿. 如果你执行了此指令, 你将会收到以下消息:
- 如果你是岛主, 插件将告知你最多可以邀请多少玩家到你的团队.
- 如果你是团队成员, 插件将会显示团队的总人数. 其中包括玩家的身份组、在线状态以及最后一次上线时间.
团队人数#
团队人数可以是任意数, 其最大值可以在游戏模式配置文件中配置或通过权限来修改. 默认的团队最大人数为 4.
团队成员权限组#
BentoBox 有这些内置权限组:
- 岛主 - 这是岛主人的权限组. 一个岛屿只能有一个岛主.
- 副岛主 - 拥有与岛主几乎相同的权限. 一个岛屿可设置多个副岛主.
- 成员 - 默认的岛屿成员权限组.
非团队成员权限组#
有一些权限组与团队有关但并不等同于团队成员:
- 可信者 - 在此权限组的玩家拥有该岛屿的所有权限
- 合作者 - 在此权限组的玩家仅在岛主在线时拥有该岛屿的所有权限
- 游客 - 这是任何访问岛屿的玩家所在的默认权限组
- 封禁 - 被岛屿成员封禁的玩家将无法进入该岛屿
自定义权限组权限#
岛主可在岛屿设置菜单中设置各个权限组的具体权限. 例如岛主可以设置岛屿成员是否可以邀请其它玩家加入岛屿.
升级与降级#
岛屿成员权限组可由岛屿管理员进行升级或降级.
玩家不可对自身进行升级或降级操作.
目前, Bentobox 只支持在成员权限组和副岛主权限组之间切换. 以后插件将可能支持其他权限组.
加入团队#
邀请#
使用 team invite
指令可以邀请玩家加入一个团队. 要邀请玩家加入团队, 邀请人必须是岛主或是拥有该权限的成员 (详见 自定义权限组权限). 被邀请的玩家必须在线才能成功发起邀请. 邀请只可发给没有加入任何团队的玩家. 如果某个玩家想要更换团队, 他们必须先从旧团队退出才能再次被邀请. 已被邀请的玩家在其拒绝邀请之前不可再次邀请. 被邀请的玩家只可保留一个有效邀请. 如果一个玩家在邀请尚未处理的情况下收到了另一个邀请, 旧邀请将会被新邀请替换. 如果岛屿已达到最大成员数, 执行邀请指令的玩家将会被告知岛屿已满.
API: 当所有验证程序完成但邀请还未发出时, TeamInviteEvent
将会被触发. 如果此事件被取消邀请将不会发出.
冷却#
为避免玩家滥用邀请, BentoBox 会阻止短时间内同一玩家发起多个邀请. 冷却对整个岛屿团队生效, 这可以避免多个岛屿成员对其它玩家进行邀请骚扰. 各种邀请的冷却时间如下:
- 团队成员邀请 - 60 分钟
- 合作邀请 - 5 分钟
- 可信者邀请 - 5 分钟
这些值可以在游戏模式的 config.yml
中修改.
查看邀请#
玩家可以使用 invite
指令来查看邀请人姓名. 这适用于所有类型的邀请.
接受一个邀请#
玩家可以使用 team invite accept
指令来接受一个邀请.
确认#
管理员可以选择玩家加入团队是否需要确认. 默认情况下邀请玩家加入团队需要岛主的确认而合作与可信者邀请则不需要. 这是因为当玩家加入团队后他将失去原来的岛屿. 如果要求确认, 被邀请的玩家将会收到警告信息: "如果你已经有一个岛屿, 在加入团队之后你将会失去它". 玩家确认邀请后, 他们将会成为团队成员并被传送至团队岛屿.
如果在玩家接受邀请之前, 发起邀请的玩家失去了邀请权限. 那么被邀请着将会被告知邀请已失效.
提示: 默认确认等待时间为 10 秒, 你可以在 BentoBox 的 config.yml
中修改. 上箭头键⬆是可以显示历史输入的, 所以不必再次输入一遍指令来确认.
API: 当所有验证程序都完成但在邀请发出之前, TeamJoinEvent
将会被触发. 如果此事件被取消邀请将不会发出. 一旦玩家加入了团队, 根据邀请类型将会触发不同的事件:
TeamJoinedEvent
在玩家加入团队后触发.IslandRankChange
会被触发来标记玩家的权限组.
这些事件用于通知且不可被取消.
成为团队成员的过程#
BentoBox 通过下面的步骤来使玩家加入一个团队:
- 删除邀请.
- 移除玩家对旧岛屿的权限.
- 根据设置进行玩家数据的处理 - 详见游戏模式
config.yml
:- 末影箱物品 (默认: 无操作)
- 玩家背包 (默认: 无操作 请看下方注释!)
- 金钱 (默认: 无操作)
- 生命值 (默认: 恢复至满血状态)
- 饥饿条 (默认: 恢复至饱食状态)
- 经验值 (默认: 无操作)
- 玩家成为新岛屿的团队成员.
- 删除旧家位置.
- 传送玩家至他的新家位置.
- 开始删除旧岛屿.
- 重置玩家死亡次数, 如果管理员开启了死亡计数功能的话.
- 告知玩家他已经加入了新的岛屿.
- 通知邀请者被邀请玩家已加入团队.
- 保存岛屿信息至数据库.
- 触发通知事件.
清空玩家背包 建议开启此选项! 默认未开启的原因是为了避免安装插件时带来不必要的麻烦. 某些服主不理解为什么加入岛屿会清空背包. 然而, 为了避免刷物品, 背包应被清空.
拒绝一个邀请#
玩家可使用 team invite reject
指令来拒绝邀请.
玩家必须要有一个有效邀请才可以拒绝邀请, 否则他们将会收到错误信息.
API: 如果一个玩家有一个待处理的有效邀请 TeamRejectEvent
事件将会被触发. 如果该事件被取消邀请将不能被拒绝且拒绝指令将会静默失效. 建议在取消该事件时告知玩家为什么不能拒绝邀请.
一旦验证程序通过, 邀请将被拒绝并通知邀请者.
转让岛屿#
岛主可以使用 team setowner
指令来把岛屿转让给其他岛屿成员.
API: 在验证该指令可以执行之后但在执行之前, TeamSetownerEvent
事件将被触发. 如果此事件被取消, 转让指令将不会生效且不会有任何提示. 建议在取消该事件时告知玩家为什么不能转让岛屿.
一旦岛屿转让成功, 有两个 IslandRankChange
事件将会被触发: 一个针对新岛主另一个针对旧岛主.
岛主在退出团队之前必须先选择一个新岛主.
踢出成员#
有时可能需要强制从团队中移除一个玩家. 此时可以使用 team kick
指令. 岛主始终拥有踢出权限, 当然岛主也可以通过在岛屿控制面板中的权限组权限管理菜单中允许其它权限组的成员踢出玩家. 被踢出的成员不必在线.
该指令默认情况下需要确认. 这可以在 Bentobox 的 config.yml
中修改.
当一个成员被踢出时, 以下事件会发生:
- 被踢出的玩家收到通知 (如果在线的话)
- 该玩家被移出岛屿
- 如果配置了玩家退出岛屿时发生的事件 (详见游戏模式
config.yml
) 那么此时将会执行. - 根据配置文件的设置对玩家数据进行处理:
- 末影箱物品 (默认: 无操作). 如果该玩家不在线, 此操作将会在其再次上线时执行
- 玩家背包 (默认: 无操作). 如果该玩家不在线, 此操作将会在其再次上线时执行
- 金钱 (默认: 无操作). 此事件不受玩家是否在线影响.
- 生命值 (默认: 无操作). 仅在玩家在线时生效.
- 饥饿值 (默认: 无操作). 仅在玩家在线时生效.
- 经验值 (默认: 无操作). 仅在玩家在线时生效.
- 通知执行踢出指令的玩家踢出已完成.
- 通知事件被触发. API: 两个事件会被触发 -
TeamKickEvent
和IslandRankChangeEvent
. 后者用来标记该玩家目前处于游客权限组. - 邀请冷却会被应用到踢出者和被踢出者. 这可以帮助减少某些隐患 (比如踢出后立即拉回).
退出一个团队#
玩家可使用 team leave
指令自愿退出一个团队. 默认情况下该指令需要确认, 但这可以在 Bentobox 配置文件中关闭. 当自愿退出团队时, 玩家可能会消耗其岛屿重置次数. 这可以在游戏模式配置文件中设置且默认状态下不会消耗重置次数. 如果开启消耗重置次数, 玩家在退出团队时会被提示需要消耗重置次数. 注意: 玩家将可能因退出团队而消耗完重置次数, 从而无法创建自己的岛屿. 这是服主们应该考虑的事情.
当玩家退出岛屿时, 发生的事件基本与玩家被踢出时一致, 唯一不同的是该玩家可能会减少一个重置次数.
API: 玩家退出团队后, 有两个通知事件会被触发: TeamLeaveEvent
和 IslandRankChangeEvent
. 后者用来标记该玩家目前处于游客权限组.
信任与合作#
有时玩家会想要在其他岛屿帮忙但并不想加入该岛屿. 此时可以将该玩家设为可信者或是合作者:
team trust <player>
: 玩家成为岛屿的永久成员, 位于权限组可信者team coop <player>
: 玩家成为岛屿的临时成员, 位于权限组合作者
岛主始终可以执行上面的指令, 岛主也可以在岛屿控制面板中的权限组权限管理菜单中允许其它权限组成员执行这些指令.
这些指令将会向受邀请玩家发送邀请请求, 就像团队成员邀请一样. 如果邀请被拒绝, 在冷却时间内将无法发送另一邀请, 此冷却默认为 5 分钟. 这避免玩家遭到邀请骚扰.
如果玩家有其他未处理的邀请请求, 该请求将会被此新请求覆盖.
一旦同意, 该玩家将进入该岛屿的指定权限组. 同时邀请者将接到提醒.
API: 有一个通知事件会被触发: IslandRankChangeEvent
标记新的权限组.
合作者仅在邀请他们的人在线时持有该权限组.
解除合作或信任关系#
岛主, 或其他拥有 team untrusted
和 team uncoop
权限的玩家可以解除其它玩家的合作或信任关系.
API: 如果解除成功, IslandRankChangeEvent
事件将会被触发来标记该玩家现在是游客权限组.