Added IP ban command

This commit is contained in:
C109 2015-12-07 11:50:52 -05:00
parent d2a62e53e9
commit e5ff8eae7e
3 changed files with 47 additions and 2 deletions

View file

@ -47,7 +47,7 @@ module.exports.server=function(serv,settings)
module.exports.player=function(player,serv)
{
player.on("connected",() => serv.log("[INFO]: " + player.username + ' connected'));
player.on("connected",() => serv.log("[INFO]: " + player.username + ' (' + player._client.socket.remoteAddress + ') connected'));
player.on("spawned",() => serv.log("[INFO]: position written, player spawning..."));

View file

@ -149,6 +149,10 @@ module.exports.player=function(player,serv)
player.kick(serv.bannedPlayers[player._client.uuid].reason);
return;
}
if(serv.bannedIPs[player._client.socket.remoteAddress]){
player.kick(serv.bannedIPs[player._client.socket.remoteAddress].reason)
return
}
addPlayer();
sendLogin();

View file

@ -8,9 +8,20 @@ module.exports.server=function(serv)
serv.ban = (uuid, reason) => {
serv.bannedPlayers[uuid] = {
time: +moment(),
reason: reason || "You are banned!"
reason: reason || "Your account is banned!"
};
};
serv.banIP = (IP, reason) => {
serv.bannedIPs[IP] = {
time: +moment(),
reason: reason || "Your IP is banned!"
}
for(var uuid in serv.players){
if(serv.players[uuid]._client.socket.remoteAddress == IP){
serv.players[uuid].kick(serv.bannedIPs[serv.players[uuid]._client.socket.remoteAddress].reason)
}
}
}
function uuidInParts(plainUUID)
{
@ -35,6 +46,10 @@ module.exports.server=function(serv)
return serv.getUUIDFromUsername(username)
.then(pardon);
};
serv.pardonIP = (IP) => {
return serv.bannedIPs[IP] ? delete serv.bannedIPs[IP] : false
}
function pardon(uuid) {
if (serv.bannedPlayers[uuid]) {
@ -45,6 +60,7 @@ module.exports.server=function(serv)
}
serv.bannedPlayers = {};
serv.bannedIPs = {};
};
module.exports.player=function(player,serv)
@ -62,6 +78,11 @@ module.exports.player=function(player,serv)
var uuid=player._client.uuid;
serv.ban(uuid, reason);
};
player.banIP = reason => {
reason = reason || "You were IP banned!"
player.kick(reason)
serv.banIP(player._client.socket.remoteAddress)
}
player.pardon = () => serv.pardon(player._client.uuid);
@ -122,6 +143,26 @@ module.exports.player=function(player,serv)
}
}
});
player.commands.add({
base: 'ipban',
info: 'bans a specific IP',
usage: '/ban-ip <ip> [reason]',
op: true,
parse(str){
var argv = str.split(' ')
if(argv.length < 1) return;
return {
IP: argv.shift(),
reason: argv.shift()
}
},
action({IP, reason}){
serv.banIP(IP, reason)
player.chat("" + IP + " was IP banned")
}
})
player.commands.add({
base: 'pardon',