Mentions
To implement the second point, we need to revisit our Bot
class and add mention functionality. In the Bot
class' constructor, replace the RTM_CONNECTION_OPENED
event listener block with the following:
this.slack.on(CLIENT_EVENTS.RTM.RTM_CONNECTION_OPENED, () => {
let user = this.slack.dataStore.getUserById(this.slack.activeUserId)
let team = this.slack.dataStore.getTeamById(this.slack.activeTeamId);
this.name = user.name;
this.id = user.id;
console.log(`Connected to ${team.name} as ${user.name}`);
});
The only change here is the addition of the bot's id
to the this
object. This will help us later. Now, replace the respondTo
function with this:
respondTo(opts, callback, start) { if (!this.id) { // if this.id doesn't exist, wait for slack to connect // before continuing this.slack.on(CLIENT_EVENTS.RTM.RTM_CONNECTION_OPENED, () => { createRegex(this.id, this.keywords); }); } else { createRegex(this.id, this.keywords); } function...