25 lines
777 B
JavaScript
25 lines
777 B
JavaScript
|
module.exports.run = async (ws,user,db,msg,fun,users,connections) => {
|
||
|
if (!user.connected) return;
|
||
|
if (!user.channel) return
|
||
|
if (2 > users[user._id].rank) return
|
||
|
if (typeof msg.reason !== "string") return;
|
||
|
try {
|
||
|
var info = await db.users.get(msg.id)
|
||
|
var info = JSON.parse(info)
|
||
|
} catch (error) {
|
||
|
return;
|
||
|
}
|
||
|
if (info.rank >= users[user._id].rank) return
|
||
|
if (msg.permanent) {
|
||
|
var bantime = Date.now() + 10000000000000000
|
||
|
} else {
|
||
|
if (isNaN(Number(msg.duration))) return
|
||
|
|
||
|
var bantime = Date.now() + Math.abs(Math.floor(Number(msg.duration)))
|
||
|
}
|
||
|
info.siteban = {ends: bantime, reason: msg.reason, note: msg.note, _id: user._id}
|
||
|
await db.users.put(msg.id, JSON.stringify(info))
|
||
|
connections.filter(a => a.user._id === msg.id).forEach(a => a.close())
|
||
|
}
|
||
|
module.exports.name = "siteban"
|