Commit 591b0a28 authored by mercury233's avatar mercury233

unwelcome bad user

parent 46853f49
......@@ -168,6 +168,10 @@
"afk_warn_part2": "秒后被请出房间",
"surrender_confirm": "确实要投降吗?再次输入 /投降 以确认。",
"surrender_canceled": "已取消投降,加油!",
"surrender_denied": "为保证双方玩家的游戏体验,随机对战中3回合后才能投降。"
"surrender_denied": "为保证双方玩家的游戏体验,随机对战中3回合后才能投降。",
"unwelcome_warn_part1": "如果您经常",
"unwelcome_warn_part2": ",您的对手可能会离你而去。",
"unwelcome_tip_part1": "因为您的对手有",
"unwelcome_tip_part2": "行为,现在您可以直接离开游戏,不视为强退。"
}
}
\ No newline at end of file
......@@ -273,6 +273,16 @@ ROOM_validate = (name)->
room_pass = room_name_and_pass[1]
client_name == room_name and client_pass != room_pass
ROOM_unwelcome = (room, bad_player, reason)->
return unless room
for player in room.players
if player and player == bad_player
ygopro.stoc_send_chat(player, "${unwelcome_warn_part1}#{reason}${unwelcome_warn_part2}", ygopro.constants.COLORS.RED)
else if player and player.pos!=7 and player != bad_player
player.flee_free=true
ygopro.stoc_send_chat(player, "${unwelcome_tip_part1}#{reason}${unwelcome_tip_part2}", ygopro.constants.COLORS.BABYBLUE)
return
class Room
constructor: (name, @hostinfo) ->
@name = name
......@@ -555,7 +565,7 @@ class Room
if @started and @disconnector != 'server' and (client.pos < 4 or client.is_host)
@finished = true
@scores[client.name] = -1
if @random_type
if @random_type and not client.flee_free
ROOM_ban_player(client.name, client.ip, "${random_ban_reason_flee}")
if @players.length and !(@windbot and client.is_host)
ygopro.stoc_send_chat_to_room this, "#{client.name} ${left_game}" + if error then ": #{error}" else ''
......@@ -1488,6 +1498,8 @@ ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server)->
return msg.match(regexp)
, msg))
log.info "BAD WORD LEVEL 0", client.name, client.ip, oldmsg
if client.abuse_count>=2
ROOM_unwelcome(room, client, "${random_ban_reason_abuse}")
if client.abuse_count>=5
ygopro.stoc_send_chat_to_room(room, "#{client.name} ${chat_banned}", ygopro.constants.COLORS.RED)
ROOM_ban_player(client.name, client.ip, "${random_ban_reason_abuse}")
......@@ -1639,6 +1651,7 @@ if settings.modules.random_duel.enabled
room.waiting_for_player.server.destroy()
else if time_passed >= (settings.modules.random_duel.hang_timeout - 20) and not (time_passed % 10)
ygopro.stoc_send_chat_to_room(room, "#{room.waiting_for_player.name} ${afk_warn_part1}#{settings.modules.random_duel.hang_timeout - time_passed}${afk_warn_part2}", ygopro.constants.COLORS.RED)
ROOM_unwelcome(room, room.waiting_for_player, "${random_ban_reason_AFK}")
return
, 1000
......
// Generated by CoffeeScript 1.12.1
(function() {
var Cloud_replay_ids, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_validate, Room, _, addCallback, ban_user, bunyan, cppversion, crypto, date, defaultconfig, execFile, fs, geoip, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pgClient, pg_client, pg_query, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, url, users_cache, wait_room_start, windbot_process, ygopro, zlib;
var Cloud_replay_ids, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_port, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_players_banned, ROOM_players_oppentlist, ROOM_unwelcome, ROOM_validate, Room, _, addCallback, ban_user, bunyan, cppversion, crypto, date, defaultconfig, execFile, fs, geoip, get_memory_usage, http, http_server, https, https_server, list, load_dialogues, load_tips, log, moment, nconf, net, options, os, path, pgClient, pg_client, pg_query, redis, redisdb, request, requestListener, roomlist, settings, spawn, spawnSync, url, users_cache, wait_room_start, windbot_process, ygopro, zlib;
net = require('net');
......@@ -379,6 +379,23 @@
});
};
ROOM_unwelcome = function(room, bad_player, reason) {
var j, len, player, ref;
if (!room) {
return;
}
ref = room.players;
for (j = 0, len = ref.length; j < len; j++) {
player = ref[j];
if (player && player === bad_player) {
ygopro.stoc_send_chat(player, "${unwelcome_warn_part1}" + reason + "${unwelcome_warn_part2}", ygopro.constants.COLORS.RED);
} else if (player && player.pos !== 7 && player !== bad_player) {
player.flee_free = true;
ygopro.stoc_send_chat(player, "${unwelcome_tip_part1}" + reason + "${unwelcome_tip_part2}", ygopro.constants.COLORS.BABYBLUE);
}
}
};
Room = (function() {
function Room(name, hostinfo) {
var draw_count, lflist, param, rule, start_hand, start_lp, time_limit;
......@@ -743,7 +760,7 @@
if (this.started && this.disconnector !== 'server' && (client.pos < 4 || client.is_host)) {
this.finished = true;
this.scores[client.name] = -1;
if (this.random_type) {
if (this.random_type && !client.flee_free) {
ROOM_ban_player(client.name, client.ip, "${random_ban_reason_flee}");
}
}
......@@ -1828,6 +1845,9 @@
log.info("BAD WORD LEVEL 0", client.name, client.ip, oldmsg);
}
}
if (client.abuse_count >= 2) {
ROOM_unwelcome(room, client, "${random_ban_reason_abuse}");
}
if (client.abuse_count >= 5) {
ygopro.stoc_send_chat_to_room(room, client.name + " ${chat_banned}", ygopro.constants.COLORS.RED);
ROOM_ban_player(client.name, client.ip, "${random_ban_reason_abuse}");
......@@ -2057,6 +2077,7 @@
room.waiting_for_player.server.destroy();
} else if (time_passed >= (settings.modules.random_duel.hang_timeout - 20) && !(time_passed % 10)) {
ygopro.stoc_send_chat_to_room(room, room.waiting_for_player.name + " ${afk_warn_part1}" + (settings.modules.random_duel.hang_timeout - time_passed) + "${afk_warn_part2}", ygopro.constants.COLORS.RED);
ROOM_unwelcome(room, room.waiting_for_player, "${random_ban_reason_AFK}");
}
}
}, 1000);
......
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