node.js - 如何使用 discord.js 将发布在不同服务器上的消息转发给我?
问题描述
我正在我的服务器上创建一个机器人,我只需要一些关于如何做或者是否可能的指导。
bot 功能是将发布在不同服务器上的消息复制并发布到我自己的服务器上。请记住,该机器人仅在我的服务器上。
下面的代码将消息从文本通道转发到我自己服务器中的另一个文本通道。主要目标是将来自不同服务器的消息转发到我的。
const Discord = require('discord.js');
const client = new Discord.Client();
const token = 'ODA3MjAyOD456ODE3NzU2Njcz.4GFDFHA.8MHQ9ZaGSFFFEDSJZQSgv-wB84'; //fake token
client.once('ready', () => {
console.log('The bot is online!');
});
client.on('message', message => {
if (message.channel.type != 'text' || message.author.bot || !message.content.startsWith('*'))
return;
if (message.content === '*pp') {
let channel = client.channels.cache.get('80565937858574763'); // gets the message from this channel
channel.messages.fetch({ limit: 1 }).then(messages => {
let lastMessage = channel.lastMessage.content;
const marketnews = client.channels.cache.get('807577438839489436096'); //sends it to this text channel
marketnews.send(lastMessage);
})
}
});
client.login(token);
免责声明:频道 ID 和令牌是示例而非真实的。
解决方案
这很简单,如果消息公会 ID 不是您的服务器 ID,那么它会将带有信息的消息发送到您的服务器文本通道。
client.on("message", async (message) => { //Message Event
if (message.guild.id != "YOUR GUILD ID") { //If Guild ID Is Not Your Guild ID
const Channel = client.channels.cache.get("GUILD LOG MESSAGE CHANNEL ID"); //Finding Log Channel With ID
if (!Channel) return console.log("No Channel Found To Log!"); //If No Channel
const Embed = new Discord.MessageEmbed() //New Embed
.setColor("RANDOM") //Setting Color
.setTitle("New Message") //Setting Title
.setDescription(`Author - ${message.author.username} (${message.author.id})\nGuild - ${message.guild.name} (${message.guild.id})\nMessage -\n${message.content}`) //Description
.setTimestamp(); //Timestamp
return Channel.send(Embed); //Sending Embed To Channel
};
});
链接:
Guild#id
MessageEmbed
推荐阅读
- reactjs - manifest.json 中的环境变量 - Chrome 扩展
- r - 无法使用循环中的发现创建 data.frame
- uml - Enterprise Architect - 可执行状态机 - 基于时间的转换
- html - 嘿伙计们,我是网页设计的新手,需要一些关于这个的建议
- powerbi - 年初至今的测量平均值
- android - java.lang.NoSuchMethodException:
[] - android - 在我的 webview 应用程序上调用虚拟方法 'int android.graphics.Bitmap.getWidth()' on an null object reference"
- maven - Maven 将特定版本排除在 fat jar 中
- ios - 如何从二进制文件中删除 HomeKit API
- python - 我正在尝试使用 Excel 中的数据使用 Python 填写 Web 表单