-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.old.js
115 lines (101 loc) · 4.35 KB
/
index.old.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
const PREFIX = '!';
// const clear = require('./Commands/clear.js');
// Ping is an example of how to use module.exports
var ping = require("./Commands/ping.js");
// Links file contains social links and all links. Easy Editable file.
var links = require('./Commands/links.js');
// future commands for GuardianBot. There is one written in there now. But unsure how to write it so it's for staff only in the main body of code.
//var StreamRole = require('./Commands/commands.js');
var clear = require("./Commands/clear.js");
var stream_check = require("./streamcheck.js");
var messages = require('./JSONFiles/messages.json');
const {Client, MessageEmbed} = require('discord.js');
require('dotenv').config();
const bot = new Client({ fetchAllMembers: true });
/** Fetching all members, so that we can use them later */
var version = 'v0.5.4';
var data = {};
var profanities = require('profanities')
const token = process.env.BOT_TOKEN;
bot.on('ready', async () => {
stream_check.init(bot);
// stream(bot);
//twitch();
console.log('GuardianBot has joined GOTG Discord!');
// Lines 20 through 22 is console logging.
bot.on("error", e => console.error);
bot.on("warn", e => console.warn);
bot.on("debug", e => console.info);
// initialize the stream check loop
setInterval(async function() {
try {
//data = await stream_check.loop();
let a = null; //just do nothing to not raise an error
} catch (err) {
console.log(err)
}
}, 1e4) //3e5 is 5 mins
})
//var staffRoles = ["463937121141522432", "160221051983233024"]
bot.on('message', async (msg) =>{
if (!msg.author.bot) {
try {
if (msg.content.startsWith(PREFIX)) {
let args = msg.content.substring(PREFIX.length).split(" ");
if (msg.member.guild.owner.id == msg.member.id || msg.member.roles.cache.has("463937121141522432") || msg.member.roles.cache.has("160221051983233024") || msg.member.roles.cache.has("593667878063046666")) {
var isStaff = true;
}
if (args[0] == "ping") {
ping.ping(msg);
} else if (args[0] == "invite") {
links.invite(msg);
} else if (args[0] == "website") {
links.website(msg);
} else if (args[0] == "social") {
links.social(msg);
} else if (args[0] == "clear") {
if (isStaff) {
await clear.clear(msg, args);
} else {
msg.reply("You do not have permission").then(msg => msg.delete(5000)).catch(console.log);
}
} else if (args[0] == "changetwitchname") {
stream_check.twitchLinkCommand(msg);
} else if (args[0] == "streamtest") {
}
} else {
}
}
catch(err){
msg.reply("Error: " + err.message);
}
// This section refers to calling up the .json files that have quotes, replies, and info.
if(msg.mentions.users.has(bot.user)) {
var msgMatch = BotReplies.find(m => msg.content.toLowerCase().includes(m.msg.toLowerCase()));
if(typeof msgMatch !== 'undefined') {
msg.reply(msgMatch.reply);
}
}
var msgMatch = messages.find(m => m.msg.toLowerCase() === msg.content.toLowerCase());
if(typeof msgMatch !== 'undefined') {
msg.reply(msgMatch.reply);
}
// This is the swear word filtering section
for (p in profanities){
if (msg.content.toLowerCase() == profanities[p].toLowerCase() || msg.content.toUpperCase() == profanities[p].toUpperCase()){
msg.channel.send('You can\'t say that. Please don\'t break the rules.');
msg.delete();
}
}
}});
// This section is for creating debug information. Need to sort command logging,
var fs = require('fs');
var util = require('util');
var log_file = fs.createWriteStream(__dirname + '/debug.log', {flags : 'w'});
var log_stdout = process.stdout;
console.log = function(d) { //
log_file.write(util.format(d) + '\n');
log_stdout.write(util.format(d) + '\n');
};
bot.login(token);
console.log("login into Discord.");