Commit 1f8ab225 authored by nanahira's avatar nanahira

push most vars into global

parent ef8118a7
...@@ -131,11 +131,11 @@ try ...@@ -131,11 +131,11 @@ try
catch e catch e
log.info e unless e.code == 'ENOENT' log.info e unless e.code == 'ENOENT'
setting_save = (settings) -> setting_save = global.setting_save = (settings) ->
fs.writeFileSync(settings.file, JSON.stringify(settings, null, 2)) fs.writeFileSync(settings.file, JSON.stringify(settings, null, 2))
return return
setting_change = (settings, path, val) -> setting_change = global.setting_change = (settings, path, val) ->
# path should be like "modules:welcome" # path should be like "modules:welcome"
log.info("setting changed", path, val) if _.isString(val) log.info("setting changed", path, val) if _.isString(val)
path=path.split(':') path=path.split(':')
...@@ -260,7 +260,7 @@ catch ...@@ -260,7 +260,7 @@ catch
#settings.version = settings.version_default #settings.version = settings.version_default
log.info "ygopro version 0x"+settings.version.toString(16), "(from config)" log.info "ygopro version 0x"+settings.version.toString(16), "(from config)"
# load the lflist of current date # load the lflist of current date
lflists = [] lflists = global.lflists = []
# expansions/lflist # expansions/lflist
try try
for list in fs.readFileSync('ygopro/expansions/lflist.conf', 'utf8').match(/!.*/g) for list in fs.readFileSync('ygopro/expansions/lflist.conf', 'utf8').match(/!.*/g)
...@@ -416,8 +416,8 @@ if settings.modules.challonge.enabled ...@@ -416,8 +416,8 @@ if settings.modules.challonge.enabled
setInterval(refresh_challonge_cache, settings.modules.challonge.cache_ttl) setInterval(refresh_challonge_cache, settings.modules.challonge.cache_ttl)
# 获取可用内存 # 获取可用内存
memory_usage = 0 memory_usage = global.memory_usage = 0
get_memory_usage = ()-> get_memory_usage = get_memory_usage = ()->
prc_free = exec("free") prc_free = exec("free")
prc_free.stdout.on 'data', (data)-> prc_free.stdout.on 'data', (data)->
lines = data.toString().split(/\n/g) lines = data.toString().split(/\n/g)
...@@ -439,17 +439,17 @@ get_memory_usage = ()-> ...@@ -439,17 +439,17 @@ get_memory_usage = ()->
get_memory_usage() get_memory_usage()
setInterval(get_memory_usage, 3000) setInterval(get_memory_usage, 3000)
Cloud_replay_ids = [] Cloud_replay_ids = global.Cloud_replay_ids = []
ROOM_all = [] ROOM_all = global.ROOM_all = []
ROOM_players_oppentlist = {} ROOM_players_oppentlist = global.ROOM_players_oppentlist = {}
ROOM_players_banned = [] ROOM_players_banned = global.ROOM_players_banned = []
ROOM_players_scores = {} ROOM_players_scores = global.ROOM_players_scores = {}
ROOM_connected_ip = {} ROOM_connected_ip = global.ROOM_connected_ip = {}
ROOM_bad_ip = {} ROOM_bad_ip = global.ROOM_bad_ip = {}
# ban a user manually and permanently # ban a user manually and permanently
ban_user = (name) -> ban_user = global.ban_user = (name) ->
settings.ban.banned_user.push(name) settings.ban.banned_user.push(name)
setting_save(settings) setting_save(settings)
bad_ip=0 bad_ip=0
...@@ -466,7 +466,7 @@ ban_user = (name) -> ...@@ -466,7 +466,7 @@ ban_user = (name) ->
return return
# automatically ban user to use random duel # automatically ban user to use random duel
ROOM_ban_player = (name, ip, reason, countadd = 1)-> ROOM_ban_player = global.ROOM_ban_player = (name, ip, reason, countadd = 1)->
return if settings.modules.test_mode.no_ban_player return if settings.modules.test_mode.no_ban_player
bannedplayer = _.find ROOM_players_banned, (bannedplayer)-> bannedplayer = _.find ROOM_players_banned, (bannedplayer)->
ip == bannedplayer.ip ip == bannedplayer.ip
...@@ -483,28 +483,28 @@ ROOM_ban_player = (name, ip, reason, countadd = 1)-> ...@@ -483,28 +483,28 @@ ROOM_ban_player = (name, ip, reason, countadd = 1)->
#log.info("banned", name, ip, reason, bannedplayer.count) #log.info("banned", name, ip, reason, bannedplayer.count)
return return
ROOM_player_win = (name)-> ROOM_player_win = global.ROOM_player_win = (name)->
if !ROOM_players_scores[name] if !ROOM_players_scores[name]
ROOM_players_scores[name]={win:0, lose:0, flee:0, combo:0} ROOM_players_scores[name]={win:0, lose:0, flee:0, combo:0}
ROOM_players_scores[name].win = ROOM_players_scores[name].win + 1 ROOM_players_scores[name].win = ROOM_players_scores[name].win + 1
ROOM_players_scores[name].combo = ROOM_players_scores[name].combo + 1 ROOM_players_scores[name].combo = ROOM_players_scores[name].combo + 1
return return
ROOM_player_lose = (name)-> ROOM_player_lose = global.ROOM_player_lose = (name)->
if !ROOM_players_scores[name] if !ROOM_players_scores[name]
ROOM_players_scores[name]={win:0, lose:0, flee:0, combo:0} ROOM_players_scores[name]={win:0, lose:0, flee:0, combo:0}
ROOM_players_scores[name].lose = ROOM_players_scores[name].lose + 1 ROOM_players_scores[name].lose = ROOM_players_scores[name].lose + 1
ROOM_players_scores[name].combo = 0 ROOM_players_scores[name].combo = 0
return return
ROOM_player_flee = (name)-> ROOM_player_flee = global.ROOM_player_flee = (name)->
if !ROOM_players_scores[name] if !ROOM_players_scores[name]
ROOM_players_scores[name]={win:0, lose:0, flee:0, combo:0} ROOM_players_scores[name]={win:0, lose:0, flee:0, combo:0}
ROOM_players_scores[name].flee = ROOM_players_scores[name].flee + 1 ROOM_players_scores[name].flee = ROOM_players_scores[name].flee + 1
ROOM_players_scores[name].combo = 0 ROOM_players_scores[name].combo = 0
return return
ROOM_player_get_score = (player)-> ROOM_player_get_score = global.ROOM_player_get_score = (player)->
name = player.name_vpass name = player.name_vpass
score = ROOM_players_scores[name] score = ROOM_players_scores[name]
if !score if !score
...@@ -541,7 +541,7 @@ if settings.modules.random_duel.post_match_scores ...@@ -541,7 +541,7 @@ if settings.modules.random_duel.post_match_scores
return return
, 60000) , 60000)
ROOM_find_or_create_by_name = (name, player_ip)-> ROOM_find_or_create_by_name = global.ROOM_find_or_create_by_name = (name, player_ip)->
uname=name.toUpperCase() uname=name.toUpperCase()
if settings.modules.windbot.enabled and (uname[0...2] == 'AI' or (!settings.modules.random_duel.enabled and uname == '')) if settings.modules.windbot.enabled and (uname[0...2] == 'AI' or (!settings.modules.random_duel.enabled and uname == ''))
return ROOM_find_or_create_ai(name) return ROOM_find_or_create_ai(name)
...@@ -554,7 +554,7 @@ ROOM_find_or_create_by_name = (name, player_ip)-> ...@@ -554,7 +554,7 @@ ROOM_find_or_create_by_name = (name, player_ip)->
else else
return new Room(name) return new Room(name)
ROOM_find_or_create_random = (type, player_ip)-> ROOM_find_or_create_random = global.ROOM_find_or_create_random = (type, player_ip)->
bannedplayer = _.find ROOM_players_banned, (bannedplayer)-> bannedplayer = _.find ROOM_players_banned, (bannedplayer)->
return player_ip == bannedplayer.ip return player_ip == bannedplayer.ip
if bannedplayer if bannedplayer
...@@ -594,7 +594,7 @@ ROOM_find_or_create_random = (type, player_ip)-> ...@@ -594,7 +594,7 @@ ROOM_find_or_create_random = (type, player_ip)->
if result.random_type=='M' then result.welcome = result.welcome + '\n${random_duel_enter_room_match}' if result.random_type=='M' then result.welcome = result.welcome + '\n${random_duel_enter_room_match}'
return result return result
ROOM_find_or_create_ai = (name)-> ROOM_find_or_create_ai = global.ROOM_find_or_create_ai = (name)->
if name == '' if name == ''
name = 'AI' name = 'AI'
namea = name.split('#') namea = name.split('#')
...@@ -622,21 +622,21 @@ ROOM_find_or_create_ai = (name)-> ...@@ -622,21 +622,21 @@ ROOM_find_or_create_ai = (name)->
result.private = true result.private = true
return result return result
ROOM_find_by_name = (name)-> ROOM_find_by_name = global.ROOM_find_by_name = (name)->
result = _.find ROOM_all, (room)-> result = _.find ROOM_all, (room)->
return room and room.name == name return room and room.name == name
return result return result
ROOM_find_by_title = (title)-> ROOM_find_by_title = global.ROOM_find_by_title = (title)->
result = _.find ROOM_all, (room)-> result = _.find ROOM_all, (room)->
return room and room.title == title return room and room.title == title
return result return result
ROOM_find_by_port = (port)-> ROOM_find_by_port = global.ROOM_find_by_port = (port)->
_.find ROOM_all, (room)-> _.find ROOM_all, (room)->
return room and room.port == port return room and room.port == port
ROOM_validate = (name)-> ROOM_validate = global.ROOM_validate = (name)->
client_name_and_pass = name.split('$', 2) client_name_and_pass = name.split('$', 2)
client_name = client_name_and_pass[0] client_name = client_name_and_pass[0]
client_pass = client_name_and_pass[1] client_pass = client_name_and_pass[1]
...@@ -648,7 +648,7 @@ ROOM_validate = (name)-> ...@@ -648,7 +648,7 @@ ROOM_validate = (name)->
room_pass = room_name_and_pass[1] room_pass = room_name_and_pass[1]
client_name == room_name and client_pass != room_pass client_name == room_name and client_pass != room_pass
ROOM_unwelcome = (room, bad_player, reason)-> ROOM_unwelcome = global.ROOM_unwelcome = (room, bad_player, reason)->
return unless room return unless room
for player in room.players for player in room.players
if player and player == bad_player if player and player == bad_player
...@@ -658,7 +658,7 @@ ROOM_unwelcome = (room, bad_player, reason)-> ...@@ -658,7 +658,7 @@ ROOM_unwelcome = (room, bad_player, reason)->
ygopro.stoc_send_chat(player, "${unwelcome_tip_part1}#{reason}${unwelcome_tip_part2}", ygopro.constants.COLORS.BABYBLUE) ygopro.stoc_send_chat(player, "${unwelcome_tip_part1}#{reason}${unwelcome_tip_part2}", ygopro.constants.COLORS.BABYBLUE)
return return
CLIENT_kick = (client) -> CLIENT_kick = global.CLIENT_kick = (client) ->
if !client if !client
return false return false
client.system_kicked = true client.system_kicked = true
...@@ -669,7 +669,7 @@ CLIENT_kick = (client) -> ...@@ -669,7 +669,7 @@ CLIENT_kick = (client) ->
client.destroy() client.destroy()
return true return true
release_disconnect = (dinfo, reconnected) -> release_disconnect = global.release_disconnect = (dinfo, reconnected) ->
if dinfo.old_client and !reconnected if dinfo.old_client and !reconnected
dinfo.old_client.destroy() dinfo.old_client.destroy()
if dinfo.old_server and !reconnected if dinfo.old_server and !reconnected
...@@ -677,7 +677,7 @@ release_disconnect = (dinfo, reconnected) -> ...@@ -677,7 +677,7 @@ release_disconnect = (dinfo, reconnected) ->
clearTimeout(dinfo.timeout) clearTimeout(dinfo.timeout)
return return
CLIENT_get_authorize_key = (client) -> CLIENT_get_authorize_key = global.CLIENT_get_authorize_key = (client) ->
if !settings.modules.mycard.enabled and client.vpass if !settings.modules.mycard.enabled and client.vpass
return client.name_vpass return client.name_vpass
else if settings.modules.mycard.enabled or settings.modules.tournament_mode.enabled or settings.modules.challonge.enabled or client.is_local else if settings.modules.mycard.enabled or settings.modules.tournament_mode.enabled or settings.modules.challonge.enabled or client.is_local
...@@ -685,7 +685,7 @@ CLIENT_get_authorize_key = (client) -> ...@@ -685,7 +685,7 @@ CLIENT_get_authorize_key = (client) ->
else else
return client.ip + ":" + client.name return client.ip + ":" + client.name
CLIENT_reconnect_unregister = (client, reconnected, exact) -> CLIENT_reconnect_unregister = global.CLIENT_reconnect_unregister = (client, reconnected, exact) ->
if !settings.modules.reconnect.enabled if !settings.modules.reconnect.enabled
return false return false
if disconnect_list[CLIENT_get_authorize_key(client)] if disconnect_list[CLIENT_get_authorize_key(client)]
...@@ -696,7 +696,7 @@ CLIENT_reconnect_unregister = (client, reconnected, exact) -> ...@@ -696,7 +696,7 @@ CLIENT_reconnect_unregister = (client, reconnected, exact) ->
return true return true
return false return false
CLIENT_reconnect_register = (client, room_id, error) -> CLIENT_reconnect_register = global.CLIENT_reconnect_register = (client, room_id, error) ->
room = ROOM_all[room_id] room = ROOM_all[room_id]
if client.had_new_reconnection if client.had_new_reconnection
return false return false
...@@ -727,7 +727,7 @@ CLIENT_reconnect_register = (client, room_id, error) -> ...@@ -727,7 +727,7 @@ CLIENT_reconnect_register = (client, room_id, error) ->
ygopro.ctos_send(client.server, 'SURRENDER') ygopro.ctos_send(client.server, 'SURRENDER')
return true return true
CLIENT_import_data = (client, old_client, room) -> CLIENT_import_data = global.CLIENT_import_data = (client, old_client, room) ->
for player,index in room.players for player,index in room.players
if player == old_client if player == old_client
room.players[index] = client room.players[index] = client
...@@ -744,7 +744,7 @@ CLIENT_import_data = (client, old_client, room) -> ...@@ -744,7 +744,7 @@ CLIENT_import_data = (client, old_client, room) ->
old_client.had_new_reconnection = true old_client.had_new_reconnection = true
return return
SERVER_clear_disconnect = (server) -> SERVER_clear_disconnect = global.SERVER_clear_disconnect = (server) ->
return false unless settings.modules.reconnect.enabled return false unless settings.modules.reconnect.enabled
for k,v of disconnect_list for k,v of disconnect_list
if v and server == v.old_server if v and server == v.old_server
...@@ -753,7 +753,7 @@ SERVER_clear_disconnect = (server) -> ...@@ -753,7 +753,7 @@ SERVER_clear_disconnect = (server) ->
return true return true
return false return false
ROOM_clear_disconnect = (room_id) -> ROOM_clear_disconnect = global.ROOM_clear_disconnect = (room_id) ->
return false unless settings.modules.reconnect.enabled return false unless settings.modules.reconnect.enabled
for k,v of disconnect_list for k,v of disconnect_list
if v and room_id == v.room_id if v and room_id == v.room_id
...@@ -762,7 +762,7 @@ ROOM_clear_disconnect = (room_id) -> ...@@ -762,7 +762,7 @@ ROOM_clear_disconnect = (room_id) ->
return true return true
return false return false
CLIENT_is_player = (client, room) -> CLIENT_is_player = global.CLIENT_is_player = (client, room) ->
is_player = false is_player = false
for player in room.players for player in room.players
if client == player if client == player
...@@ -770,7 +770,7 @@ CLIENT_is_player = (client, room) -> ...@@ -770,7 +770,7 @@ CLIENT_is_player = (client, room) ->
break break
return is_player and client.pos <= 3 return is_player and client.pos <= 3
CLIENT_is_able_to_reconnect = (client, deckbuf) -> CLIENT_is_able_to_reconnect = global.CLIENT_is_able_to_reconnect = (client, deckbuf) ->
unless settings.modules.reconnect.enabled unless settings.modules.reconnect.enabled
return false return false
if client.system_kicked if client.system_kicked
...@@ -786,20 +786,20 @@ CLIENT_is_able_to_reconnect = (client, deckbuf) -> ...@@ -786,20 +786,20 @@ CLIENT_is_able_to_reconnect = (client, deckbuf) ->
return false return false
return true return true
CLIENT_get_kick_reconnect_target = (client, deckbuf) -> CLIENT_get_kick_reconnect_target = global.CLIENT_get_kick_reconnect_target = (client, deckbuf) ->
for room in ROOM_all when room and room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN and !room.windbot for room in ROOM_all when room and room.duel_stage != ygopro.constants.DUEL_STAGE.BEGIN and !room.windbot
for player in room.get_playing_player() when !player.closed and player.name == client.name and (settings.modules.challonge.enabled or player.pass == client.pass) and (settings.modules.mycard.enabled or settings.modules.tournament_mode.enabled or player.ip == client.ip or (client.vpass and client.vpass == player.vpass)) and (!deckbuf or _.isEqual(player.start_deckbuf, deckbuf)) for player in room.get_playing_player() when !player.closed and player.name == client.name and (settings.modules.challonge.enabled or player.pass == client.pass) and (settings.modules.mycard.enabled or settings.modules.tournament_mode.enabled or player.ip == client.ip or (client.vpass and client.vpass == player.vpass)) and (!deckbuf or _.isEqual(player.start_deckbuf, deckbuf))
return player return player
return null return null
CLIENT_is_able_to_kick_reconnect = (client, deckbuf) -> CLIENT_is_able_to_kick_reconnect = global.CLIENT_is_able_to_kick_reconnect = (client, deckbuf) ->
unless settings.modules.reconnect.enabled and settings.modules.reconnect.allow_kick_reconnect unless settings.modules.reconnect.enabled and settings.modules.reconnect.allow_kick_reconnect
return false return false
if !CLIENT_get_kick_reconnect_target(client, deckbuf) if !CLIENT_get_kick_reconnect_target(client, deckbuf)
return false return false
return true return true
CLIENT_send_pre_reconnect_info = (client, room, old_client) -> CLIENT_send_pre_reconnect_info = global.CLIENT_send_pre_reconnect_info = (client, room, old_client) ->
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
...@@ -815,7 +815,7 @@ CLIENT_send_pre_reconnect_info = (client, room, old_client) -> ...@@ -815,7 +815,7 @@ CLIENT_send_pre_reconnect_info = (client, room, old_client) ->
}) })
return return
CLIENT_send_reconnect_info = (client, server, room) -> CLIENT_send_reconnect_info = global.CLIENT_send_reconnect_info = (client, server, room) ->
client.reconnecting = true client.reconnecting = true
ygopro.stoc_send_chat(client, "${reconnecting_to_room}", ygopro.constants.COLORS.BABYBLUE) ygopro.stoc_send_chat(client, "${reconnecting_to_room}", ygopro.constants.COLORS.BABYBLUE)
switch room.duel_stage switch room.duel_stage
...@@ -842,7 +842,7 @@ CLIENT_send_reconnect_info = (client, server, room) -> ...@@ -842,7 +842,7 @@ CLIENT_send_reconnect_info = (client, server, room) ->
break break
return return
CLIENT_pre_reconnect = (client) -> CLIENT_pre_reconnect = global.CLIENT_pre_reconnect = (client) ->
if CLIENT_is_able_to_reconnect(client) if CLIENT_is_able_to_reconnect(client)
dinfo = disconnect_list[CLIENT_get_authorize_key(client)] dinfo = disconnect_list[CLIENT_get_authorize_key(client)]
client.pre_reconnecting = true client.pre_reconnecting = true
...@@ -857,7 +857,7 @@ CLIENT_pre_reconnect = (client) -> ...@@ -857,7 +857,7 @@ CLIENT_pre_reconnect = (client) ->
CLIENT_send_pre_reconnect_info(client, ROOM_all[player.rid], player) CLIENT_send_pre_reconnect_info(client, ROOM_all[player.rid], player)
return return
CLIENT_reconnect = (client) -> CLIENT_reconnect = global.CLIENT_reconnect = (client) ->
if !CLIENT_is_able_to_reconnect(client) if !CLIENT_is_able_to_reconnect(client)
ygopro.stoc_send_chat(client, "${reconnect_failed}", ygopro.constants.COLORS.RED) ygopro.stoc_send_chat(client, "${reconnect_failed}", ygopro.constants.COLORS.RED)
CLIENT_kick(client) CLIENT_kick(client)
...@@ -883,7 +883,7 @@ CLIENT_reconnect = (client) -> ...@@ -883,7 +883,7 @@ CLIENT_reconnect = (client) ->
CLIENT_reconnect_unregister(client, true) CLIENT_reconnect_unregister(client, true)
return return
CLIENT_kick_reconnect = (client, deckbuf) -> CLIENT_kick_reconnect = global.CLIENT_kick_reconnect = (client, deckbuf) ->
if !CLIENT_is_able_to_kick_reconnect(client) if !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)
CLIENT_kick(client) CLIENT_kick(client)
...@@ -915,7 +915,7 @@ CLIENT_kick_reconnect = (client, deckbuf) -> ...@@ -915,7 +915,7 @@ CLIENT_kick_reconnect = (client, deckbuf) ->
if settings.modules.reconnect.enabled if settings.modules.reconnect.enabled
disconnect_list = {} # {old_client, old_server, room_id, timeout, deckbuf} disconnect_list = {} # {old_client, old_server, room_id, timeout, deckbuf}
CLIENT_heartbeat_unregister = (client) -> CLIENT_heartbeat_unregister = global.CLIENT_heartbeat_unregister = (client) ->
if !settings.modules.heartbeat_detection.enabled or !client.heartbeat_timeout if !settings.modules.heartbeat_detection.enabled or !client.heartbeat_timeout
return false return false
clearTimeout(client.heartbeat_timeout) clearTimeout(client.heartbeat_timeout)
...@@ -923,7 +923,7 @@ CLIENT_heartbeat_unregister = (client) -> ...@@ -923,7 +923,7 @@ CLIENT_heartbeat_unregister = (client) ->
#log.info(2, client.name) #log.info(2, client.name)
return true return true
CLIENT_heartbeat_register = (client, send) -> CLIENT_heartbeat_register = global.CLIENT_heartbeat_register = (client, send) ->
if !settings.modules.heartbeat_detection.enabled or client.closed or client.is_post_watcher or client.pre_reconnecting or client.reconnecting or client.waiting_for_last or client.pos > 3 or client.heartbeat_protected if !settings.modules.heartbeat_detection.enabled or client.closed or client.is_post_watcher or client.pre_reconnecting or client.reconnecting or client.waiting_for_last or client.pos > 3 or client.heartbeat_protected
return false return false
if client.heartbeat_timeout if client.heartbeat_timeout
...@@ -946,10 +946,10 @@ CLIENT_heartbeat_register = (client, send) -> ...@@ -946,10 +946,10 @@ CLIENT_heartbeat_register = (client, send) ->
#log.info(1, client.name) #log.info(1, client.name)
return true return true
CLIENT_is_banned_by_mc = (client) -> CLIENT_is_banned_by_mc = global.CLIENT_is_banned_by_mc = (client) ->
return client.ban_mc and client.ban_mc.banned and moment().isBefore(client.ban_mc.until) return client.ban_mc and client.ban_mc.banned and moment().isBefore(client.ban_mc.until)
CLIENT_send_replays = (client, room) -> CLIENT_send_replays = global.CLIENT_send_replays = (client, room) ->
return false unless settings.modules.replay_delay and not (settings.modules.tournament_mode.enabled and settings.modules.tournament_mode.replay_safe and settings.modules.tournament_mode.block_replay_to_player) and room.replays.length and room.hostinfo.mode == 1 and !client.replays_sent and !client.closed return false unless settings.modules.replay_delay and not (settings.modules.tournament_mode.enabled and settings.modules.tournament_mode.replay_safe and settings.modules.tournament_mode.block_replay_to_player) and room.replays.length and room.hostinfo.mode == 1 and !client.replays_sent and !client.closed
client.replays_sent = true client.replays_sent = true
i = 0 i = 0
...@@ -960,7 +960,7 @@ CLIENT_send_replays = (client, room) -> ...@@ -960,7 +960,7 @@ CLIENT_send_replays = (client, room) ->
ygopro.stoc_send(client, "REPLAY", buffer) ygopro.stoc_send(client, "REPLAY", buffer)
return true return true
SOCKET_flush_data = (sk, datas) -> SOCKET_flush_data = global.SOCKET_flush_data = (sk, datas) ->
if !sk or sk.closed if !sk or sk.closed
return false return false
for buffer in datas for buffer in datas
...@@ -2262,7 +2262,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)-> ...@@ -2262,7 +2262,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
return return
# 登场台词 # 登场台词
load_dialogues = () -> load_dialogues = global.load_dialogues = () ->
request request
url: settings.modules.dialogues.get url: settings.modules.dialogues.get
json: true json: true
...@@ -2718,7 +2718,7 @@ ygopro.stoc_send_random_tip_to_room = (room)-> ...@@ -2718,7 +2718,7 @@ ygopro.stoc_send_random_tip_to_room = (room)->
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 return
load_tips = ()-> load_tips = global.load_tips = ()->
request request
url: settings.modules.tips.get url: settings.modules.tips.get
json: true json: true
...@@ -2818,7 +2818,7 @@ ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)-> ...@@ -2818,7 +2818,7 @@ ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)->
return true return true
return false return false
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
request.post { url : settings.modules.big_brother.post , form : { request.post { url : settings.modules.big_brother.post , form : {
accesskey: settings.modules.big_brother.accesskey, accesskey: settings.modules.big_brother.accesskey,
...@@ -3381,9 +3381,9 @@ setInterval ()-> ...@@ -3381,9 +3381,9 @@ setInterval ()->
# spawn windbot # spawn windbot
windbot_looplimit = 0 windbot_looplimit = 0
windbot_process = null windbot_process = global.windbot_process = null
spawn_windbot = () -> spawn_windbot = global.spawn_windbot = () ->
if /^win/.test(process.platform) if /^win/.test(process.platform)
windbot_bin = 'WindBot.exe' windbot_bin = 'WindBot.exe'
windbot_parameters = [] windbot_parameters = []
......
...@@ -128,11 +128,11 @@ ...@@ -128,11 +128,11 @@
} }
} }
setting_save = function(settings) { setting_save = global.setting_save = function(settings) {
fs.writeFileSync(settings.file, JSON.stringify(settings, null, 2)); fs.writeFileSync(settings.file, JSON.stringify(settings, null, 2));
}; };
setting_change = function(settings, path, val) { setting_change = global.setting_change = function(settings, path, val) {
var key, target; var key, target;
if (_.isString(val)) { if (_.isString(val)) {
log.info("setting changed", path, val); log.info("setting changed", path, val);
...@@ -288,7 +288,7 @@ ...@@ -288,7 +288,7 @@
log.info("ygopro version 0x" + settings.version.toString(16), "(from config)"); log.info("ygopro version 0x" + settings.version.toString(16), "(from config)");
} }
lflists = []; lflists = global.lflists = [];
try { try {
ref = fs.readFileSync('ygopro/expansions/lflist.conf', 'utf8').match(/!.*/g); ref = fs.readFileSync('ygopro/expansions/lflist.conf', 'utf8').match(/!.*/g);
...@@ -482,9 +482,9 @@ ...@@ -482,9 +482,9 @@
} }
} }
memory_usage = 0; memory_usage = global.memory_usage = 0;
get_memory_usage = function() { get_memory_usage = get_memory_usage = function() {
var prc_free; var prc_free;
prc_free = exec("free"); prc_free = exec("free");
prc_free.stdout.on('data', function(data) { prc_free.stdout.on('data', function(data) {
...@@ -511,21 +511,21 @@ ...@@ -511,21 +511,21 @@
setInterval(get_memory_usage, 3000); setInterval(get_memory_usage, 3000);
Cloud_replay_ids = []; Cloud_replay_ids = global.Cloud_replay_ids = [];
ROOM_all = []; ROOM_all = global.ROOM_all = [];
ROOM_players_oppentlist = {}; ROOM_players_oppentlist = global.ROOM_players_oppentlist = {};
ROOM_players_banned = []; ROOM_players_banned = global.ROOM_players_banned = [];
ROOM_players_scores = {}; ROOM_players_scores = global.ROOM_players_scores = {};
ROOM_connected_ip = {}; ROOM_connected_ip = global.ROOM_connected_ip = {};
ROOM_bad_ip = {}; ROOM_bad_ip = global.ROOM_bad_ip = {};
ban_user = function(name) { ban_user = global.ban_user = function(name) {
var bad_ip, len2, len3, m, n, player, ref2, room; var bad_ip, len2, len3, m, n, player, ref2, room;
settings.ban.banned_user.push(name); settings.ban.banned_user.push(name);
setting_save(settings); setting_save(settings);
...@@ -550,7 +550,7 @@ ...@@ -550,7 +550,7 @@
} }
}; };
ROOM_ban_player = function(name, ip, reason, countadd) { ROOM_ban_player = global.ROOM_ban_player = function(name, ip, reason, countadd) {
var bannedplayer, bantime; var bannedplayer, bantime;
if (countadd == null) { if (countadd == null) {
countadd = 1; countadd = 1;
...@@ -583,7 +583,7 @@ ...@@ -583,7 +583,7 @@
} }
}; };
ROOM_player_win = function(name) { ROOM_player_win = global.ROOM_player_win = function(name) {
if (!ROOM_players_scores[name]) { if (!ROOM_players_scores[name]) {
ROOM_players_scores[name] = { ROOM_players_scores[name] = {
win: 0, win: 0,
...@@ -596,7 +596,7 @@ ...@@ -596,7 +596,7 @@
ROOM_players_scores[name].combo = ROOM_players_scores[name].combo + 1; ROOM_players_scores[name].combo = ROOM_players_scores[name].combo + 1;
}; };
ROOM_player_lose = function(name) { ROOM_player_lose = global.ROOM_player_lose = function(name) {
if (!ROOM_players_scores[name]) { if (!ROOM_players_scores[name]) {
ROOM_players_scores[name] = { ROOM_players_scores[name] = {
win: 0, win: 0,
...@@ -609,7 +609,7 @@ ...@@ -609,7 +609,7 @@
ROOM_players_scores[name].combo = 0; ROOM_players_scores[name].combo = 0;
}; };
ROOM_player_flee = function(name) { ROOM_player_flee = global.ROOM_player_flee = function(name) {
if (!ROOM_players_scores[name]) { if (!ROOM_players_scores[name]) {
ROOM_players_scores[name] = { ROOM_players_scores[name] = {
win: 0, win: 0,
...@@ -622,7 +622,7 @@ ...@@ -622,7 +622,7 @@
ROOM_players_scores[name].combo = 0; ROOM_players_scores[name].combo = 0;
}; };
ROOM_player_get_score = function(player) { ROOM_player_get_score = global.ROOM_player_get_score = function(player) {
var name, score, total; var name, score, total;
name = player.name_vpass; name = player.name_vpass;
score = ROOM_players_scores[name]; score = ROOM_players_scores[name];
...@@ -671,7 +671,7 @@ ...@@ -671,7 +671,7 @@
}, 60000); }, 60000);
} }
ROOM_find_or_create_by_name = function(name, player_ip) { ROOM_find_or_create_by_name = global.ROOM_find_or_create_by_name = function(name, player_ip) {
var room, uname; var room, uname;
uname = name.toUpperCase(); uname = name.toUpperCase();
if (settings.modules.windbot.enabled && (uname.slice(0, 2) === 'AI' || (!settings.modules.random_duel.enabled && uname === ''))) { if (settings.modules.windbot.enabled && (uname.slice(0, 2) === 'AI' || (!settings.modules.random_duel.enabled && uname === ''))) {
...@@ -689,7 +689,7 @@ ...@@ -689,7 +689,7 @@
} }
}; };
ROOM_find_or_create_random = function(type, player_ip) { ROOM_find_or_create_random = global.ROOM_find_or_create_random = function(type, player_ip) {
var bannedplayer, max_player, name, playerbanned, result; var bannedplayer, max_player, name, playerbanned, result;
bannedplayer = _.find(ROOM_players_banned, function(bannedplayer) { bannedplayer = _.find(ROOM_players_banned, function(bannedplayer) {
return player_ip === bannedplayer.ip; return player_ip === bannedplayer.ip;
...@@ -738,7 +738,7 @@ ...@@ -738,7 +738,7 @@
return result; return result;
}; };
ROOM_find_or_create_ai = function(name) { ROOM_find_or_create_ai = global.ROOM_find_or_create_ai = function(name) {
var ainame, namea, result, room, uname, windbot; var ainame, namea, result, room, uname, windbot;
if (name === '') { if (name === '') {
name = 'AI'; name = 'AI';
...@@ -777,7 +777,7 @@ ...@@ -777,7 +777,7 @@
return result; return result;
}; };
ROOM_find_by_name = function(name) { ROOM_find_by_name = global.ROOM_find_by_name = function(name) {
var result; var result;
result = _.find(ROOM_all, function(room) { result = _.find(ROOM_all, function(room) {
return room && room.name === name; return room && room.name === name;
...@@ -785,7 +785,7 @@ ...@@ -785,7 +785,7 @@
return result; return result;
}; };
ROOM_find_by_title = function(title) { ROOM_find_by_title = global.ROOM_find_by_title = function(title) {
var result; var result;
result = _.find(ROOM_all, function(room) { result = _.find(ROOM_all, function(room) {
return room && room.title === title; return room && room.title === title;
...@@ -793,13 +793,13 @@ ...@@ -793,13 +793,13 @@
return result; return result;
}; };
ROOM_find_by_port = function(port) { ROOM_find_by_port = global.ROOM_find_by_port = function(port) {
return _.find(ROOM_all, function(room) { return _.find(ROOM_all, function(room) {
return room && room.port === port; return room && room.port === port;
}); });
}; };
ROOM_validate = function(name) { ROOM_validate = global.ROOM_validate = function(name) {
var client_name, client_name_and_pass, client_pass; var client_name, client_name_and_pass, client_pass;
client_name_and_pass = name.split('$', 2); client_name_and_pass = name.split('$', 2);
client_name = client_name_and_pass[0]; client_name = client_name_and_pass[0];
...@@ -819,7 +819,7 @@ ...@@ -819,7 +819,7 @@
}); });
}; };
ROOM_unwelcome = function(room, bad_player, reason) { ROOM_unwelcome = global.ROOM_unwelcome = function(room, bad_player, reason) {
var len2, m, player, ref2; var len2, m, player, ref2;
if (!room) { if (!room) {
return; return;
...@@ -836,7 +836,7 @@ ...@@ -836,7 +836,7 @@
} }
}; };
CLIENT_kick = function(client) { CLIENT_kick = global.CLIENT_kick = function(client) {
if (!client) { if (!client) {
return false; return false;
} }
...@@ -851,7 +851,7 @@ ...@@ -851,7 +851,7 @@
return true; return true;
}; };
release_disconnect = function(dinfo, reconnected) { release_disconnect = global.release_disconnect = function(dinfo, reconnected) {
if (dinfo.old_client && !reconnected) { if (dinfo.old_client && !reconnected) {
dinfo.old_client.destroy(); dinfo.old_client.destroy();
} }
...@@ -861,7 +861,7 @@ ...@@ -861,7 +861,7 @@
clearTimeout(dinfo.timeout); clearTimeout(dinfo.timeout);
}; };
CLIENT_get_authorize_key = function(client) { CLIENT_get_authorize_key = global.CLIENT_get_authorize_key = function(client) {
if (!settings.modules.mycard.enabled && client.vpass) { if (!settings.modules.mycard.enabled && client.vpass) {
return client.name_vpass; return client.name_vpass;
} else if (settings.modules.mycard.enabled || settings.modules.tournament_mode.enabled || settings.modules.challonge.enabled || client.is_local) { } else if (settings.modules.mycard.enabled || settings.modules.tournament_mode.enabled || settings.modules.challonge.enabled || client.is_local) {
...@@ -871,7 +871,7 @@ ...@@ -871,7 +871,7 @@
} }
}; };
CLIENT_reconnect_unregister = function(client, reconnected, exact) { CLIENT_reconnect_unregister = global.CLIENT_reconnect_unregister = function(client, reconnected, exact) {
if (!settings.modules.reconnect.enabled) { if (!settings.modules.reconnect.enabled) {
return false; return false;
} }
...@@ -886,7 +886,7 @@ ...@@ -886,7 +886,7 @@
return false; return false;
}; };
CLIENT_reconnect_register = function(client, room_id, error) { CLIENT_reconnect_register = global.CLIENT_reconnect_register = function(client, room_id, error) {
var dinfo, room, tmot; var dinfo, room, tmot;
room = ROOM_all[room_id]; room = ROOM_all[room_id];
if (client.had_new_reconnection) { if (client.had_new_reconnection) {
...@@ -918,7 +918,7 @@ ...@@ -918,7 +918,7 @@
return true; return true;
}; };
CLIENT_import_data = function(client, old_client, room) { CLIENT_import_data = global.CLIENT_import_data = function(client, old_client, room) {
var index, key, len2, len3, m, n, player, ref2; var index, key, len2, len3, m, n, player, ref2;
ref2 = room.players; ref2 = room.players;
for (index = m = 0, len2 = ref2.length; m < len2; index = ++m) { for (index = m = 0, len2 = ref2.length; m < len2; index = ++m) {
...@@ -945,7 +945,7 @@ ...@@ -945,7 +945,7 @@
old_client.had_new_reconnection = true; old_client.had_new_reconnection = true;
}; };
SERVER_clear_disconnect = function(server) { SERVER_clear_disconnect = global.SERVER_clear_disconnect = function(server) {
var k, v; var k, v;
if (!settings.modules.reconnect.enabled) { if (!settings.modules.reconnect.enabled) {
return false; return false;
...@@ -961,7 +961,7 @@ ...@@ -961,7 +961,7 @@
return false; return false;
}; };
ROOM_clear_disconnect = function(room_id) { ROOM_clear_disconnect = global.ROOM_clear_disconnect = function(room_id) {
var k, v; var k, v;
if (!settings.modules.reconnect.enabled) { if (!settings.modules.reconnect.enabled) {
return false; return false;
...@@ -977,7 +977,7 @@ ...@@ -977,7 +977,7 @@
return false; return false;
}; };
CLIENT_is_player = function(client, room) { CLIENT_is_player = global.CLIENT_is_player = function(client, room) {
var is_player, len2, m, player, ref2; var is_player, len2, m, player, ref2;
is_player = false; is_player = false;
ref2 = room.players; ref2 = room.players;
...@@ -991,7 +991,7 @@ ...@@ -991,7 +991,7 @@
return is_player && client.pos <= 3; return is_player && client.pos <= 3;
}; };
CLIENT_is_able_to_reconnect = function(client, deckbuf) { CLIENT_is_able_to_reconnect = global.CLIENT_is_able_to_reconnect = function(client, deckbuf) {
var disconnect_info, room; var disconnect_info, room;
if (!settings.modules.reconnect.enabled) { if (!settings.modules.reconnect.enabled) {
return false; return false;
...@@ -1014,7 +1014,7 @@ ...@@ -1014,7 +1014,7 @@
return true; return true;
}; };
CLIENT_get_kick_reconnect_target = function(client, deckbuf) { CLIENT_get_kick_reconnect_target = global.CLIENT_get_kick_reconnect_target = function(client, deckbuf) {
var len2, len3, m, n, player, ref2, room; var len2, len3, m, n, player, ref2, room;
for (m = 0, len2 = ROOM_all.length; m < len2; m++) { for (m = 0, len2 = ROOM_all.length; m < len2; m++) {
room = ROOM_all[m]; room = ROOM_all[m];
...@@ -1031,7 +1031,7 @@ ...@@ -1031,7 +1031,7 @@
return null; return null;
}; };
CLIENT_is_able_to_kick_reconnect = function(client, deckbuf) { CLIENT_is_able_to_kick_reconnect = global.CLIENT_is_able_to_kick_reconnect = function(client, deckbuf) {
if (!(settings.modules.reconnect.enabled && settings.modules.reconnect.allow_kick_reconnect)) { if (!(settings.modules.reconnect.enabled && settings.modules.reconnect.allow_kick_reconnect)) {
return false; return false;
} }
...@@ -1041,7 +1041,7 @@ ...@@ -1041,7 +1041,7 @@
return true; return true;
}; };
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 len2, m, player, ref2, req_pos; var len2, m, player, ref2, 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);
...@@ -1062,7 +1062,7 @@ ...@@ -1062,7 +1062,7 @@
} }
}; };
CLIENT_send_reconnect_info = function(client, server, room) { CLIENT_send_reconnect_info = global.CLIENT_send_reconnect_info = function(client, server, room) {
client.reconnecting = true; client.reconnecting = true;
ygopro.stoc_send_chat(client, "${reconnecting_to_room}", ygopro.constants.COLORS.BABYBLUE); ygopro.stoc_send_chat(client, "${reconnecting_to_room}", ygopro.constants.COLORS.BABYBLUE);
switch (room.duel_stage) { switch (room.duel_stage) {
...@@ -1093,7 +1093,7 @@ ...@@ -1093,7 +1093,7 @@
} }
}; };
CLIENT_pre_reconnect = function(client) { CLIENT_pre_reconnect = global.CLIENT_pre_reconnect = function(client) {
var dinfo, player; var dinfo, player;
if (CLIENT_is_able_to_reconnect(client)) { if (CLIENT_is_able_to_reconnect(client)) {
dinfo = disconnect_list[CLIENT_get_authorize_key(client)]; dinfo = disconnect_list[CLIENT_get_authorize_key(client)];
...@@ -1110,7 +1110,7 @@ ...@@ -1110,7 +1110,7 @@
} }
}; };
CLIENT_reconnect = function(client) { CLIENT_reconnect = global.CLIENT_reconnect = function(client) {
var current_old_server, dinfo, room; var current_old_server, dinfo, room;
if (!CLIENT_is_able_to_reconnect(client)) { if (!CLIENT_is_able_to_reconnect(client)) {
ygopro.stoc_send_chat(client, "${reconnect_failed}", ygopro.constants.COLORS.RED); ygopro.stoc_send_chat(client, "${reconnect_failed}", ygopro.constants.COLORS.RED);
...@@ -1138,7 +1138,7 @@ ...@@ -1138,7 +1138,7 @@
CLIENT_reconnect_unregister(client, true); CLIENT_reconnect_unregister(client, true);
}; };
CLIENT_kick_reconnect = function(client, deckbuf) { CLIENT_kick_reconnect = global.CLIENT_kick_reconnect = function(client, deckbuf) {
var current_old_server, player, room; var current_old_server, player, room;
if (!CLIENT_is_able_to_kick_reconnect(client)) { if (!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);
...@@ -1173,7 +1173,7 @@ ...@@ -1173,7 +1173,7 @@
disconnect_list = {}; disconnect_list = {};
} }
CLIENT_heartbeat_unregister = function(client) { CLIENT_heartbeat_unregister = global.CLIENT_heartbeat_unregister = function(client) {
if (!settings.modules.heartbeat_detection.enabled || !client.heartbeat_timeout) { if (!settings.modules.heartbeat_detection.enabled || !client.heartbeat_timeout) {
return false; return false;
} }
...@@ -1182,7 +1182,7 @@ ...@@ -1182,7 +1182,7 @@
return true; return true;
}; };
CLIENT_heartbeat_register = function(client, send) { CLIENT_heartbeat_register = global.CLIENT_heartbeat_register = function(client, send) {
if (!settings.modules.heartbeat_detection.enabled || client.closed || client.is_post_watcher || client.pre_reconnecting || client.reconnecting || client.waiting_for_last || client.pos > 3 || client.heartbeat_protected) { if (!settings.modules.heartbeat_detection.enabled || client.closed || client.is_post_watcher || client.pre_reconnecting || client.reconnecting || client.waiting_for_last || client.pos > 3 || client.heartbeat_protected) {
return false; return false;
} }
...@@ -1209,11 +1209,11 @@ ...@@ -1209,11 +1209,11 @@
return true; return true;
}; };
CLIENT_is_banned_by_mc = function(client) { CLIENT_is_banned_by_mc = global.CLIENT_is_banned_by_mc = function(client) {
return client.ban_mc && client.ban_mc.banned && moment().isBefore(client.ban_mc.until); return client.ban_mc && client.ban_mc.banned && moment().isBefore(client.ban_mc.until);
}; };
CLIENT_send_replays = function(client, room) { CLIENT_send_replays = global.CLIENT_send_replays = function(client, room) {
var buffer, i, len2, m, ref2; var buffer, i, len2, m, ref2;
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;
...@@ -1232,7 +1232,7 @@ ...@@ -1232,7 +1232,7 @@
return true; return true;
}; };
SOCKET_flush_data = function(sk, datas) { SOCKET_flush_data = global.SOCKET_flush_data = function(sk, datas) {
var buffer, len2, m; var buffer, len2, m;
if (!sk || sk.closed) { if (!sk || sk.closed) {
return false; return false;
...@@ -2798,7 +2798,7 @@ ...@@ -2798,7 +2798,7 @@
} }
}); });
load_dialogues = function() { load_dialogues = global.load_dialogues = function() {
request({ request({
url: settings.modules.dialogues.get, url: settings.modules.dialogues.get,
json: true json: true
...@@ -3422,7 +3422,7 @@ ...@@ -3422,7 +3422,7 @@
} }
}; };
load_tips = function() { load_tips = global.load_tips = function() {
request({ request({
url: settings.modules.tips.get, url: settings.modules.tips.get,
json: true json: true
...@@ -3567,7 +3567,7 @@ ...@@ -3567,7 +3567,7 @@
return false; return false;
}); });
report_to_big_brother = function(roomname, sender, ip, level, content, match) { report_to_big_brother = global.report_to_big_brother = function(roomname, sender, ip, level, content, match) {
if (!settings.modules.big_brother.enabled) { if (!settings.modules.big_brother.enabled) {
return; return;
} }
...@@ -4360,9 +4360,9 @@ ...@@ -4360,9 +4360,9 @@
windbot_looplimit = 0; windbot_looplimit = 0;
windbot_process = null; windbot_process = global.windbot_process = null;
spawn_windbot = function() { spawn_windbot = global.spawn_windbot = function() {
var windbot_bin, windbot_parameters; var windbot_bin, windbot_parameters;
if (/^win/.test(process.platform)) { if (/^win/.test(process.platform)) {
windbot_bin = 'WindBot.exe'; windbot_bin = 'WindBot.exe';
......
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