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

discord.js async函数timeoutUser报错:guildMember.timeout不是函数

解决discord.js中guildMember.timeout is not a function错误

问题重现

编写了如下依赖discord.js的异步函数:

async function timeoutUser(guildMember, exp, reason) {
  try {
    const now = Math.floor(Date.now() / 1000);
    const timeoutDuration = (exp - now) * 1000;

    console.log(`Timing out ${guildMember} in ${timeoutDuration} milliseconds for reason: ${reason}`);
    
    await guildMember.timeout({timeoutDuration, reason});
    console.log(`Successfully timed out ${guildMember} for ${timeoutDuration / 1000} seconds. Reason: ${reason}`);
  } catch (error) {
    console.error(`Failed to timeout user with Discord ID ${guildMember}: ${error}`);
  }
}

调用时出现错误:

Error: Failed to remove timeout for user with Discord ID 785346463915311176: TypeError: guildMember.timeout is not a function

解决方法

1. 检查discord.js版本

GuildMember.timeout()方法是discord.js v14及以上版本新增的API,若项目使用v13或更低版本,该方法不存在。

  • 查看当前版本:执行npm list discord.js
  • 升级到v14+:执行npm install discord.js@latest
  • 注意:v14需要启用GuildMembers和Guilds意图,否则无法正确获取GuildMember实例。

2. 低版本兼容方案(v13及以下)

若无法升级版本,改用对应版本的禁用通讯方法disableCommunicationUntil():

async function timeoutUser(guildMember, exp, reason) {
  try {
    const timeoutTimestamp = exp * 1000; // 将秒级时间戳转为毫秒

    console.log(`Timing out ${guildMember} until ${new Date(timeoutTimestamp)} for reason: ${reason}`);
    
    await guildMember.disableCommunicationUntil(timeoutTimestamp, reason);
    console.log(`Successfully timed out ${guildMember} until ${new Date(timeoutTimestamp)}. Reason: ${reason}`);
  } catch (error) {
    console.error(`Failed to timeout user with Discord ID ${guildMember.id}: ${error}`);
  }
}

3. 验证传入的guildMember类型

确保调用函数时传入的第一个参数是真实的GuildMember实例,而非用户ID字符串或User对象。正确获取示例:

// 通过服务器ID和用户ID获取GuildMember
const guild = client.guilds.cache.get('你的服务器ID');
const targetMember = await guild.members.fetch('目标用户ID');
// 调用函数
timeoutUser(targetMember, Math.floor(Date.now()/1000) + 3600, '违规超时');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:28:00