aboutsummaryrefslogtreecommitdiff
path: root/aleemod.js
blob: 27ab17bfaa426ed9a40c708e971861715fc6be3f (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
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
/****************************************
 * 
 *   AleeBot and AleeMod for AleeArmy Community
 *   Copyright (C) 2017 Alee14
 *
 *   This script is made by Alee14 and other people.
 *   Some stuff was made by Victor Tran (vicr123) and swawesome95 (no longer a dev).
 *   Please say thanks to swawesome95 to laying the basics of this bot and thanks for vicr123 for
 *   letting me use some of his source code.
 *   
 * *************************************/
const Discord = require('discord.js');
 const client = new Discord.Client();
const config = require('./amtoken.json');

   
   var expletiveFilter = true;
   var lastMessages = {};
   var sameMessageCount = {};
   

   client.on('ready', () => {
       console.log("[SUCCESS] AleeMod is now ready!");
    client.setInterval(setGame, 300000);
    setGame();
   });
   
	function setGame() {
    var presence = {};
    presence.game = {};
    presence.status = "online";
    presence.afk = false;
	
    switch (Math.floor(Math.random() * 1000) % 27) {
        case 0:
            presence.game.name = "with ban buttons";
            break; //SCRUATCHO
        case 1:
            presence.game.name = "AleeOS or ShiftOS";
            break;
        case 2:
            presence.game.name = "Annoy Alee";
            break;
        case 3:
            presence.game.name = "with an internal bug";
            break;
        case 4:
            presence.game.name = "in the forest";
            break;
        case 5:
            presence.game.name = "bot games";
            break;
        case 6:
            presence.game.name = "with binary code";
            break;
        case 7:
            presence.game.name = "being a moderator";
            break;
        case 8:
            presence.game.name = "with supa weapon";
            break;
        case 9:
            presence.game.name = "solving puzzles";
            break;
        case 10:
            presence.game.name = "rewinding time";
            break;
        case 11:
            presence.game.name = "checking archives";
            break;
        case 12:
            presence.game.name = "being unbreakable";
            break;
        case 13:
            presence.game.name = "sandwiches";
            break;
        case 14:
            presence.game.name = "drawing pokemon";
            break;
        case 15:
            presence.game.name = "obsessing";
            break;
        case 16:
            presence.game.name = "the waiting game";
            break;
        case 17:
            presence.game.name = "bending space";
            break;
        case 18:
            presence.game.name = "with hexagons";
            break;
        case 19:
            presence.game.name = "with music";
            break;
        case 20:
            presence.game.name = "being a ninja";
            break;
        case 21:
            presence.game.name = "if money cant buy happiness then why is it so fabulous";
            break;
        case 22:
            presence.game.name = "being awesome";
            break;
        case 23:
            presence.game.name = "AleeCraft";
            break;
        case 24:
            presence.game.name = "AleeChat";
            break;
        case 25:
            presence.game.name = "harking tiem";
            break;
		case 26:
			presence.game.name = "trying to DJ";
			break;
    }
client.user.setPresence(presence);
}
   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|aleesucks|hentai|asl|a55|anal|ballsack|bong|cocaine|cum|dick|dp|pedo|pube|rape|scat|semen|testes|tits|anus|arse|bitch|b1tch|b17ch|boob|cock|foreskin|hardon)(\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;
           }
       }

       //No Caps
       /*    if (msg.match(/[A-Z]/gm) != null && msg.match(/[A-Z]/gm).length > (parseFloat(msg.length) * 0.8)) {
                        switch (Math.floor(Math.random() * 1000) % 6) {
                            case 0:
                                message.reply("Shh...");
                                break;
                            case 1:
                                message.reply("The community likes peace and quiet.");
                                break;
                            case 2:
                                message.reply("Isn't it weird when you're reading... and then you see a bunch of caps?");
                                break;
                            case 3:
                                message.reply("If you're going to type that, why not get out a pen and paper and do it yourself or shout in your head please!");
                                break;
                            case 4:
                                message.reply("DON'T SHOUT IN HERE K THIS IS ME :angry:");
                                break;
                            case 5:
                                message.reply("Whoa whoa, slow down, my friend! No need for raised voices!");
                                break;
                        }
                        message.delete();
                        return;
                    }
                }
            }
	} */
     
       //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 => {
   });
   
   client.login(config.token).catch(function() {
       console.log("[ERROR] Login failed.");
   });