2.2.0 • Published 6 years ago
node-red-node-discord v2.2.0
node-red-node-discord
Inspired by node-red-contrib-discord
Node-red nodes that allow you to interact with Discord, via Discord.js. Can be used to implement simple write/read Bots
Installation
Run the following command in ~/.node-red:
npm install node-red-node-discordNodes
node-red-node-discord gives you access to following nodes:
- discord-get-messages is a node with no inputs and one output allowing you to receive notifications of incoming messages.
- discord-get-emoji-reactions is a node with no inputs and one output allowing you to receive notifications when user reacts on message with emoji.
- discord-send-messages is a node with one input and no outputs allowing you to send messages to a Discord channel.
- discord-members-monitoring is a node with one input and output, designed to get all channels and their's members for metrics.
discord-get-messages
- Triggers whenever a message was received on Discord
- You can pass list of channels to listen to
Note : valid channel list example
#1245#general#1234567#another-channel msg.payloadwill be set to the textual content of the messagemsg.channelwill be set to an Object containing info on the channel the message was received from (does not contain any discord.js functions)msg.authorwill be set to an Object containing info on the user that sent the message (does not contain any discord.js functions)msg.attachmentswill be set toArraycontaining attachments info in format{ filename: string, // Filename href: string // File Url generated by Discord }msg.rawDatawill be set to an Object containing info on the message that was received, but again without any of the discord.js functions- To reply to a message, use the
discord-send-messagesnode.
discord-send-messages
- Sends
msg.payloadon Discord channel with idmsg.channelYou can pass channel name inmsg.channelas well as id, i.e.generalNote: this feature possibly can cause sending message to wrong channel if bot connected to multiple servers and there are same named channels - Feel free to @mention people in
message.payloadExample:Hello @Gago, nice module :), also you can use@here, @everyonementions To use discord's rich text embed specify
msg.richwith following content (props marked with ? are not required){ title?: string; description?: string; url?: string; color?: ColorResolvable; timestamp?: number | Date; footer?: { icon?: string; text: string; }; thumbnail?: string; author: { name: string; icon?: string; url?: string; }; attachments?: Attachment[]; field?: { name: string; value: string; inline?: boolean; }; fields?: [ { name: string; value: string; inline?: boolean; } ]; }msg.attachmentscontains attachments to send, it must be array containing objects in format{ name: string; file: string | Buffer | Stream; }discord-members-monitoring
- Triggered from outside, for now doesn't provide any configuration options
- Set's monitored data to
msg.monitoringDatawith following content
{ [category: string]: [ { id: string; channelName: string; members: [ { id: string; username: string; joinedDate: Date; permissions: PermissionString[]; roles: [ { id: string; name: string; permissions: number; } ] } ] } ] }