Commit 5a3a8554 authored by nanahira's avatar nanahira

Merge branch 'hide_name' into mc

parents d74ad883 563a7c53
......@@ -21,6 +21,7 @@
"stop": false,
"side_timeout": false,
"replay_delay": false,
"hide_name": false,
"i18n": {
"auto_pick": false,
"default": "zh-cn",
......
......@@ -1334,7 +1334,8 @@ class Room
if settings.modules.random_duel.record_match_scores and @random_type == 'M'
ROOM_player_flee(client.name_vpass)
if @players.length and !(@windbot and client.is_host) and !(@arena and !@started and client.pos <= 3)
ygopro.stoc_send_chat_to_room this, "#{client.name} ${left_game}" + if error then ": #{error}" else ''
left_name = (if settings.modules.hide_name and !@started then "********" else client.name)
ygopro.stoc_send_chat_to_room this, "#{left_name} ${left_game}" + if error then ": #{error}" else ''
roomlist.update(this) if !@windbot and !@started and settings.modules.http.websocket_roomlist
#client.room = null
else
......@@ -2448,6 +2449,17 @@ ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)->
#console.log "TYPE_CHANGE to #{client.name}:", info, selftype, is_host
return false
ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid]
return false unless room and settings.modules.hide_name and !room.started
pos = info.pos
if pos < 4 and pos != client.pos
struct = ygopro.structs["STOC_HS_PlayerEnter"]
struct._setBuff(buffer)
struct.set("name", "********")
buffer = struct.buffer
return false
ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid]
return unless room and room.max_player and client.is_host
......@@ -2600,6 +2612,12 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server, datas)->
if room.random_type == 'T'
# 双打房不记录匹配过
ROOM_players_oppentlist[player.ip] = null
if settings.modules.hide_name and room.duel_count == 0
for player in room.get_playing_player() when player != client
ygopro.stoc_send(client, 'HS_PLAYER_ENTER', {
name: player.name,
pos: player.pos
})
if settings.modules.tips.enabled
ygopro.stoc_send_random_tip(client)
deck_text = null
......@@ -3011,7 +3029,7 @@ ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)->
ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid]
pid = info.player
return unless room and pid < 4 and settings.modules.chat_color.enabled
return unless room and pid < 4 and settings.modules.chat_color.enabled and (!settings.modules.hide_name or room.started)
if room.started and room.turn > 0 and !room.dueling_players[0].is_first
if room.hostinfo.mode == 2
pid = {
......
......@@ -1699,7 +1699,7 @@
};
Room.prototype.disconnect = function(client, error) {
var index, len2, m, player, ref2;
var index, left_name, len2, m, player, ref2;
if (client.had_new_reconnection) {
return;
}
......@@ -1741,7 +1741,8 @@
}
}
if (this.players.length && !(this.windbot && client.is_host) && !(this.arena && !this.started && client.pos <= 3)) {
ygopro.stoc_send_chat_to_room(this, (client.name + " ${left_game}") + (error ? ": " + error : ''));
left_name = (settings.modules.hide_name && !this.started ? "********" : client.name);
ygopro.stoc_send_chat_to_room(this, (left_name + " ${left_game}") + (error ? ": " + error : ''));
if (!this.windbot && !this.started && settings.modules.http.websocket_roomlist) {
roomlist.update(this);
}
......@@ -3030,6 +3031,22 @@
return false;
});
ygopro.stoc_follow('HS_PLAYER_ENTER', true, function(buffer, info, client, server, datas) {
var pos, room, struct;
room = ROOM_all[client.rid];
if (!(room && settings.modules.hide_name && !room.started)) {
return false;
}
pos = info.pos;
if (pos < 4 && pos !== client.pos) {
struct = ygopro.structs["STOC_HS_PlayerEnter"];
struct._setBuff(buffer);
struct.set("name", "********");
buffer = struct.buffer;
}
return false;
});
ygopro.stoc_follow('HS_PLAYER_CHANGE', false, function(buffer, info, client, server, datas) {
var is_ready, len2, len3, m, n, p1, p2, player, pos, ref2, ref3, room;
room = ROOM_all[client.rid];
......@@ -3238,7 +3255,7 @@
}
ygopro.stoc_follow('DUEL_START', false, function(buffer, info, client, server, datas) {
var deck_arena, deck_name, deck_text, len2, m, player, ref2, room;
var deck_arena, deck_name, deck_text, len2, len3, m, n, player, ref2, ref3, room;
room = ROOM_all[client.rid];
if (!(room && !client.reconnecting)) {
return;
......@@ -3268,6 +3285,18 @@
}
}
}
if (settings.modules.hide_name && room.duel_count === 0) {
ref3 = room.get_playing_player();
for (n = 0, len3 = ref3.length; n < len3; n++) {
player = ref3[n];
if (player !== client) {
ygopro.stoc_send(client, 'HS_PLAYER_ENTER', {
name: player.name,
pos: player.pos
});
}
}
}
if (settings.modules.tips.enabled) {
ygopro.stoc_send_random_tip(client);
}
......@@ -3830,7 +3859,7 @@
var len2, m, pid, player, ref2, room, tcolor, tplayer;
room = ROOM_all[client.rid];
pid = info.player;
if (!(room && pid < 4 && settings.modules.chat_color.enabled)) {
if (!(room && pid < 4 && settings.modules.chat_color.enabled && (!settings.modules.hide_name || room.started))) {
return;
}
if (room.started && room.turn > 0 && !room.dueling_players[0].is_first) {
......
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