Commit 364afb30 authored by nanahira's avatar nanahira

Revert "improve match permit"

This reverts commit 64647df3.
parent 64647df3
...@@ -2139,7 +2139,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2139,7 +2139,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
checksum += buf.readUInt8(i) checksum += buf.readUInt8(i)
(checksum & 0xFF) == 0 (checksum & 0xFF) == 0
create_room_with_action = (buffer, decrypted_buffer)-> create_room_with_action = (buffer, decrypted_buffer, match_permit)->
if client.closed if client.closed
return return
firstByte = buffer.readUInt8(1) firstByte = buffer.readUInt8(1)
...@@ -2207,16 +2207,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2207,16 +2207,9 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
ygopro.stoc_die(client, '${invalid_password_not_found}') ygopro.stoc_die(client, '${invalid_password_not_found}')
return return
when 4 when 4
if settings.modules.arena_mode.check_permit if match_permit and !match_permit.permit
match_permit = null ygopro.stoc_die(client, '${invalid_password_unauthorized}')
try return
match_permit = await axios.get settings.modules.arena_mode.check_permit,
responseType: 'json'
catch e
log.warn "match permit fail #{e.toString()}"
if match_permit and match_permit.permit == false
ygopro.stoc_die(client, '${invalid_password_unauthorized}')
return
room = await ROOM_find_or_create_by_name('M#' + info.pass.slice(8)) room = await ROOM_find_or_create_by_name('M#' + info.pass.slice(8))
if room if room
for player in room.get_playing_player() when player and player.name == client.name for player in room.get_playing_player() when player and player.name == client.name
...@@ -2246,7 +2239,6 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2246,7 +2239,6 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
return return
_async.auto({ _async.auto({
###
match_permit: (done) -> match_permit: (done) ->
if client.closed if client.closed
done() done()
...@@ -2272,7 +2264,6 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2272,7 +2264,6 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
done(null, null) done(null, null)
return return
return return
###
get_user: (done) -> get_user: (done) ->
if client.closed if client.closed
done() done()
...@@ -2331,7 +2322,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2331,7 +2322,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
return return
create_room_with_action(data.get_user.original, data.get_user.decrypted) create_room_with_action(data.get_user.original, data.get_user.decrypted, data.match_permit)
) )
......
...@@ -2832,8 +2832,8 @@ ...@@ -2832,8 +2832,8 @@
} }
return (checksum & 0xFF) === 0; return (checksum & 0xFF) === 0;
}; };
create_room_with_action = async function(buffer, decrypted_buffer) { create_room_with_action = async function(buffer, decrypted_buffer, match_permit) {
var action, e, firstByte, len2, m, match_permit, name, opt0, opt1, opt2, opt3, options, player, ref, ref1, room, room_title, title; var action, firstByte, len2, m, name, opt0, opt1, opt2, opt3, options, player, ref, ref1, room, room_title, title;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -2913,20 +2913,9 @@ ...@@ -2913,20 +2913,9 @@
} }
break; break;
case 4: case 4:
if (settings.modules.arena_mode.check_permit) { if (match_permit && !match_permit.permit) {
match_permit = null; ygopro.stoc_die(client, '${invalid_password_unauthorized}');
try { return;
match_permit = (await axios.get(settings.modules.arena_mode.check_permit, {
responseType: 'json'
}));
} catch (error1) {
e = error1;
log.warn(`match permit fail ${e.toString()}`);
}
if (match_permit && match_permit.permit === false) {
ygopro.stoc_die(client, '${invalid_password_unauthorized}');
return;
}
} }
room = (await ROOM_find_or_create_by_name('M#' + info.pass.slice(8))); room = (await ROOM_find_or_create_by_name('M#' + info.pass.slice(8)));
if (room) { if (room) {
...@@ -2968,33 +2957,36 @@ ...@@ -2968,33 +2957,36 @@
} }
}; };
_async.auto({ _async.auto({
/* match_permit: function(done) {
match_permit: (done) -> if (client.closed) {
if client.closed done();
done() return;
return }
if(!settings.modules.arena_mode.check_permit) if (!settings.modules.arena_mode.check_permit) {
done(null, null) done(null, null);
return return;
request }
request({
url: settings.modules.arena_mode.check_permit, url: settings.modules.arena_mode.check_permit,
json: true, json: true,
qs: qs: {
username: client.name, username: client.name,
password: info.pass, password: info.pass,
arena: settings.modules.arena_mode.mode arena: settings.modules.arena_mode.mode
, (error, response, body)-> }
if client.closed }, function(error, response, body) {
done(null, null) if (client.closed) {
return done(null, null);
if !error and body return;
done(null, body) }
else if (!error && body) {
log.warn("Match permit request error", error) done(null, body);
done(null, null) } else {
return log.warn("Match permit request error", error);
return done(null, null);
*/ }
});
},
get_user: function(done) { get_user: function(done) {
var decrypted_buffer, i, id, len2, m, ref, secret; var decrypted_buffer, i, id, len2, m, ref, secret;
if (client.closed) { if (client.closed) {
...@@ -3064,7 +3056,7 @@ ...@@ -3064,7 +3056,7 @@
ygopro.stoc_die(client, err); ygopro.stoc_die(client, err);
return; return;
} }
return create_room_with_action(data.get_user.original, data.get_user.decrypted); return create_room_with_action(data.get_user.original, data.get_user.decrypted, data.match_permit);
}); });
} else if (settings.modules.challonge.enabled) { } else if (settings.modules.challonge.enabled) {
if (info.version !== settings.version && settings.alternative_versions.includes(info.version)) { if (info.version !== settings.version && settings.alternative_versions.includes(info.version)) {
......
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