Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-match
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
MyCard
ygopro-match
Commits
51b4e817
Commit
51b4e817
authored
Jan 01, 2026
by
nanahira
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clear both pools when needed
parent
86c997c4
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
11 deletions
+27
-11
main.js
main.js
+27
-11
No files found.
main.js
View file @
51b4e817
...
...
@@ -23,6 +23,21 @@ let localLog = function (content) {
console
.
log
(
"
[
"
+
new
Date
().
toLocaleString
()
+
"
]
"
+
content
)
};
let
clearUserPools
=
function
(
user
)
{
let
removedFromPlaying
=
playingPlayerPool
.
delete
(
user
);
let
removedFromPending
=
pendingPlayerPool
.
delete
(
user
);
if
(
removedFromPlaying
)
playingPlayerOpponents
.
delete
(
user
);
if
(
playingPlayerTimeout
.
has
(
user
))
{
clearTimeout
(
playingPlayerTimeout
.
get
(
user
));
playingPlayerTimeout
.
delete
(
user
);
}
if
(
pendingPlayerTimeout
.
has
(
user
))
{
clearTimeout
(
pendingPlayerTimeout
.
get
(
user
));
pendingPlayerTimeout
.
delete
(
user
);
}
return
removedFromPlaying
||
removedFromPending
;
};
function
parseRequestUrl
(
req
)
{
const
host
=
req
.
headers
&&
req
.
headers
.
host
?
req
.
headers
.
host
:
'
localhost
'
const
urlObj
=
new
URL
(
req
.
url
,
'
http://
'
+
host
)
...
...
@@ -316,10 +331,8 @@ let finishUser = function (json) {
if
(
!
userB
&&
playingPlayerOpponents
.
has
(
userA
))
userB
=
playingPlayerOpponents
.
get
(
userA
);
for
(
let
user
of
[
userA
,
userB
])
{
if
(
!
user
)
continue
;
if
(
!
playingPlayerPool
.
delete
(
user
))
if
(
!
clearUserPools
(
user
))
localLog
(
"
Unknown player left the game:
"
+
user
);
clearTimeout
(
playingPlayerTimeout
.
get
(
user
));
playingPlayerTimeout
.
delete
(
user
);
}
localLog
(
"
Player
"
+
userA
+
"
and
"
+
userB
+
"
finished the game.
"
);
};
...
...
@@ -519,16 +532,19 @@ let endClearResponse = function(query, res) {
let
arena_info
=
config
.
servers
[
arena
];
if
(
arena_info
==
null
||
arena_info
==
undefined
)
return
notFoundResponse
(
res
);
let
shadow_pool
=
new
Map
(
playingPlayerPool
)
let
count
=
0
;
for
(
let
[
iterate_user
,
iterate_info
]
of
shadow_pool
.
entries
())
{
if
(
iterate_user
!=
"
*
"
&&
iterate_user
!=
user
)
continue
;
if
(
iterate_info
.
address
==
arena_info
&&
iterate_info
.
port
==
arena_info
.
port
)
{
playingPlayerPool
.
delete
(
iterate_user
);
playingPlayerOpponents
.
delete
(
iterate_user
);
count
+=
1
;
let
clearFromPool
=
function
(
pool
)
{
let
shadow_pool
=
new
Map
(
pool
);
for
(
let
[
iterate_user
,
iterate_info
]
of
shadow_pool
.
entries
())
{
if
(
iterate_user
!=
"
*
"
&&
iterate_user
!=
user
)
continue
;
if
(
iterate_info
.
address
==
arena_info
.
address
&&
iterate_info
.
port
==
arena_info
.
port
)
{
if
(
clearUserPools
(
iterate_user
))
count
+=
1
;
}
}
}
};
clearFromPool
(
playingPlayerPool
);
clearFromPool
(
pendingPlayerPool
);
res
.
end
(
`
${
count
}
user cleared.`
);
};
...
...
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