![任务与请求板 [物理经济系列]](https://cdn8.newbeebox.com/nbbnext/2026/01/30/a663aa4f07661604e8e2091637f119ff.png)
任务与请求板 [物理经济系列]
添加了请求和任务板,让玩家可以用材料换取金币奖励。
查看大图任务与请求公告板
任务与请求公告板 是一个 Hytale 模组,它引入了一个结构化的 委托与任务公告板系统,专为 SMP 和 RP 服务器设计。
该模组允许玩家发布带有保证的 金币奖励 的 材料请求,同时管理员可以创建 服务器控制的 任务,所有功能均基于安全、可配置且防利用的经济系统。
🔗 依赖
此模组 需要:
- [Coins & Markets] [物理经济系列]
所有货币处理(铜币/银币/金币/铂金币)、转换和比率都 直接继承 自 Coins & Markets 的配置。
📌 重要提示:
需要明确的是,此模组绝不涉及现实世界的货币。
📌 模组内容
📋 请求公告板(玩家拥有)
一个玩家拥有的公告板,概念上类似于供应商,用于发布材料的 采购订单。
借助请求公告板,玩家可以:
- 创建请求,指定:
- 请求物品
- 数量
- 金币奖励
- 接受其他玩家的交付
- 自动支付贡献者
- 从 物理存储 中收集已购买的材料
每个公告板包含一个 36 格收件箱(4×9):
- 所有交付的物品都存储在此处
- 如果收件箱已满,则阻止交付
- 没有虚拟物品,也不会丢失物品
🧾 任务公告板(管理员)
一个管理员拥有的公告板,用于发布关于材料的可重复(或不可重复,如果你选择)任务,以换取金币。 每个任务对玩家来说是个人化的,在每个冷却时间内,每个玩家只能完成一个特定的任务一次。
指令任务
当玩家完成特定任务时,服务器可以自动运行一个或多个指令作为奖励/动作。
实际示例(每行写一个指令):
console: broadcast {player} 购买了 VIP!console: give {player} Coin_Gold 3console: lp user {player} parent add vip 30dplayer: give {player} Coin_Silver
规则/提示:
- 每行一个指令(添加多行以连锁奖励)。
- 不要包含危险指令(避免 OP/权限升级,除非你真的想这样做)。
- 先测试,在用于真实奖励之前,先在测试任务公告板上使用一个安全的提议。
💰 安全经济系统(托管账户系统)
所有请求都使用内置的 托管账户系统:
- 金币在 请求创建时被锁定
- 付款有保证
- 不会出现诈骗或未付款的交付
- 所有交易都是 原子性的:
- 要么全部成功,要么什么都不发生
🔁 请求副本与冷却时间
单个请求可以代表 多个相同的副本(例如 10 个任务)。
此外:
- 每个玩家在每个冷却时间内 只能完成一个副本
- 适用于:
- 可重复的委托
- 分散的劳动
- 防止单玩家刷取
⚙️ 配置 (权限、配置回退 与 LuckPerms)
任务与请求公告板在首次启动时会创建一个 JSON 配置文件:
- 文件名:
quest_request_boards.json - 位置: 模组/插件的 数据目录 内(自动创建)
更改在 服务器重启 后生效(该文件在启动时也会自动进行美观格式化并重新保存)。
▶️ 1) 权限系统概览(你使用的是哪种模式?)
此模组支持 两种不同的访问控制风格:
- 配置回退模式(默认/宽松)
在 LuckPerms 未激活(或权限后端不可用且启用了失败开放)时使用。
在此模式下,模组的行为主要类似于一个 所有权 + 配置规则 系统:
- 公告板所有者 默认被信任可执行某些操作(例如:取消自己的请求,打开自己的收件箱)。
- 管理员(OP) 可以绕过大多数限制。
- 某些操作始终允许所有人执行(例如:完成请求),除非你切换到 LuckPerms 模式。
- LuckPerms模式(严格/权限驱动)
在启用了
UseLuckPerms并且 LuckPerms 已安装并可用时使用。 在此模式下,大多数操作由 明确的权限节点 控制:- 对于许多操作,仅凭所有权是不够的(例如:所有者需要
...cancel.own和...inbox.open.own权限)。 - 非常适合希望实现 基于角色的访问(市民 vs. 商人 vs. 工作人员)的RP/SMP服务器。
- 如果你希望防止“默认 OP 权力”并完全控制谁能做什么,推荐使用此模式。
- 对于许多操作,仅凭所有权是不够的(例如:所有者需要
提示: 如果你启用了 LuckPerms 模式,记得授予“基本玩家”权限,否则玩家可能能够 看到 公告板,但无法 使用 关键操作,如创建/取消请求或打开收件箱。
▶️ 2) 访问.提供商设置(启用 / LuckPerms / 失败开放 vs 失败关闭)
权限后端由以下配置控制:
"Access": {
"Provider": {
"Enabled": true,
"UseLuckPerms": false,
"DefaultDenyWhenUnavailable": false
}
}
Access.Provider.Enabled:- true = 模组评估权限(原生/OP/LuckPerms,取决于其他设置)。
- false = 忽略权限节点;模组依赖于配置/所有权行为(并在适用情况下使用 OP 绕过)。
Access.Provider.UseLuckPerms:- true = 如果 LuckPerms 已安装并可用,则使用它。
- false = 使用服务器的原生权限(和 OP 支持)。
Access.Provider.DefaultDenyWhenUnavailable: 控制在外部权限后端不可用时发生的情况:- false(失败开放):模组回退到 配置/所有权规则,以便你的服务器保持运行。
- true(失败关闭):模组变得 严格,如果外部后端不可用,将拒绝大多数受权限控制的操作。
日志记录: 将 Access.Logging.LogChecks 设置为 true 以记录权限检查(在调整 LuckPerms 组时有用)。
性能说明: 权限检查会在内部缓存几秒钟,以减少冗余和负载。
▶️ 3) 请求公告板访问规则(配置 vs LuckPerms)
请求公告板 是玩家拥有的。模组根据模式不同而评估权限:
打开/使用请求公告板 UI 配置键:
Access.RequestBoard.Use.RequirePermissionToUseRequestBoard权限节点:questrequestboards.requestboard.use- 如果 RequirePermissionToUseRequestBoard = false → 任何人都可以打开。
- 如果为 true → 仅在严格/LuckPerms 模式下强制执行(否则行为宽松,除非启用了失败关闭)。
在请求公告板上创建请求 配置键:
Access.RequestBoard.Create.OnlyOwnerCanCreateRequests权限节点:questrequestboards.request.create- 配置回退模式:
- 如果
OnlyOwnerCanCreateRequests = true→ 只有公告板所有者才能创建请求。 - 如果
false→ 任何人都可以在任何公告板上创建请求。 - 拥有
questrequestboards.request.create权限可以作为绕过后台,允许即使在启用仅所有者模式时也能创建。 - 在回退模式下,OP 可以绕过。
- 如果
- LuckPerms 模式:
- 需要
questrequestboards.request.create权限。 - 仅凭所有权不能授予创建权限。
- 需要
- 配置回退模式:
完成/交付请求 权限节点:
questrequestboards.request.fulfill- 配置回退模式: 允许所有人。
- LuckPerms 模式: 需要
questrequestboards.request.fulfill权限。
取消请求 配置键:
Access.RequestBoard.Manage.OtherPlayersCanCancelRequests权限节点:questrequestboards.request.cancel.own,questrequestboards.request.cancel.any- 配置回退模式:
- 所有者始终可以取消自己的请求。
- 如果
OtherPlayersCanCancelRequests = true,其他玩家可以取消。 ...cancel.any可以作为工作人员的绕过(即使配置不允许)。
- LuckPerms 模式:
...cancel.any允许你取消任何请求。- 需要
...cancel.own才能取消自己的请求(仅凭所有权是不够的)。
- 配置回退模式:
打开收件箱(已交付物品存储) 配置键:
Access.RequestBoard.Manage.OtherPlayersCanOpenInbox权限节点:questrequestboards.inbox.open.own,questrequestboards.inbox.open.any- 配置回退模式:
- 所有者始终可以打开自己的收件箱。
- 如果
OtherPlayersCanOpenInbox = true,其他玩家可以打开。 ...open.any可用作工作人员的绕过。
- LuckPerms 模式:
...open.any允许你打开任何人的收件箱。- 需要
...open.own才能打开自己的收件箱(仅凭所有权是不够的)。
- 配置回退模式:
破坏/移除请求公告板方块 配置键:
Access.RequestBoard.Break.AllowCreativeBreakAny,Access.RequestBoard.Break.AllowOpBreakAny,Access.RequestBoard.Manage.OtherPlayersCanBreakBoard权限节点:questrequestboards.requestboard.break.any- 所有者始终可以破坏自己的公告板。
- 非所有者:
- 在严格/LuckPerms 模式下 → 需要
questrequestboards.requestboard.break.any权限。 - 在回退模式下 → 可以通过配置 (
OtherPlayersCanBreakBoard) 允许,并且 OP 绕过同样适用。
- 在严格/LuckPerms 模式下 → 需要
▶️ 4) 任务公告板访问规则(配置 vs LuckPerms)
任务公告板 通常由管理员/工作人员控制。主要控件:
打开/使用任务公告板 UI 配置键:
Access.QuestBoard.Use.RequirePermissionToUseQuestBoard权限节点:questrequestboards.questboard.use放置任务公告板 权限节点:
questrequestboards.questboard.place- 配置回退模式: 允许。
- LuckPerms 模式: 需要
questrequestboards.questboard.place权限。
编辑任务公告板 配置键:
Access.QuestBoard.Edit.RequirePermissionToEditQuestBoard权限节点:questrequestboards.questboard.edit- 如果配置标志为 false → 允许编辑。
- 如果为 true:
- 回退模式: 权限
...questboard.edit可以作为绕过,否则允许所有者。 - LuckPerms 模式: 需要
...questboard.edit权限(仅凭所有者是不够的)。
- 回退模式: 权限
管理任务金库 配置键:
Access.QuestBoard.Treasury.RequirePermissionToManageTreasury权限节点:questrequestboards.questboard.treasury- 如果配置标志为 false → 允许管理金库。
- 如果为 true:
- 回退模式: 权限可以绕过;否则允许所有者。
- LuckPerms 模式: 需要
...questboard.treasury权限。
编辑任务完成指令 权限节点:
questrequestboards.questboard.commands配置键:Access.QuestBoard.Commands.*Enabled:完成指令编辑的主开关。OpOnly:如果为 true,则始终允许 OP。OpOnlyOverridesPermissions:如果为 true 且OpOnly也为 true,则即使非 OP 玩家拥有权限也会被阻止。AllowCreative:允许处于创造模式的玩家。AllowPermission:允许通过questrequestboards.questboard.commands权限进行访问(仅在 LuckPerms 可用时有效)。
完成任务 权限节点:
questrequestboards.quest.complete- 回退模式: 允许。
- LuckPerms 模式: 需要
questrequestboards.quest.complete权限。
破坏任务公告板 权限节点:
questrequestboards.questboard.break.any配置键:Access.QuestBoard.Break.AllowOpBreakAny- 所有者始终可以破坏自己的公告板。
- 非所有者:
- 在 LuckPerms/严格模式下 → 需要
questrequestboards.questboard.break.any权限。 - 可以根据
AllowOpBreakAny(和/或回退 OP 行为)允许 OP。
- 在 LuckPerms/严格模式下 → 需要
▶️ 5) 所有权限节点(LuckPerms / 原生权限)
根通配符(一切):
questrequestboards.*— 授予此模组中的所有内容。
请求公告板 / 请求:
questrequestboards.requestboard.use— 打开/使用请求公告板 UI(仅在严格/LuckPerms 模式下RequirePermissionToUseRequestBoard为 true 时强制执行)。questrequestboards.request.create— 创建请求。questrequestboards.request.fulfill— 完成/交付请求。questrequestboards.request.cancel.own— 取消你自己的请求(在 LuckPerms 模式下必需)。questrequestboards.request.cancel.any— 取消任何人的请求。questrequestboards.inbox.open.own— 打开你自己的公告板收件箱(在 LuckPerms 模式下必需)。questrequestboards.inbox.open.any— 打开任何人的公告板收件箱。questrequestboards.requestboard.break.any— 破坏/移除任何请求公告板(非所有者)。
任务公告板 / 任务:
questrequestboards.questboard.use— 打开/使用任务公告板 UI(仅在严格/LuckPerms 模式下RequirePermissionToUseQuestBoard为 true 时强制执行)。questrequestboards.questboard.place— 放置任务公告板(在 LuckPerms 模式下必需)。questrequestboards.questboard.edit— 编辑任务公告板。questrequestboards.questboard.treasury— 管理金库。questrequestboards.questboard.commands— 编辑完成指令(仅在AllowPermission启用且 LuckPerms 可用时)。questrequestboards.quest.complete— 完成任务(在 LuckPerms 模式下必需)。questrequestboards.questboard.break.any— 破坏/移除任何任务公告板(非所有者)。
开发/调试指令:
questrequestboards.command.setboardowner— 使用qrb_setboardowner调试指令(仅当Debug.DevCommandsEnabled为 true 时注册)。
通配符支持(推荐):
模组通过向上扩展检查来支持 .* 通配符。你可以在 LuckPerms 中授予的示例:
questrequestboards.request.*— 所有与请求相关的权限(创建/完成/取消等)。questrequestboards.inbox.*— 所有收件箱权限。questrequestboards.questboard.*— 所有任务公告板管理权限。
注意: 通配符格式是 前缀.*(不仅仅是 前缀)。
▶️ 6) 建议的 LuckPerms 预设(作为“思维模板”复制)
普通玩家(请求公告板游戏流程) 授予这些,以便玩家在 LuckPerms 模式下实际可以使用自己的公告板:
questrequestboards.request.createquestrequestboards.request.fulfillquestrequestboards.request.cancel.ownquestrequestboards.inbox.open.own
可选(仅当你将“RequirePermissionToUse…”标志设置为 true 时):
questrequestboards.requestboard.use
助手/版主(管理玩家公告板)
questrequestboards.request.cancel.anyquestrequestboards.inbox.open.anyquestrequestboards.requestboard.break.any
任务工作人员(管理任务公告板)
questrequestboards.questboard.placequestrequestboards.questboard.editquestrequestboards.questboard.treasuryquestrequestboards.questboard.commands(仅当 Commands.AllowPermission 启用时)questrequestboards.questboard.break.any
管理员(一切)
questrequestboards.*
▶️ 7) 其他重要配置部分(限制 / 费用 / 请求 / 任务奖励 / 调试)
- RequestBoard.Limits
MaxBoardsPerPlayerAdventureEnabled和MaxBoardsPerPlayerAdventure限制玩家可以拥有的请求公告板数量,仅在冒险模式下生效。 - 费用(在创建请求时收取)
Enabled:开启/关闭费用。Mode:FLAT(固定费用)或PERCENT(百分比费用)。FlatCopper:以铜币计的固定费用。Percent:百分比费用 (0-100)。Destination:BURN(移除金币)或TREASURY(存储在模组金库文件中)。
- 请求
DefaultDurationTicks:新请求的默认到期时间。DefaultMinDeliveryQty:单次交付操作的最低交付数量。MaxActivePerBoard:每个公告板允许的最大活跃请求数。AllowLooseMatch:允许 LOOSE 匹配模式,即使一个物品 ID 带有命名空间而另一个没有,也能接受(例如hytale:iron_ingotvsiron_ingot)。
- QuestRewards
DefaultPaymentMode:TREASURY(受存储资金限制)或MINT(服务器铸造)。DefaultRewardCopper:以铜币计的任务默认奖励价值。
- 调试
Enabled:主调试开关。DevCommandsEnabled:启用仅限开发的指令(如qrb_setboardowner)。
▶️ 8) 默认配置文件(随模组提供)
{
"schemaVersion": 1,
"RequestBoard": {
"Limits": {
"MaxBoardsPerPlayerAdventureEnabled": false,
"MaxBoardsPerPlayerAdventure": 1
}
},
"Fees": {
"Enabled": false,
"Mode": "FLAT",
"FlatCopper": 0,
"Percent": 0.0,
"Destination": "BURN"
},
"Requests": {
"DefaultDurationTicks": 72000,
"DefaultMinDeliveryQty": 1,
"MaxActivePerBoard": 15,
"AllowLooseMatch": false
},
"QuestRewards": {
"DefaultPaymentMode": "TREASURY",
"DefaultRewardCopper": 100
},
"Access": {
"Provider": {
"Enabled": true,
"UseLuckPerms": false,
"DefaultDenyWhenUnavailable": false
},
"Logging": {
"LogChecks": false
},
"RequestBoard": {
"Use": {
"RequirePermissionToUseRequestBoard": false
},
"Create": {
"OnlyOwnerCanCreateRequests": true
},
"Manage": {
"OtherPlayersCanCancelRequests": false,
"OtherPlayersCanOpenInbox": false,
"OtherPlayersCanBreakBoard": false
},
"BreakConfig": {
"AllowCreativeBreakAny": true,
"AllowOpBreakAny": true
}
},
"QuestBoard": {
"Use": {
"RequirePermissionToUseQuestBoard": false
},
"Edit": {
"RequirePermissionToEditQuestBoard": true
},
"Commands": {
"Enabled": true,
"OpOnly": true,
"OpOnlyOverridesPermissions": false,
"AllowCreative": false,
"AllowPermission": true
},
"Treasury": {
"RequirePermissionToManageTreasury": true
},
"BreakConfig": {
"AllowOpBreakAny": true
}
}
},
"Debug": {
"Enabled": false,
"DevCommandsEnabled": false
}
}
📦 总结
任务与请求公告板 非常适合你需要以下功能的情况:
- 一个由玩家驱动的委托系统
- 结构化的服务器端任务
- 通过配置实现完全控制
- 在大型持久服务器上具有可靠的行为
📌 备注
- 早期版本可能变化较快:请在评论区报告错误和反馈。
- 此模组不添加默认任务/请求来获取金币,创建你世界中的经济体系取决于你。
正在加载版本记录…







正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。