首页 > 解决方案 > 临时静音命令返回错误'无法读取未定义的属性'切片''

问题描述

我正在尝试创建一个临时静音命令,该命令将在给定时间内取消静音用户的静音。

这是我的代码:

const Discord = require("discord.js");
const ms = require("ms");

module.exports = {
    name: 'mute',
    description: 'mute a specific user',
    usage: '[tagged user] [mute time]',
    async execute(message, embed, args) {
        let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
        if (!tomute) return message.reply("Couldn't find user.");
        const reason = args.slice(1).join(' ');
        if (tomute.hasPermission("MANAGE_MESSAGES")) return message.reply("Can't mute them!");
        const muterole = message.guild.roles.cache.find(muterole => muterole.name === "muted");
        if (!muterole) {
            try {
                muterole = await message.guild.roles.create({
                    name: "muted",
                    color: "#000000",
                    permissions: []
                })
                message.guild.channels.cache.forEach(async (channel, id) => {
                    await channel.overwritePermissions(muterole, {
                        SEND_MESSAGES: false,
                        ADD_REACTIONS: false
                    });
                });
            } catch (e) {
                console.log(e.stack);
            }
        }
        const mutetime = args.slice(2).join(' ');
        //here is the start of the error 

        await (tomute.roles.add(muterole.id));
        message.reply(`<@${tomute.id}> has been muted for ${ms(ms(mutetime))} `);

        setTimeout(function() {
            tomute.roles.remove(muterole.id);
            message.channel.send(`<@${tomute.id}> has been unmuted!`);
        }, ms(mutetime));



    }
}

当前收到以下错误:Cannot read property 'slice' of undefined

您对如何修复命令有任何想法吗?

编辑

这是一年后的,这是给未来来这里的人的

问题就在这里

 async execute(message, embed, args) {

我从来没有从我的主文件中通过嵌入,所以 args 是未定义的嵌入部分是 args 应该在的地方,当时我很愚蠢,并且是编码新手,但由于我现在有一些经验,我决定编辑它以显示什么错误的

标签: javascriptnode.jsdiscorddiscord.js

解决方案


这意味着在您的代码中的某处,您有一个值,undefined并且您尝试在其上使用字符串/数组函数切片但undefined没有此函数:所以这是一个错误。


推荐阅读