mirror of
https://github.com/danbulant/flying-squid
synced 2026-06-18 22:11:07 +00:00
Added IP ban command
This commit is contained in:
parent
d2a62e53e9
commit
e5ff8eae7e
3 changed files with 47 additions and 2 deletions
|
|
@ -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..."));
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
Loading…
Reference in a new issue