Commit 9f3043ff authored by nanahira's avatar nanahira

use async

parent e8394e3d
...@@ -1859,7 +1859,7 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)-> ...@@ -1859,7 +1859,7 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)->
else else
#log.info("Not in map", geo.country, client.name, client.ip) #log.info("Not in map", geo.country, client.name, client.ip)
client.lang=settings.modules.i18n.fallback client.lang=settings.modules.i18n.fallback
return false await return false
ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
#log.info info #log.info info
...@@ -2346,7 +2346,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)-> ...@@ -2346,7 +2346,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
client.setTimeout(300000) #连接后超时5分钟 client.setTimeout(300000) #连接后超时5分钟
client.rid = _.indexOf(ROOM_all, room) client.rid = _.indexOf(ROOM_all, room)
room.connect(client) room.connect(client)
return await return
ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
#欢迎信息 #欢迎信息
...@@ -2423,7 +2423,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)-> ...@@ -2423,7 +2423,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
watcher.on 'error', (error)-> watcher.on 'error', (error)->
log.error "watcher error", error log.error "watcher error", error
return return
return await return
# 登场台词 # 登场台词
load_dialogues = global.load_dialogues = (callback) -> load_dialogues = global.load_dialogues = (callback) ->
...@@ -2441,7 +2441,7 @@ load_dialogues = global.load_dialogues = (callback) -> ...@@ -2441,7 +2441,7 @@ load_dialogues = global.load_dialogues = (callback) ->
if callback if callback
callback(error, body) callback(error, body)
return return
return await return
if settings.modules.dialogues.get if settings.modules.dialogues.get
load_dialogues() load_dialogues()
...@@ -2738,7 +2738,7 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)-> ...@@ -2738,7 +2738,7 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
room.recover_buffers[client.pos].push(buffer) room.recover_buffers[client.pos].push(buffer)
return true return true
return false await return false
#房间管理 #房间管理
ygopro.ctos_follow 'HS_TOOBSERVER', true, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'HS_TOOBSERVER', true, (buffer, info, client, server, datas)->
...@@ -2753,7 +2753,7 @@ ygopro.ctos_follow 'HS_TOOBSERVER', true, (buffer, info, client, server, datas)- ...@@ -2753,7 +2753,7 @@ ygopro.ctos_follow 'HS_TOOBSERVER', true, (buffer, info, client, server, datas)-
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)
return true return true
return false await return false
ygopro.ctos_follow 'HS_KICK', true, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'HS_KICK', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -2771,7 +2771,7 @@ ygopro.ctos_follow 'HS_KICK', true, (buffer, info, client, server, datas)-> ...@@ -2771,7 +2771,7 @@ ygopro.ctos_follow 'HS_KICK', true, (buffer, info, client, server, datas)->
CLIENT_kick(client) CLIENT_kick(client)
return true return true
ygopro.stoc_send_chat_to_room(room, "#{player.name} ${kicked_by_player}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat_to_room(room, "#{player.name} ${kicked_by_player}", ygopro.constants.COLORS.RED)
return false await return false
ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)->
selftype = info.type & 0xf selftype = info.type & 0xf
...@@ -2782,7 +2782,7 @@ ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)-> ...@@ -2782,7 +2782,7 @@ ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)->
client.is_host = is_host client.is_host = is_host
client.pos = selftype client.pos = selftype
#console.log "TYPE_CHANGE to #{client.name}:", info, selftype, is_host #console.log "TYPE_CHANGE to #{client.name}:", info, selftype, is_host
return false await return false
ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -2793,7 +2793,7 @@ ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas ...@@ -2793,7 +2793,7 @@ ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas
struct._setBuff(buffer) struct._setBuff(buffer)
struct.set("name", "********") struct.set("name", "********")
buffer = struct.buffer buffer = struct.buffer
return false await return false
ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -2839,10 +2839,10 @@ ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, dat ...@@ -2839,10 +2839,10 @@ ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, dat
if room.ready_player_count_without_host >= room.max_player - 1 if room.ready_player_count_without_host >= room.max_player - 1
#log.info "all ready" #log.info "all ready"
setTimeout (()-> wait_room_start(ROOM_all[client.rid], settings.modules.random_duel.ready_time);return), 1000 setTimeout (()-> wait_room_start(ROOM_all[client.rid], settings.modules.random_duel.ready_time);return), 1000
return await return
ygopro.ctos_follow 'REQUEST_FIELD', true, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'REQUEST_FIELD', true, (buffer, info, client, server, datas)->
return true await return true
ygopro.stoc_follow 'FIELD_FINISH', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'FIELD_FINISH', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -2854,7 +2854,7 @@ ygopro.stoc_follow 'FIELD_FINISH', true, (buffer, info, client, server, datas)-> ...@@ -2854,7 +2854,7 @@ ygopro.stoc_follow 'FIELD_FINISH', true, (buffer, info, client, server, datas)->
if client.last_hint_msg if client.last_hint_msg
ygopro.stoc_send(client, 'GAME_MSG', client.last_hint_msg) ygopro.stoc_send(client, 'GAME_MSG', client.last_hint_msg)
ygopro.stoc_send(client, 'GAME_MSG', client.last_game_msg) ygopro.stoc_send(client, 'GAME_MSG', client.last_game_msg)
return true await return true
ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -2867,6 +2867,7 @@ ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)-> ...@@ -2867,6 +2867,7 @@ ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)->
CLIENT_send_replays(player, room) CLIENT_send_replays(player, room)
for player in room.watchers when player for player in room.watchers when player
CLIENT_send_replays(player, room) CLIENT_send_replays(player, room)
await return
wait_room_start = (room, time)-> wait_room_start = (room, time)->
if room and room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN and room.ready_player_count_without_host >= room.max_player - 1 if room and room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN and room.ready_player_count_without_host >= room.max_player - 1
...@@ -2881,7 +2882,7 @@ wait_room_start = (room, time)-> ...@@ -2881,7 +2882,7 @@ wait_room_start = (room, time)->
ROOM_ban_player(player.name, player.ip, "${random_ban_reason_zombie}") ROOM_ban_player(player.name, player.ip, "${random_ban_reason_zombie}")
ygopro.stoc_send_chat_to_room(room, "#{player.name} ${kicked_by_system}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat_to_room(room, "#{player.name} ${kicked_by_system}", ygopro.constants.COLORS.RED)
CLIENT_kick(player) CLIENT_kick(player)
return await return
wait_room_start_arena = (room)-> wait_room_start_arena = (room)->
if room and room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN and room.waiting_for_player if room and room.duel_stage == ygopro.constants.DUEL_STAGE.BEGIN and room.waiting_for_player
...@@ -2897,17 +2898,17 @@ wait_room_start_arena = (room)-> ...@@ -2897,17 +2898,17 @@ wait_room_start_arena = (room)->
if room.waiting_for_player_interval if room.waiting_for_player_interval
clearInterval room.waiting_for_player_interval clearInterval room.waiting_for_player_interval
room.waiting_for_player_interval = null room.waiting_for_player_interval = null
return await return
#tip #tip
ygopro.stoc_send_random_tip = (client)-> ygopro.stoc_send_random_tip = (client)->
if settings.modules.tips.enabled && tips.tips.length if settings.modules.tips.enabled && tips.tips.length
ygopro.stoc_send_chat(client, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)]) ygopro.stoc_send_chat(client, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)])
return await return
ygopro.stoc_send_random_tip_to_room = (room)-> ygopro.stoc_send_random_tip_to_room = (room)->
if settings.modules.tips.enabled && tips.tips.length if settings.modules.tips.enabled && tips.tips.length
ygopro.stoc_send_chat_to_room(room, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)]) ygopro.stoc_send_chat_to_room(room, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)])
return await return
load_tips = global.load_tips = (callback)-> load_tips = global.load_tips = (callback)->
request request
...@@ -2924,7 +2925,7 @@ load_tips = global.load_tips = (callback)-> ...@@ -2924,7 +2925,7 @@ load_tips = global.load_tips = (callback)->
if callback if callback
callback(error, body) callback(error, body)
return return
return await return
if settings.modules.tips.get if settings.modules.tips.get
load_tips() load_tips()
...@@ -3005,7 +3006,7 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server, datas)-> ...@@ -3005,7 +3006,7 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server, datas)->
#log.info 'DECK POST OK', response.statusCode, client.name, body #log.info 'DECK POST OK', response.statusCode, client.name, body
return return
client.deck_saved = true client.deck_saved = true
return await return
ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3015,7 +3016,7 @@ ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)-> ...@@ -3015,7 +3016,7 @@ ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)->
if room.random_type and room.turn < 3 and not client.flee_free and not settings.modules.test_mode.surrender_anytime and not (room.random_type=='M' and settings.modules.random_duel.record_match_scores) if room.random_type and room.turn < 3 and not client.flee_free and not settings.modules.test_mode.surrender_anytime and not (room.random_type=='M' and settings.modules.random_duel.record_match_scores)
ygopro.stoc_send_chat(client, "${surrender_denied}", ygopro.constants.COLORS.BABYBLUE) ygopro.stoc_send_chat(client, "${surrender_denied}", ygopro.constants.COLORS.BABYBLUE)
return true return true
return false await return false
report_to_big_brother = global.report_to_big_brother = (roomname, sender, ip, level, content, match) -> report_to_big_brother = global.report_to_big_brother = (roomname, sender, ip, level, content, match) ->
return unless settings.modules.big_brother.enabled return unless settings.modules.big_brother.enabled
...@@ -3036,7 +3037,7 @@ report_to_big_brother = global.report_to_big_brother = (roomname, sender, ip, le ...@@ -3036,7 +3037,7 @@ report_to_big_brother = global.report_to_big_brother = (roomname, sender, ip, le
#else #else
#log.info 'BIG BROTHER OK', response.statusCode, roomname, body #log.info 'BIG BROTHER OK', response.statusCode, roomname, body
return return
return await return
ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3194,7 +3195,7 @@ ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server, datas)-> ...@@ -3194,7 +3195,7 @@ ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server, datas)->
if client.abuse_count>=5 if client.abuse_count>=5
ygopro.stoc_send_chat_to_room(room, "#{client.name} ${chat_banned}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat_to_room(room, "#{client.name} ${chat_banned}", ygopro.constants.COLORS.RED)
ROOM_ban_player(client.name, client.ip, "${random_ban_reason_abuse}") ROOM_ban_player(client.name, client.ip, "${random_ban_reason_abuse}")
return cancel await return cancel
ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
if settings.modules.reconnect.enabled and client.pre_reconnecting if settings.modules.reconnect.enabled and client.pre_reconnecting
...@@ -3295,13 +3296,13 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)-> ...@@ -3295,13 +3296,13 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
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 await 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 and (room.random_type or room.arena) return unless room and (room.random_type or room.arena)
room.last_active_time = moment() room.last_active_time = moment()
return await return
ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3341,7 +3342,7 @@ ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server, datas)-> ...@@ -3341,7 +3342,7 @@ ygopro.stoc_follow 'TIME_LIMIT', true, (buffer, info, client, server, datas)->
return unless settings.modules.heartbeat_detection.enabled and room.duel_stage == ygopro.constants.DUEL_STAGE.DUELING and !room.windbot return unless settings.modules.heartbeat_detection.enabled and room.duel_stage == ygopro.constants.DUEL_STAGE.DUELING and !room.windbot
if check if check
CLIENT_heartbeat_register(client, false) CLIENT_heartbeat_register(client, false)
return false await return false
ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3360,7 +3361,7 @@ ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server, datas)- ...@@ -3360,7 +3361,7 @@ ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server, datas)-
client.heartbeat_protected = false client.heartbeat_protected = false
client.heartbeat_responsed = true client.heartbeat_responsed = true
CLIENT_heartbeat_unregister(client) CLIENT_heartbeat_unregister(client)
return await return
ygopro.ctos_follow 'HAND_RESULT', false, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'HAND_RESULT', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3370,7 +3371,7 @@ ygopro.ctos_follow 'HAND_RESULT', false, (buffer, info, client, server, datas)-> ...@@ -3370,7 +3371,7 @@ ygopro.ctos_follow 'HAND_RESULT', false, (buffer, info, client, server, datas)->
if client.pos == 0 if client.pos == 0
room.waiting_for_player = room.waiting_for_player2 room.waiting_for_player = room.waiting_for_player2
room.last_active_time = moment().subtract(settings.modules.random_duel.hang_timeout - 19, 's') room.last_active_time = moment().subtract(settings.modules.random_duel.hang_timeout - 19, 's')
return await return
ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)-> ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3379,7 +3380,7 @@ ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)-> ...@@ -3379,7 +3380,7 @@ ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)->
# room.selecting_tp = false # room.selecting_tp = false
return unless room.random_type or room.arena return unless room.random_type or room.arena
room.last_active_time = moment() room.last_active_time = moment()
return await return
ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3405,7 +3406,7 @@ ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)-> ...@@ -3405,7 +3406,7 @@ ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)->
msg: tplayer.name + ": " + info.msg msg: tplayer.name + ": " + info.msg
} }
return true return true
return await return
ygopro.stoc_follow 'SELECT_HAND', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'SELECT_HAND', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3425,12 +3426,12 @@ ygopro.stoc_follow 'SELECT_HAND', true, (buffer, info, client, server, datas)-> ...@@ -3425,12 +3426,12 @@ ygopro.stoc_follow 'SELECT_HAND', true, (buffer, info, client, server, datas)->
return true return true
else else
client.selected_preduel = false client.selected_preduel = false
return false await return false
ygopro.stoc_follow 'HAND_RESULT', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'HAND_RESULT', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
return false unless room return false unless room
return room.determine_firstgo await return room.determine_firstgo
ygopro.stoc_follow 'SELECT_TP', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'SELECT_TP', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3447,7 +3448,7 @@ ygopro.stoc_follow 'SELECT_TP', true, (buffer, info, client, server, datas)-> ...@@ -3447,7 +3448,7 @@ ygopro.stoc_follow 'SELECT_TP', true, (buffer, info, client, server, datas)->
else else
client.selected_preduel = false client.selected_preduel = false
room.selecting_tp = client room.selecting_tp = client
return false await return false
ygopro.stoc_follow 'CHANGE_SIDE', false, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'CHANGE_SIDE', false, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3495,7 +3496,7 @@ ygopro.stoc_follow 'CHANGE_SIDE', false, (buffer, info, client, server, datas)-> ...@@ -3495,7 +3496,7 @@ ygopro.stoc_follow 'CHANGE_SIDE', false, (buffer, info, client, server, datas)->
else else
room.waiting_for_player2 = client room.waiting_for_player2 = client
room.last_active_time = moment() room.last_active_time = moment()
return await return
ygopro.stoc_follow 'REPLAY', true, (buffer, info, client, server, datas)-> ygopro.stoc_follow 'REPLAY', true, (buffer, info, client, server, datas)->
room=ROOM_all[client.rid] room=ROOM_all[client.rid]
...@@ -3544,9 +3545,9 @@ ygopro.stoc_follow 'REPLAY', true, (buffer, info, client, server, datas)-> ...@@ -3544,9 +3545,9 @@ ygopro.stoc_follow 'REPLAY', true, (buffer, info, client, server, datas)->
) )
if settings.modules.cloud_replay.enabled and settings.modules.tournament_mode.enabled and settings.modules.tournament_mode.replay_safe if settings.modules.cloud_replay.enabled and settings.modules.tournament_mode.enabled and settings.modules.tournament_mode.replay_safe
ygopro.stoc_send_chat(client, "${cloud_replay_delay_part1}R##{room.cloud_replay_id}${cloud_replay_delay_part2}", ygopro.constants.COLORS.BABYBLUE) ygopro.stoc_send_chat(client, "${cloud_replay_delay_part1}R##{room.cloud_replay_id}${cloud_replay_delay_part2}", ygopro.constants.COLORS.BABYBLUE)
return settings.modules.tournament_mode.enabled and settings.modules.tournament_mode.block_replay_to_player or settings.modules.replay_delay and room.hostinfo.mode == 1 await return settings.modules.tournament_mode.enabled and settings.modules.tournament_mode.block_replay_to_player or settings.modules.replay_delay and room.hostinfo.mode == 1
else else
return settings.modules.replay_delay and room.hostinfo.mode == 1 await return settings.modules.replay_delay and room.hostinfo.mode == 1
if settings.modules.random_duel.enabled if settings.modules.random_duel.enabled
setInterval ()-> setInterval ()->
......
...@@ -2431,7 +2431,7 @@ ...@@ -2431,7 +2431,7 @@
// 功能模块 // 功能模块
// return true to cancel a synchronous message // return true to cancel a synchronous message
ygopro.ctos_follow('PLAYER_INFO', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('PLAYER_INFO', true, async function(buffer, info, client, server, datas) {
var geo, lang, name, name_full, struct, vpass; var geo, lang, name, name_full, struct, vpass;
// checkmate use username$password, but here don't // checkmate use username$password, but here don't
// so remove the password // so remove the password
...@@ -2498,7 +2498,7 @@ ...@@ -2498,7 +2498,7 @@
return false; return false;
}); });
ygopro.ctos_follow('JOIN_GAME', false, function(buffer, info, client, server, datas) { ygopro.ctos_follow('JOIN_GAME', false, async function(buffer, info, client, server, datas) {
var available_logs, check_buffer_indentity, create_room_with_action, len3, len4, n, name, o, pre_room, recover_match, ref3, ref4, replay_id, room; var available_logs, check_buffer_indentity, create_room_with_action, len3, len4, n, name, o, pre_room, recover_match, ref3, ref4, replay_id, room;
//log.info info //log.info info
info.pass = info.pass.trim(); info.pass = info.pass.trim();
...@@ -3057,7 +3057,7 @@ ...@@ -3057,7 +3057,7 @@
} }
}); });
ygopro.stoc_follow('JOIN_GAME', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('JOIN_GAME', false, async function(buffer, info, client, server, datas) {
var len3, n, player, recorder, ref3, room, watcher; var len3, n, player, recorder, ref3, room, watcher;
//欢迎信息 //欢迎信息
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
...@@ -3157,7 +3157,7 @@ ...@@ -3157,7 +3157,7 @@
}); });
// 登场台词 // 登场台词
load_dialogues = global.load_dialogues = function(callback) { load_dialogues = global.load_dialogues = async function(callback) {
request({ request({
url: settings.modules.dialogues.get, url: settings.modules.dialogues.get,
json: true json: true
...@@ -3180,7 +3180,7 @@ ...@@ -3180,7 +3180,7 @@
load_dialogues(); load_dialogues();
} }
ygopro.stoc_follow('GAME_MSG', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('GAME_MSG', true, async function(buffer, info, client, server, datas) {
var card, chain, check, count, cpos, deck_found, found, hint_type, i, id, len3, len4, len5, len6, limbo_found, line, loc, max_loop, msg, n, o, oppo_pos, p, phase, player, playertype, pos, ppos, q, r, reason, ref3, ref4, ref5, ref6, ref7, ref8, room, trigger_location, val, win_pos; var card, chain, check, count, cpos, deck_found, found, hint_type, i, id, len3, len4, len5, len6, limbo_found, line, loc, max_loop, msg, n, o, oppo_pos, p, phase, player, playertype, pos, ppos, q, r, reason, ref3, ref4, ref5, ref6, ref7, ref8, room, trigger_location, val, win_pos;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && !client.reconnecting)) { if (!(room && !client.reconnecting)) {
...@@ -3576,7 +3576,7 @@ ...@@ -3576,7 +3576,7 @@
}); });
//房间管理 //房间管理
ygopro.ctos_follow('HS_TOOBSERVER', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('HS_TOOBSERVER', true, async function(buffer, info, client, server, datas) {
var len3, n, player, ref3, room; var len3, n, player, ref3, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -3600,7 +3600,7 @@ ...@@ -3600,7 +3600,7 @@
return false; return false;
}); });
ygopro.ctos_follow('HS_KICK', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('HS_KICK', true, async function(buffer, info, client, server, datas) {
var len3, n, player, ref3, room; var len3, n, player, ref3, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -3628,7 +3628,7 @@ ...@@ -3628,7 +3628,7 @@
return false; return false;
}); });
ygopro.stoc_follow('TYPE_CHANGE', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('TYPE_CHANGE', true, async function(buffer, info, client, server, datas) {
var is_host, selftype; var is_host, selftype;
selftype = info.type & 0xf; selftype = info.type & 0xf;
is_host = ((info.type >> 4) & 0xf) !== 0; is_host = ((info.type >> 4) & 0xf) !== 0;
...@@ -3641,7 +3641,7 @@ ...@@ -3641,7 +3641,7 @@
return false; return false;
}); });
ygopro.stoc_follow('HS_PLAYER_ENTER', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('HS_PLAYER_ENTER', true, async function(buffer, info, client, server, datas) {
var pos, room, struct; var pos, room, struct;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && settings.modules.hide_name && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN)) { if (!(room && settings.modules.hide_name && room.duel_stage === ygopro.constants.DUEL_STAGE.BEGIN)) {
...@@ -3657,7 +3657,7 @@ ...@@ -3657,7 +3657,7 @@
return false; return false;
}); });
ygopro.stoc_follow('HS_PLAYER_CHANGE', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('HS_PLAYER_CHANGE', false, async function(buffer, info, client, server, datas) {
var is_ready, len3, len4, n, o, p1, p2, player, pos, ref3, ref4, room; var is_ready, len3, len4, n, o, 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)) {
...@@ -3728,11 +3728,11 @@ ...@@ -3728,11 +3728,11 @@
} }
}); });
ygopro.ctos_follow('REQUEST_FIELD', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('REQUEST_FIELD', true, async function(buffer, info, client, server, datas) {
return true; return true;
}); });
ygopro.stoc_follow('FIELD_FINISH', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('FIELD_FINISH', true, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && settings.modules.reconnect.enabled)) { if (!(room && settings.modules.reconnect.enabled)) {
...@@ -3750,8 +3750,8 @@ ...@@ -3750,8 +3750,8 @@
return true; return true;
}); });
ygopro.stoc_follow('DUEL_END', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('DUEL_END', false, async function(buffer, info, client, server, datas) {
var len3, len4, n, o, player, ref3, ref4, results, room; var len3, len4, n, o, player, ref3, ref4, 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;
...@@ -3768,18 +3768,16 @@ ...@@ -3768,18 +3768,16 @@
} }
} }
ref4 = room.watchers; ref4 = room.watchers;
results = [];
for (o = 0, len4 = ref4.length; o < len4; o++) { for (o = 0, len4 = ref4.length; o < len4; o++) {
player = ref4[o]; player = ref4[o];
if (player) { if (player) {
results.push(CLIENT_send_replays(player, room)); CLIENT_send_replays(player, room);
} }
} }
return results;
} }
}); });
wait_room_start = function(room, time) { wait_room_start = async function(room, time) {
var len3, n, player, ref3; var len3, n, 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;
...@@ -3804,7 +3802,7 @@ ...@@ -3804,7 +3802,7 @@
} }
}; };
wait_room_start_arena = function(room) { wait_room_start_arena = async function(room) {
var display_name, len3, n, player, ref3; var display_name, len3, n, 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;
...@@ -3832,19 +3830,19 @@ ...@@ -3832,19 +3830,19 @@
}; };
//tip //tip
ygopro.stoc_send_random_tip = function(client) { ygopro.stoc_send_random_tip = async function(client) {
if (settings.modules.tips.enabled && tips.tips.length) { if (settings.modules.tips.enabled && tips.tips.length) {
ygopro.stoc_send_chat(client, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)]); ygopro.stoc_send_chat(client, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)]);
} }
}; };
ygopro.stoc_send_random_tip_to_room = function(room) { ygopro.stoc_send_random_tip_to_room = async function(room) {
if (settings.modules.tips.enabled && tips.tips.length) { if (settings.modules.tips.enabled && tips.tips.length) {
ygopro.stoc_send_chat_to_room(room, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)]); ygopro.stoc_send_chat_to_room(room, "Tip: " + tips.tips[Math.floor(Math.random() * tips.tips.length)]);
} }
}; };
load_tips = global.load_tips = function(callback) { load_tips = global.load_tips = async function(callback) {
request({ request({
url: settings.modules.tips.get, url: settings.modules.tips.get,
json: true json: true
...@@ -3878,7 +3876,7 @@ ...@@ -3878,7 +3876,7 @@
}, 30000); }, 30000);
} }
ygopro.stoc_follow('DUEL_START', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('DUEL_START', false, async function(buffer, info, client, server, datas) {
var deck_arena, deck_name, deck_text, len3, len4, n, o, player, ref3, ref4, room; var deck_arena, deck_name, deck_text, len3, len4, n, o, player, ref3, ref4, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && !client.reconnecting)) { if (!(room && !client.reconnecting)) {
...@@ -3988,7 +3986,7 @@ ...@@ -3988,7 +3986,7 @@
} }
}); });
ygopro.ctos_follow('SURRENDER', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('SURRENDER', true, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4004,7 +4002,7 @@ ...@@ -4004,7 +4002,7 @@
return false; return false;
}); });
report_to_big_brother = global.report_to_big_brother = function(roomname, sender, ip, level, content, match) { report_to_big_brother = global.report_to_big_brother = async function(roomname, sender, ip, level, content, match) {
if (!settings.modules.big_brother.enabled) { if (!settings.modules.big_brother.enabled) {
return; return;
} }
...@@ -4032,7 +4030,7 @@ ...@@ -4032,7 +4030,7 @@
//else //else
//log.info 'BIG BROTHER OK', response.statusCode, roomname, body //log.info 'BIG BROTHER OK', response.statusCode, roomname, body
ygopro.ctos_follow('CHAT', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('CHAT', true, async function(buffer, info, client, server, datas) {
var cancel, ccolor, cip, cmd, cmsg, cname, color, cvalue, msg, name, oldmsg, ref3, room, struct, windbot; var cancel, ccolor, cip, cmd, cmsg, cname, color, cvalue, msg, name, oldmsg, ref3, room, struct, windbot;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4244,7 +4242,7 @@ ...@@ -4244,7 +4242,7 @@
return cancel; return cancel;
}); });
ygopro.ctos_follow('UPDATE_DECK', true, function(buffer, info, client, server, datas) { ygopro.ctos_follow('UPDATE_DECK', true, async function(buffer, info, client, server, datas) {
var buff_main, buff_side, card, current_deck, deck, deck_array, deck_main, deck_side, deck_text, deckbuf, decks, found_deck, i, len3, len4, line, n, o, oppo_pos, recover_player_data, room, struct, win_pos; var buff_main, buff_side, card, current_deck, deck, deck_array, deck_main, deck_side, deck_text, deckbuf, decks, found_deck, i, len3, len4, line, n, o, oppo_pos, recover_player_data, 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)) {
...@@ -4391,7 +4389,7 @@ ...@@ -4391,7 +4389,7 @@
return false; return false;
}); });
ygopro.ctos_follow('RESPONSE', false, function(buffer, info, client, server, datas) { ygopro.ctos_follow('RESPONSE', false, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!(room && (room.random_type || room.arena))) { if (!(room && (room.random_type || room.arena))) {
...@@ -4400,7 +4398,7 @@ ...@@ -4400,7 +4398,7 @@
room.last_active_time = moment(); room.last_active_time = moment();
}); });
ygopro.stoc_follow('TIME_LIMIT', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('TIME_LIMIT', true, async function(buffer, info, client, server, datas) {
var check, cur_players, room; var check, cur_players, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4457,7 +4455,7 @@ ...@@ -4457,7 +4455,7 @@
return false; return false;
}); });
ygopro.ctos_follow('TIME_CONFIRM', false, function(buffer, info, client, server, datas) { ygopro.ctos_follow('TIME_CONFIRM', false, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4485,7 +4483,7 @@ ...@@ -4485,7 +4483,7 @@
} }
}); });
ygopro.ctos_follow('HAND_RESULT', false, function(buffer, info, client, server, datas) { ygopro.ctos_follow('HAND_RESULT', false, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4500,7 +4498,7 @@ ...@@ -4500,7 +4498,7 @@
} }
}); });
ygopro.ctos_follow('TP_RESULT', false, function(buffer, info, client, server, datas) { ygopro.ctos_follow('TP_RESULT', false, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4514,7 +4512,7 @@ ...@@ -4514,7 +4512,7 @@
room.last_active_time = moment(); room.last_active_time = moment();
}); });
ygopro.stoc_follow('CHAT', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('CHAT', true, async function(buffer, info, client, server, datas) {
var len3, n, pid, player, ref3, room, tcolor, tplayer; var len3, n, pid, player, ref3, room, tcolor, tplayer;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
pid = info.player; pid = info.player;
...@@ -4553,7 +4551,7 @@ ...@@ -4553,7 +4551,7 @@
} }
}); });
ygopro.stoc_follow('SELECT_HAND', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('SELECT_HAND', true, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4581,7 +4579,7 @@ ...@@ -4581,7 +4579,7 @@
return false; return false;
}); });
ygopro.stoc_follow('HAND_RESULT', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('HAND_RESULT', true, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4590,7 +4588,7 @@ ...@@ -4590,7 +4588,7 @@
return room.determine_firstgo; return room.determine_firstgo;
}); });
ygopro.stoc_follow('SELECT_TP', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('SELECT_TP', true, async function(buffer, info, client, server, datas) {
var room; var room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4613,7 +4611,7 @@ ...@@ -4613,7 +4611,7 @@
return false; return false;
}); });
ygopro.stoc_follow('CHANGE_SIDE', false, function(buffer, info, client, server, datas) { ygopro.stoc_follow('CHANGE_SIDE', false, async function(buffer, info, client, server, datas) {
var room, room_name, sinterval, temp_log; var room, room_name, sinterval, temp_log;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
...@@ -4672,7 +4670,7 @@ ...@@ -4672,7 +4670,7 @@
} }
}); });
ygopro.stoc_follow('REPLAY', true, function(buffer, info, client, server, datas) { ygopro.stoc_follow('REPLAY', true, async function(buffer, info, client, server, datas) {
var duellog, dueltime, i, len3, len4, n, o, player, ref3, ref4, replay_filename, room; var duellog, dueltime, i, len3, len4, n, o, player, ref3, ref4, replay_filename, room;
room = ROOM_all[client.rid]; room = ROOM_all[client.rid];
if (!room) { if (!room) {
......
...@@ -18,7 +18,7 @@ YGOProMessageHelper = require("./YGOProMessages.js") # 为 SRVPro2 准备的库 ...@@ -18,7 +18,7 @@ YGOProMessageHelper = require("./YGOProMessages.js") # 为 SRVPro2 准备的库
translateHandler = (handler) -> translateHandler = (handler) ->
return (buffer, info, datas, params)-> return (buffer, info, datas, params)->
await return handler(buffer, info, params.client, params.server, datas) await return await handler(buffer, info, params.client, params.server, datas)
@stoc_follow = (proto, synchronous, callback)-> @stoc_follow = (proto, synchronous, callback)->
@helper.addHandler("STOC_#{proto}", translateHandler(callback), synchronous, 1) @helper.addHandler("STOC_#{proto}", translateHandler(callback), synchronous, 1)
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
translateHandler = function(handler) { translateHandler = function(handler) {
return async function(buffer, info, datas, params) { return async function(buffer, info, datas, params) {
return handler(buffer, info, params.client, params.server, datas); return (await handler(buffer, info, params.client, params.server, datas));
}; };
}; };
......
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