[英]How do i send a message in a specific channel in discord using discord.js
[英]How do I send a message to a specific channel in discord.js?
阅读底部的编辑,更改整个问题。
是的,我知道人们以前问过这个问题。 但是,我找不到有效且未被弃用的解决方案。 这是操作我试图复制的特定功能所需的代码部分;
const Discord = require('discord.js');
const bot = new Discord.Client();
const client = bot
const token = 'NunyaBuisness';
const channel = '525723958239852735' // Not a real channel ID
const PREFIX = '.';
bot.on('message', msg=>{
let args = msg.content.substring(PREFIX.length).split(" ");
switch(args[0]){
case 'process':
if(args[1] === 'test'){
var testGuild = new Discord.Guild(bot, 'serverID');
var testTextChannel = new Discord.TextChannel(testGuild, channel);
testTextChannel.send("Test");
}
break;
}
})
Bot 在消息中返回以下内容
.过程测试
B:\bot\node_modules\discord.js\src\structures\Guild.js:152
this.large = Boolean('large' in data ? data.large : this.large);
^
TypeError: Cannot use 'in' operator to search for 'large' in serverID
at Guild._patch (B:\bot\node_modules\discord.js\src\structures\Guild.js:152:34)
at new Guild (B:\bot\node_modules\discord.js\src\structures\Guild.js:92:12)
at Client.<anonymous> (B:\bot\index.js:101:33)
at Client.emit (events.js:311:20)
at MessageCreateAction.handle (B:\bot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (B:\bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (B:\bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (B:\bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:435:22)
at WebSocketShard.onMessage (B:\bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (B:\bot\node_modules\ws\lib\event-target.js:120:16)
谢谢你的帮助! 对此,我真的非常感激。 我已经尝试使用文档解决这个问题好几天了,但总是失败。
编辑
我认为问题在于 CLIENT.channels.get('id') 方法实际上不存在。 这太奇怪了,我正在 GitHub 上查看是否缺少任何内容。 在这一刻,我看到绝对没有遗漏。 这是超级奇怪的。 感谢您一直以来的帮助。
对于不和谐 v12 更改:
msg.guild.channels.get(myChannel)
到msg.guild.channels.cache.get(myChannel)
let myChannel = '123213123'
bot.on('message', msg=>{
let args = msg.content.substring(PREFIX.length).split(" ");
switch(args[0]){
case 'process':
if(args[1] === 'test'){
let targetChannel = msg.guild.channels.get(myChannel)
if (targetChannel) targetChannel.send('sssss')
}
break;
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.