Discord.js v13.6.0中实现JSON文件用户ID移除的白名单移除指令
实现Discord.js v13.6.0的Unwhitelist指令
你的现有代码无法正常生效,核心问题是JSON里的users是数组类型,但你用了针对对象属性的delete操作,这对数组完全无效。以下是修正后的实现方案:
修正后的代码
if (message.content.startsWith(prefix + "unwhitelist")) { if (!args[0]) return message.edit(":x: **Veuillez mentionner quelqu'un**"); let user = message.mentions.users.first() || client.users.cache.get(args[0]); if (!user) return message.edit(":x: **Veuillez mentionner quelqu'un**"); // 过滤数组移除目标ID(无需检查是否存在) crow.users = crow.users.filter(userId => userId !== user.id); savecrow(); message.edit(`\`${user.tag}\` n'est plus whitelist`); }
关键说明
- 数组不能用
delete:delete只会把数组对应位置设为undefined,不会真正移除元素并调整数组长度。改用Array.filter()生成不包含目标ID的新数组,直接替换原数组即可。 - 优化提示内容:用
user.tag显示用户的完整标签(用户名+#后缀),比直接拼接用户对象更清晰友好。 - 无需额外检查ID存在性:如果目标ID不在数组中,过滤后的数组和原数组一致,不影响保存和提示逻辑。
内容的提问来源于stack exchange,提问作者Sans
相关产品推荐
相关产品推荐

