Commit cfb9e7ca authored by nanahira's avatar nanahira

use vpass in reconnect

parent 37c6359e
......@@ -473,6 +473,8 @@ release_disconnect = (dinfo, reconnected) ->
CLIENT_get_authorize_key = (client) ->
if settings.modules.mycard.enabled or settings.modules.tournament_mode.enabled or settings.modules.challonge.enabled or client.is_local
return client.name
else if !settings.modules.mycard.enabled and client.vpass
return client.vpass + ":" + client.name
else
return client.ip + ":" + client.name
......@@ -579,7 +581,7 @@ CLIENT_is_able_to_reconnect = (client, deckbuf) ->
CLIENT_get_kick_reconnect_target = (client, deckbuf) ->
for room in ROOM_all when room and room.started and !room.windbot
for player in room.get_playing_player() when !player.closed and player.name == client.name and player.pass == client.pass and (settings.modules.mycard.enabled or settings.modules.tournament_mode.enabled or player.ip == client.ip) and (!deckbuf or _.isEqual(player.start_deckbuf, deckbuf))
for player in room.get_playing_player() when !player.closed and player.name == client.name and player.pass == client.pass and (settings.modules.mycard.enabled or settings.modules.tournament_mode.enabled or player.ip == client.ip or (client.vpass and client.vpass == player.vpass)) and (!deckbuf or _.isEqual(player.start_deckbuf, deckbuf))
return player
return null
......@@ -1350,7 +1352,11 @@ if settings.modules.stop
ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server)->
# checkmate use username$password, but here don't
# so remove the password
name = info.name.split("$")[0]
name_full =info.name.split("$")
name = name_full[0]
vpass = name_full[1]
if vpass and !vpass.length
vpass = null
if (_.any(settings.ban.illegal_id, (badid) ->
regexp = new RegExp(badid, 'i')
matchs = name.match(regexp)
......@@ -1381,6 +1387,7 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server)->
struct.set("name", name)
buffer = struct.buffer
client.name = name
client.vpass = vpass
if not settings.modules.i18n.auto_pick or client.is_local
client.lang=settings.modules.i18n.default
......
......@@ -605,6 +605,8 @@
CLIENT_get_authorize_key = function(client) {
if (settings.modules.mycard.enabled || settings.modules.tournament_mode.enabled || settings.modules.challonge.enabled || client.is_local) {
return client.name;
} else if (!settings.modules.mycard.enabled && client.vpass) {
return client.vpass + ":" + client.name;
} else {
return client.ip + ":" + client.name;
}
......@@ -761,7 +763,7 @@
ref2 = room.get_playing_player();
for (n = 0, len3 = ref2.length; n < len3; n++) {
player = ref2[n];
if (!player.closed && player.name === client.name && player.pass === client.pass && (settings.modules.mycard.enabled || settings.modules.tournament_mode.enabled || player.ip === client.ip) && (!deckbuf || _.isEqual(player.start_deckbuf, deckbuf))) {
if (!player.closed && player.name === client.name && player.pass === client.pass && (settings.modules.mycard.enabled || settings.modules.tournament_mode.enabled || player.ip === client.ip || (client.vpass && client.vpass === player.vpass)) && (!deckbuf || _.isEqual(player.start_deckbuf, deckbuf))) {
return player;
}
}
......@@ -1704,8 +1706,13 @@
}
ygopro.ctos_follow('PLAYER_INFO', true, function(buffer, info, client, server) {
var geo, lang, name, struct;
name = info.name.split("$")[0];
var geo, lang, name, name_full, struct, vpass;
name_full = info.name.split("$");
name = name_full[0];
vpass = name_full[1];
if (vpass && !vpass.length) {
vpass = null;
}
if (_.any(settings.ban.illegal_id, function(badid) {
var matchs, regexp;
regexp = new RegExp(badid, 'i');
......@@ -1740,6 +1747,7 @@
struct.set("name", name);
buffer = struct.buffer;
client.name = name;
client.vpass = vpass;
if (!settings.modules.i18n.auto_pick || client.is_local) {
client.lang = settings.modules.i18n["default"];
} 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