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) 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...")); 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); player.kick(serv.bannedPlayers[player._client.uuid].reason);
return; return;
} }
if(serv.bannedIPs[player._client.socket.remoteAddress]){
player.kick(serv.bannedIPs[player._client.socket.remoteAddress].reason)
return
}
addPlayer(); addPlayer();
sendLogin(); sendLogin();

View file

@ -8,9 +8,20 @@ module.exports.server=function(serv)
serv.ban = (uuid, reason) => { serv.ban = (uuid, reason) => {
serv.bannedPlayers[uuid] = { serv.bannedPlayers[uuid] = {
time: +moment(), 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) function uuidInParts(plainUUID)
{ {
@ -36,6 +47,10 @@ module.exports.server=function(serv)
.then(pardon); .then(pardon);
}; };
serv.pardonIP = (IP) => {
return serv.bannedIPs[IP] ? delete serv.bannedIPs[IP] : false
}
function pardon(uuid) { function pardon(uuid) {
if (serv.bannedPlayers[uuid]) { if (serv.bannedPlayers[uuid]) {
delete serv.bannedPlayers[uuid]; delete serv.bannedPlayers[uuid];
@ -45,6 +60,7 @@ module.exports.server=function(serv)
} }
serv.bannedPlayers = {}; serv.bannedPlayers = {};
serv.bannedIPs = {};
}; };
module.exports.player=function(player,serv) module.exports.player=function(player,serv)
@ -62,6 +78,11 @@ module.exports.player=function(player,serv)
var uuid=player._client.uuid; var uuid=player._client.uuid;
serv.ban(uuid, reason); 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); player.pardon = () => serv.pardon(player._client.uuid);
@ -123,6 +144,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({ player.commands.add({
base: 'pardon', base: 'pardon',
info: 'to pardon a player', info: 'to pardon a player',