aboutsummaryrefslogtreecommitdiff
path: root/aleemod.js
blob: 4195dfadb602f60d930833bf14c01c80d0ee83a6 (plain) (blame)
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
const Discord = require('discord.js');
const api = require('./aleemodkey.js');
 const client = new Discord.Client();
   
   var expletiveFilter = true;
   var lastMessages = {};
   var sameMessageCount = {};
   

   client.on('ready', () => {
       console.log("AleeMod is now ready!");
    client.setInterval(setGame, 300000);
    setGame();
   });
   
   client.on('message', message => {
       var msg = message.content;
       if (lastMessages[message.author.id] == msg && sameMessageCount[message.author.id] > 3) {
           console.log("Spam limits kicking in!");
           switch (Math.floor(Math.random() * 1000) % 4) {
               case 0:
                   message.reply("Well... We all heard you.");
                   break;
               case 1:
                   message.reply("Stop typing the same thing! You're like a broken record!");
                   break;
               case 2:
                   message.reply("Hmm... Not sure if you'd actually say the same thing more than three times in public.");
                   break;
               case 3:
                   message.reply("Is that the only phrase you know? Can you try typing something else?");
                   break;
           }
           message.delete();
           return;
       }
       
       if (expletiveFilter) {
           var exp = msg.search(/(\s|^)(shit|shite|shitty|bullshit|fuck|fucking|ass|penis|cunt|faggot|damn|wank|wanker|nigger|bastard|piss|vagina|thisisnotarealwordbutatestword)(\s|$)/i);
           if (exp != -1) { //Gah! They're not supposed to say that!

               switch (Math.floor(Math.random() * 1000) % 5) {
                   case 0:
                       message.reply("Hey! This is not your time to swear.");
                       break;
                   case 1:
                       message.reply("Hey! Let's not have any of that please.");
                       break;
                   case 2:
                       message.reply("Did you just...");
                       break;
                   case 3:
                       message.reply("Cool. Now let's not forget the rules.");
                       break;
                   case 4:
                       message.reply("If I'm not going to delete it, a mod will. Let's save them some work.");
                       break;
               }
               message.delete();
               return;
           }
       }
       
       if (msg.startsWith("mod:")) {
           //Check for moderator/admin permission
           
           //Moderator ID: 285427075043819530
           //Admin ID:     259877121793458179
           if (message.member.roles.find("name", "Admin") || message.member.roles.find("name", "Moderators")) { 
               var command = msg.substr(4);
               switch (command) {
                   case "ping":
                       message.channel.send('<:vtBoshyTime:280178631886635008> PONG! I want to play pong too... :\'(');
                       break;
                   case "pong":
                       message.channel.send('<:vtBoshyTime:280178631886635008> PING!');
                       break;
                   case "filter":
                       if (expletiveFilter) {
                           message.channel.send(':arrow_forward: Expletive Filter: on');
                       } else {
                           message.channel.send(':arrow_forward: Expletive Filter: off');
                       }
                       message.delete();
                       break;
                   case "filter on":
                       if (expletiveFilter) {
                           message.channel.send(':arrow_forward: Expletive Filter is already on.');
                       } else {
                           expletiveFilter = true;
                           message.channel.send(':white_check_mark: Expletive Filter is now turned on.');
                           console.log("Expletive Filter is now on.");
                       }
                       message.delete();
                       break;
                   case "filter off":
                       if (expletiveFilter) {
                           expletiveFilter = false;
                           message.channel.send(':white_check_mark: Expletive Filter is now turned off.');
                           console.log("Expletive Filter is now off.");
                       } else {
                           message.channel.send(':arrow_forward: Expletive Filter is already off.');
                       }
                       message.delete();
                       break;
                   default:
                       if (command.startsWith("uinfo")) {
                           if (message.channel.id == 277923386959855626) {
                               message.channel.send(':no_entry_sign: Not ready yet. Check back soon!');
                           } else {
                               message.channel.send(':no_entry_sign: NO: Unable to use this command in this channel.');
                           }
                       }
               }
           } else {
               message.reply(':no_entry_sign: NO: What? You\'re not an admin! Why would you be allowed to type that!?');
           }
       }
       
       //Spam limiting
       if (lastMessages[message.author.id] != msg) {
           sameMessageCount[message.author.id] = 0;
       }
       lastMessages[message.author.id] = msg
       sameMessageCount[message.author.id]   = 1;
   });
   
   client.on('guildMemberAdd', usr => {
   });
   

	function setGame() {
    var presence = {};
    presence.game = {};
    presence.status = "online";
    presence.afk = false;
	
    switch (Math.floor(Math.random() * 1000) % 27) {
        case 0:
            presence.game.name = "Being a moderator";
            break; //SCRUATCHO
        case 1:
            presence.game.name = "AleeOS";
            break;
        case 2:
            presence.game.name = "Annoy Alee";
            break;
    }
    client.user.setPresence(presence);
}

   client.login('MzE5MTI2ODI2NDczNzUwNTI4.DBCmKg.VGHbwB3-1GiDuybYi-rIam6LDoM').catch(
function() {
       console.log("[ERROR] Login failed.");
   });