koishi-plugin-prism 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -24,7 +24,7 @@
24
24
  | `provider` | `string` | `"qq"` | 当前绑定的账号提供商平台名称(如 `"qq"`,`"discord"`)。 |
25
25
  | `autoRegister` | `boolean` | `true` | 当玩家未注册时,是否在首次操作(如入场/查钱包)时自动在 PRiSM 中创建新玩家。 |
26
26
  | `loginPricingConfigIds` | `string[]` | `[]` | 默认入场计费规则 ID 列表。 |
27
- | `loginSessionLabel` | `string` | - | 默认入场会话的备注文本(如 `"音游区间"`)。 |
27
+ | `loginSessionLabel` | `string` | `"音游区间"` | 默认入场会话的标签文本。后端会按该标签对同一玩家的活跃会话去重,重复入场会被拒绝并提示。留空则不启用去重。 |
28
28
  | `defaultDoorDeviceId` | `string` | - | 默认门锁设备的 ID,用于开门指令。 |
29
29
  | `defaultScanProvider` | `string` | `"aime"` | 默认模拟刷卡时的读卡器协议提供商(如 `"aime"`)。 |
30
30
  | `currencyName` | `string` | `"金币"` | 账户货币在显示时的自定义单位名称。 |
package/lib/index.js CHANGED
@@ -16,7 +16,10 @@ exports.Config = koishi_1.Schema.object({
16
16
  currencyName: koishi_1.Schema.string().default("猫粮").description("代币名称"),
17
17
  defaultDoorDeviceId: koishi_1.Schema.string().default("front-door").description("默认开门设备ID"),
18
18
  defaultScanProvider: koishi_1.Schema.string().default("aime").description("默认刷卡提供商"),
19
+ loginPricingConfigIds: koishi_1.Schema.array(koishi_1.Schema.string()).default([]).description("默认入场绑定的计费策略ID"),
20
+ loginSessionLabel: koishi_1.Schema.string().default("音游区间").description("默认入场场次标签 (防重复入场)"),
19
21
  enableStaffCommands: koishi_1.Schema.boolean().default(false).description("是否启用管理员指令"),
22
+ staffUserIds: koishi_1.Schema.array(koishi_1.Schema.string()).default([]).description("允许执行管理员指令的平台用户ID列表"),
20
23
  powerOffInterval: koishi_1.Schema.number().default(0).description("无人自动关机等待秒数 (0为禁用)"),
21
24
  mahjongTables: koishi_1.Schema.string().description("麻将桌配置"),
22
25
  mahjongTableSize: koishi_1.Schema.number().default(4).description("麻将桌人数限制"),
@@ -846,6 +849,18 @@ class PrismKoishiService {
846
849
  }
847
850
  }
848
851
  function humanReadableBotError(error) {
852
+ if (error.code === "DUPLICATE_SESSION_LABEL") {
853
+ return "❌ 您已经处于入场状态,请勿重复发送入场命令。";
854
+ }
855
+ if (error.code === "PLAYER_HAS_NO_UNSETTLED_SESSIONS") {
856
+ return "您当前没有未结算的账单,无需结账。";
857
+ }
858
+ if (error.code === "ACTIVE_SESSION_NOT_FOUND") {
859
+ return "您当前没有进行中的计费场次。";
860
+ }
861
+ if (error.code === "PLAYER_IDENTITY_NOT_FOUND") {
862
+ return "未找到您的玩家身份,请先注册或绑定账号。";
863
+ }
849
864
  if (error.code === "INSUFFICIENT_BALANCE") {
850
865
  return "余额不足,暂时不能结账。请先充值,或由店员在后台改价后再结账。";
851
866
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-prism",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "PRiSM Next 计费与设备管理系统的 Koishi 机器人集成插件",
5
5
  "main": "./lib/index.js",
6
6
  "exports": {