Discord guild.roles.create接口速率限制问题求助
问题:批量创建Discord角色无响应,疑似触发速率限制
项目需读取课程数据JSON并为每门课程创建Discord角色,最初运行正常,但多次错误删除重建后角色无法创建。
更新后的角色命令逻辑
仅获取一次角色缓存以避免重复请求:
const guild = interaction.guild; await guild.roles.fetch(); const rolesAdded = Array.from(guild.roles.cache.values()).map((r) => { return r.name; }); for(const d of getDisciplines()){ const roles = getDiscplineRoles(d); for(const r of roles){ if(rolesAdded.includes(r[0])) continue; let colour; if(r[1] == "M"){ colour = "Purple"; } else if (r[1] == "S"){ colour = "Blue"; } addRole(guild, r[0], colour); rolesAdded.push(r[0]); } let courses = getCourses(d); courses = courses.map((c) => { return c[0]; }); for(const course of courses){ if(rolesAdded.includes(course)) continue; addRole(interaction.guild, course, "LightGrey"); rolesAdded.push(course); } } await interaction.reply("Roles created");
addRole函数
控制台日志正常输出,确认逻辑执行:
addRole: async function(guild, roleName, colour) { // Get role and create if it doesn't exist const role = await guild.roles.cache.find((r) => r.name === roleName); if (role !== undefined){ return; } console.log(`${roleName} does not exists`); await guild.roles.create({ name: roleName, color: colour, }); }
当前程序无任何错误返回,仅处于等待请求完成状态。查询相关资料得知Discord角色创建接口提及250和1000两个限制数值,求助排查是否为guild.roles.create接口的速率限制问题。
内容的提问来源于stack exchange,提问作者T-Man58
相关产品推荐
相关产品推荐

