Commit 5d45b524 authored by mercury233's avatar mercury233

update ban user

parent 471bf9b0
...@@ -59,5 +59,13 @@ ...@@ -59,5 +59,13 @@
"key": "ssl/ygopro-server.key" "key": "ssl/ygopro-server.key"
} }
} }
},
"ban": {
"banned_user": [],
"banned_ip": [],
"badword_level1": ["傻逼", "垃圾"],
"badword_level2": ["死妈", "草你妈"],
"badword_level3": ["迷奸", "仿真枪"],
"illegal_id": ["^Lv.\\d+", "^VIP.\\d+"]
} }
} }
\ No newline at end of file
...@@ -63,8 +63,17 @@ nconf.myset = (settings, path, val) -> ...@@ -63,8 +63,17 @@ nconf.myset = (settings, path, val) ->
target[key] = val target[key] = val
return return
settings.BANNED_user = [] ban_user = (name) ->
settings.BANNED_IP = [] settings.ban.banned_user.push(name)
nconf.myset(settings, "ban:banned_user", settings.ban.banned_user)
for room in ROOM_all when room and room.established
for player in room.players
if player and player.name == name
settings.ban.banned_ip.push(player.remoteAddress)
ygopro.stoc_send_chat_to_room(room, "#{player.name} 被系统请出了房间", ygopro.constants.COLORS.RED)
player.end()
continue
return
settings.version = parseInt(fs.readFileSync('ygopro/gframe/game.cpp', 'utf8').match(/PRO_VERSION = ([x\dABCDEF]+)/)[1], '16') settings.version = parseInt(fs.readFileSync('ygopro/gframe/game.cpp', 'utf8').match(/PRO_VERSION = ([x\dABCDEF]+)/)[1], '16')
settings.lflist = (for list in fs.readFileSync('ygopro/lflist.conf', 'utf8').match(/!.*/g) settings.lflist = (for list in fs.readFileSync('ygopro/lflist.conf', 'utf8').match(/!.*/g)
...@@ -930,12 +939,12 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)-> ...@@ -930,12 +939,12 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server)->
else if info.pass.length && !ROOM_validate(info.pass) else if info.pass.length && !ROOM_validate(info.pass)
ygopro.stoc_die(client, "房间密码不正确") ygopro.stoc_die(client, "房间密码不正确")
else if _.indexOf(settings.BANNED_user, client.name) > -1 #账号被封 else if _.indexOf(settings.ban.banned_user, client.name) > -1 #账号被封
settings.BANNED_IP.push(client.remoteAddress) settings.ban.banned_ip.push(client.remoteAddress)
log.info("BANNED USER LOGIN", client.name, client.remoteAddress) log.info("BANNED USER LOGIN", client.name, client.remoteAddress)
ygopro.stoc_die(client, "您的账号已被封禁") ygopro.stoc_die(client, "您的账号已被封禁")
else if _.indexOf(settings.BANNED_IP, client.remoteAddress) > -1 #IP被封 else if _.indexOf(settings.ban.banned_ip, client.remoteAddress) > -1 #IP被封
log.info("BANNED IP LOGIN", client.name, client.remoteAddress) log.info("BANNED IP LOGIN", client.name, client.remoteAddress)
ygopro.stoc_die(client, "您的账号已被封禁") ygopro.stoc_die(client, "您的账号已被封禁")
...@@ -1427,7 +1436,7 @@ if settings.modules.http ...@@ -1427,7 +1436,7 @@ if settings.modules.http
response.end(u.query.callback + "( ['loading dialogues', '" + settings.modules.dialogues + "'] );") response.end(u.query.callback + "( ['loading dialogues', '" + settings.modules.dialogues + "'] );")
else if u.query.ban else if u.query.ban
settings.BANNED_user.push(u.query.ban) ban_user(u.query.ban)
response.writeHead(200) response.writeHead(200)
response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );") response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );")
......
// Generated by CoffeeScript 1.10.0 // Generated by CoffeeScript 1.10.0
(function() { (function() {
var Graveyard, ROOM_all, ROOM_ban_player, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_validate, Room, _, bunyan, crypto, date, defaultconfig, execFile, fs, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pg, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, tribute, url, users_cache, wait_room_start, ygopro, zlib; var Graveyard, ROOM_all, ROOM_ban_player, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_validate, Room, _, ban_user, bunyan, crypto, date, defaultconfig, execFile, fs, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pg, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, tribute, url, users_cache, wait_room_start, ygopro, zlib;
net = require('net'); net = require('net');
...@@ -87,9 +87,26 @@ ...@@ -87,9 +87,26 @@
} }
}; };
settings.BANNED_user = []; ban_user = function(name) {
var k, l, len, len1, player, ref, room;
settings.BANNED_IP = []; settings.ban.banned_user.push(name);
nconf.myset(settings, "ban:banned_user", settings.ban.banned_user);
for (k = 0, len = ROOM_all.length; k < len; k++) {
room = ROOM_all[k];
if (room && room.established) {
ref = room.players;
for (l = 0, len1 = ref.length; l < len1; l++) {
player = ref[l];
if (player && player.name === name) {
settings.ban.banned_ip.push(player.remoteAddress);
ygopro.stoc_send_chat_to_room(room, player.name + " 被系统请出了房间", ygopro.constants.COLORS.RED);
player.end();
continue;
}
}
}
}
};
settings.version = parseInt(fs.readFileSync('ygopro/gframe/game.cpp', 'utf8').match(/PRO_VERSION = ([x\dABCDEF]+)/)[1], '16'); settings.version = parseInt(fs.readFileSync('ygopro/gframe/game.cpp', 'utf8').match(/PRO_VERSION = ([x\dABCDEF]+)/)[1], '16');
...@@ -1134,11 +1151,11 @@ ...@@ -1134,11 +1151,11 @@
}); });
} else if (info.pass.length && !ROOM_validate(info.pass)) { } else if (info.pass.length && !ROOM_validate(info.pass)) {
ygopro.stoc_die(client, "房间密码不正确"); ygopro.stoc_die(client, "房间密码不正确");
} else if (_.indexOf(settings.BANNED_user, client.name) > -1) { } else if (_.indexOf(settings.ban.banned_user, client.name) > -1) {
settings.BANNED_IP.push(client.remoteAddress); settings.ban.banned_ip.push(client.remoteAddress);
log.info("BANNED USER LOGIN", client.name, client.remoteAddress); log.info("BANNED USER LOGIN", client.name, client.remoteAddress);
ygopro.stoc_die(client, "您的账号已被封禁"); ygopro.stoc_die(client, "您的账号已被封禁");
} else if (_.indexOf(settings.BANNED_IP, client.remoteAddress) > -1) { } else if (_.indexOf(settings.ban.banned_ip, client.remoteAddress) > -1) {
log.info("BANNED IP LOGIN", client.name, client.remoteAddress); log.info("BANNED IP LOGIN", client.name, client.remoteAddress);
ygopro.stoc_die(client, "您的账号已被封禁"); ygopro.stoc_die(client, "您的账号已被封禁");
} else { } else {
...@@ -1801,7 +1818,7 @@ ...@@ -1801,7 +1818,7 @@
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['loading dialogues', '" + settings.modules.dialogues + "'] );"); response.end(u.query.callback + "( ['loading dialogues', '" + settings.modules.dialogues + "'] );");
} else if (u.query.ban) { } else if (u.query.ban) {
settings.BANNED_user.push(u.query.ban); ban_user(u.query.ban);
response.writeHead(200); response.writeHead(200);
response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );"); response.end(u.query.callback + "( ['ban ok', '" + u.query.ban + "'] );");
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment