Discord.js机器人需求:成员不足30的服务器离开前私信主人
实现Discord机器人自动离开小服务器并通知主人
你需要在离开服务器前先获取机器人主人的用户对象,发送私信告知相关信息,再执行离开操作。同时要处理异步操作和可能的异常,避免机器人崩溃。
修改后的代码如下:
// 替换成你的Discord用户ID const OWNER_ID = '123456789012345678'; client.on('guildCreate', async (guild) => { if (guild.memberCount < 30) { try { // 获取主人用户 const owner = await client.users.fetch(OWNER_ID); // 发送私信通知 await owner.send(`我已离开服务器 **${guild.name}**,原因:服务器成员数(${guild.memberCount})少于30人。`); // 执行离开操作 await guild.leave(); } catch (error) { console.error('通知或离开操作出错:', error); // 即使通知失败,仍尝试离开服务器 await guild.leave().catch(err => console.error('离开服务器失败:', err)); } } });
关键说明:
- 务必将
OWNER_ID替换为你自己的Discord用户ID,否则无法定位到主人发送私信 - 使用
await确保异步操作按顺序执行,保证通知发送完成后再离开服务器 - 添加
try-catch块捕获异常,比如主人屏蔽机器人导致无法发送私信、获取用户失败等情况,避免机器人因未处理的错误崩溃 - 即使发送通知失败,仍会执行离开服务器的逻辑,确保核心功能正常运行
内容的提问来源于stack exchange,提问作者Mapler
相关产品推荐
相关产品推荐

