Search code examples
discorddiscord.js

Send DMed files and links to channel in server


Okay. This might be a strange question, but I need help as I could not find anything online. I have a discord bot and server that is hosts a competition, and users submit their submissions by Direct Messaging me a link or file of their submission. I would like to change this to them DMing the bot instead, and the bot posting the links and files in a certain channel in the server. I have absolutely no clue how to achieve this as I am kind of a novice when it comes to this sort of thing. Please comment if I need to change my wording or need to clarify anything!


Solution

  • Replace channel id with the actual id of the channel that you want to send the submissions to.

    For Discord.js v12/v13 (the latest version):

    client.on('message', ({attachments, author, content, guild}) => {
      // only do this for DMs
      if (!guild) {
        // this will simply send all the attachments, if there are any, or the message content
        // you might also want to check that the content is a link as well
        const submission = attachments.size
          ? {files: [...attachments.values()], content: `${author}`}
          : {content: `${content}\n${author}`}
        client.channels.cache.get('channel id').send(submission)
      }
    })
    

    For Discord.js v11 replace

    client.channels.cache.get('channel id').send(submission)
    

    with

    client.channels.get('channel id').send(submission)