new sfx and timers
This commit is contained in:
37
lib/timers.js
Executable file
37
lib/timers.js
Executable file
@@ -0,0 +1,37 @@
|
|||||||
|
const util = require('util'),
|
||||||
|
emitter = require('events').EventEmitter;
|
||||||
|
|
||||||
|
function Timers()
|
||||||
|
{
|
||||||
|
let self = this;
|
||||||
|
|
||||||
|
emitter.call(self);
|
||||||
|
|
||||||
|
self.once = (forTimestamp, eventName) => {
|
||||||
|
// figure out ms between now and scheduled time
|
||||||
|
// setTimeout for event to be fired at that time
|
||||||
|
let diff = forTimestamp - Date.now();
|
||||||
|
if (diff < 0) return;
|
||||||
|
setTimeout(() => {self.emit(eventName)}, diff);
|
||||||
|
return self;
|
||||||
|
};
|
||||||
|
|
||||||
|
self.repeat = (intervalSeconds, eventName) => {
|
||||||
|
setInterval(() => {self.emit(eventName)}, intervalSeconds*1000);
|
||||||
|
return self;
|
||||||
|
};
|
||||||
|
|
||||||
|
self.onceAndRepeat = (forTimestamp, intervalSeconds, eventName) => {
|
||||||
|
let diff = forTimestamp - Date.now();
|
||||||
|
if (diff < 0) return self;
|
||||||
|
setTimeout(() => {
|
||||||
|
self.emit(eventName);
|
||||||
|
self.repeat(intervalSeconds, eventName);
|
||||||
|
}, diff);
|
||||||
|
return self;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
util.inherits(Timers, emitter);
|
||||||
|
|
||||||
|
module.exports = new Timers();
|
||||||
22
main.js
22
main.js
@@ -1,8 +1,10 @@
|
|||||||
// Import modules
|
// Import modules
|
||||||
const { Client } = require('discord.js');
|
const { Client } = require('discord.js'),
|
||||||
const fs = require('fs');
|
fs = require('fs'),
|
||||||
const path = require('path');
|
path = require('path'),
|
||||||
const tokens = require('./tokens.json');
|
moment = require('moment'),
|
||||||
|
timers = require('./lib/timers.js'),
|
||||||
|
tokens = require('./tokens.json');
|
||||||
|
|
||||||
// Set up Discord client
|
// Set up Discord client
|
||||||
const client = new Client();
|
const client = new Client();
|
||||||
@@ -47,12 +49,10 @@ const commands = {
|
|||||||
(function play(sfxFile) {
|
(function play(sfxFile) {
|
||||||
const dispatcher = msg.guild.voiceConnection.playFile(sfxFile, playOptions);
|
const dispatcher = msg.guild.voiceConnection.playFile(sfxFile, playOptions);
|
||||||
dispatcher.on('end', reason => {
|
dispatcher.on('end', reason => {
|
||||||
//console.log('end: ' + reason)
|
|
||||||
playing = false;
|
playing = false;
|
||||||
msg.guild.voiceConnection.disconnect();
|
msg.guild.voiceConnection.disconnect();
|
||||||
})
|
})
|
||||||
.on('error', error => {
|
.on('error', error => {
|
||||||
//console.log('error: ' + error);
|
|
||||||
playing = false;
|
playing = false;
|
||||||
msg.guild.voiceConnection.disconnect();
|
msg.guild.voiceConnection.disconnect();
|
||||||
})
|
})
|
||||||
@@ -67,6 +67,16 @@ const commands = {
|
|||||||
// Wait for discord to be ready, handle messages
|
// Wait for discord to be ready, handle messages
|
||||||
client.on('ready', () => {
|
client.on('ready', () => {
|
||||||
console.log(`${tokens.botName} is connected and ready`);
|
console.log(`${tokens.botName} is connected and ready`);
|
||||||
|
|
||||||
|
let alertsChannel = client.channels.find('name', 'bot');
|
||||||
|
|
||||||
|
// Test timer
|
||||||
|
/*let timeToBlazeIt = moment().hour(16).minute(20).second(0).valueOf();
|
||||||
|
timers.onceAndRepeat(timeToBlazeIt, 86400, 'blazeit')
|
||||||
|
.on('blazeit', () => {
|
||||||
|
let emoji = client.guilds.first().emojis.find('name', 'BlazedHam');
|
||||||
|
alertsChannel.send(`You know what time it is. ${emoji}`);
|
||||||
|
});*/
|
||||||
}).on('message', msg => {
|
}).on('message', msg => {
|
||||||
if (!msg.content.startsWith(tokens.prefix)) return;
|
if (!msg.content.startsWith(tokens.prefix)) return;
|
||||||
let cmd = msg.content.toLowerCase().slice(tokens.prefix.length).split(' ')[0];
|
let cmd = msg.content.toLowerCase().slice(tokens.prefix.length).split(' ')[0];
|
||||||
|
|||||||
5
package-lock.json
generated
5
package-lock.json
generated
@@ -273,6 +273,11 @@
|
|||||||
"version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
"version": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM="
|
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM="
|
||||||
},
|
},
|
||||||
|
"moment": {
|
||||||
|
"version": "2.18.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz",
|
||||||
|
"integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8="
|
||||||
|
},
|
||||||
"mout": {
|
"mout": {
|
||||||
"version": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz",
|
"version": "https://registry.npmjs.org/mout/-/mout-0.11.1.tgz",
|
||||||
"integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k="
|
"integrity": "sha1-ujYR318OWx/7/QEWa48C0fX6K5k="
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"discord.js": "^11.1.0",
|
"discord.js": "^11.1.0",
|
||||||
"ffmpeg-binaries": "^3.2.2-3",
|
"ffmpeg-binaries": "^3.2.2-3",
|
||||||
|
"moment": "^2.18.1",
|
||||||
"node-opus": "^0.2.6",
|
"node-opus": "^0.2.6",
|
||||||
"request": "^2.81.0"
|
"request": "^2.81.0"
|
||||||
},
|
},
|
||||||
|
|||||||
BIN
sfx/countdown.mp3
Executable file
BIN
sfx/countdown.mp3
Executable file
Binary file not shown.
BIN
sfx/deebsfart.mp3
Executable file
BIN
sfx/deebsfart.mp3
Executable file
Binary file not shown.
BIN
sfx/jebaited.mp3
Executable file
BIN
sfx/jebaited.mp3
Executable file
Binary file not shown.
Reference in New Issue
Block a user