You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于JSON存储的频道ID实现命令的频道校验?

基于JSON存储频道ID的命令权限校验实现

需求说明

你已有一套通过JSON存储角色ID来校验用户命令权限的逻辑,现在需要复用相同思路,通过JSON存储频道ID来限制命令仅能在指定频道内使用。

步骤1:准备频道ID存储的JSON文件

格式和角色权限的JSON一致,创建比如channel_perms.json文件,内容为频道ID数组:

[ "channelid1", "channelid2", "channelid3" ]

步骤2:编写频道校验代码

复用原有逻辑的核心,只需要把角色校验的部分替换为频道ID的判断:

// 清除缓存重新读取最新的频道权限配置
delete require.cache[require.resolve("./resources/channel_perms.json")];
// 导入存储频道ID的JSON文件
const allowedChannels = require("./resources/channel_perms.json");
// 判断当前命令所在频道ID是否在允许列表内
const result = allowedChannels.includes(msg.channel.id);

// 存储校验结果,供后续逻辑使用
Actions.storeValue(result, 1, "auth", cache);
Actions.callNextAction(cache);

代码说明

  • 和角色校验逻辑一致,先清除require缓存确保读取最新配置
  • 替换原有的角色数组为频道ID数组
  • 核心判断从用户角色是否在允许列表改为当前频道ID是否在允许列表,直接用includes判断即可,无需遍历

内容的提问来源于stack exchange,提问作者Ryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:00:56