Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro-proxy
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-proxy
Commits
4d91f8af
Commit
4d91f8af
authored
Sep 27, 2022
by
Chunchi Che
Committed by
GitHub
Sep 27, 2022
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #8 from DarkNeos/dev
Dev
parents
88b353f8
cb02e0b4
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
37 additions
and
16 deletions
+37
-16
.gitignore
.gitignore
+3
-0
DarkNeos/transform.go
DarkNeos/transform.go
+34
-16
No files found.
.gitignore
View file @
4d91f8af
...
...
@@ -13,3 +13,6 @@
# Dependency directories (remove the comment below to include it)
# vendor/
# product
ygopro-proxy
DarkNeos/transform.go
View file @
4d91f8af
...
...
@@ -92,9 +92,9 @@ func Transform(src []byte, tranformType int) ([]byte, error) {
var
packet
YgoPacket
switch
message
.
Msg
.
(
type
)
{
case
*
(
ygopropb
.
YgoCtosMsg_CtosPlayerInfo
)
:
packet
=
transformPlayerInfo
(
message
.
GetCtosPlayerInfo
()
)
packet
=
(
*
pCtosPlayerInfo
)(
message
.
GetCtosPlayerInfo
())
.
Pb2Packet
(
)
case
*
(
ygopropb
.
YgoCtosMsg_CtosJoinGame
)
:
packet
=
transformJoinGame
(
message
.
GetCtosJoinGame
()
)
packet
=
(
*
pCtosJoinGame
)(
message
.
GetCtosJoinGame
())
.
Pb2Packet
(
)
default
:
return
nil
,
errors
.
New
(
"Unhandled YgoCtosMsg type"
)
}
...
...
@@ -110,15 +110,9 @@ func Transform(src []byte, tranformType int) ([]byte, error) {
var
pb
ygopropb
.
YgoStocMsg
switch
packet
.
Proto
{
case
StocChat
:
msg
:=
transformChat
(
packet
)
pb
=
ygopropb
.
YgoStocMsg
{
Msg
:
&
msg
,
}
pb
=
pStocChat
{}
.
Packet2Pb
(
packet
)
case
StocJoinGame
:
msg
:=
transformJoinGame_
(
packet
)
pb
=
ygopropb
.
YgoStocMsg
{
Msg
:
&
msg
,
}
pb
=
pStocJoinGame
{}
.
Packet2Pb
(
packet
)
default
:
return
nil
,
errors
.
New
(
fmt
.
Sprintf
(
"Unhandled YgoStocMsg type, proto=%d"
,
packet
.
Proto
))
}
...
...
@@ -131,8 +125,14 @@ func Transform(src []byte, tranformType int) ([]byte, error) {
// +++++ Client To Server +++++
type
client2Server
interface
{
Pb2Packet
()
YgoPacket
}
type
pCtosPlayerInfo
ygopropb
.
CtosPlayerInfo
// @Name: [20]uint16
func
transformPlayerInfo
(
pb
*
ygopropb
.
CtosPlayerInfo
)
YgoPacket
{
func
(
pb
*
pCtosPlayerInfo
)
Pb2Packet
(
)
YgoPacket
{
buf
:=
strToUtf16Buffer
(
pb
.
Name
)
exdata
:=
uint16BufToByteBuf
(
buf
)
...
...
@@ -143,10 +143,12 @@ func transformPlayerInfo(pb *ygopropb.CtosPlayerInfo) YgoPacket {
}
}
type
pCtosJoinGame
ygopropb
.
CtosJoinGame
// @Version: uint16
// @Gameid: uint32
// @Passwd: [20]uint16
func
transformJoinGame
(
pb
*
ygopropb
.
CtosJoinGame
)
YgoPacket
{
func
(
pb
*
pCtosJoinGame
)
Pb2Packet
(
)
YgoPacket
{
exdata
:=
make
([]
byte
,
0
)
version
:=
uint16
(
pb
.
Version
)
...
...
@@ -167,20 +169,32 @@ func transformJoinGame(pb *ygopropb.CtosJoinGame) YgoPacket {
// +++++ Server To Client +++++
type
server2Client
interface
{
Packet2Pb
(
pkt
YgoPacket
)
ygopropb
.
YgoStocMsg
}
type
pStocChat
struct
{}
// @player: uint16
// @message: []uint16
func
transformChat
(
pkt
YgoPacket
)
ygopropb
.
YgoStocMsg_StocChat
{
func
(
_
pStocChat
)
Packet2Pb
(
pkt
YgoPacket
)
ygopropb
.
YgoStocMsg
{
player
:=
int32
(
binary
.
LittleEndian
.
Uint16
(
pkt
.
Exdata
))
message
:=
utf16BufferToStr
(
pkt
.
Exdata
[
2
:
])
return
ygopropb
.
YgoStocMsg_StocChat
{
msg
:=
ygopropb
.
YgoStocMsg_StocChat
{
StocChat
:
&
ygopropb
.
StocChat
{
Player
:
player
,
Msg
:
message
,
},
}
return
ygopropb
.
YgoStocMsg
{
Msg
:
&
msg
,
}
}
type
pStocJoinGame
struct
{}
// @lflist: uint32
// @rule: uint8
// @mode: uint8
...
...
@@ -191,7 +205,7 @@ func transformChat(pkt YgoPacket) ygopropb.YgoStocMsg_StocChat {
// @start_hand: uint8
// @draw_count: uint8
// @time_limit: uint16
func
transformJoinGame_
(
pkt
YgoPacket
)
ygopropb
.
YgoStocMsg_StocJoinGame
{
func
(
_
pStocJoinGame
)
Packet2Pb
(
pkt
YgoPacket
)
ygopropb
.
YgoStocMsg
{
hostInfo
:=
HostInfo
{}
exData
:=
bytes
.
NewBuffer
(
pkt
.
Exdata
)
...
...
@@ -199,7 +213,7 @@ func transformJoinGame_(pkt YgoPacket) ygopropb.YgoStocMsg_StocJoinGame {
log
.
Fatal
(
err
)
}
return
ygopropb
.
YgoStocMsg_StocJoinGame
{
msg
:=
ygopropb
.
YgoStocMsg_StocJoinGame
{
StocJoinGame
:
&
ygopropb
.
StocJoinGame
{
Lflist
:
int32
(
hostInfo
.
Lflist
),
Rule
:
int32
(
hostInfo
.
Rule
),
...
...
@@ -213,6 +227,10 @@ func transformJoinGame_(pkt YgoPacket) ygopropb.YgoStocMsg_StocJoinGame {
TimeLimit
:
int32
(
hostInfo
.
TimeLimit
),
},
}
return
ygopropb
.
YgoStocMsg
{
Msg
:
&
msg
,
}
}
// +++++ Util Functions +++++
...
...
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