Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions bot/client.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const Discord = require('discord.js');
const util = require('apex-util');
const { isAdmin } = require('./botUtils.js');
const models = require('../db/models');

// If production server, set default debug mode to production setting
if (process.env.NODE_ENV === 'production' && !process.env.DEBUG_MODE) process.env.DEBUG_MODE = 0;
Expand All @@ -10,13 +11,38 @@ const client = new Discord.Client();
// Pre-load controllers
const controllers = require('./controllers')();

// Award bonus points
const awardBonusPoints = async (user) => {
const amountOfBonusPoints = 100;
// Get User Message Count
const memberData = await models.Member.findAll(
{
attributes: ['messagesCount', 'points'],
where: { discordUser: user.author.id },
},
);
const messagesCountTemp = memberData[0].dataValues.messagesCount.toString().slice(-3);
let { points } = memberData[0].dataValues;
util.log('Results from database call', memberData[0].dataValues, 4);
// Check if its greater or equal to numberOfMessagesForBonus
if (messagesCountTemp === '000') {
points += amountOfBonusPoints;
// Update member information
await models.Member.update(
{ points },
{ where: { discordUser: user.author.id } },
);
}
};

// Alert when ready
client.on('ready', () => {
util.log('Bot Online and Ready', 0);
});

// Listen for messages
client.on('message', (message) => {
awardBonusPoints(message);
// Check for ! prefix on message to ensure it is a command
if (message.content.charAt(0) === '!') {
util.log('Command message received', message.content, 0);
Expand Down
2 changes: 2 additions & 0 deletions db/models/member.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ module.exports = (sequelize, DataTypes) => {
email: DataTypes.STRING,
uuid: DataTypes.STRING,
verified: DataTypes.BOOLEAN,
messagesCount: DataTypes.INTEGER,
points: DataTypes.INTEGER,
}, {
classMethods: {
associate: (models) => {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,4 @@
"sequelize-cli": "^4.0.0",
"uuid": "^3.1.0"
}
}
}