• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
资源图标

原创 闭源 工具 其他 nsoInteractions - 轻松创建交互对话 2026-01-30

请登录后获取
版权类型
原创
插件中文名称
nso交互
插件英文名称
nsoInteractions
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Purpur
  4. PufferFish
  5. Leaves
语言支持
中文(简体)
适配版本(Java)
  1. 1.21
c9149d75-7eb3-4552-b5fa-b4d706652cc3.webp
[MD] # nsoInteractions 插件使用手册 nsoInteractions 是一款高度可定制的 Minecraft 对话系统插件,支持打字机效果、多分支剧情、条件判断、PAPI 变量以及自定义音效模板。 游戏版本我只测试了1.21.8,应该可以支持很多版本,但是我没有测试其他版本,如果有问题欢迎反馈。 ## 1. 指令与权限 | 指令 | 描述 | 权限 | | :--- | :--- | :--- | | `/nsoi help` | 显示帮助菜单 | `nsoi.use` | | `/nsoi reload` | 重载配置文件和对话数据 | `nsoi.admin` | | `/nsoi start <对话ID> [玩家]` | 为自己或指定玩家开启对话 | `nsoi.admin` | | `/nsoi list` | 列出所有已加载的对话 ID | `nsoi.admin` | ## 2. 核心配置文件 ### config.yml 全局设置与音效模板。 - **sound-templates**: 定义打字机音效模板。 - `speed`: 字符显示速度(刻/字符)。 - `sound`: 播放的声音 (Bukkit Sound 枚举)。 - `volume`: 音量。 - `pitch`: 音调。 - `random-pitch`: 是否开启随机音调抖动。 - `mode`: 播放模式 (`PER_CHARACTER` 每个字都响, `ONCE` 每行只响一次)。 - **scoreboard**: 计分板选项前缀。 - **animations**: 动态文本设置(支持在对话中使用 `<anim:ID>`)。 ### messages.yml 插件所有系统提示消息的软编码文件,支持颜色代码和 PAPI。 ## 3. 对话文件配置 (data/*.yml) 对话文件放置在 `plugins/nsoInteractions/data/` 目录下。 ### 根节点配置 - `id`: 对话的唯一标识符。 - `start_node`: 对话开始的节点 ID (支持固定 ID、条件判断或随机选择)。 - `allow_movement`: (true/false) 对话时是否允许移动。 - `timeout`: 对话超时自动关闭时间(秒)。 ### 对话配置示例 ```yaml id: "example_dialog" # 开始节点设置 (支持多样化选择) # 方式 1: 简单字符串 (固定开始节点) # start_node: "greeting" # 方式 2: 条件判断 (按顺序匹配第一个满足条件的节点) start_node: options: - node: "special_greeting" condition: "%player_has_permission:vip% == true" - node: "standard_greeting" condition: "%player_level% >= 10" default: "greeting" # 所有条件都不满足时的回退节点 # 方式 3: 随机开始 # start_node: # random: true # options: # - node: "random_1" # - node: "random_2" # - node: "random_3" allow_movement: false timeout: 60 ``` ### 节点 (Nodes) 配置详解 每个节点代表对话的一个画面: ```yaml nodes: node_id: # 标题设置(支持字符串或列表,列表会逐行显示) title: "&6&l大标题" # 小标题设置(承载主要对话内容,支持打字机效果) subtitle: - "&f这是第一行内容..." - "&f这是第二行内容..." # 调用的音效模板 ID (对应 config.yml 中的配置) sound-template: "default" # BossBar 设置 bossbar: text: "&b进度展示" color: "BLUE" # PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE style: "SOLID" # SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20 progress: 50 # 0 到 100 # 执行动作(进入节点时触发) actions: - "console: give {player} diamond 1" # 控制台指令 - "command: me 感觉很好" # 玩家指令 - "sound: ENTITY_EXPERIENCE_ORB_PICKUP 1.0 1.0" # 播放声音 # 选项设置 options: - text: "&a选择分支 A" next: "next_node_a" # 执行动作(点击此选项时触发) actions: #此处也可以使用action,免得写一堆无用节点 - "console: eco take {player} 100" - "sound: ENTITY_EXPERIENCE_ORB_PICKUP 1.0 1.0" # 控制选项是否显示(可见性) # 若不满足此条件,选项直接隐藏 display-condition: "%player_level% >= 5" # 控制跳转逻辑(可用性/分支逻辑) # 1. 若不满足此条件且未配置 else-next,选项会隐藏 # 2. 若不满足此条件且配置了 else-next,选项可见,但点击后跳转至 else-next condition: "%player_level% >= 10" else-next: "fail_node" - text: "&c返回" next: "greeting" ``` ## 4. 进阶功能 ### 条件判断 (Condition) 支持 PAPI 变量和逻辑运算符:`==`, `!=`, `>=`, `<=`, `>`, `<`。 | 配置项 | 作用阶段 | 逻辑效果 | 适用场景 | | :--- | :--- | :--- | :--- | | **display-condition** | 渲染前过滤 | 不满足时选项直接隐藏,玩家完全不可见。 | 职业/等级/任务进度的硬性前置要求。 | | **condition** | 逻辑判定 | 1. 未设 `else-next`:不满足时隐藏。<br>2. 已设 `else-next`:不满足时**依然可见**,点击跳转至失败节点。 | 制作“由于钱不够点不开”或“尝试失败”的交互逻辑。 | **示例:** - `"%vault_eco_balance% >= 1000"` - `"%player_has_item:DIAMOND:5% == true"` ### 多样化开始节点 (Start Node Variety) `start_node` 支持多种配置方式,允许根据玩家状态或随机性开启对话。 | 模式 | 配置方式 | 逻辑说明 | | :--- | :--- | :--- | | **固定模式** | 直接写节点 ID 字符串 | 每次对话都从该节点开始(向下兼容)。 | | **条件模式** | 使用 `options` 列表 | 按顺序匹配第一个满足 `condition` 的节点,若都不满足则进入 `default`。 | | **随机模式** | 设置 `random: true` | 从 `options` 列表中随机抽取一个节点开始。 | **固定模式示例:** ```yaml start_node: "gatekeeper" ``` **条件模式示例:** ```yaml start_node: #不要尝试在此处添加 random: true,虽然我也不知道会发生什么 options: - node: "vip_greeting" condition: "%player_has_permission:vip% == true" - node: "newbie_greeting" condition: "%player_level% < 5" default: "standard_greeting" ``` **随机模式示例:** ```yaml start_node: random: true options: - node: "random_1" - node: "random_2" ``` ### 动作 (Actions) 格式 - `console: <指令>`: 以控制台身份运行。 - `command: <指令>`: 以玩家身份运行(指令不带 /)。 - `sound: <声音名称> [音量] [音调]`: 播放特定音效。 ### 动态文本 (Animations) 在 `title` 或 `subtitle` 中使用 `<anim:flash_red>` 可以调用 `config.yml` 中定义的动态文本效果,适用于制作闪烁的提示或动态特效。 ### 内部变量 (Variables) 在 `title`、`subtitle`、`actions` 或 `condition` 中可以使用以下内部变量: - `{player}`: 当前玩家的名称。 --- ## 5. PlaceholderAPI 变量 插件提供了以下变量,可用于对话文本、计分板或其他支持 PAPI 的插件中: | 变量 | 描述 | | :--- | :--- | | `%nsointeractions_dialog_id%` | 当前正在进行的对话 ID | | `%nsointeractions_remaining_time%` | 当前对话的剩余时间(秒),若无超时限制则显示 `∞` | [/MD]
作者
nsoer
价格
120.00金粒
下载
3
查看
244
首次发布
最后更新

评分

0.00 星 0 次评分

最新更新

  1. 功能更新

    新增了开始节点的条件选择和随机选择,使对话可以更真实;新增选项下可支持actions,减少对话节点 新增了action:massage
后退
顶部 底部