EroticDungeonGame/docs/edg_command_doc.md

489 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 概述
模组提供统一的 `/edg` 命令系统,同时支持别名 `/eroticdungeongame`、`/eroticdungeon`、`/dungeongame`。
命令体系分为四大模块:
| 模块 | 命令 | 权限 | 说明 |
|------|------|------|------|
| NORP | `/edg norp` | 所有人 | 触发 NORP 交互 |
| NPC | `/edg npc <name>` | 权限等级 3 | 创建 NPC |
| 设备管理 | `/edg device` | 权限等级 2 | 绑定/解绑/锁定/解锁设备 |
| 钥匙管理 | `/edg key` | 所有人 / 部分权限 2 | 查看/设置/清除钥匙密码 |
| 过滤器 | `/edg filter` | 所有人 | 配置车万女仆抓人过滤器 |
---
## 一、NORP 交互
### `/edg norp`
触发 NORPNo Role Play交互请求。
- **权限**:所有人
- **前置条件**:配置文件中 `enableNorp = true`
- **行为**:发送 NORP 请求,等待冷却后再次确认即可完成交互
```
/edg norp
```
如果 NORP 模式被禁用,会提示 "eroticdungeongame.message.norp.disabled"。
---
## 二、NPC 管理
### `/edg npc <name>`
创建一个 NPC 玩家实体。需要权限等级 3管理员
- **权限**3 级以上
- **参数**
- `<name>` — NPC 名称(最多 16 个字符)
```
/edg npc Guard
/edg npc Prisoner_01
```
NPC 会以生存模式生成在命令执行者的位置,面朝相同方向。
---
## 三、设备管理
所有设备子命令需要权限等级 2 以上。
### 3.1 绑定玩家到设备
#### `/edg device bind <pos>`
将命令执行者自身绑定到指定位置的设备上。
```
/edg device bind 100 64 200
```
#### `/edg device bind <pos> <player>`
将指定玩家绑定到指定位置的设备上。
```
/edg device bind 100 64 200 Steve
```
#### `/edg device bind <pos> <player> <code>`
绑定玩家并同时给设备上锁(指定密码)。如 `code``-1` 则随机生成密码。
```
/edg device bind 100 64 200 Steve -1
/edg device bind 100 64 200 Alex 123456789
```
#### `/edg device bind <pos> <code>`
绑定自身并同时给设备上锁(不指定目标玩家时的简写形式)。
```
/edg device bind 100 64 200 -1
```
**失败情况**
| 错误原因 | 错误码 |
|----------|--------|
| 设备已有玩家占用 | -1 |
| 目标位置不是设备方块 | -2 |
| 未知原因 | -3 |
| 目标玩家已在其他设备上 | -4 |
---
### 3.2 解绑玩家
#### `/edg device unbind`
解绑命令执行者自身的当前设备。
```
/edg device unbind
```
#### `/edg device unbind <pos>`
解绑指定位置的设备。
```
/edg device unbind 100 64 200
```
#### `/edg device unbind <player>`
解绑指定玩家所处的设备。
```
/edg device unbind Steve
```
---
### 3.3 锁定设备
#### `/edg device lock`
为命令执行者当前所处的设备上锁(随机生成密码)。
```
/edg device lock
```
#### `/edg device lock <pos>`
为指定位置的设备上锁(随机生成密码)。
```
/edg device lock 100 64 200
```
#### `/edg device lock <pos> <code>`
为指定位置的设备上锁(指定密码)。
```
/edg device lock 100 64 200 123456789
```
#### `/edg device lock <player>`
为指定玩家当前所处的设备上锁(随机生成密码)。
```
/edg device lock Steve
```
#### `/edg device lock <player> <code>`
为指定玩家当前所处的设备上锁(指定密码)。
```
/edg device lock Steve 123456789
```
---
### 3.4 解锁设备
#### `/edg device unlock`
为命令执行者当前所处的设备解锁(同时清除主锁标记)。
```
/edg device unlock
```
#### `/edg device unlock <pos>`
为指定位置的设备解锁。
```
/edg device unlock 100 64 200
```
#### `/edg device unlock <player>`
为指定玩家当前所处的设备解锁。
```
/edg device unlock Steve
```
> **注意**`unlock` 命令会同时清除普通锁 (`lockCode = -1`) 和主锁 (`isMasterLocked = false`),且**不检查密码**。
---
## 四、钥匙管理
### 4.1 设置钥匙密码
#### `/edg key lock set`
为主手持有的钥匙随机生成一个密码,需要权限等级 2。
```
/edg key lock set
```
#### `/edg key lock set <code>`
为主手持有的钥匙设置指定密码,需要权限等级 2。
```
/edg key lock set 123456789
```
---
### 4.2 查看钥匙密码
#### `/edg key lock get`
查看主手持有的钥匙的当前密码(所有人可用)。
```
/edg key lock get
```
- 有密码:显示密码值及颜色符号表示
- 无密码:提示钥匙为空(`key.lock.get.empty`
---
### 4.3 清除钥匙密码
#### `/edg key lock clear`
清除主手持有的钥匙密码,恢复为空白钥匙(所有人可用)。
```
/edg key lock clear
```
---
## 五、过滤器管理
过滤器命令用于配置车万女仆抓人任务的筛选条件。**所有操作都需要主手持有过滤器物品**。
### 5.1 模式设置
#### `/edg filter mode [mode]`
设置过滤器模式。缺省为 `whitelist`
```
/edg filter mode # 设为白名单模式(缺省)
/edg filter mode whitelist # 设为白名单模式
/edg filter mode blacklist # 设为黑名单模式
```
| 模式 | 行为 |
|------|------|
| `whitelist` | 只抓**符合条件**的玩家 |
| `blacklist` | 只抓**不符合条件**的玩家 |
---
### 5.2 游戏模式过滤
#### `/edg filter gamemode add <gamemode>`
添加游戏模式到过滤条件。可选值:`survival`、`creative`、`adventure`。
```
/edg filter gamemode add survival
/edg filter gamemode add creative
```
#### `/edg filter gamemode remove [gamemode]`
移除指定游戏模式,不指定则清除全部。
```
/edg filter gamemode remove survival
/edg filter gamemode remove
```
---
### 5.3 标签过滤
#### `/edg filter tag add <tag>`
添加标签到过滤条件。
```
/edg filter tag add vip
/edg filter tag add prisoner
```
#### `/edg filter tag remove [tag]`
移除指定标签,不指定则清除全部。
```
/edg filter tag remove vip
/edg filter tag remove
```
---
### 5.4 队伍过滤
#### `/edg filter team add <team>`
添加队伍到过滤条件。
```
/edg filter team add red
/edg filter team add guards
```
#### `/edg filter team remove [team]`
移除指定队伍,不指定则清除全部。
```
/edg filter team remove red
/edg filter team remove
```
---
### 5.5 工作点设置
工作点是女仆执行任务的活动范围中心点。
#### `/edg filter workpos set [pos]`
设置工作点。不指定坐标则设为玩家当前位置。
```
/edg filter workpos set # 当前位置
/edg filter workpos set 0 -32 0 # 指定坐标
```
#### `/edg filter workpos remove`
移除工作点。
```
/edg filter workpos remove
```
---
### 5.6 白名单/黑名单玩家
白名单和黑名单具有**最高优先级**:白名单玩家必被抓,黑名单玩家必不抓。
#### `/edg filter whitelist add <player>`
添加白名单玩家。
```
/edg filter whitelist add Steve
/edg filter whitelist add @p
```
#### `/edg filter whitelist remove [player]`
移除指定白名单玩家,不指定则清除全部。
```
/edg filter whitelist remove Steve
/edg filter whitelist remove
```
#### `/edg filter blacklist add <player>`
添加黑名单玩家。
```
/edg filter blacklist add Alex
/edg filter blacklist add @s
```
#### `/edg filter blacklist remove [player]`
移除指定黑名单玩家,不指定则清除全部。
```
/edg filter blacklist remove Alex
/edg filter blacklist remove
```
---
### 5.7 查看与重置
#### `/edg filter info`
查看当前过滤器的所有设置,包括:模式、游戏模式、标签、队伍、工作点、白名单、黑名单。
```
/edg filter info
```
#### `/edg filter reset`
重置过滤器为全新的空白白名单过滤器。
```
/edg filter reset
```
---
## 六、使用示例
### 示例 1完整管理员工作流
管理员将玩家 Steve 绑到枷锁上并上锁:
```
# 1. 绑定 Steve
/edg device bind 100 64 200 Steve -1
# 系统返回:设备钥匙: ╔╗╚╝╠╣╦╩
# 2. 查看 Steve 是否在设备上(手持钥匙查看)
/edg key lock get
# 3. 释放 Steve权限命令不检查钥匙密码
/edg device unbind Steve
```
### 示例 2女仆抓人配置
让女仆在坐标 (0, -32, 0) 附近只抓生存模式的玩家,但不抓自己:
```
# 手持空白过滤器
/edg filter workpos set 0 -32 0
/edg filter mode whitelist
/edg filter gamemode add survival
/edg filter blacklist add @s
/edg filter info
```
### 示例 3女仆只抓不在 red 队伍中的玩家
```
# 手持空白过滤器
/edg filter workpos set 2 -64 0
/edg filter mode blacklist
/edg filter team add red
/edg filter info
```
---
## 七、权限速查表
| 命令路径 | 最低权限等级 |
|----------|-------------|
| `/edg` (帮助) | 0 |
| `/edg norp` | 0 |
| `/edg npc <name>` | 3 |
| `/edg device bind ...` | 2 |
| `/edg device unbind ...` | 2 |
| `/edg device lock ...` | 2 |
| `/edg device unlock ...` | 2 |
| `/edg key lock set` | 2 |
| `/edg key lock get` | 0 |
| `/edg key lock clear` | 0 |
| `/edg filter ...` | 0 |