Ошибка ввода: сообщение.ответ не является функцией

#discord.js

Вопрос:

Это мой первый раз, когда я использую обработчик команд, и у меня возникли некоторые проблемы с добавлением команды, она не завершена на 100%, поэтому, если код не имеет смысла, вот почему. Когда я запускаю команду, я получаю ошибку, указанную ниже, я понятия не имею, что вызывает это, и я действительно не разбираюсь в таких вещах, любая информация/советы помогут.

ошибка:

 TypeError: message.reply is not a function
at Object.execute (C:UserslachiDocumentssrcStaniel Nativecommandsrps.js:15:21)
at Client.<anonymous> (C:UserslachiDocumentssrcStaniel Nativeindex.js:47:32)
at Client.emit (events.js:315:20)
at MessageCreateAction.handle (C:UserslachiDocumentssrcStaniel Nativenode_modulesdiscord.jssrcclientactionsMessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (C:UserslachiDocumentssrcStaniel Nativenode_modulesdiscord.jssrcclientwebsockethandlersMESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (C:UserslachiDocumentssrcStaniel Nativenode_modulesdiscord.j    at WebSocketShard.onPacket (C:UserslachiDocumentssrcStaniel Nativenode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:UserslachiDocumentssrcStaniel Nativenode_modulesdiscord.jssrcclientwebsocketWebSocketShard.js:301:10)
at WebSocket.onMessage (C:UserslachiDocumentssrcStaniel Nativenode_moduleswslibevent-target.js:132:16)
 

index.js:

 //Requirements//
const fs = require('fs');
const Discord = require('discord.js');
const client = new Discord.Client();
client.commands = new Discord.Collection();
const Command_Files = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
require('dotenv').config()
//Bot Settings//
const Prefix = 's!';
const Bot_Name = 'Staniel';
const Bot_Activity = 'over the server!';
const Bot_Activity_Type = {type: 'WATCHING'}; //PLAYING|STREAMING|LISTENING|WATCHING|CUSTOM_STATUS|COMPETING//
//API Keys ETC//
const Discord_Token = process.env.DISCORD_TOKEN;
const YouTube_API = process.env.YOUTUBE_API;
const Twitch_API = process.env.TWITCH_API;
//Server IDs//
const Server_ID = client.guilds.cache.get('854000618367746049');
const Member_Count_Channel = '854375625552560168';
const YouTube_Sub_Count_Channel = '854424982460694529';
const Twitch_Follower_Count_Channel = null;



//On Start//
client.on('ready', () => {
    console.log(`${Bot_Name} is now online!`);
});



//Command Handler//
for (const file of Command_Files) {
    const command = require(`./commands/${file}`);
    client.commands.set(command.name, command);
};

client.on('message', message => {
    if (!message.content.startsWith(Prefix) || message.author.bot) return;

    const args = message.content.slice(Prefix.length).trim().split(/  /);
    const command = args.shift().toLowerCase();

    if (!client.commands.has(command)) return;

    try {
        client.commands.get(command).execute(Prefix, client, message, args);
    } catch (error) {
        console.error(error);
        message.reply('Error executing that command!');
    }
});



//Run Bot//
client.login(Discord_Token) 

rps.js:

 module.exports = {
    name: 'rps',
    description: 'A simple RPS Minigame!',
    execute(Prefix, message, args) {
        //Customize Bot//
        No_Choice_Reply = `Correct Usage: ${Prefix}rps [rock|paper|scissors]`;
        Game_Tie_Reply = "";
        //DONT TOUCH//
        const Accepted_Replies = ['rock', 'paper', 'scissors'];
        const Bot_Algorithm = Math.floor((Math.random() * Accepted_Replies.length));
        const Bot_Choice = Accepted_Replies[Bot_Algorithm];
        const User_Choice = args[0];

        if(!User_Choice) message.reply("Test");
    },
}; 

Спасибо, Лачи.

Ответ №1:

Проблема в том, как вы передаете свои команды, вы передаете «Префикс, клиент, сообщение, аргументы», но затем в команде «Префикс, сообщение, аргументы» это выглядит так, поэтому вы пытаетесь выполнить client.reply, который недействителен.

 // Message Event
client.commands.get(command).execute(Prefix, client, message, args);

// Command
// What you have:
execute(Prefix, message, args) {

// What you need:
execute(Prefix, client, message, args) {