mirror of
https://github.com/danbulant/flying-squid
synced 2026-06-19 22:41:52 +00:00
54 lines
No EOL
1.3 KiB
JavaScript
54 lines
No EOL
1.3 KiB
JavaScript
var moment=require("moment");
|
|
var rp=require("request-promise");
|
|
var nodeUuid=require('node-uuid');
|
|
|
|
module.exports = inject;
|
|
|
|
function inject(serv)
|
|
{
|
|
|
|
function ban(uuid, reason) {
|
|
serv.bannedPlayers[uuid] = {
|
|
time: +moment(),
|
|
reason: reason || "You are banned!"
|
|
};
|
|
}
|
|
|
|
function uuidInParts(plainUUID)
|
|
{
|
|
return nodeUuid.unparse(nodeUuid.parse(plainUUID));
|
|
}
|
|
|
|
function getUUIDFromUsername(username) {
|
|
return rp('https://api.mojang.com/users/profiles/minecraft/' + username)
|
|
.then((body) => {
|
|
if(!body) throw new Error("username not found");
|
|
return uuidInParts(JSON.parse(body).id)
|
|
})
|
|
.catch(err => {throw new Error("username not found");});
|
|
}
|
|
|
|
function banUsername(username, reason, cb) {
|
|
return serv.getUUIDFromUsername(username)
|
|
.then(uuid => serv.ban(uuid, reason));
|
|
}
|
|
|
|
function pardonUsername(username, cb) {
|
|
return serv.getUUIDFromUsername(username)
|
|
.then(pardon);
|
|
}
|
|
|
|
function pardon(uuid) {
|
|
if (serv.bannedPlayers[uuid]) {
|
|
delete serv.bannedPlayers[uuid];
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
serv.bannedPlayers = {};
|
|
serv.ban = ban;
|
|
serv.banUsername = banUsername;
|
|
serv.pardonUsername = pardonUsername;
|
|
serv.getUUIDFromUsername = getUUIDFromUsername;
|
|
} |