Commit 0e08121b authored by nanahira's avatar nanahira

Merge branch 'mc'

parents 130815a4 64647df3
Pipeline #6490 passed with stages
in 76 minutes and 11 seconds
...@@ -2304,16 +2304,16 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2304,16 +2304,16 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
return return
if settings.modules.mycard.enabled and settings.modules.mycard.ban_get and !client.is_local if settings.modules.mycard.enabled and settings.modules.mycard.ban_get and !client.is_local
try axios.get settings.modules.mycard.ban_get,
banMCRequest = await axios.get settings.modules.mycard.ban_get,
paramsSerializer: qs.stringify paramsSerializer: qs.stringify
params: params:
user: client.name user: client.name
.then (banMCRequest) ->
if typeof(banMCRequest.data) == "object" if typeof(banMCRequest.data) == "object"
client.ban_mc = banMCRequest.data client.ban_mc = banMCRequest.data
else else
log.warn "ban get bad json", banMCRequest.data log.warn "ban get bad json", banMCRequest.data
catch e .catch (e) ->
log.warn 'ban get error', e.toString() log.warn 'ban get error', e.toString()
check_buffer_indentity = (buf)-> check_buffer_indentity = (buf)->
...@@ -2322,7 +2322,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2322,7 +2322,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, match_permit)-> create_room_with_action = (buffer, decrypted_buffer)->
if client.closed if client.closed
return return
firstByte = buffer.readUInt8(1) firstByte = buffer.readUInt8(1)
...@@ -2390,7 +2390,14 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2390,7 +2390,14 @@ 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 match_permit and !match_permit.permit if settings.modules.arena_mode.check_permit
match_permit = null
try
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}') ygopro.stoc_die(client, '${invalid_password_unauthorized}')
return 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))
...@@ -2422,6 +2429,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2422,6 +2429,7 @@ 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()
...@@ -2447,6 +2455,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2447,6 +2455,7 @@ 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()
...@@ -2505,7 +2514,7 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2505,7 +2514,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, data.match_permit) create_room_with_action(data.get_user.original, data.get_user.decrypted)
) )
......
...@@ -2965,7 +2965,7 @@ ...@@ -2965,7 +2965,7 @@
}); });
ygopro.ctos_follow('JOIN_GAME', true, async function(buffer, info, client, server, datas) { ygopro.ctos_follow('JOIN_GAME', true, async function(buffer, info, client, server, datas) {
var available_logs, banMCRequest, check_buffer_indentity, create_room_with_action, duelLog, e, exactBan, index, j, l, len, len1, pre_room, recover_match, replay, replay_id, replays, room, struct; var available_logs, check_buffer_indentity, create_room_with_action, duelLog, exactBan, index, j, l, len, len1, pre_room, recover_match, replay, replay_id, replays, room, struct;
//log.info info //log.info info
info.pass = info.pass.trim(); info.pass = info.pass.trim();
client.pass = info.pass; client.pass = info.pass;
...@@ -3046,22 +3046,20 @@ ...@@ -3046,22 +3046,20 @@
return; return;
} }
if (settings.modules.mycard.enabled && settings.modules.mycard.ban_get && !client.is_local) { if (settings.modules.mycard.enabled && settings.modules.mycard.ban_get && !client.is_local) {
try { axios.get(settings.modules.mycard.ban_get, {
banMCRequest = (await axios.get(settings.modules.mycard.ban_get, {
paramsSerializer: qs.stringify, paramsSerializer: qs.stringify,
params: { params: {
user: client.name user: client.name
} }
})); }).then(function(banMCRequest) {
if (typeof banMCRequest.data === "object") { if (typeof banMCRequest.data === "object") {
client.ban_mc = banMCRequest.data; return client.ban_mc = banMCRequest.data;
} else { } else {
log.warn("ban get bad json", banMCRequest.data); return log.warn("ban get bad json", banMCRequest.data);
}
} catch (error1) {
e = error1;
log.warn('ban get error', e.toString());
} }
}).catch(function(e) {
return log.warn('ban get error', e.toString());
});
} }
check_buffer_indentity = function(buf) { check_buffer_indentity = function(buf) {
var checksum, i, m, ref; var checksum, i, m, ref;
...@@ -3071,8 +3069,8 @@ ...@@ -3071,8 +3069,8 @@
} }
return (checksum & 0xFF) === 0; return (checksum & 0xFF) === 0;
}; };
create_room_with_action = async function(buffer, decrypted_buffer, match_permit) { create_room_with_action = async function(buffer, decrypted_buffer) {
var action, firstByte, len2, m, name, opt0, opt1, opt2, opt3, options, player, ref, ref1, room, room_title, title; var action, e, firstByte, len2, m, match_permit, name, opt0, opt1, opt2, opt3, options, player, ref, ref1, room, room_title, title;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -3152,10 +3150,21 @@ ...@@ -3152,10 +3150,21 @@
} }
break; break;
case 4: case 4:
if (match_permit && !match_permit.permit) { if (settings.modules.arena_mode.check_permit) {
match_permit = null;
try {
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}'); ygopro.stoc_die(client, '${invalid_password_unauthorized}');
return; 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) {
ref1 = room.get_playing_player(); ref1 = room.get_playing_player();
...@@ -3196,36 +3205,33 @@ ...@@ -3196,36 +3205,33 @@
} }
}; };
_async.auto({ _async.auto({
match_permit: function(done) { /*
if (client.closed) { match_permit: (done) ->
done(); if client.closed
return; done()
} 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)->
}, function(error, response, body) { if client.closed
if (client.closed) { done(null, null)
done(null, null); return
return; if !error and body
} done(null, body)
if (!error && body) { else
done(null, body); log.warn("Match permit request error", error)
} else { done(null, null)
log.warn("Match permit request error", error); return
done(null, null); return
} */
});
},
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) {
...@@ -3295,7 +3301,7 @@ ...@@ -3295,7 +3301,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, data.match_permit); return create_room_with_action(data.get_user.original, data.get_user.decrypted);
}); });
} 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