Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
S
srvpro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
srvpro
Commits
9494c3c6
Commit
9494c3c6
authored
Jun 01, 2020
by
nanahira
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'mc'
parents
5b108161
160c8f96
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
90 additions
and
92 deletions
+90
-92
YGOProMessages.js
YGOProMessages.js
+15
-16
ygopro-server.coffee
ygopro-server.coffee
+36
-35
ygopro-server.js
ygopro-server.js
+37
-39
ygopro.coffee
ygopro.coffee
+1
-1
ygopro.js
ygopro.js
+1
-1
No files found.
YGOProMessages.js
View file @
9494c3c6
...
...
@@ -27,6 +27,20 @@ class Handler {
class
YGOProMessagesHelper
{
constructor
()
{
this
.
handlers
=
{
STOC
:
[{},
{},
{},
{},
{},
],
CTOS
:
[{},
{},
{},
{},
{},
]
}
this
.
initDatas
();
this
.
initStructs
();
}
...
...
@@ -39,6 +53,7 @@ class YGOProMessagesHelper {
}
initStructs
()
{
this
.
structs
=
{};
for
(
let
name
in
this
.
structs_declaration
)
{
const
declaration
=
this
.
structs_declaration
[
name
];
let
result
=
Struct
();
...
...
@@ -232,20 +247,4 @@ class YGOProMessagesHelper {
}
YGOProMessagesHelper
.
prototype
.
structs
=
{}
YGOProMessagesHelper
.
prototype
.
handlers
=
{
STOC
:
[{},
{},
{},
{},
{},
],
CTOS
:
[{},
{},
{},
{},
{},
]
}
module
.
exports
=
YGOProMessagesHelper
;
ygopro-server.coffee
View file @
9494c3c6
...
...
@@ -1989,7 +1989,7 @@ ygopro.ctos_follow 'PLAYER_INFO', true, (buffer, info, client, server, datas)->
else
#log.info("Not in map", geo.country, client.name, client.ip)
client
.
lang
=
settings
.
modules
.
i18n
.
fallback
return
false
await
return
false
ygopro
.
ctos_follow
'JOIN_GAME'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
#log.info info
...
...
@@ -2494,7 +2494,7 @@ ygopro.ctos_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
client
.
setTimeout
(
300000
)
#连接后超时5分钟
client
.
rid
=
_
.
indexOf
(
ROOM_all
,
room
)
room
.
connect
(
client
)
return
await
return
ygopro
.
stoc_follow
'JOIN_GAME'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
#欢迎信息
...
...
@@ -2577,7 +2577,7 @@ ygopro.stoc_follow 'JOIN_GAME', false, (buffer, info, client, server, datas)->
watcher
.
on
'error'
,
(
error
)
->
log
.
error
"watcher error"
,
error
return
return
await
return
# 登场台词
load_words
=
global
.
load_words
=
(
callback
)
->
...
...
@@ -2615,7 +2615,7 @@ load_dialogues = global.load_dialogues = (callback) ->
if
callback
callback
(
error
,
body
)
return
return
await
return
load_dialogues_custom
=
global
.
load_dialogues_custom
=
(
callback
)
->
request
...
...
@@ -2938,7 +2938,7 @@ ygopro.stoc_follow 'GAME_MSG', true, (buffer, info, client, server, datas)->
room
.
recover_buffers
[
client
.
pos
].
push
(
buffer
)
return
true
return
false
await
return
false
#房间管理
ygopro
.
ctos_follow
'HS_TOOBSERVER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
...
...
@@ -2953,7 +2953,7 @@ ygopro.ctos_follow 'HS_TOOBSERVER', true, (buffer, info, client, server, datas)-
if
player
==
client
ygopro
.
stoc_send_chat
(
client
,
"${cannot_to_observer}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
return
true
return
false
await
return
false
ygopro
.
ctos_follow
'HS_KICK'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -2971,7 +2971,7 @@ ygopro.ctos_follow 'HS_KICK', true, (buffer, info, client, server, datas)->
CLIENT_kick
(
client
)
return
true
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
)
->
selftype
=
info
.
type
&
0xf
...
...
@@ -2982,7 +2982,7 @@ ygopro.stoc_follow 'TYPE_CHANGE', true, (buffer, info, client, server, datas)->
client
.
is_host
=
is_host
client
.
pos
=
selftype
#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
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -2993,7 +2993,7 @@ ygopro.stoc_follow 'HS_PLAYER_ENTER', true, (buffer, info, client, server, datas
struct
.
_setBuff
(
buffer
)
struct
.
set
(
"name"
,
"********"
)
buffer
=
struct
.
buffer
return
false
await
return
false
ygopro
.
stoc_follow
'HS_PLAYER_CHANGE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3039,10 +3039,10 @@ ygopro.stoc_follow 'HS_PLAYER_CHANGE', false, (buffer, info, client, server, dat
if
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
#log.info "all ready"
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
)
->
return
true
await
return
true
ygopro
.
stoc_follow
'FIELD_FINISH'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3054,7 +3054,7 @@ ygopro.stoc_follow 'FIELD_FINISH', true, (buffer, info, client, server, datas)->
if
client
.
last_hint_msg
ygopro
.
stoc_send
(
client
,
'GAME_MSG'
,
client
.
last_hint_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
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3067,6 +3067,7 @@ ygopro.stoc_follow 'DUEL_END', false, (buffer, info, client, server, datas)->
CLIENT_send_replays
(
player
,
room
)
for
player
in
room
.
watchers
when
player
CLIENT_send_replays
(
player
,
room
)
await
return
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
...
...
@@ -3081,7 +3082,7 @@ wait_room_start = (room, time)->
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
)
CLIENT_kick
(
player
)
return
await
return
wait_room_start_arena
=
(
room
)
->
if
room
and
room
.
duel_stage
==
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
and
room
.
waiting_for_player
...
...
@@ -3097,7 +3098,7 @@ wait_room_start_arena = (room)->
if
room
.
waiting_for_player_interval
clearInterval
room
.
waiting_for_player_interval
room
.
waiting_for_player_interval
=
null
return
await
return
#tip
ygopro
.
stoc_send_random_tip
=
(
client
)
->
...
...
@@ -3106,14 +3107,14 @@ ygopro.stoc_send_random_tip = (client)->
tip_type
=
"tips_zh"
if
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
&&
!
client
.
is_local
&&
!
client
.
closed
ygopro
.
stoc_send_chat
(
client
,
"Tip: "
+
tips
[
tip_type
][
Math
.
floor
(
Math
.
random
()
*
tips
[
tip_type
].
length
)])
return
await
return
ygopro
.
stoc_send_random_tip_to_room
=
(
room
)
->
if
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
for
player
in
room
.
players
when
player
and
!
player
.
is_local
and
!
player
.
closed
ygopro
.
stoc_send_random_tip
(
player
)
for
player
in
room
.
watchers
when
player
and
!
player
.
is_local
and
!
player
.
closed
ygopro
.
stoc_send_random_tip
(
player
)
return
await
return
load_tips
=
global
.
load_tips
=
(
callback
)
->
request
...
...
@@ -3130,7 +3131,7 @@ load_tips = global.load_tips = (callback)->
if
callback
callback
(
error
,
body
)
return
return
await
return
load_tips_zh
=
global
.
load_tips_zh
=
(
callback
)
->
request
...
...
@@ -3147,7 +3148,7 @@ load_tips_zh = global.load_tips_zh = (callback)->
if
callback
callback
(
error
,
body
)
return
return
await
return
if
settings
.
modules
.
tips
.
enabled
and
settings
.
modules
.
tips
.
get
load_tips
()
...
...
@@ -3231,7 +3232,7 @@ ygopro.stoc_follow 'DUEL_START', false, (buffer, info, client, server, datas)->
#log.info 'DECK POST OK', response.statusCode, client.name, body
return
client
.
deck_saved
=
true
return
await
return
ygopro
.
ctos_follow
'SURRENDER'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3250,7 +3251,7 @@ ygopro.ctos_follow 'SURRENDER', true, (buffer, info, client, server, datas)->
ygopro
.
stoc_send_chat
(
client
,
"${surrender_confirm_sent}"
,
ygopro
.
constants
.
COLORS
.
BABYBLUE
)
sur_player
.
surrend_confirm
=
true
return
true
return
false
await
return
false
report_to_big_brother
=
global
.
report_to_big_brother
=
(
roomname
,
sender
,
ip
,
level
,
content
,
match
)
->
return
unless
settings
.
modules
.
big_brother
.
enabled
...
...
@@ -3271,7 +3272,7 @@ report_to_big_brother = global.report_to_big_brother = (roomname, sender, ip, le
#else
#log.info 'BIG BROTHER OK', response.statusCode, roomname, body
return
return
await
return
ygopro
.
ctos_follow
'CHAT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3531,7 +3532,7 @@ ygopro.ctos_follow 'CHAT', true, (buffer, info, client, server, datas)->
if
client
.
abuse_count
>=
5
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}"
)
return
cancel
await
return
cancel
ygopro
.
ctos_follow
'UPDATE_DECK'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
if
settings
.
modules
.
reconnect
.
enabled
and
client
.
pre_reconnecting
...
...
@@ -3632,13 +3633,13 @@ ygopro.ctos_follow 'UPDATE_DECK', true, (buffer, info, client, server, datas)->
else
#log.info("player deck not found: " + client.name)
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
)
->
room
=
ROOM_all
[
client
.
rid
]
return
unless
room
and
(
room
.
random_type
or
room
.
arena
)
room
.
last_active_time
=
moment
()
return
await
return
ygopro
.
stoc_follow
'TIME_LIMIT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3678,7 +3679,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
if
check
CLIENT_heartbeat_register
(
client
,
false
)
return
false
await
return
false
ygopro
.
ctos_follow
'TIME_CONFIRM'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3697,7 +3698,7 @@ ygopro.ctos_follow 'TIME_CONFIRM', false, (buffer, info, client, server, datas)-
client
.
heartbeat_protected
=
false
client
.
heartbeat_responsed
=
true
CLIENT_heartbeat_unregister
(
client
)
return
await
return
ygopro
.
ctos_follow
'HAND_RESULT'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3707,7 +3708,7 @@ ygopro.ctos_follow 'HAND_RESULT', false, (buffer, info, client, server, datas)->
if
client
.
pos
==
0
room
.
waiting_for_player
=
room
.
waiting_for_player2
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
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3716,7 +3717,7 @@ ygopro.ctos_follow 'TP_RESULT', false, (buffer, info, client, server, datas)->
# room.selecting_tp = false
return
unless
room
.
random_type
or
room
.
arena
room
.
last_active_time
=
moment
()
return
await
return
ygopro
.
stoc_follow
'CHAT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3742,7 +3743,7 @@ ygopro.stoc_follow 'CHAT', true, (buffer, info, client, server, datas)->
msg
:
tplayer
.
name
+
": "
+
info
.
msg
}
return
true
return
await
return
ygopro
.
stoc_follow
'SELECT_HAND'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3762,12 +3763,12 @@ ygopro.stoc_follow 'SELECT_HAND', true, (buffer, info, client, server, datas)->
return
true
else
client
.
selected_preduel
=
false
return
false
await
return
false
ygopro
.
stoc_follow
'HAND_RESULT'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
return
false
unless
room
return
room
.
determine_firstgo
await
return
room
.
determine_firstgo
ygopro
.
stoc_follow
'SELECT_TP'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3784,7 +3785,7 @@ ygopro.stoc_follow 'SELECT_TP', true, (buffer, info, client, server, datas)->
else
client
.
selected_preduel
=
false
room
.
selecting_tp
=
client
return
false
await
return
false
ygopro
.
stoc_follow
'CHANGE_SIDE'
,
false
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3832,7 +3833,7 @@ ygopro.stoc_follow 'CHANGE_SIDE', false, (buffer, info, client, server, datas)->
else
room
.
waiting_for_player2
=
client
room
.
last_active_time
=
moment
()
return
await
return
ygopro
.
stoc_follow
'REPLAY'
,
true
,
(
buffer
,
info
,
client
,
server
,
datas
)
->
room
=
ROOM_all
[
client
.
rid
]
...
...
@@ -3881,9 +3882,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
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
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
setInterval
()
->
...
...
ygopro-server.js
View file @
9494c3c6
...
...
@@ -2614,7 +2614,7 @@
// 功能模块
// 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
;
// checkmate use username$password, but here don't
// so remove the password
...
...
@@ -2685,7 +2685,7 @@
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
,
len5
,
len6
,
line
,
n
,
name
,
o
,
p
,
pre_room
,
q
,
recover_match
,
ref4
,
ref5
,
ref6
,
ref7
,
replay_id
,
room
;
//log.info info
info
.
pass
=
info
.
pass
.
trim
();
...
...
@@ -3283,7 +3283,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
,
len4
,
len5
,
line
,
n
,
o
,
p
,
player
,
recorder
,
ref4
,
ref5
,
ref6
,
room
,
watcher
;
//欢迎信息
room
=
ROOM_all
[
client
.
rid
];
...
...
@@ -3419,7 +3419,7 @@
load_words
();
}
load_dialogues
=
global
.
load_dialogues
=
function
(
callback
)
{
load_dialogues
=
global
.
load_dialogues
=
async
function
(
callback
)
{
request
({
url
:
settings
.
modules
.
dialogues
.
get
,
json
:
true
...
...
@@ -3465,7 +3465,7 @@
load_dialogues_custom
();
}
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
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
,
max_loop
,
msg
,
n
,
o
,
oppo_pos
,
p
,
phase
,
player
,
playertype
,
pos
,
ppos
,
q
,
r
,
r_player
,
reason
,
ref10
,
ref11
,
ref12
,
ref13
,
ref14
,
ref4
,
ref5
,
ref6
,
ref7
,
ref8
,
ref9
,
room
,
s
,
t
,
trigger_location
,
val
,
win_pos
,
x
,
y
,
z
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
!
client
.
reconnecting
))
{
...
...
@@ -3884,7 +3884,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
,
ref4
,
room
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -3908,7 +3908,7 @@
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
,
ref4
,
room
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -3936,7 +3936,7 @@
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
;
selftype
=
info
.
type
&
0xf
;
is_host
=
((
info
.
type
>>
4
)
&
0xf
)
!==
0
;
...
...
@@ -3949,7 +3949,7 @@
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
settings
.
modules
.
hide_name
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
))
{
...
...
@@ -3965,7 +3965,7 @@
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
,
ref4
,
ref5
,
room
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
room
.
max_player
&&
client
.
is_host
))
{
...
...
@@ -4036,11 +4036,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
;
});
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
settings
.
modules
.
reconnect
.
enabled
))
{
...
...
@@ -4058,8 +4058,8 @@
return
true
;
});
ygopro
.
stoc_follow
(
'
DUEL_END
'
,
false
,
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
r
esults
,
r
oom
;
ygopro
.
stoc_follow
(
'
DUEL_END
'
,
false
,
async
function
(
buffer
,
info
,
client
,
server
,
datas
)
{
var
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
,
room
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
settings
.
modules
.
replay_delay
&&
room
.
hostinfo
.
mode
===
1
))
{
return
;
...
...
@@ -4076,18 +4076,16 @@
}
}
ref5
=
room
.
watchers
;
results
=
[];
for
(
o
=
0
,
len4
=
ref5
.
length
;
o
<
len4
;
o
++
)
{
player
=
ref5
[
o
];
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
,
ref4
;
if
(
room
&&
room
.
duel_stage
===
ygopro
.
constants
.
DUEL_STAGE
.
BEGIN
&&
room
.
ready_player_count_without_host
>=
room
.
max_player
-
1
)
{
time
-=
1
;
...
...
@@ -4112,7 +4110,7 @@
}
};
wait_room_start_arena
=
function
(
room
)
{
wait_room_start_arena
=
async
function
(
room
)
{
var
display_name
,
len3
,
n
,
player
,
ref4
;
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
;
...
...
@@ -4140,7 +4138,7 @@
};
//tip
ygopro
.
stoc_send_random_tip
=
function
(
client
)
{
ygopro
.
stoc_send_random_tip
=
async
function
(
client
)
{
var
tip_type
;
tip_type
=
"
tips
"
;
if
(
settings
.
modules
.
tips
.
split_zh
&&
tips
.
tips_zh
.
length
&&
client
.
lang
===
"
zh-cn
"
)
{
...
...
@@ -4151,7 +4149,7 @@
}
};
ygopro
.
stoc_send_random_tip_to_room
=
function
(
room
)
{
ygopro
.
stoc_send_random_tip_to_room
=
async
function
(
room
)
{
var
len3
,
len4
,
n
,
o
,
player
,
ref4
,
ref5
;
if
(
settings
.
modules
.
tips
.
enabled
&&
tips
.
tips
.
length
)
{
ref4
=
room
.
players
;
...
...
@@ -4171,7 +4169,7 @@
}
};
load_tips
=
global
.
load_tips
=
function
(
callback
)
{
load_tips
=
global
.
load_tips
=
async
function
(
callback
)
{
request
({
url
:
settings
.
modules
.
tips
.
get
,
json
:
true
...
...
@@ -4190,7 +4188,7 @@
});
};
load_tips_zh
=
global
.
load_tips_zh
=
function
(
callback
)
{
load_tips_zh
=
global
.
load_tips_zh
=
async
function
(
callback
)
{
request
({
url
:
settings
.
modules
.
tips
.
get_zh
,
json
:
true
...
...
@@ -4231,7 +4229,7 @@
},
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
,
ref4
,
ref5
,
room
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
!
client
.
reconnecting
))
{
...
...
@@ -4341,7 +4339,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
,
sur_player
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -4368,7 +4366,7 @@
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
)
{
return
;
}
...
...
@@ -4396,7 +4394,7 @@
//else
//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
buy_result
,
cancel
,
ccolor
,
cip
,
cmd
,
cmsg
,
cname
,
code
,
color
,
cvalue
,
key
,
msg
,
name
,
oldmsg
,
ref4
,
room
,
struct
,
sur_player
,
uname
,
windbot
,
word
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -4738,7 +4736,7 @@
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
;
if
(
settings
.
modules
.
reconnect
.
enabled
&&
client
.
pre_reconnecting
)
{
if
(
!
CLIENT_is_able_to_reconnect
(
client
)
&&
!
CLIENT_is_able_to_kick_reconnect
(
client
))
{
...
...
@@ -4885,7 +4883,7 @@
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
(
room
&&
(
room
.
random_type
||
room
.
arena
)))
{
...
...
@@ -4894,7 +4892,7 @@
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -4951,7 +4949,7 @@
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -4979,7 +4977,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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -4994,7 +4992,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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -5008,7 +5006,7 @@
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
,
ref4
,
room
,
tcolor
,
tplayer
;
room
=
ROOM_all
[
client
.
rid
];
pid
=
info
.
player
;
...
...
@@ -5047,7 +5045,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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -5075,7 +5073,7 @@
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -5084,7 +5082,7 @@
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -5107,7 +5105,7 @@
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
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
@@ -5166,7 +5164,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
,
ref4
,
ref5
,
replay_filename
,
room
;
room
=
ROOM_all
[
client
.
rid
];
if
(
!
room
)
{
...
...
ygopro.coffee
View file @
9494c3c6
...
...
@@ -18,7 +18,7 @@ YGOProMessageHelper = require("./YGOProMessages.js") # 为 SRVPro2 准备的库
translateHandler
=
(
handler
)
->
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
)
->
@
helper
.
addHandler
(
"STOC_
#{
proto
}
"
,
translateHandler
(
callback
),
synchronous
,
1
)
...
...
ygopro.js
View file @
9494c3c6
...
...
@@ -30,7 +30,7 @@
translateHandler
=
function
(
handler
)
{
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
)
);
};
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment