自动发送消息 discord.js

Posted

技术标签:

【中文标题】自动发送消息 discord.js【英文标题】:Auto send message discord.js 【发布时间】:2021-04-01 01:33:11 【问题描述】:

我有一个 Discord 的 selfbot 项目(我知道它违反了 ToS,但这只是一个实验,我不会使用它)

我希望 selfbot 在特定频道中每小时发送一条消息,例如“这是一条示例消息”,ID 为 (783651779207626752)

我应该在代码中添加什么以及在哪里添加一些东西?

const Discord = require("discord.js")
const client = new Discord.Client()
const  prefix, token  = require("./config.json")
const fs = require("fs")
const  table, getBorderCharacters  = require("table")


const commands = new Discord.Collection();

let commandFiles

function loadCommands() 
    console.log("loading commands..")
    const startTime = new Date().getTime()

    commandFiles = fs.readdirSync("./commands/").filter(file => file.endsWith(".js"));
    const failedTable = []

    if (commands.size > 0) 
        for (command of commands.keyArray()) 
            delete require.cache[require.resolve(`./commands/$command.js`)]
        
        commands.clear()
    

    for (file of commandFiles) 
        let command
        
        try 
            command = require(`./commands/$file`);

            let enabled = true;
        
            if (!command.name || !command.description || !command.run) 
                enabled = false;
            

            if (enabled) 
                commands.set(command.name, command);
             else 
                failedTable.push([file, "❌"])
            
         catch (e) 
            failedTable.push([file, "❌"])
        
    


loadCommands()

exports.reloadCommands = loadCommands

client.once("ready", () => 
    console.log("logged in as " + client.user.username + "#" + client.user.discriminator)
)

function runCommand(cmd, message, args) 
    args.shift()
    try 
        commands.get(cmd).run(message, args)
     catch(e) 
        console.log(e)
    


setTimeout(() => 
    client.login(token)
, 1500)

【问题讨论】:

正如你所说,它是一个 Self Bot,也违反了 Discord 的服务条款,我个人在 2016 年使用 Selfbots,当时他们没有强制执行此问题,但我强烈建议你不要't selfbot 其次;作为开发人员,我们知道“我不会使用它”不太可能被认真对待,服务条款的存在是有原因的。请坚持下去,防止自己被封号。 【参考方案1】:

您可以创建另一个名为 globalFunctions.js 的文件

添加任何你想作为 IFFE 全局运行的东西

这将确保每个 IFFE 都有自己的代码块

globalFunctions.js


export default globalFunctions(client, channel)
/*
 IFFE
*/

    (function()
      setInterval(()=>
         channel.send('some message')
      , /*Time you want*/)
    )()

// and so on


或“如果你想扩大规模,我建议这样做

您可以为每个全局函数添加其他文件,然后添加到全局函数文件中

/*Import other functions*/

import periodicMessage from 'PATH'
export default globalFunctions(client, channel)
   
    periodicMessage(client, channel);



只需将此函数导入主文件并在服务器运行后运行它

ma​​in.js

import globalFunctions from 'PATH'

client.once('ready', () => 

    // Your code

    globalFunctions(client, channel)
)

【讨论】:

以上是关于自动发送消息 discord.js的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 每隔 1 分钟发送一条消息

计算使用 discord.js 发送消息的次数

向一组用户发送私人消息(Discord.js)

discord.js 发送自定义消息而不是镜像消息

Discord.js 按顺序发送消息

Discord.js -- 使 presenceUpdate 发送消息