Commit 5d2a13ec authored by nanahira's avatar nanahira

fix version blocker

parent 364fd104
...@@ -2159,17 +2159,20 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)-> ...@@ -2159,17 +2159,20 @@ ygopro.ctos_follow 'JOIN_GAME', true, (buffer, info, client, server, datas)->
} }
CLIENT_kick(client) CLIENT_kick(client)
return false return false
client_key = CLIENT_get_authorize_key(client)
clean_blocker = () ->
aragami.del(aragami_classes.ClientVersionBlocker, client_key)
if info.version == settings.version if info.version == settings.version
await clean_blocker()
return true return true
if settings.alternative_versions.includes(info.version) if settings.alternative_versions.includes(info.version)
client_key = CLIENT_get_authorize_key(client)
if !await aragami.has(aragami_classes.ClientVersionBlocker, client_key) if !await aragami.has(aragami_classes.ClientVersionBlocker, client_key)
blocker_obj = new aragami_classes.ClientVersionBlocker() blocker_obj = new aragami_classes.ClientVersionBlocker()
blocker_obj.clientKey = client_key blocker_obj.clientKey = client_key
await aragami.set(blocker_obj) await aragami.set(blocker_obj)
return bad_version("${version_to_polyfill}") return bad_version("${version_to_polyfill}")
else else
await aragami.del(aragami_classes.ClientVersionBlocker, client_key) await clean_blocker()
return true return true
return bad_version(if info.version < settings.version then settings.modules.update else settings.modules.wait_update) return bad_version(if info.version < settings.version then settings.modules.update else settings.modules.wait_update)
polyfill_version = () -> polyfill_version = () ->
......
...@@ -2859,7 +2859,7 @@ ...@@ -2859,7 +2859,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, check_buffer_indentity, check_version, create_room_name, create_room_with_action, decrypted_buffer, duelLog, e, exactBan, i, id, index, j, l, len, len1, len2, len3, m, matching_match, matching_participant, n, polyfill_version, pre_room, recover_match, ref, ref1, replay, replay_id, replays, room, secret, struct, tournament_data, userData, userDataRes, userUrl; var available_logs, check_buffer_indentity, check_version, create_room_name, create_room_with_action, decrypted_buffer, duelLog, e, exactBan, i, id, index, j, l, len, len1, len2, len3, m, matching_match, matching_participant, n, polyfill_version, pre_room, recover_match, ref, ref1, replay, replay_id, replays, room, secret, struct, tournament_data, userData, userDataRes, userUrl;
check_version = async function() { check_version = async function() {
var bad_version, blocker_obj, client_key; var bad_version, blocker_obj, clean_blocker, client_key;
bad_version = function(msg) { bad_version = function(msg) {
ygopro.stoc_send_chat(client, msg, ygopro.constants.COLORS.RED); ygopro.stoc_send_chat(client, msg, ygopro.constants.COLORS.RED);
ygopro.stoc_send(client, 'ERROR_MSG', { ygopro.stoc_send(client, 'ERROR_MSG', {
...@@ -2869,18 +2869,22 @@ ...@@ -2869,18 +2869,22 @@
CLIENT_kick(client); CLIENT_kick(client);
return false; return false;
}; };
client_key = CLIENT_get_authorize_key(client);
clean_blocker = function() {
return aragami.del(aragami_classes.ClientVersionBlocker, client_key);
};
if (info.version === settings.version) { if (info.version === settings.version) {
await clean_blocker();
return true; return true;
} }
if (settings.alternative_versions.includes(info.version)) { if (settings.alternative_versions.includes(info.version)) {
client_key = CLIENT_get_authorize_key(client);
if (!(await aragami.has(aragami_classes.ClientVersionBlocker, client_key))) { if (!(await aragami.has(aragami_classes.ClientVersionBlocker, client_key))) {
blocker_obj = new aragami_classes.ClientVersionBlocker(); blocker_obj = new aragami_classes.ClientVersionBlocker();
blocker_obj.clientKey = client_key; blocker_obj.clientKey = client_key;
await aragami.set(blocker_obj); await aragami.set(blocker_obj);
return bad_version("${version_to_polyfill}"); return bad_version("${version_to_polyfill}");
} else { } else {
await aragami.del(aragami_classes.ClientVersionBlocker, client_key); await clean_blocker();
return true; return true;
} }
} }
......
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