-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.js
117 lines (103 loc) · 3.73 KB
/
main.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
116
117
global.fs = require("fs");
global.socketEval = require('socket.io-client')("https://xerleval-xerl-miceve.cloud.okteto.net/")
global.jimp = require('jimp');
global.sharp=require("sharp")
const cfg=require("config.json")
global.request = require("request")
global.wfs = require('webdav-fs')(
cfg.davhost, {
username: cfg.davuser,
password: cfg.davpass
}
)
global.makeid = function makeid(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
global.session=makeid(10)
Array.prototype.random = function() {
return this[Math.floor(Math.random() * this.length)]
}
Math.rand = function(min, max) {
return Math.round(min + (Math.random() * max))
}
let p = "-"
let mongoCli = require("mongodb").MongoClient;
let mongo = new mongoCli(cfg.mongourl, { useUnifiedTopology: true,useNewUrlParser: true });
mongo.connect((err,dbhost)=>{
if(err){
return console.log(err);
}
global.db=dbhost.db("xerl")
})
global.Discord = require("discord.js")
const client = new Discord.Client({ ws: { properties: { $os: 'android', $browser: 'mobile', $device: 'mobile' } } })
if(process.env.DEBUG){
client.login(cfg.debugtoken)
}else{
client.login(cfg.productiontoken)
}
client.on("ready", () => {
global.client=client
let statuses = ["$commands", "My prefix is $", "Users", "Youtube", "in the future"]
setInterval(() => {
client.user.setActivity(statuses.random(), {
"type": "WATCHING"
})
}, 30000)
client.user.setActivity(statuses[0], {
"type": "WATCHING"
})
})
function processMessage(message) {
if(message.author.bot||!message.guild){return}
db.collection("prefixes").findOne({guild:message.guild.id},(err,doc)=>{
if(doc==null){
db.collection("prefixes").insertOne({guild:message.guild.id,prefix:cfg.defaultprefix})
}else{
let p=doc.prefix
if (message.content.startsWith(p)) {
message.content = message.content.split("\n").join(" \n")
try {
let cmd = message.content.split(" ")[0].split(p);
cmd.splice(0, 1);
cmd = cmd.join(p);
let args = message.content.split(" ");
args.splice(0, 1);
if (fs.existsSync(__dirname + "/commands/" + cmd + ".js")) {
db.collection("profile").findOne({id:message.author.id},(err,profile)=>{
if(profile==null){
db.collection("profile").insertOne({id:message.author.id,army:{},humans:{human:5},lastTribute:0,money:0})
profile={id:message.author.id,army:{},humans:{human:5},lastTribute:0,money:0}
}
message.channel.sendEm=(text,opts)=>{
message.channel.stopTyping()
return message.channel.send(new Discord.RichEmbed()
.setFooter("©️ MiceVersionX 2018-2020")
.setColor("RANDOM")
.setDescription(text)
.setAuthor("Reply to "+message.author.tag+"'s command",message.author.avatarURL)
,opts)
}
message.channel.startTyping()
// if(require.cache[require.resolve(__dirname+"/commands/"+cmd+".js")]){
delete require.cache[require.resolve(__dirname + "/commands/" + cmd + ".js")]
setTimeout(()=>{message.channel.stopTyping()},3000)
require(__dirname + "/commands/" + cmd + ".js")(args, message,profile)
})
}
} catch (e) {
return console.error(e)
}
}
}
})
}
client.on("message",processMessage)
client.on("messageUpdate",(o,n)=>{processMessage(n)})
client.on("ready",()=>{console.log("ready")})