Commit 386ddaeb authored by nanahira's avatar nanahira

Revert "compat pre release cards with koishipro official code data"

This reverts commit ee285a5a.
parent daa781c4
...@@ -80,11 +80,6 @@ ...@@ -80,11 +80,6 @@
"enabled": false, "enabled": false,
"generate_count": 500 "generate_count": 500
}, },
"pre_release_compat": {
"enabled": false,
"official_database": "./ygopro/cards.cdb",
"pre_release_database": "./../ygopro-pre-data/expansions/pre-release.cdb"
},
"random_duel": { "random_duel": {
"enabled": true, "enabled": true,
"no_rematch_check": false, "no_rematch_check": false,
......
...@@ -186,7 +186,6 @@ ...@@ -186,7 +186,6 @@
"vip_set_victory": "Your victory word have been set.", "vip_set_victory": "Your victory word have been set.",
"vip_password_changed": "Password changed.", "vip_password_changed": "Password changed.",
"vip_player_name_too_long": "Your username or password is too long to log in. Please change your username and try again.", "vip_player_name_too_long": "Your username or password is too long to log in. Please change your username and try again.",
"pre_release_compat_hint": "It seems like you're a duelist with pre-release cards. The pre-release compat mode is turned on.",
"replay_hint_part1": "Sending the replay of the duel number ", "replay_hint_part1": "Sending the replay of the duel number ",
"replay_hint_part2": ".", "replay_hint_part2": ".",
"invalid_side_rule": "Illegal cards are contained in your side deck.", "invalid_side_rule": "Illegal cards are contained in your side deck.",
...@@ -528,7 +527,6 @@ ...@@ -528,7 +527,6 @@
"vip_set_victory": "已设置胜利台词。", "vip_set_victory": "已设置胜利台词。",
"vip_password_changed": "密码修改成功。", "vip_password_changed": "密码修改成功。",
"vip_player_name_too_long": "你的用户名或设置的密码太长,使用此用户名可能会无法登陆。请更换用户名重试。", "vip_player_name_too_long": "你的用户名或设置的密码太长,使用此用户名可能会无法登陆。请更换用户名重试。",
"pre_release_compat_hint": "看起来你是使用先行卡数据的用户,已开启先行卡兼容模式。",
"replay_hint_part1": "正在发送第", "replay_hint_part1": "正在发送第",
"replay_hint_part2": "局决斗的录像。", "replay_hint_part2": "局决斗的录像。",
"invalid_side_rule": "副卡组中包含不允许换入副卡组的卡。", "invalid_side_rule": "副卡组中包含不允许换入副卡组的卡。",
......
...@@ -44,7 +44,6 @@ import_datas = global.import_datas = [ ...@@ -44,7 +44,6 @@ import_datas = global.import_datas = [
"abuse_count", "abuse_count",
"ban_mc", "ban_mc",
"vip", "vip",
"is_using_pre_release",
"vpass", "vpass",
"rag", "rag",
"rid", "rid",
...@@ -403,9 +402,6 @@ if settings.modules.windbot.enabled ...@@ -403,9 +402,6 @@ if settings.modules.windbot.enabled
if settings.modules.heartbeat_detection.enabled if settings.modules.heartbeat_detection.enabled
long_resolve_cards = global.long_resolve_cards = loadJSON('./data/long_resolve_cards.json') long_resolve_cards = global.long_resolve_cards = loadJSON('./data/long_resolve_cards.json')
if settings.modules.pre_release_compat.enabled
sqlite3 = require('sqlite3').verbose()
# 组件 # 组件
ygopro = global.ygopro = require './ygopro.js' ygopro = global.ygopro = require './ygopro.js'
roomlist = global.roomlist = require './roomlist.js' if settings.modules.http.websocket_roomlist roomlist = global.roomlist = require './roomlist.js' if settings.modules.http.websocket_roomlist
...@@ -1102,22 +1098,6 @@ SOCKET_flush_data = global.SOCKET_flush_data = (sk, datas) -> ...@@ -1102,22 +1098,6 @@ SOCKET_flush_data = global.SOCKET_flush_data = (sk, datas) ->
datas.splice(0, datas.length) datas.splice(0, datas.length)
return true return true
replace_buffer = global.replace_buffer = (buffer, list, start_pos) ->
found = 0
len = buffer.length
if len < 4 + start_pos
return 0
for i in [start_pos...len - 3]
code = buffer.readInt32LE(i)
if list[code]
code = list[code]
buffer.writeInt32LE(code, i)
found++
i += 3
if i >= len - 4
break
return found
class Room class Room
constructor: (name, @hostinfo) -> constructor: (name, @hostinfo) ->
@name = name @name = name
...@@ -1142,44 +1122,6 @@ class Room ...@@ -1142,44 +1122,6 @@ class Room
@replays = [] @replays = []
ROOM_all.push this ROOM_all.push this
if settings.modules.pre_release_compat.enabled
list_official_to_pre = {}
list_pre_to_official = {}
@list_official_to_pre = list_official_to_pre
@list_pre_to_official = list_pre_to_official
temp_list = {}
try
official_database = new sqlite3.Database(settings.modules.pre_release_compat.official_database)
pre_release_database = new sqlite3.Database(settings.modules.pre_release_compat.pre_release_database)
pre_release_database.each("select id,name from texts", (err, result) ->
if err
log.warn("Error loading pre-release database.", err)
else
temp_list[result.name] = result.id
return
, (err) ->
if err
log.warn("Error loaded pre-release database.", err)
else
official_database.each("select id,name from texts", (err, result) ->
if err
log.warn("Error loading official database.", err)
else if temp_list[result.name] and temp_list[result.name] != result.id
official_code = result.id
pre_release_code = temp_list[result.name]
list_official_to_pre[official_code] = pre_release_code
list_pre_to_official[pre_release_code] = official_code
return
, (err) ->
if err
log.warn("Error loaded official database.", err)
return
)
return
)
catch error
log.warn("Error loading databases", error)
@hostinfo ||= JSON.parse(JSON.stringify(settings.hostinfo)) @hostinfo ||= JSON.parse(JSON.stringify(settings.hostinfo))
delete @hostinfo.comment delete @hostinfo.comment
if lflists.length if lflists.length
...@@ -1965,8 +1907,6 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)-> ...@@ -1965,8 +1907,6 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)->
client.name = name client.name = name
client.vpass = vpass client.vpass = vpass
client.name_vpass = if vpass then name + "$" + vpass else name client.name_vpass = if vpass then name + "$" + vpass else name
if settings.modules.pre_release_compat.enabled
client.is_using_pre_release = client.name_vpass == "COMPAT"
#console.log client.name, client.vpass #console.log client.name, client.vpass
if settings.modules.vip.enabled and CLIENT_check_vip(client) if settings.modules.vip.enabled and CLIENT_check_vip(client)
client.vip = true client.vip = true
...@@ -2621,10 +2561,7 @@ if settings.modules.dialogues.get_custom ...@@ -2621,10 +2561,7 @@ if settings.modules.dialogues.get_custom
ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
return false unless room return unless room and !client.reconnecting
if settings.modules.pre_release_compat.enabled and client.is_using_pre_release
replace_buffer(buffer, room.list_official_to_pre, 1)
return false if client.reconnecting
msg = buffer.readInt8(0) msg = buffer.readInt8(0)
if settings.modules.retry_handle.enabled if settings.modules.retry_handle.enabled
if ygopro.constants.MSG[msg] == 'RETRY' if ygopro.constants.MSG[msg] == 'RETRY'
...@@ -3529,7 +3466,7 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)-> ...@@ -3529,7 +3466,7 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
return true return true
if settings.modules.side_restrict.enabled and room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN if settings.modules.side_restrict.enabled and room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN
for code in settings.modules.side_restrict.restrict_cards for code in settings.modules.side_restrict.restrict_cards
if _.indexOf(buff_side, code) > -1 or (settings.modules.pre_release_compat.enabled and _.indexOf(buff_side, room.list_pre_to_official[code]) > -1) if _.indexOf(buff_side, code) > -1
ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED)
ygopro.stoc_send client, 'ERROR_MSG', { ygopro.stoc_send client, 'ERROR_MSG', {
msg: 3 msg: 3
...@@ -3576,49 +3513,14 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)-> ...@@ -3576,49 +3513,14 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
else else
#log.info("bad deck: " + client.name + " / " + buff_main + " / " + buff_side) #log.info("bad deck: " + client.name + " / " + buff_main + " / " + buff_side)
ygopro.stoc_send_chat(client, "${deck_incorrect_part1} #{found_deck} ${deck_incorrect_part2}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat(client, "${deck_incorrect_part1} #{found_deck} ${deck_incorrect_part2}", ygopro.constants.COLORS.RED)
return false
else else
#log.info("player deck not found: " + client.name) #log.info("player deck not found: " + client.name)
ygopro.stoc_send_chat(client, "#{client.name}${deck_not_found}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat(client, "#{client.name}${deck_not_found}", ygopro.constants.COLORS.RED)
return false return false
if settings.modules.pre_release_compat.enabled
found = false
buff_main_new = []
buff_side_new = []
for code in buff_main
code_ = code
if room.list_pre_to_official[code]
code_ = room.list_pre_to_official[code]
found = true
buff_main_new.push(code_)
for code in buff_side
code_ = code
if room.list_pre_to_official[code]
code_ = room.list_pre_to_official[code]
found = true
buff_side_new.push(code_)
if found
compat_deckbuf = buff_main_new.concat(buff_side_new)
struct.set("mainc", buff_main_new.length)
struct.set("sidec", buff_side_new.length)
struct.set("deckbuf", compat_deckbuf)
buffer = struct.buffer
client.main = buff_main_new
client.side = buff_side_new
if room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN
client.is_using_pre_release = found or client.vpass == "COMPAT"
if client.is_using_pre_release
ygopro.stoc_send_chat(client, "${pre_release_compat_hint}", ygopro.constants.COLORS.BABYBLUE)
return false
ygopro.ctos_follow 'RESPONSE', false, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'RESPONSE', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
return unless room return unless room and (room.random_type or room.arena)
if settings.modules.pre_release_compat.enabled and client.is_using_pre_release
replace_buffer(buffer, room.list_pre_to_official, 0)
return unless room.random_type or room.arena
room.last_active_time = moment() room.last_active_time = moment()
return return
......
// Generated by CoffeeScript 1.12.7 // Generated by CoffeeScript 1.12.7
(function() { (function() {
var CLIENT_check_vip, CLIENT_get_absolute_pos, CLIENT_get_authorize_key, CLIENT_get_kick_reconnect_target, CLIENT_get_partner, CLIENT_heartbeat_register, CLIENT_heartbeat_unregister, CLIENT_import_data, CLIENT_is_able_to_kick_reconnect, CLIENT_is_able_to_reconnect, CLIENT_is_banned_by_mc, CLIENT_is_player, CLIENT_kick, CLIENT_kick_reconnect, CLIENT_pre_reconnect, CLIENT_reconnect, CLIENT_reconnect_register, CLIENT_reconnect_unregister, CLIENT_send_pre_reconnect_info, CLIENT_send_reconnect_info, CLIENT_send_replays, CLIENT_send_vip_status, CLIENT_use_cdkey, Cloud_replay_ids, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_clear_disconnect, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_pid, ROOM_find_by_port, ROOM_find_by_title, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_player_flee, ROOM_player_get_score, ROOM_player_lose, ROOM_player_win, ROOM_players_banned, ROOM_players_oppentlist, ROOM_players_scores, ROOM_unwelcome, ROOM_validate, Room, SERVER_clear_disconnect, SOCKET_flush_data, VIP_generate_cdkeys, _, addCallback, auth, badwords, ban_user, bunyan, challonge, challonge_cache, challonge_module_name, challonge_queue_callbacks, chat_color, concat_name, config, cppversion, crypto, date, default_config, default_data, dialogues, disconnect_list, dns, duel_log, e, exec, execFile, fs, geoip, get_callback, get_memory_usage, http, http_server, https, https_server, import_datas, imported, is_requesting, j, k, l, len1, len2, len3, lflists, list, loadJSON, load_dialogues, load_dialogues_custom, load_tips, load_tips_zh, load_words, log, long_resolve_cards, m, memory_usage, merge, moment, net, oldbadwords, oldconfig, olddialogues, oldduellog, oldtips, oldwords, options, os, path, pgClient, pg_client, pg_query, plugin_filename, plugin_list, plugin_path, real_windbot_server_ip, rebooted, redis, redisdb, ref, ref1, ref2, refresh_challonge_cache, release_disconnect, replace_buffer, report_to_big_brother, request, requestListener, roomlist, setting_change, setting_save, settings, spawn, spawnSync, spawn_windbot, sqlite3, tips, url, users_cache, v, vip_info, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, words, ygopro, zlib; var CLIENT_check_vip, CLIENT_get_absolute_pos, CLIENT_get_authorize_key, CLIENT_get_kick_reconnect_target, CLIENT_get_partner, CLIENT_heartbeat_register, CLIENT_heartbeat_unregister, CLIENT_import_data, CLIENT_is_able_to_kick_reconnect, CLIENT_is_able_to_reconnect, CLIENT_is_banned_by_mc, CLIENT_is_player, CLIENT_kick, CLIENT_kick_reconnect, CLIENT_pre_reconnect, CLIENT_reconnect, CLIENT_reconnect_register, CLIENT_reconnect_unregister, CLIENT_send_pre_reconnect_info, CLIENT_send_reconnect_info, CLIENT_send_replays, CLIENT_send_vip_status, CLIENT_use_cdkey, Cloud_replay_ids, ROOM_all, ROOM_bad_ip, ROOM_ban_player, ROOM_clear_disconnect, ROOM_connected_ip, ROOM_find_by_name, ROOM_find_by_pid, ROOM_find_by_port, ROOM_find_by_title, ROOM_find_or_create_ai, ROOM_find_or_create_by_name, ROOM_find_or_create_random, ROOM_player_flee, ROOM_player_get_score, ROOM_player_lose, ROOM_player_win, ROOM_players_banned, ROOM_players_oppentlist, ROOM_players_scores, ROOM_unwelcome, ROOM_validate, Room, SERVER_clear_disconnect, SOCKET_flush_data, VIP_generate_cdkeys, _, addCallback, auth, badwords, ban_user, bunyan, challonge, challonge_cache, challonge_module_name, challonge_queue_callbacks, chat_color, concat_name, config, cppversion, crypto, date, default_config, default_data, dialogues, disconnect_list, dns, duel_log, e, exec, execFile, fs, geoip, get_callback, get_memory_usage, http, http_server, https, https_server, import_datas, imported, is_requesting, j, k, l, len, len1, len2, lflists, list, loadJSON, load_dialogues, load_dialogues_custom, load_tips, load_tips_zh, load_words, log, long_resolve_cards, m, memory_usage, merge, moment, net, oldbadwords, oldconfig, olddialogues, oldduellog, oldtips, oldwords, options, os, path, pgClient, pg_client, pg_query, plugin_filename, plugin_list, plugin_path, real_windbot_server_ip, rebooted, redis, redisdb, ref, ref1, ref2, refresh_challonge_cache, release_disconnect, report_to_big_brother, request, requestListener, roomlist, setting_change, setting_save, settings, spawn, spawnSync, spawn_windbot, tips, url, users_cache, v, vip_info, wait_room_start, wait_room_start_arena, windbot_looplimit, windbot_process, windbots, words, ygopro, zlib;
net = require('net'); net = require('net');
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
} }
}); });
import_datas = global.import_datas = ["abuse_count", "ban_mc", "vip", "is_using_pre_release", "vpass", "rag", "rid", "is_post_watcher", "retry_count", "name", "pass", "name_vpass", "is_first", "lp", "card_count", "is_host", "pos", "surrend_confirm", "kick_count", "deck_saved", "main", "side", "side_interval", "side_tcount", "selected_preduel", "last_game_msg", "last_game_msg_title", "last_hint_msg", "start_deckbuf", "challonge_info", "ready_trap", "join_time", "arena_quit_free", "replays_sent"]; import_datas = global.import_datas = ["abuse_count", "ban_mc", "vip", "vpass", "rag", "rid", "is_post_watcher", "retry_count", "name", "pass", "name_vpass", "is_first", "lp", "card_count", "is_host", "pos", "surrend_confirm", "kick_count", "deck_saved", "main", "side", "side_interval", "side_tcount", "selected_preduel", "last_game_msg", "last_game_msg_title", "last_hint_msg", "start_deckbuf", "challonge_info", "ready_trap", "join_time", "arena_quit_free", "replays_sent"];
merge = require('deepmerge'); merge = require('deepmerge');
...@@ -176,7 +176,7 @@ ...@@ -176,7 +176,7 @@
}; };
CLIENT_use_cdkey = global.CLIENT_use_cdkey = function(client, pkey) { CLIENT_use_cdkey = global.CLIENT_use_cdkey = function(client, pkey) {
var current_date, found_type, index, j, key, keys, len1, new_vip, ref, type; var current_date, found_type, index, j, key, keys, len, new_vip, ref, type;
if (!(settings.modules.vip.enabled && pkey)) { if (!(settings.modules.vip.enabled && pkey)) {
return 0; return 0;
} }
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
ref = vip_info.cdkeys; ref = vip_info.cdkeys;
for (type in ref) { for (type in ref) {
keys = ref[type]; keys = ref[type];
for (j = 0, len1 = keys.length; j < len1; j++) { for (j = 0, len = keys.length; j < len; j++) {
key = keys[j]; key = keys[j];
if (!(pkey === key || pkey === (type + "D" + settings.port + ":" + key))) { if (!(pkey === key || pkey === (type + "D" + settings.port + ":" + key))) {
continue; continue;
...@@ -440,7 +440,7 @@ ...@@ -440,7 +440,7 @@
try { try {
ref = fs.readFileSync('ygopro/expansions/lflist.conf', 'utf8').match(/!.*/g); ref = fs.readFileSync('ygopro/expansions/lflist.conf', 'utf8').match(/!.*/g);
for (j = 0, len1 = ref.length; j < len1; j++) { for (j = 0, len = ref.length; j < len; j++) {
list = ref[j]; list = ref[j];
date = list.match(/!([\d\.]+)/); date = list.match(/!([\d\.]+)/);
if (!date) { if (!date) {
...@@ -457,7 +457,7 @@ ...@@ -457,7 +457,7 @@
try { try {
ref1 = fs.readFileSync('ygopro/lflist.conf', 'utf8').match(/!.*/g); ref1 = fs.readFileSync('ygopro/lflist.conf', 'utf8').match(/!.*/g);
for (l = 0, len2 = ref1.length; l < len2; l++) { for (l = 0, len1 = ref1.length; l < len1; l++) {
list = ref1[l]; list = ref1[l];
date = list.match(/!([\d\.]+)/); date = list.match(/!([\d\.]+)/);
if (!date) { if (!date) {
...@@ -498,10 +498,6 @@ ...@@ -498,10 +498,6 @@
long_resolve_cards = global.long_resolve_cards = loadJSON('./data/long_resolve_cards.json'); long_resolve_cards = global.long_resolve_cards = loadJSON('./data/long_resolve_cards.json');
} }
if (settings.modules.pre_release_compat.enabled) {
sqlite3 = require('sqlite3').verbose();
}
ygopro = global.ygopro = require('./ygopro.js'); ygopro = global.ygopro = require('./ygopro.js');
if (settings.modules.http.websocket_roomlist) { if (settings.modules.http.websocket_roomlist) {
...@@ -688,15 +684,15 @@ ...@@ -688,15 +684,15 @@
ROOM_bad_ip = global.ROOM_bad_ip = {}; ROOM_bad_ip = global.ROOM_bad_ip = {};
ban_user = global.ban_user = function(name) { ban_user = global.ban_user = function(name) {
var bad_ip, len3, len4, m, n, player, ref3, room; var bad_ip, len2, len3, m, n, player, ref3, room;
settings.ban.banned_user.push(name); settings.ban.banned_user.push(name);
setting_save(settings); setting_save(settings);
bad_ip = 0; bad_ip = 0;
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (room && room.established) { if (room && room.established) {
ref3 = room.players; ref3 = room.players;
for (n = 0, len4 = ref3.length; n < len4; n++) { for (n = 0, len3 = ref3.length; n < len3; n++) {
player = ref3[n]; player = ref3[n];
if (player && (player.name === name || player.ip === bad_ip)) { if (player && (player.name === name || player.ip === bad_ip)) {
bad_ip = player.ip; bad_ip = player.ip;
...@@ -988,12 +984,12 @@ ...@@ -988,12 +984,12 @@
}; };
ROOM_unwelcome = global.ROOM_unwelcome = function(room, bad_player, reason) { ROOM_unwelcome = global.ROOM_unwelcome = function(room, bad_player, reason) {
var len3, m, player, ref3; var len2, m, player, ref3;
if (!room) { if (!room) {
return; return;
} }
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player && player === bad_player) { if (player && player === bad_player) {
ygopro.stoc_send_chat(player, "${unwelcome_warn_part1}" + reason + "${unwelcome_warn_part2}", ygopro.constants.COLORS.RED); ygopro.stoc_send_chat(player, "${unwelcome_warn_part1}" + reason + "${unwelcome_warn_part2}", ygopro.constants.COLORS.RED);
...@@ -1087,9 +1083,9 @@ ...@@ -1087,9 +1083,9 @@
}; };
CLIENT_import_data = global.CLIENT_import_data = function(client, old_client, room) { CLIENT_import_data = global.CLIENT_import_data = function(client, old_client, room) {
var index, key, len3, len4, m, n, player, ref3; var index, key, len2, len3, m, n, player, ref3;
ref3 = room.players; ref3 = room.players;
for (index = m = 0, len3 = ref3.length; m < len3; index = ++m) { for (index = m = 0, len2 = ref3.length; m < len2; index = ++m) {
player = ref3[index]; player = ref3[index];
if (player === old_client) { if (player === old_client) {
room.players[index] = client; room.players[index] = client;
...@@ -1106,7 +1102,7 @@ ...@@ -1106,7 +1102,7 @@
if (room.selecting_tp === old_client) { if (room.selecting_tp === old_client) {
room.selecting_tp = client; room.selecting_tp = client;
} }
for (n = 0, len4 = import_datas.length; n < len4; n++) { for (n = 0, len3 = import_datas.length; n < len3; n++) {
key = import_datas[n]; key = import_datas[n];
client[key] = old_client[key]; client[key] = old_client[key];
} }
...@@ -1144,10 +1140,10 @@ ...@@ -1144,10 +1140,10 @@
}; };
CLIENT_is_player = global.CLIENT_is_player = function(client, room) { CLIENT_is_player = global.CLIENT_is_player = function(client, room) {
var is_player, len3, m, player, ref3; var is_player, len2, m, player, ref3;
is_player = false; is_player = false;
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (client === player) { if (client === player) {
is_player = true; is_player = true;
...@@ -1181,12 +1177,12 @@ ...@@ -1181,12 +1177,12 @@
}; };
CLIENT_get_kick_reconnect_target = global.CLIENT_get_kick_reconnect_target = function(client, deckbuf) { CLIENT_get_kick_reconnect_target = global.CLIENT_get_kick_reconnect_target = function(client, deckbuf) {
var len3, len4, m, n, player, ref3, room; var len2, len3, m, n, player, ref3, room;
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && !room.windbot) { if (room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && !room.windbot) {
ref3 = room.get_playing_player(); ref3 = room.get_playing_player();
for (n = 0, len4 = ref3.length; n < len4; n++) { for (n = 0, len3 = ref3.length; n < len3; n++) {
player = ref3[n]; player = ref3[n];
if (!player.closed && player.name === client.name && (settings.modules.challonge.enabled || 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))) { if (!player.closed && player.name === client.name && (settings.modules.challonge.enabled || 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; return player;
...@@ -1208,7 +1204,7 @@ ...@@ -1208,7 +1204,7 @@
}; };
CLIENT_send_pre_reconnect_info = global.CLIENT_send_pre_reconnect_info = function(client, room, old_client) { CLIENT_send_pre_reconnect_info = global.CLIENT_send_pre_reconnect_info = function(client, room, old_client) {
var len3, m, player, ref3, req_pos; var len2, m, player, ref3, req_pos;
ygopro.stoc_send_chat(client, "${pre_reconnecting_to_room}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${pre_reconnecting_to_room}", ygopro.constants.COLORS.BABYBLUE);
ygopro.stoc_send(client, 'JOIN_GAME', room.join_game_buffer); ygopro.stoc_send(client, 'JOIN_GAME', room.join_game_buffer);
req_pos = old_client.pos; req_pos = old_client.pos;
...@@ -1219,7 +1215,7 @@ ...@@ -1219,7 +1215,7 @@
type: req_pos type: req_pos
}); });
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
ygopro.stoc_send(client, 'HS_PLAYER_ENTER', { ygopro.stoc_send(client, 'HS_PLAYER_ENTER', {
name: player.name, name: player.name,
...@@ -1405,14 +1401,14 @@ ...@@ -1405,14 +1401,14 @@
}; };
CLIENT_send_replays = global.CLIENT_send_replays = function(client, room) { CLIENT_send_replays = global.CLIENT_send_replays = function(client, room) {
var buffer, i, len3, m, ref3; var buffer, i, len2, m, ref3;
if (!(settings.modules.replay_delay && !(settings.modules.tournament_mode.enabled && settings.modules.tournament_mode.replay_safe && settings.modules.tournament_mode.block_replay_to_player) && room.replays.length && room.hostinfo.mode === 1 && !client.replays_sent && !client.closed)) { if (!(settings.modules.replay_delay && !(settings.modules.tournament_mode.enabled && settings.modules.tournament_mode.replay_safe && settings.modules.tournament_mode.block_replay_to_player) && room.replays.length && room.hostinfo.mode === 1 && !client.replays_sent && !client.closed)) {
return false; return false;
} }
client.replays_sent = true; client.replays_sent = true;
i = 0; i = 0;
ref3 = room.replays; ref3 = room.replays;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
buffer = ref3[m]; buffer = ref3[m];
++i; ++i;
if (buffer) { if (buffer) {
...@@ -1424,11 +1420,11 @@ ...@@ -1424,11 +1420,11 @@
}; };
SOCKET_flush_data = global.SOCKET_flush_data = function(sk, datas) { SOCKET_flush_data = global.SOCKET_flush_data = function(sk, datas) {
var buffer, len3, m; var buffer, len2, m;
if (!sk || sk.closed) { if (!sk || sk.closed) {
return false; return false;
} }
for (m = 0, len3 = datas.length; m < len3; m++) { for (m = 0, len2 = datas.length; m < len2; m++) {
buffer = datas[m]; buffer = datas[m];
sk.write(buffer); sk.write(buffer);
} }
...@@ -1436,31 +1432,9 @@ ...@@ -1436,31 +1432,9 @@
return true; return true;
}; };
replace_buffer = global.replace_buffer = function(buffer, list, start_pos) {
var code, found, i, len, m, ref3, ref4;
found = 0;
len = buffer.length;
if (len < 4 + start_pos) {
return 0;
}
for (i = m = ref3 = start_pos, ref4 = len - 3; ref3 <= ref4 ? m < ref4 : m > ref4; i = ref3 <= ref4 ? ++m : --m) {
code = buffer.readInt32LE(i);
if (list[code]) {
code = list[code];
buffer.writeInt32LE(code, i);
found++;
i += 3;
if (i >= len - 4) {
break;
}
}
}
return found;
};
Room = (function() { Room = (function() {
function Room(name, hostinfo) { function Room(name, hostinfo) {
var death_time, draw_count, duel_rule, error, lflist, list_official_to_pre, list_pre_to_official, official_database, param, pre_release_database, rule, start_hand, start_lp, temp_list, time_limit; var death_time, draw_count, duel_rule, lflist, param, rule, start_hand, start_lp, time_limit;
this.hostinfo = hostinfo; this.hostinfo = hostinfo;
this.name = name; this.name = name;
this.players = []; this.players = [];
...@@ -1481,47 +1455,6 @@ ...@@ -1481,47 +1455,6 @@
this.duel_stage = ygopro.constants.DUEL_STAGE.BEGIN; this.duel_stage = ygopro.constants.DUEL_STAGE.BEGIN;
this.replays = []; this.replays = [];
ROOM_all.push(this); ROOM_all.push(this);
if (settings.modules.pre_release_compat.enabled) {
list_official_to_pre = {};
list_pre_to_official = {};
this.list_official_to_pre = list_official_to_pre;
this.list_pre_to_official = list_pre_to_official;
temp_list = {};
try {
official_database = new sqlite3.Database(settings.modules.pre_release_compat.official_database);
pre_release_database = new sqlite3.Database(settings.modules.pre_release_compat.pre_release_database);
pre_release_database.each("select id,name from texts", function(err, result) {
if (err) {
log.warn("Error loading pre-release database.", err);
} else {
temp_list[result.name] = result.id;
}
}, function(err) {
if (err) {
log.warn("Error loaded pre-release database.", err);
} else {
official_database.each("select id,name from texts", function(err, result) {
var official_code, pre_release_code;
if (err) {
log.warn("Error loading official database.", err);
} else if (temp_list[result.name] && temp_list[result.name] !== result.id) {
official_code = result.id;
pre_release_code = temp_list[result.name];
list_official_to_pre[official_code] = pre_release_code;
list_pre_to_official[pre_release_code] = official_code;
}
}, function(err) {
if (err) {
log.warn("Error loaded official database.", err);
}
});
}
});
} catch (error1) {
error = error1;
log.warn("Error loading databases", error);
}
}
this.hostinfo || (this.hostinfo = JSON.parse(JSON.stringify(settings.hostinfo))); this.hostinfo || (this.hostinfo = JSON.parse(JSON.stringify(settings.hostinfo)));
delete this.hostinfo.comment; delete this.hostinfo.comment;
if (lflists.length) { if (lflists.length) {
...@@ -1690,9 +1623,9 @@ ...@@ -1690,9 +1623,9 @@
_this.port = parseInt(data); _this.port = parseInt(data);
_.each(_this.players, function(player) { _.each(_this.players, function(player) {
player.server.connect(_this.port, '127.0.0.1', function() { player.server.connect(_this.port, '127.0.0.1', function() {
var buffer, len3, m, ref3; var buffer, len2, m, ref3;
ref3 = player.pre_establish_buffers; ref3 = player.pre_establish_buffers;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
buffer = ref3[m]; buffer = ref3[m];
player.server.write(buffer); player.server.write(buffer);
} }
...@@ -1727,7 +1660,7 @@ ...@@ -1727,7 +1660,7 @@
} }
Room.prototype["delete"] = function() { Room.prototype["delete"] = function() {
var end_time, formatted_replays, index, len3, log_rep_id, m, name, player_ips, player_names, recorder_buffer, ref3, ref4, repbuf, replay_id, room_name, score, score_array, score_form; var end_time, formatted_replays, index, len2, log_rep_id, m, name, player_ips, player_names, recorder_buffer, ref3, ref4, repbuf, replay_id, room_name, score, score_array, score_form;
if (this.deleted) { if (this.deleted) {
return; return;
} }
...@@ -1788,7 +1721,7 @@ ...@@ -1788,7 +1721,7 @@
} }
formatted_replays = []; formatted_replays = [];
ref4 = this.replays; ref4 = this.replays;
for (m = 0, len3 = ref4.length; m < len3; m++) { for (m = 0, len2 = ref4.length; m < len2; m++) {
repbuf = ref4[m]; repbuf = ref4[m];
if (repbuf) { if (repbuf) {
formatted_replays.push(repbuf.toString("base64")); formatted_replays.push(repbuf.toString("base64"));
...@@ -1913,13 +1846,13 @@ ...@@ -1913,13 +1846,13 @@
}; };
Room.prototype.get_disconnected_count = function() { Room.prototype.get_disconnected_count = function() {
var found, len3, m, player, ref3; var found, len2, m, player, ref3;
if (!settings.modules.reconnect.enabled) { if (!settings.modules.reconnect.enabled) {
return 0; return 0;
} }
found = 0; found = 0;
ref3 = this.get_playing_player(); ref3 = this.get_playing_player();
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player.closed) { if (player.closed) {
found++; found++;
...@@ -1963,17 +1896,17 @@ ...@@ -1963,17 +1896,17 @@
}; };
Room.prototype.send_replays = function() { Room.prototype.send_replays = function() {
var len3, len4, m, n, player, ref3, ref4; var len2, len3, m, n, player, ref3, ref4;
if (!(settings.modules.replay_delay && this.replays.length && this.hostinfo.mode === 1)) { if (!(settings.modules.replay_delay && this.replays.length && this.hostinfo.mode === 1)) {
return false; return false;
} }
ref3 = this.players; ref3 = this.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
CLIENT_send_replays(player, this); CLIENT_send_replays(player, this);
} }
ref4 = this.watchers; ref4 = this.watchers;
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
player = ref4[n]; player = ref4[n];
CLIENT_send_replays(player, this); CLIENT_send_replays(player, this);
} }
...@@ -2013,9 +1946,9 @@ ...@@ -2013,9 +1946,9 @@
roomlist.update(this); roomlist.update(this);
} }
client.server.connect(this.port, '127.0.0.1', function() { client.server.connect(this.port, '127.0.0.1', function() {
var buffer, len3, m, ref3; var buffer, len2, m, ref3;
ref3 = client.pre_establish_buffers; ref3 = client.pre_establish_buffers;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
buffer = ref3[m]; buffer = ref3[m];
client.server.write(buffer); client.server.write(buffer);
} }
...@@ -2026,7 +1959,7 @@ ...@@ -2026,7 +1959,7 @@
}; };
Room.prototype.disconnect = function(client, error) { Room.prototype.disconnect = function(client, error) {
var index, left_name, len3, len4, m, n, player, ref3, ref4; var index, left_name, len2, len3, m, n, player, ref3, ref4;
if (client.had_new_reconnection) { if (client.had_new_reconnection) {
return; return;
} }
...@@ -2041,7 +1974,7 @@ ...@@ -2041,7 +1974,7 @@
if (this.arena && this.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && this.disconnector !== 'server' && !this.arena_score_handled) { if (this.arena && this.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && this.disconnector !== 'server' && !this.arena_score_handled) {
if (settings.modules.arena_mode.punish_quit_before_match && this.players.length === 2 && !client.arena_quit_free) { if (settings.modules.arena_mode.punish_quit_before_match && this.players.length === 2 && !client.arena_quit_free) {
ref3 = this.players; ref3 = this.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player.pos !== 7) { if (player.pos !== 7) {
this.scores[player.name_vpass] = 0; this.scores[player.name_vpass] = 0;
...@@ -2050,7 +1983,7 @@ ...@@ -2050,7 +1983,7 @@
this.scores[client.name_vpass] = -9; this.scores[client.name_vpass] = -9;
} else { } else {
ref4 = this.players; ref4 = this.players;
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
player = ref4[n]; player = ref4[n];
if (player.pos !== 7) { if (player.pos !== 7) {
this.scores[player.name_vpass] = -5; this.scores[player.name_vpass] = -5;
...@@ -2286,7 +2219,7 @@ ...@@ -2286,7 +2219,7 @@
} }
client.pre_establish_buffers = new Array(); client.pre_establish_buffers = new Array();
client.on('data', function(ctos_buffer) { client.on('data', function(ctos_buffer) {
var b, bad_ip_count, buffer, cancel, ctos_event, ctos_message_length, ctos_proto, datas, info, len3, len4, len5, len6, looplimit, m, n, o, p, ref3, ref4, result, room, struct; var b, bad_ip_count, buffer, cancel, ctos_event, ctos_message_length, ctos_proto, datas, info, len2, len3, len4, len5, looplimit, m, n, o, p, ref3, ref4, result, room, struct;
if (client.is_post_watcher) { if (client.is_post_watcher) {
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (room && !CLIENT_is_banned_by_mc(client)) { if (room && !CLIENT_is_banned_by_mc(client)) {
...@@ -2328,7 +2261,7 @@ ...@@ -2328,7 +2261,7 @@
} }
if (ygopro.ctos_follows_before[ctos_proto] && !cancel) { if (ygopro.ctos_follows_before[ctos_proto] && !cancel) {
ref3 = ygopro.ctos_follows_before[ctos_proto]; ref3 = ygopro.ctos_follows_before[ctos_proto];
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
ctos_event = ref3[m]; ctos_event = ref3[m];
result = ctos_event.callback(b, info, client, client.server, datas); result = ctos_event.callback(b, info, client, client.server, datas);
if (result && ctos_event.synchronous) { if (result && ctos_event.synchronous) {
...@@ -2344,7 +2277,7 @@ ...@@ -2344,7 +2277,7 @@
} }
if (ygopro.ctos_follows_after[ctos_proto] && !cancel) { if (ygopro.ctos_follows_after[ctos_proto] && !cancel) {
ref4 = ygopro.ctos_follows_after[ctos_proto]; ref4 = ygopro.ctos_follows_after[ctos_proto];
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
ctos_event = ref4[n]; ctos_event = ref4[n];
result = ctos_event.callback(b, info, client, client.server, datas); result = ctos_event.callback(b, info, client, client.server, datas);
if (result && ctos_event.synchronous) { if (result && ctos_event.synchronous) {
...@@ -2382,12 +2315,12 @@ ...@@ -2382,12 +2315,12 @@
return; return;
} }
if (client.established) { if (client.established) {
for (o = 0, len5 = datas.length; o < len5; o++) { for (o = 0, len4 = datas.length; o < len4; o++) {
buffer = datas[o]; buffer = datas[o];
client.server.write(buffer); client.server.write(buffer);
} }
} else { } else {
for (p = 0, len6 = datas.length; p < len6; p++) { for (p = 0, len5 = datas.length; p < len5; p++) {
buffer = datas[p]; buffer = datas[p];
client.pre_establish_buffers.push(buffer); client.pre_establish_buffers.push(buffer);
} }
...@@ -2395,7 +2328,7 @@ ...@@ -2395,7 +2328,7 @@
} }
}); });
server.on('data', function(stoc_buffer) { server.on('data', function(stoc_buffer) {
var b, buffer, cancel, datas, info, len3, len4, len5, looplimit, m, n, o, ref3, ref4, result, stoc_event, stoc_message_length, stoc_proto, struct; var b, buffer, cancel, datas, info, len2, len3, len4, looplimit, m, n, o, ref3, ref4, result, stoc_event, stoc_message_length, stoc_proto, struct;
stoc_message_length = 0; stoc_message_length = 0;
stoc_proto = 0; stoc_proto = 0;
datas = []; datas = [];
...@@ -2428,7 +2361,7 @@ ...@@ -2428,7 +2361,7 @@
} }
if (ygopro.stoc_follows_before[stoc_proto] && !cancel) { if (ygopro.stoc_follows_before[stoc_proto] && !cancel) {
ref3 = ygopro.stoc_follows_before[stoc_proto]; ref3 = ygopro.stoc_follows_before[stoc_proto];
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
stoc_event = ref3[m]; stoc_event = ref3[m];
result = stoc_event.callback(b, info, server.client, server, datas); result = stoc_event.callback(b, info, server.client, server, datas);
if (result && stoc_event.synchronous) { if (result && stoc_event.synchronous) {
...@@ -2444,7 +2377,7 @@ ...@@ -2444,7 +2377,7 @@
} }
if (ygopro.stoc_follows_after[stoc_proto] && !cancel) { if (ygopro.stoc_follows_after[stoc_proto] && !cancel) {
ref4 = ygopro.stoc_follows_after[stoc_proto]; ref4 = ygopro.stoc_follows_after[stoc_proto];
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
stoc_event = ref4[n]; stoc_event = ref4[n];
result = stoc_event.callback(b, info, server.client, server, datas); result = stoc_event.callback(b, info, server.client, server, datas);
if (result && stoc_event.synchronous) { if (result && stoc_event.synchronous) {
...@@ -2471,7 +2404,7 @@ ...@@ -2471,7 +2404,7 @@
} }
} }
if (server.client && !server.client.closed) { if (server.client && !server.client.closed) {
for (o = 0, len5 = datas.length; o < len5; o++) { for (o = 0, len4 = datas.length; o < len4; o++) {
buffer = datas[o]; buffer = datas[o];
server.client.write(buffer); server.client.write(buffer);
} }
...@@ -2529,9 +2462,6 @@ ...@@ -2529,9 +2462,6 @@
client.name = name; client.name = name;
client.vpass = vpass; client.vpass = vpass;
client.name_vpass = vpass ? name + "$" + vpass : name; client.name_vpass = vpass ? name + "$" + vpass : name;
if (settings.modules.pre_release_compat.enabled) {
client.is_using_pre_release = client.name_vpass === "COMPAT";
}
if (settings.modules.vip.enabled && CLIENT_check_vip(client)) { if (settings.modules.vip.enabled && CLIENT_check_vip(client)) {
client.vip = true; client.vip = true;
} }
...@@ -2554,7 +2484,7 @@ ...@@ -2554,7 +2484,7 @@
}); });
ygopro.ctos_follow('JOIN_GAME', false, function(buffer, info, client, server, datas) { ygopro.ctos_follow('JOIN_GAME', false, function(buffer, info, client, server, datas) {
var buffer_handle_callback, buffer_pos, check_buffer_indentity, len3, len4, len5, len6, len7, len8, len9, line, m, match_permit_callback, n, name, o, oppo_pos, p, player, player_string, pre_room, q, r, ref3, ref4, ref5, ref6, ref7, replay_id, room, room_buffer, room_players, room_showed, s; var buffer_handle_callback, buffer_pos, check_buffer_indentity, len2, len3, len4, len5, len6, len7, len8, line, m, match_permit_callback, n, name, o, oppo_pos, p, player, player_string, pre_room, q, r, ref3, ref4, ref5, ref6, ref7, replay_id, room, room_buffer, room_players, room_showed, s;
info.pass = info.pass.trim(); info.pass = info.pass.trim();
client.pass = info.pass; client.pass = info.pass;
if (CLIENT_is_able_to_reconnect(client) || CLIENT_is_able_to_kick_reconnect(client)) { if (CLIENT_is_able_to_reconnect(client) || CLIENT_is_able_to_kick_reconnect(client)) {
...@@ -2589,7 +2519,7 @@ ...@@ -2589,7 +2519,7 @@
} else if (info.pass.toUpperCase() === "L" && settings.modules.koishi_roomlist.enabled) { } else if (info.pass.toUpperCase() === "L" && settings.modules.koishi_roomlist.enabled) {
ygopro.stoc_send_chat(client, "${koishi_roomlist_hint}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${koishi_roomlist_hint}", ygopro.constants.COLORS.BABYBLUE);
room_showed = []; room_showed = [];
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (room && room.established && room.name.indexOf('$') < 0) { if (room && room.established && room.name.indexOf('$') < 0) {
room_showed.push(room); room_showed.push(room);
...@@ -2599,7 +2529,7 @@ ...@@ -2599,7 +2529,7 @@
room_buffer = Buffer.alloc(2 + 333 * room_showed.length); room_buffer = Buffer.alloc(2 + 333 * room_showed.length);
room_buffer.writeUInt16LE(room_showed.length, buffer_pos); room_buffer.writeUInt16LE(room_showed.length, buffer_pos);
buffer_pos += 2; buffer_pos += 2;
for (n = 0, len4 = room_showed.length; n < len4; n++) { for (n = 0, len3 = room_showed.length; n < len3; n++) {
room = room_showed[n]; room = room_showed[n];
room_buffer.write(room.name, buffer_pos, 64, "utf8"); room_buffer.write(room.name, buffer_pos, 64, "utf8");
buffer_pos += 64; buffer_pos += 64;
...@@ -2612,7 +2542,7 @@ ...@@ -2612,7 +2542,7 @@
buffer_pos++; buffer_pos++;
room_players = []; room_players = [];
ref3 = room.get_playing_player(); ref3 = room.get_playing_player();
for (o = 0, len5 = ref3.length; o < len5; o++) { for (o = 0, len4 = ref3.length; o < len4; o++) {
player = ref3[o]; player = ref3[o];
if (player) { if (player) {
room_players[player.pos] = player; room_players[player.pos] = player;
...@@ -2717,7 +2647,7 @@ ...@@ -2717,7 +2647,7 @@
return (checksum & 0xFF) === 0; return (checksum & 0xFF) === 0;
}; };
buffer_handle_callback = function(buffer, decrypted_buffer, match_permit) { buffer_handle_callback = function(buffer, decrypted_buffer, match_permit) {
var action, len6, len7, len8, len9, line, name, opt1, opt2, opt3, options, p, q, r, ref4, ref5, ref6, ref7, s, title; var action, len5, len6, len7, len8, line, name, opt1, opt2, opt3, options, p, q, r, ref4, ref5, ref6, ref7, s, title;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -2776,7 +2706,7 @@ ...@@ -2776,7 +2706,7 @@
room = ROOM_find_or_create_by_name('M#' + info.pass.slice(8)); room = ROOM_find_or_create_by_name('M#' + info.pass.slice(8));
if (room) { if (room) {
ref4 = room.get_playing_player(); ref4 = room.get_playing_player();
for (p = 0, len6 = ref4.length; p < len6; p++) { for (p = 0, len5 = ref4.length; p < len5; p++) {
player = ref4[p]; player = ref4[p];
if (!(player && player.name === client.name)) { if (!(player && player.name === client.name)) {
continue; continue;
...@@ -2815,13 +2745,13 @@ ...@@ -2815,13 +2745,13 @@
client.is_post_watcher = true; client.is_post_watcher = true;
if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) { if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) {
ref5 = _.lines(vip_info.players[client.name].words); ref5 = _.lines(vip_info.players[client.name].words);
for (q = 0, len7 = ref5.length; q < len7; q++) { for (q = 0, len6 = ref5.length; q < len6; q++) {
line = ref5[q]; line = ref5[q];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
ref6 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); ref6 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
for (r = 0, len8 = ref6.length; r < len8; r++) { for (r = 0, len7 = ref6.length; r < len7; r++) {
line = ref6[r]; line = ref6[r];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
...@@ -2830,7 +2760,7 @@ ...@@ -2830,7 +2760,7 @@
room.watchers.push(client); room.watchers.push(client);
ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE);
ref7 = room.watcher_buffers; ref7 = room.watcher_buffers;
for (s = 0, len9 = ref7.length; s < len9; s++) { for (s = 0, len8 = ref7.length; s < len8; s++) {
buffer = ref7[s]; buffer = ref7[s];
client.write(buffer); client.write(buffer);
} }
...@@ -2846,7 +2776,7 @@ ...@@ -2846,7 +2776,7 @@
} }
}; };
match_permit_callback = function(buffer, match_permit) { match_permit_callback = function(buffer, match_permit) {
var decrypted_buffer, i, id, len6, p, ref4, secret; var decrypted_buffer, i, id, len5, p, ref4, secret;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -2854,7 +2784,7 @@ ...@@ -2854,7 +2784,7 @@
secret = id % 65535 + 1; secret = id % 65535 + 1;
decrypted_buffer = Buffer.allocUnsafe(6); decrypted_buffer = Buffer.allocUnsafe(6);
ref4 = [0, 2, 4]; ref4 = [0, 2, 4];
for (p = 0, len6 = ref4.length; p < len6; p++) { for (p = 0, len5 = ref4.length; p < len5; p++) {
i = ref4[p]; i = ref4[p];
decrypted_buffer.writeUInt16LE(buffer.readUInt16LE(i) ^ secret, i); decrypted_buffer.writeUInt16LE(buffer.readUInt16LE(i) ^ secret, i);
} }
...@@ -2872,13 +2802,13 @@ ...@@ -2872,13 +2802,13 @@
}, },
json: true json: true
}, function(error, response, body) { }, function(error, response, body) {
var len7, q, ref5; var len6, q, ref5;
if (body && body.user) { if (body && body.user) {
users_cache[client.name] = body.user.id; users_cache[client.name] = body.user.id;
secret = body.user.id % 65535 + 1; secret = body.user.id % 65535 + 1;
decrypted_buffer = Buffer.allocUnsafe(6); decrypted_buffer = Buffer.allocUnsafe(6);
ref5 = [0, 2, 4]; ref5 = [0, 2, 4];
for (q = 0, len7 = ref5.length; q < len7; q++) { for (q = 0, len6 = ref5.length; q < len6; q++) {
i = ref5[q]; i = ref5[q];
decrypted_buffer.writeUInt16LE(buffer.readUInt16LE(i) ^ secret, i); decrypted_buffer.writeUInt16LE(buffer.readUInt16LE(i) ^ secret, i);
} }
...@@ -2927,7 +2857,7 @@ ...@@ -2927,7 +2857,7 @@
room.watchers.push(client); room.watchers.push(client);
ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE);
ref4 = room.watcher_buffers; ref4 = room.watcher_buffers;
for (p = 0, len6 = ref4.length; p < len6; p++) { for (p = 0, len5 = ref4.length; p < len5; p++) {
buffer = ref4[p]; buffer = ref4[p];
client.write(buffer); client.write(buffer);
} }
...@@ -2964,7 +2894,7 @@ ...@@ -2964,7 +2894,7 @@
challonge.matches._index({ challonge.matches._index({
id: settings.modules.challonge.tournament_id, id: settings.modules.challonge.tournament_id,
callback: function(err, data) { callback: function(err, data) {
var len10, len7, len8, len9, line, match, q, r, ref5, ref6, ref7, ref8, s, t; var len6, len7, len8, len9, line, match, q, r, ref5, ref6, ref7, ref8, s, t;
if (client.closed) { if (client.closed) {
return; return;
} }
...@@ -3002,13 +2932,13 @@ ...@@ -3002,13 +2932,13 @@
client.is_post_watcher = true; client.is_post_watcher = true;
if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) { if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) {
ref5 = _.lines(vip_info.players[client.name].words); ref5 = _.lines(vip_info.players[client.name].words);
for (q = 0, len7 = ref5.length; q < len7; q++) { for (q = 0, len6 = ref5.length; q < len6; q++) {
line = ref5[q]; line = ref5[q];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
ref6 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); ref6 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
for (r = 0, len8 = ref6.length; r < len8; r++) { for (r = 0, len7 = ref6.length; r < len7; r++) {
line = ref6[r]; line = ref6[r];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
...@@ -3017,7 +2947,7 @@ ...@@ -3017,7 +2947,7 @@
room.watchers.push(client); room.watchers.push(client);
ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE);
ref7 = room.watcher_buffers; ref7 = room.watcher_buffers;
for (s = 0, len9 = ref7.length; s < len9; s++) { for (s = 0, len8 = ref7.length; s < len8; s++) {
buffer = ref7[s]; buffer = ref7[s];
client.write(buffer); client.write(buffer);
} }
...@@ -3028,7 +2958,7 @@ ...@@ -3028,7 +2958,7 @@
ygopro.stoc_die(client, "${watch_denied_room}"); ygopro.stoc_die(client, "${watch_denied_room}");
} else { } else {
ref8 = room.get_playing_player(); ref8 = room.get_playing_player();
for (t = 0, len10 = ref8.length; t < len10; t++) { for (t = 0, len9 = ref8.length; t < len9; t++) {
player = ref8[t]; player = ref8[t];
if (!(player && player !== client && player.challonge_info.id === client.challonge_info.id)) { if (!(player && player !== client && player.challonge_info.id === client.challonge_info.id)) {
continue; continue;
...@@ -3093,13 +3023,13 @@ ...@@ -3093,13 +3023,13 @@
client.is_post_watcher = true; client.is_post_watcher = true;
if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) { if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) {
ref5 = _.lines(vip_info.players[client.name].words); ref5 = _.lines(vip_info.players[client.name].words);
for (q = 0, len7 = ref5.length; q < len7; q++) { for (q = 0, len6 = ref5.length; q < len6; q++) {
line = ref5[q]; line = ref5[q];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
ref6 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); ref6 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
for (r = 0, len8 = ref6.length; r < len8; r++) { for (r = 0, len7 = ref6.length; r < len7; r++) {
line = ref6[r]; line = ref6[r];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
...@@ -3108,7 +3038,7 @@ ...@@ -3108,7 +3038,7 @@
room.watchers.push(client); room.watchers.push(client);
ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${watch_watching}", ygopro.constants.COLORS.BABYBLUE);
ref7 = room.watcher_buffers; ref7 = room.watcher_buffers;
for (s = 0, len9 = ref7.length; s < len9; s++) { for (s = 0, len8 = ref7.length; s < len8; s++) {
buffer = ref7[s]; buffer = ref7[s];
client.write(buffer); client.write(buffer);
} }
...@@ -3126,7 +3056,7 @@ ...@@ -3126,7 +3056,7 @@
}); });
ygopro.stoc_follow('JOIN_GAME', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('JOIN_GAME', false, function(buffer, info, client, server, datas) {
var len3, len4, len5, line, m, n, o, player, recorder, ref3, ref4, ref5, room, watcher; var len2, len3, len4, line, m, n, o, player, recorder, ref3, ref4, ref5, room, watcher;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && !client.reconnecting)) { if (!(room && !client.reconnecting)) {
return; return;
...@@ -3136,13 +3066,13 @@ ...@@ -3136,13 +3066,13 @@
} }
if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) { if (settings.modules.vip.enabled && client.vip && vip_info.players[client.name].words) {
ref3 = _.lines(vip_info.players[client.name].words); ref3 = _.lines(vip_info.players[client.name].words);
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
line = ref3[m]; line = ref3[m];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
} else if (settings.modules.words.enabled && words.words[client.name]) { } else if (settings.modules.words.enabled && words.words[client.name]) {
ref4 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]); ref4 = _.lines(words.words[client.name][Math.floor(Math.random() * words.words[client.name].length)]);
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
line = ref4[n]; line = ref4[n];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
...@@ -3172,7 +3102,7 @@ ...@@ -3172,7 +3102,7 @@
if (settings.modules.random_duel.record_match_scores && room.random_type === 'M') { if (settings.modules.random_duel.record_match_scores && room.random_type === 'M') {
ygopro.stoc_send_chat_to_room(room, ROOM_player_get_score(client), ygopro.constants.COLORS.GREEN); ygopro.stoc_send_chat_to_room(room, ROOM_player_get_score(client), ygopro.constants.COLORS.GREEN);
ref5 = room.players; ref5 = room.players;
for (o = 0, len5 = ref5.length; o < len5; o++) { for (o = 0, len4 = ref5.length; o < len4; o++) {
player = ref5[o]; player = ref5[o];
if (player.pos !== 7 && player !== client) { if (player.pos !== 7 && player !== client) {
ygopro.stoc_send_chat(client, ROOM_player_get_score(player), ygopro.constants.COLORS.GREEN); ygopro.stoc_send_chat(client, ROOM_player_get_score(player), ygopro.constants.COLORS.GREEN);
...@@ -3211,14 +3141,14 @@ ...@@ -3211,14 +3141,14 @@
ygopro.ctos_send(watcher, 'HS_TOOBSERVER'); ygopro.ctos_send(watcher, 'HS_TOOBSERVER');
}); });
watcher.on('data', function(data) { watcher.on('data', function(data) {
var len6, p, ref6, w; var len5, p, ref6, w;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
return; return;
} }
room.watcher_buffers.push(data); room.watcher_buffers.push(data);
ref6 = room.watchers; ref6 = room.watchers;
for (p = 0, len6 = ref6.length; p < len6; p++) { for (p = 0, len5 = ref6.length; p < len5; p++) {
w = ref6[p]; w = ref6[p];
if (w) { if (w) {
w.write(data); w.write(data);
...@@ -3290,16 +3220,10 @@ ...@@ -3290,16 +3220,10 @@
} }
ygopro.stoc_follow('GAME_MSG', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('GAME_MSG', true, function(buffer, info, client, server, datas) {
var act_pos, card, chain, check, count, cpos, deck_found, found, hint_type, i, id, len10, len11, len3, len4, len5, len6, len7, len8, len9, limbo_found, line, loc, m, max_loop, msg, n, o, oppo_pos, p, phase, player, playertype, pos, ppos, q, r, r_player, reason, ref10, ref11, ref12, ref13, ref3, ref4, ref5, ref6, ref7, ref8, ref9, room, s, t, trigger_location, val, win_pos, x, y; var act_pos, card, chain, check, count, cpos, deck_found, found, hint_type, i, id, len10, len2, len3, len4, len5, len6, len7, len8, len9, limbo_found, line, loc, m, max_loop, msg, n, o, oppo_pos, p, phase, player, playertype, pos, ppos, q, r, r_player, reason, ref10, ref11, ref12, ref13, ref3, ref4, ref5, ref6, ref7, ref8, ref9, room, s, t, trigger_location, val, win_pos, x, y;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!(room && !client.reconnecting)) {
return false; return;
}
if (settings.modules.pre_release_compat.enabled && client.is_using_pre_release) {
replace_buffer(buffer, room.list_official_to_pre, 1);
}
if (client.reconnecting) {
return false;
} }
msg = buffer.readInt8(0); msg = buffer.readInt8(0);
if (settings.modules.retry_handle.enabled) { if (settings.modules.retry_handle.enabled) {
...@@ -3423,7 +3347,7 @@ ...@@ -3423,7 +3347,7 @@
room.duel_stage = ygopro.constants.DUEL_STAGE.END; room.duel_stage = ygopro.constants.DUEL_STAGE.END;
if (settings.modules.heartbeat_detection.enabled) { if (settings.modules.heartbeat_detection.enabled) {
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
player.heartbeat_protected = false; player.heartbeat_protected = false;
} }
...@@ -3439,13 +3363,13 @@ ...@@ -3439,13 +3363,13 @@
} }
if (settings.modules.vip.enabled && room.dueling_players[pos].vip && vip_info.players[room.dueling_players[pos].name].victory) { if (settings.modules.vip.enabled && room.dueling_players[pos].vip && vip_info.players[room.dueling_players[pos].name].victory) {
ref4 = _.lines(vip_info.players[room.dueling_players[pos].name].victory); ref4 = _.lines(vip_info.players[room.dueling_players[pos].name].victory);
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
line = ref4[n]; line = ref4[n];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
} else if (room.hostinfo.mode === 2 && settings.modules.vip.enabled && room.dueling_players[pos + 1].vip && vip_info.players[room.dueling_players[pos + 1].name].victory) { } else if (room.hostinfo.mode === 2 && settings.modules.vip.enabled && room.dueling_players[pos + 1].vip && vip_info.players[room.dueling_players[pos + 1].name].victory) {
ref5 = _.lines(vip_info.players[room.dueling_players[pos + 1].name].victory); ref5 = _.lines(vip_info.players[room.dueling_players[pos + 1].name].victory);
for (o = 0, len5 = ref5.length; o < len5; o++) { for (o = 0, len4 = ref5.length; o < len4; o++) {
line = ref5[o]; line = ref5[o];
ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat_to_room(room, line, ygopro.constants.COLORS.PINK);
} }
...@@ -3572,7 +3496,7 @@ ...@@ -3572,7 +3496,7 @@
if (ygopro.constants.MSG[msg] === 'CHAINING') { if (ygopro.constants.MSG[msg] === 'CHAINING') {
card = buffer.readUInt32LE(1); card = buffer.readUInt32LE(1);
found = false; found = false;
for (q = 0, len6 = long_resolve_cards.length; q < len6; q++) { for (q = 0, len5 = long_resolve_cards.length; q < len5; q++) {
id = long_resolve_cards[q]; id = long_resolve_cards[q];
if (!(id === card)) { if (!(id === card)) {
continue; continue;
...@@ -3596,7 +3520,7 @@ ...@@ -3596,7 +3520,7 @@
chain = buffer.readInt8(1); chain = buffer.readInt8(1);
if (room.long_resolve_chain[chain]) { if (room.long_resolve_chain[chain]) {
ref9 = room.get_playing_player(); ref9 = room.get_playing_player();
for (r = 0, len7 = ref9.length; r < len7; r++) { for (r = 0, len6 = ref9.length; r < len6; r++) {
player = ref9[r]; player = ref9[r];
player.heartbeat_protected = true; player.heartbeat_protected = true;
} }
...@@ -3623,25 +3547,25 @@ ...@@ -3623,25 +3547,25 @@
if (ygopro.constants.MSG[msg] !== 'CHAINING' || (trigger_location & 0x8) && client.ready_trap) { if (ygopro.constants.MSG[msg] !== 'CHAINING' || (trigger_location & 0x8) && client.ready_trap) {
if (settings.modules.vip.enabled && room.dueling_players[act_pos].vip && vip_info.players[room.dueling_players[act_pos].name].dialogues[card]) { if (settings.modules.vip.enabled && room.dueling_players[act_pos].vip && vip_info.players[room.dueling_players[act_pos].name].dialogues[card]) {
ref10 = _.lines(vip_info.players[room.dueling_players[act_pos].name].dialogues[card]); ref10 = _.lines(vip_info.players[room.dueling_players[act_pos].name].dialogues[card]);
for (s = 0, len8 = ref10.length; s < len8; s++) { for (s = 0, len7 = ref10.length; s < len7; s++) {
line = ref10[s]; line = ref10[s];
ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK);
} }
} else if (settings.modules.vip.enabled && room.hostinfo.mode === 2 && room.dueling_players[act_pos + 1].vip && vip_info.players[room.dueling_players[act_pos + 1].name].dialogues[card]) { } else if (settings.modules.vip.enabled && room.hostinfo.mode === 2 && room.dueling_players[act_pos + 1].vip && vip_info.players[room.dueling_players[act_pos + 1].name].dialogues[card]) {
ref11 = _.lines(vip_info.players[room.dueling_players[act_pos + 1].name].dialogues[card]); ref11 = _.lines(vip_info.players[room.dueling_players[act_pos + 1].name].dialogues[card]);
for (t = 0, len9 = ref11.length; t < len9; t++) { for (t = 0, len8 = ref11.length; t < len8; t++) {
line = ref11[t]; line = ref11[t];
ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK);
} }
} else if (settings.modules.dialogues.enabled && dialogues.dialogues[card]) { } else if (settings.modules.dialogues.enabled && dialogues.dialogues[card]) {
ref12 = _.lines(dialogues.dialogues[card][Math.floor(Math.random() * dialogues.dialogues[card].length)]); ref12 = _.lines(dialogues.dialogues[card][Math.floor(Math.random() * dialogues.dialogues[card].length)]);
for (x = 0, len10 = ref12.length; x < len10; x++) { for (x = 0, len9 = ref12.length; x < len9; x++) {
line = ref12[x]; line = ref12[x];
ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK);
} }
} else if (settings.modules.dialogues.enabled && dialogues.dialogues_custom[card]) { } else if (settings.modules.dialogues.enabled && dialogues.dialogues_custom[card]) {
ref13 = _.lines(dialogues.dialogues_custom[card][Math.floor(Math.random() * dialogues.dialogues_custom[card].length)]); ref13 = _.lines(dialogues.dialogues_custom[card][Math.floor(Math.random() * dialogues.dialogues_custom[card].length)]);
for (y = 0, len11 = ref13.length; y < len11; y++) { for (y = 0, len10 = ref13.length; y < len10; y++) {
line = ref13[y]; line = ref13[y];
ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK); ygopro.stoc_send_chat(client, line, ygopro.constants.COLORS.PINK);
} }
...@@ -3661,7 +3585,7 @@ ...@@ -3661,7 +3585,7 @@
}); });
ygopro.ctos_follow('HS_TOOBSERVER', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('HS_TOOBSERVER', true, function(buffer, info, client, server, datas) {
var len3, m, player, ref3, room; var len2, m, player, ref3, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
return; return;
...@@ -3674,7 +3598,7 @@ ...@@ -3674,7 +3598,7 @@
return false; return false;
} }
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player === client) { if (player === client) {
ygopro.stoc_send_chat(client, "${cannot_to_observer}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${cannot_to_observer}", ygopro.constants.COLORS.BABYBLUE);
...@@ -3685,13 +3609,13 @@ ...@@ -3685,13 +3609,13 @@
}); });
ygopro.ctos_follow('HS_KICK', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('HS_KICK', true, function(buffer, info, client, server, datas) {
var len3, m, player, ref3, room; var len2, m, player, ref3, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
return; return;
} }
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player && player.pos === info.pos && player !== client) { if (player && player.pos === info.pos && player !== client) {
if (room.arena === "athletic" || settings.modules.challonge.enabled) { if (room.arena === "athletic" || settings.modules.challonge.enabled) {
...@@ -3738,7 +3662,7 @@ ...@@ -3738,7 +3662,7 @@
}); });
ygopro.stoc_follow('HS_PLAYER_CHANGE', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('HS_PLAYER_CHANGE', false, function(buffer, info, client, server, datas) {
var is_ready, len3, len4, m, n, p1, p2, player, pos, ref3, ref4, room; var is_ready, len2, len3, m, n, p1, p2, player, pos, ref3, ref4, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && room.max_player && client.is_host)) { if (!(room && room.max_player && client.is_host)) {
return; return;
...@@ -3749,7 +3673,7 @@ ...@@ -3749,7 +3673,7 @@
if (room.arena) { if (room.arena) {
room.ready_player_count = 0; room.ready_player_count = 0;
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player.pos === pos) { if (player.pos === pos) {
player.is_ready = is_ready; player.is_ready = is_ready;
...@@ -3789,7 +3713,7 @@ ...@@ -3789,7 +3713,7 @@
} else { } else {
room.ready_player_count_without_host = 0; room.ready_player_count_without_host = 0;
ref4 = room.players; ref4 = room.players;
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
player = ref4[n]; player = ref4[n];
if (player.pos === pos) { if (player.pos === pos) {
player.is_ready = is_ready; player.is_ready = is_ready;
...@@ -3830,7 +3754,7 @@ ...@@ -3830,7 +3754,7 @@
}); });
ygopro.stoc_follow('DUEL_END', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('DUEL_END', false, function(buffer, info, client, server, datas) {
var len3, len4, m, n, player, ref3, ref4, results, room; var len2, len3, m, n, player, ref3, ref4, results, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && settings.modules.replay_delay && room.hostinfo.mode === 1)) { if (!(room && settings.modules.replay_delay && room.hostinfo.mode === 1)) {
return; return;
...@@ -3840,7 +3764,7 @@ ...@@ -3840,7 +3764,7 @@
if (!room.replays_sent_to_watchers) { if (!room.replays_sent_to_watchers) {
room.replays_sent_to_watchers = true; room.replays_sent_to_watchers = true;
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player && player.pos > 3) { if (player && player.pos > 3) {
CLIENT_send_replays(player, room); CLIENT_send_replays(player, room);
...@@ -3848,7 +3772,7 @@ ...@@ -3848,7 +3772,7 @@
} }
ref4 = room.watchers; ref4 = room.watchers;
results = []; results = [];
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
player = ref4[n]; player = ref4[n];
if (player) { if (player) {
results.push(CLIENT_send_replays(player, room)); results.push(CLIENT_send_replays(player, room));
...@@ -3859,7 +3783,7 @@ ...@@ -3859,7 +3783,7 @@
}); });
wait_room_start = function(room, time) { wait_room_start = function(room, time) {
var len3, m, player, ref3; var len2, m, player, ref3;
if (room && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.ready_player_count_without_host >= room.max_player - 1) { if (room && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.ready_player_count_without_host >= room.max_player - 1) {
time -= 1; time -= 1;
if (time) { if (time) {
...@@ -3871,7 +3795,7 @@ ...@@ -3871,7 +3795,7 @@
}), 1000); }), 1000);
} else { } else {
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player && player.is_host) { if (player && player.is_host) {
ROOM_ban_player(player.name, player.ip, "${random_ban_reason_zombie}"); ROOM_ban_player(player.name, player.ip, "${random_ban_reason_zombie}");
...@@ -3884,13 +3808,13 @@ ...@@ -3884,13 +3808,13 @@
}; };
wait_room_start_arena = function(room) { wait_room_start_arena = function(room) {
var display_name, len3, m, player, ref3; var display_name, len2, m, player, ref3;
if (room && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.waiting_for_player) { if (room && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.waiting_for_player) {
room.waiting_for_player_time = room.waiting_for_player_time - 1; room.waiting_for_player_time = room.waiting_for_player_time - 1;
if (room.waiting_for_player_time > 0) { if (room.waiting_for_player_time > 0) {
if (!(room.waiting_for_player_time % 5)) { if (!(room.waiting_for_player_time % 5)) {
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (!(player)) { if (!(player)) {
continue; continue;
...@@ -3922,17 +3846,17 @@ ...@@ -3922,17 +3846,17 @@
}; };
ygopro.stoc_send_random_tip_to_room = function(room) { ygopro.stoc_send_random_tip_to_room = function(room) {
var len3, len4, m, n, player, ref3, ref4; var len2, len3, m, n, player, ref3, ref4;
if (settings.modules.tips.enabled && tips.tips.length) { if (settings.modules.tips.enabled && tips.tips.length) {
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player && !player.is_local && !player.closed) { if (player && !player.is_local && !player.closed) {
ygopro.stoc_send_random_tip(player); ygopro.stoc_send_random_tip(player);
} }
} }
ref4 = room.watchers; ref4 = room.watchers;
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
player = ref4[n]; player = ref4[n];
if (player && !player.is_local && !player.closed) { if (player && !player.is_local && !player.closed) {
ygopro.stoc_send_random_tip(player); ygopro.stoc_send_random_tip(player);
...@@ -3983,8 +3907,8 @@ ...@@ -3983,8 +3907,8 @@
if (settings.modules.tips.enabled) { if (settings.modules.tips.enabled) {
setInterval(function() { setInterval(function() {
var len3, m, room; var len2, m, room;
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (room && room.established) { if (room && room.established) {
if (room.duel_stage === ygopro.constants.DUEL_STAGE.SIDING || room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN) { if (room.duel_stage === ygopro.constants.DUEL_STAGE.SIDING || room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN) {
...@@ -3996,7 +3920,7 @@ ...@@ -3996,7 +3920,7 @@
} }
ygopro.stoc_follow('DUEL_START', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('DUEL_START', false, function(buffer, info, client, server, datas) {
var deck_arena, deck_name, deck_text, len3, len4, m, n, player, ref3, ref4, room; var deck_arena, deck_name, deck_text, len2, len3, m, n, player, ref3, ref4, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && !client.reconnecting)) { if (!(room && !client.reconnecting)) {
return; return;
...@@ -4010,7 +3934,7 @@ ...@@ -4010,7 +3934,7 @@
} }
room.dueling_players = []; room.dueling_players = [];
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (!(player.pos !== 7)) { if (!(player.pos !== 7)) {
continue; continue;
...@@ -4031,7 +3955,7 @@ ...@@ -4031,7 +3955,7 @@
} }
if (settings.modules.hide_name && room.duel_count === 0) { if (settings.modules.hide_name && room.duel_count === 0) {
ref4 = room.get_playing_player(); ref4 = room.get_playing_player();
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
player = ref4[n]; player = ref4[n];
if (player !== client) { if (player !== client) {
ygopro.stoc_send(client, 'HS_PLAYER_ENTER', { ygopro.stoc_send(client, 'HS_PLAYER_ENTER', {
...@@ -4481,7 +4405,7 @@ ...@@ -4481,7 +4405,7 @@
}); });
ygopro.ctos_follow('UPDATE_DECK', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('UPDATE_DECK', true, function(buffer, info, client, server, datas) {
var buff_main, buff_main_new, buff_side, buff_side_new, card, code, code_, compat_deckbuf, current_deck, deck, deck_array, deck_main, deck_side, deck_text, deckbuf, decks, found, found_deck, i, len3, len4, len5, len6, len7, line, m, n, o, oppo_pos, p, q, ref3, room, struct, win_pos; var buff_main, buff_side, card, code, current_deck, deck, deck_array, deck_main, deck_side, deck_text, deckbuf, decks, found_deck, i, len2, len3, len4, line, m, n, o, oppo_pos, ref3, room, struct, win_pos;
if (settings.modules.reconnect.enabled && client.pre_reconnecting) { if (settings.modules.reconnect.enabled && client.pre_reconnecting) {
if (!CLIENT_is_able_to_reconnect(client) && !CLIENT_is_able_to_kick_reconnect(client)) { if (!CLIENT_is_able_to_reconnect(client) && !CLIENT_is_able_to_kick_reconnect(client)) {
ygopro.stoc_send_chat(client, "${reconnect_failed}", ygopro.constants.COLORS.RED); ygopro.stoc_send_chat(client, "${reconnect_failed}", ygopro.constants.COLORS.RED);
...@@ -4559,9 +4483,9 @@ ...@@ -4559,9 +4483,9 @@
} }
if (settings.modules.side_restrict.enabled && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN) { if (settings.modules.side_restrict.enabled && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN) {
ref3 = settings.modules.side_restrict.restrict_cards; ref3 = settings.modules.side_restrict.restrict_cards;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
code = ref3[m]; code = ref3[m];
if (_.indexOf(buff_side, code) > -1 || (settings.modules.pre_release_compat.enabled && _.indexOf(buff_side, room.list_pre_to_official[code]) > -1)) { if (_.indexOf(buff_side, code) > -1) {
ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED); ygopro.stoc_send_chat_to_room(room, "${invalid_side_rule}", ygopro.constants.COLORS.RED);
ygopro.stoc_send(client, 'ERROR_MSG', { ygopro.stoc_send(client, 'ERROR_MSG', {
msg: 3, msg: 3,
...@@ -4585,7 +4509,7 @@ ...@@ -4585,7 +4509,7 @@
buffer = struct.buffer; buffer = struct.buffer;
found_deck = false; found_deck = false;
decks = fs.readdirSync(settings.modules.tournament_mode.deck_path); decks = fs.readdirSync(settings.modules.tournament_mode.deck_path);
for (n = 0, len4 = decks.length; n < len4; n++) { for (n = 0, len3 = decks.length; n < len3; n++) {
deck = decks[n]; deck = decks[n];
if (_.endsWith(deck, client.name + ".ydk")) { if (_.endsWith(deck, client.name + ".ydk")) {
found_deck = deck; found_deck = deck;
...@@ -4602,7 +4526,7 @@ ...@@ -4602,7 +4526,7 @@
deck_main = []; deck_main = [];
deck_side = []; deck_side = [];
current_deck = deck_main; current_deck = deck_main;
for (o = 0, len5 = deck_array.length; o < len5; o++) { for (o = 0, len4 = deck_array.length; o < len4; o++) {
line = deck_array[o]; line = deck_array[o];
if (line.indexOf("!side") >= 0) { if (line.indexOf("!side") >= 0) {
current_deck = deck_side; current_deck = deck_side;
...@@ -4621,49 +4545,9 @@ ...@@ -4621,49 +4545,9 @@
ygopro.stoc_send_chat(client, "${deck_correct_part1} " + found_deck + " ${deck_correct_part2}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${deck_correct_part1} " + found_deck + " ${deck_correct_part2}", ygopro.constants.COLORS.BABYBLUE);
} else { } else {
ygopro.stoc_send_chat(client, "${deck_incorrect_part1} " + found_deck + " ${deck_incorrect_part2}", ygopro.constants.COLORS.RED); ygopro.stoc_send_chat(client, "${deck_incorrect_part1} " + found_deck + " ${deck_incorrect_part2}", ygopro.constants.COLORS.RED);
return false;
} }
} else { } else {
ygopro.stoc_send_chat(client, client.name + "${deck_not_found}", ygopro.constants.COLORS.RED); ygopro.stoc_send_chat(client, client.name + "${deck_not_found}", ygopro.constants.COLORS.RED);
return false;
}
}
if (settings.modules.pre_release_compat.enabled) {
found = false;
buff_main_new = [];
buff_side_new = [];
for (p = 0, len6 = buff_main.length; p < len6; p++) {
code = buff_main[p];
code_ = code;
if (room.list_pre_to_official[code]) {
code_ = room.list_pre_to_official[code];
found = true;
}
buff_main_new.push(code_);
}
for (q = 0, len7 = buff_side.length; q < len7; q++) {
code = buff_side[q];
code_ = code;
if (room.list_pre_to_official[code]) {
code_ = room.list_pre_to_official[code];
found = true;
}
buff_side_new.push(code_);
}
if (found) {
compat_deckbuf = buff_main_new.concat(buff_side_new);
struct.set("mainc", buff_main_new.length);
struct.set("sidec", buff_side_new.length);
struct.set("deckbuf", compat_deckbuf);
buffer = struct.buffer;
client.main = buff_main_new;
client.side = buff_side_new;
}
if (room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN) {
client.is_using_pre_release = found || client.vpass === "COMPAT";
if (client.is_using_pre_release) {
ygopro.stoc_send_chat(client, "${pre_release_compat_hint}", ygopro.constants.COLORS.BABYBLUE);
}
} }
} }
return false; return false;
...@@ -4672,13 +4556,7 @@ ...@@ -4672,13 +4556,7 @@
ygopro.ctos_follow('RESPONSE', false, function(buffer, info, client, server, datas) { ygopro.ctos_follow('RESPONSE', false, function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!(room && (room.random_type || room.arena))) {
return;
}
if (settings.modules.pre_release_compat.enabled && client.is_using_pre_release) {
replace_buffer(buffer, room.list_pre_to_official, 0);
}
if (!(room.random_type || room.arena)) {
return; return;
} }
room.last_active_time = moment(); room.last_active_time = moment();
...@@ -4790,7 +4668,7 @@ ...@@ -4790,7 +4668,7 @@
}); });
ygopro.stoc_follow('CHAT', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('CHAT', true, function(buffer, info, client, server, datas) {
var len3, m, pid, player, ref3, room, tcolor, tplayer; var len2, m, pid, player, ref3, room, tcolor, tplayer;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
pid = info.player; pid = info.player;
if (!(room && pid < 4 && settings.modules.chat_color.enabled && (!settings.modules.hide_name || room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN))) { if (!(room && pid < 4 && settings.modules.chat_color.enabled && (!settings.modules.hide_name || room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN))) {
...@@ -4809,7 +4687,7 @@ ...@@ -4809,7 +4687,7 @@
} }
} }
ref3 = room.players; ref3 = room.players;
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
player = ref3[m]; player = ref3[m];
if (player && player.pos === pid) { if (player && player.pos === pid) {
tplayer = player; tplayer = player;
...@@ -4923,7 +4801,7 @@ ...@@ -4923,7 +4801,7 @@
}); });
ygopro.stoc_follow('REPLAY', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('REPLAY', true, function(buffer, info, client, server, datas) {
var duellog, dueltime, i, len3, len4, m, n, player, ref3, ref4, replay_filename, room; var duellog, dueltime, i, len2, len3, m, n, player, ref3, ref4, replay_filename, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
return settings.modules.tournament_mode.enabled && settings.modules.tournament_mode.replay_safe && settings.modules.tournament_mode.block_replay_to_player || settings.modules.replay_delay; return settings.modules.tournament_mode.enabled && settings.modules.tournament_mode.replay_safe && settings.modules.tournament_mode.block_replay_to_player || settings.modules.replay_delay;
...@@ -4940,13 +4818,13 @@ ...@@ -4940,13 +4818,13 @@
replay_filename = dueltime; replay_filename = dueltime;
if (room.hostinfo.mode !== 2) { if (room.hostinfo.mode !== 2) {
ref3 = room.dueling_players; ref3 = room.dueling_players;
for (i = m = 0, len3 = ref3.length; m < len3; i = ++m) { for (i = m = 0, len2 = ref3.length; m < len2; i = ++m) {
player = ref3[i]; player = ref3[i];
replay_filename = replay_filename + (i > 0 ? " VS " : " ") + player.name; replay_filename = replay_filename + (i > 0 ? " VS " : " ") + player.name;
} }
} else { } else {
ref4 = room.dueling_players; ref4 = room.dueling_players;
for (i = n = 0, len4 = ref4.length; n < len4; i = ++n) { for (i = n = 0, len3 = ref4.length; n < len3; i = ++n) {
player = ref4[i]; player = ref4[i];
replay_filename = replay_filename + (i > 0 ? (i === 2 ? " VS " : " & ") : " ") + player.name; replay_filename = replay_filename + (i > 0 ? (i === 2 ? " VS " : " & ") : " ") + player.name;
} }
...@@ -4960,10 +4838,10 @@ ...@@ -4960,10 +4838,10 @@
replay_filename: replay_filename, replay_filename: replay_filename,
roommode: room.hostinfo.mode, roommode: room.hostinfo.mode,
players: (function() { players: (function() {
var len5, o, ref5, results; var len4, o, ref5, results;
ref5 = room.dueling_players; ref5 = room.dueling_players;
results = []; results = [];
for (o = 0, len5 = ref5.length; o < len5; o++) { for (o = 0, len4 = ref5.length; o < len4; o++) {
player = ref5[o]; player = ref5[o];
results.push({ results.push({
name: player.name + (settings.modules.tournament_mode.show_ip && !player.is_local ? " (IP: " + player.ip.slice(7) + ")" : "") + (settings.modules.tournament_mode.show_info && !(room.hostinfo.mode === 2 && player.pos % 2 > 0) ? " (Score:" + room.scores[player.name_vpass] + " LP:" + (player.lp != null ? player.lp : room.hostinfo.start_lp) + (room.hostinfo.mode !== 2 ? " Cards:" + (player.card_count != null ? player.card_count : room.hostinfo.start_hand) : "") + ")" : ""), name: player.name + (settings.modules.tournament_mode.show_ip && !player.is_local ? " (IP: " + player.ip.slice(7) + ")" : "") + (settings.modules.tournament_mode.show_info && !(room.hostinfo.mode === 2 && player.pos % 2 > 0) ? " (Score:" + room.scores[player.name_vpass] + " LP:" + (player.lp != null ? player.lp : room.hostinfo.start_lp) + (room.hostinfo.mode !== 2 ? " Cards:" + (player.card_count != null ? player.card_count : room.hostinfo.start_hand) : "") + ")" : ""),
...@@ -4992,8 +4870,8 @@ ...@@ -4992,8 +4870,8 @@
if (settings.modules.random_duel.enabled) { if (settings.modules.random_duel.enabled) {
setInterval(function() { setInterval(function() {
var len3, m, room, time_passed; var len2, m, room, time_passed;
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (!(room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && room.random_type && room.last_active_time && room.waiting_for_player && room.get_disconnected_count() === 0)) { if (!(room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && room.random_type && room.last_active_time && room.waiting_for_player && room.get_disconnected_count() === 0)) {
continue; continue;
...@@ -5016,8 +4894,8 @@ ...@@ -5016,8 +4894,8 @@
if (settings.modules.mycard.enabled) { if (settings.modules.mycard.enabled) {
setInterval(function() { setInterval(function() {
var len3, len4, m, n, player, room, time_passed, waited_time; var len2, len3, m, n, player, room, time_passed, waited_time;
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (!(room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && room.arena && room.last_active_time && room.waiting_for_player && room.get_disconnected_count() === 0)) { if (!(room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && room.arena && room.last_active_time && room.waiting_for_player && room.get_disconnected_count() === 0)) {
continue; continue;
...@@ -5034,7 +4912,7 @@ ...@@ -5034,7 +4912,7 @@
} }
} }
if (settings.modules.arena_mode.punish_quit_before_match) { if (settings.modules.arena_mode.punish_quit_before_match) {
for (n = 0, len4 = ROOM_all.length; n < len4; n++) { for (n = 0, len3 = ROOM_all.length; n < len3; n++) {
room = ROOM_all[n]; room = ROOM_all[n];
if (!(room && room.arena && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.get_playing_player().length < 2)) { if (!(room && room.arena && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN && room.get_playing_player().length < 2)) {
continue; continue;
...@@ -5056,12 +4934,12 @@ ...@@ -5056,12 +4934,12 @@
if (settings.modules.heartbeat_detection.enabled) { if (settings.modules.heartbeat_detection.enabled) {
setInterval(function() { setInterval(function() {
var len3, len4, m, n, player, ref3, room; var len2, len3, m, n, player, ref3, room;
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && (room.hostinfo.time_limit === 0 || room.duel_stage !== ygopro.constants.DUEL_STAGE.DUELING) && !room.windbot) { if (room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && (room.hostinfo.time_limit === 0 || room.duel_stage !== ygopro.constants.DUEL_STAGE.DUELING) && !room.windbot) {
ref3 = room.get_playing_player(); ref3 = room.get_playing_player();
for (n = 0, len4 = ref3.length; n < len4; n++) { for (n = 0, len3 = ref3.length; n < len3; n++) {
player = ref3[n]; player = ref3[n];
if (player && (room.duel_stage !== ygopro.constants.DUEL_STAGE.SIDING || player.selected_preduel)) { if (player && (room.duel_stage !== ygopro.constants.DUEL_STAGE.SIDING || player.selected_preduel)) {
CLIENT_heartbeat_register(player, true); CLIENT_heartbeat_register(player, true);
...@@ -5073,10 +4951,10 @@ ...@@ -5073,10 +4951,10 @@
} }
setInterval(function() { setInterval(function() {
var current_time, len3, m, results, room; var current_time, len2, m, results, room;
current_time = moment(); current_time = moment();
results = []; results = [];
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (!(room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && room.hostinfo.auto_death && !room.auto_death_triggered && current_time - moment(room.start_time) > 60000 * room.hostinfo.auto_death)) { if (!(room && room.duel_stage !== ygopro.constants.DUEL_STAGE.BEGIN && room.hostinfo.auto_death && !room.auto_death_triggered && current_time - moment(room.start_time) > 60000 * room.hostinfo.auto_death)) {
continue; continue;
...@@ -5143,7 +5021,7 @@ ...@@ -5143,7 +5021,7 @@
return callback + "( " + text + " );"; return callback + "( " + text + " );";
}; };
requestListener = function(request, response) { requestListener = function(request, response) {
var archive_args, archive_name, archive_process, check, death_room_found, duellog, error, filename, getpath, key, kick_room_found, len3, len4, len5, len6, len7, len8, len9, m, n, o, p, parseQueryString, pass_validated, player, q, r, ref3, ref4, replay, ret_keys, room, roomsjson, s, u; var archive_args, archive_name, archive_process, check, death_room_found, duellog, error, filename, getpath, key, kick_room_found, len2, len3, len4, len5, len6, len7, len8, m, n, o, p, parseQueryString, pass_validated, player, q, r, ref3, ref4, replay, ret_keys, room, roomsjson, s, u;
parseQueryString = true; parseQueryString = true;
u = url.parse(request.url, parseQueryString); u = url.parse(request.url, parseQueryString);
if (u.pathname === '/api/getrooms') { if (u.pathname === '/api/getrooms') {
...@@ -5155,9 +5033,9 @@ ...@@ -5155,9 +5033,9 @@
response.writeHead(200); response.writeHead(200);
roomsjson = JSON.stringify({ roomsjson = JSON.stringify({
rooms: (function() { rooms: (function() {
var len3, m, results; var len2, m, results;
results = []; results = [];
for (m = 0, len3 = ROOM_all.length; m < len3; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
if (room && room.established) { if (room && room.established) {
results.push({ results.push({
...@@ -5166,10 +5044,10 @@ ...@@ -5166,10 +5044,10 @@
roommode: room.hostinfo.mode, roommode: room.hostinfo.mode,
needpass: (room.name.indexOf('$') !== -1).toString(), needpass: (room.name.indexOf('$') !== -1).toString(),
users: _.sortBy((function() { users: _.sortBy((function() {
var len4, n, ref3, results1; var len3, n, ref3, results1;
ref3 = room.players; ref3 = room.players;
results1 = []; results1 = [];
for (n = 0, len4 = ref3.length; n < len4; n++) { for (n = 0, len3 = ref3.length; n < len3; n++) {
player = ref3[n]; player = ref3[n];
if (player.pos != null) { if (player.pos != null) {
results1.push({ results1.push({
...@@ -5219,7 +5097,7 @@ ...@@ -5219,7 +5097,7 @@
response.writeHead(200); response.writeHead(200);
ret_keys = ""; ret_keys = "";
ref3 = vip_info.cdkeys[u.query.keytype]; ref3 = vip_info.cdkeys[u.query.keytype];
for (m = 0, len3 = ref3.length; m < len3; m++) { for (m = 0, len2 = ref3.length; m < len2; m++) {
key = ref3[m]; key = ref3[m];
ret_keys = ret_keys + u.query.keytype + "D" + settings.port + ":" + key + "\n"; ret_keys = ret_keys + u.query.keytype + "D" + settings.port + ":" + key + "\n";
} }
...@@ -5236,7 +5114,7 @@ ...@@ -5236,7 +5114,7 @@
archive_args = ["a", "-mx0", "-y", archive_name]; archive_args = ["a", "-mx0", "-y", archive_name];
check = false; check = false;
ref4 = duel_log.duel_log; ref4 = duel_log.duel_log;
for (n = 0, len4 = ref4.length; n < len4; n++) { for (n = 0, len3 = ref4.length; n < len3; n++) {
replay = ref4[n]; replay = ref4[n];
check = true; check = true;
archive_args.push(replay.replay_filename); archive_args.push(replay.replay_filename);
...@@ -5335,7 +5213,7 @@ ...@@ -5335,7 +5213,7 @@
response.end(addCallback(u.query.callback, "['密码错误', 0]")); response.end(addCallback(u.query.callback, "['密码错误', 0]"));
return; return;
} }
for (o = 0, len5 = ROOM_all.length; o < len5; o++) { for (o = 0, len4 = ROOM_all.length; o < len4; o++) {
room = ROOM_all[o]; room = ROOM_all[o];
if (room && room.established) { if (room && room.established) {
ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW); ygopro.stoc_send_chat_to_room(room, u.query.shout, ygopro.constants.COLORS.YELLOW);
...@@ -5416,7 +5294,7 @@ ...@@ -5416,7 +5294,7 @@
return; return;
} }
kick_room_found = false; kick_room_found = false;
for (p = 0, len6 = ROOM_all.length; p < len6; p++) { for (p = 0, len5 = ROOM_all.length; p < len5; p++) {
room = ROOM_all[p]; room = ROOM_all[p];
if (!(room && room.established && (u.query.kick === "all" || u.query.kick === room.process_pid.toString() || u.query.kick === room.name))) { if (!(room && room.established && (u.query.kick === "all" || u.query.kick === room.process_pid.toString() || u.query.kick === room.name))) {
continue; continue;
...@@ -5444,7 +5322,7 @@ ...@@ -5444,7 +5322,7 @@
return; return;
} }
death_room_found = false; death_room_found = false;
for (q = 0, len7 = ROOM_all.length; q < len7; q++) { for (q = 0, len6 = ROOM_all.length; q < len6; q++) {
room = ROOM_all[q]; room = ROOM_all[q];
if (room && (u.query.death === "all" || u.query.death === room.process_pid.toString() || u.query.death === room.name)) { if (room && (u.query.death === "all" || u.query.death === room.process_pid.toString() || u.query.death === room.name)) {
if (room.start_death()) { if (room.start_death()) {
...@@ -5465,7 +5343,7 @@ ...@@ -5465,7 +5343,7 @@
return; return;
} }
death_room_found = false; death_room_found = false;
for (r = 0, len8 = ROOM_all.length; r < len8; r++) { for (r = 0, len7 = ROOM_all.length; r < len7; r++) {
room = ROOM_all[r]; room = ROOM_all[r];
if (room && (u.query.deathcancel === "all" || u.query.deathcancel === room.process_pid.toString() || u.query.deathcancel === room.name)) { if (room && (u.query.deathcancel === "all" || u.query.deathcancel === room.process_pid.toString() || u.query.deathcancel === room.name)) {
if (room.cancel_death()) { if (room.cancel_death()) {
...@@ -5485,7 +5363,7 @@ ...@@ -5485,7 +5363,7 @@
response.end(addCallback(u.query.callback, "['密码错误', 0]")); response.end(addCallback(u.query.callback, "['密码错误', 0]"));
return; return;
} }
for (s = 0, len9 = ROOM_all.length; s < len9; s++) { for (s = 0, len8 = ROOM_all.length; s < len8; s++) {
room = ROOM_all[s]; room = ROOM_all[s];
if (!(room)) { if (!(room)) {
continue; continue;
...@@ -5546,7 +5424,7 @@ ...@@ -5546,7 +5424,7 @@
plugin_list = fs.readdirSync("./plugins"); plugin_list = fs.readdirSync("./plugins");
for (m = 0, len3 = plugin_list.length; m < len3; m++) { for (m = 0, len2 = plugin_list.length; m < len2; m++) {
plugin_filename = plugin_list[m]; plugin_filename = plugin_list[m];
plugin_path = "./plugins/" + plugin_filename; plugin_path = "./plugins/" + plugin_filename;
require(plugin_path); require(plugin_path);
......
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