Skip to content

Commit 1793bf2

Browse files
Update to latest libraries
Add randomized Kerberos password
1 parent e37d340 commit 1793bf2

File tree

7 files changed

+69
-43
lines changed

7 files changed

+69
-43
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ARG app_dir="/home/go/app"
44

55

66
# * Building the application
7-
FROM golang:1.22-alpine3.20 AS build
7+
FROM golang:1.23-alpine3.20 AS build
88
ARG app_dir
99

1010
WORKDIR ${app_dir}

globals/accounts.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func InitAccounts() {
1515
SecureServerAccount = nex.NewAccount(types.NewPID(2), "Quazal Rendez-Vous", KerberosPassword)
1616
}
1717

18-
func AccountDetailsByPID(pid *types.PID) (*nex.Account, *nex.Error) {
18+
func AccountDetailsByPID(pid types.PID) (*nex.Account, *nex.Error) {
1919
if pid.Equals(AuthenticationServerAccount.PID) {
2020
return AuthenticationServerAccount, nil
2121
}
@@ -29,7 +29,7 @@ func AccountDetailsByPID(pid *types.PID) (*nex.Account, *nex.Error) {
2929
return nil, nex.NewError(errorCode, "Failed to get password from PID")
3030
}
3131

32-
account := nex.NewAccount(pid, strconv.Itoa(int(pid.LegacyValue())), password)
32+
account := nex.NewAccount(pid, strconv.Itoa(int(pid)), password)
3333

3434
return account, nil
3535
}

globals/password_from_pid.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import (
99
"google.golang.org/grpc/metadata"
1010
)
1111

12-
func PasswordFromPID(pid *types.PID) (string, uint32) {
12+
func PasswordFromPID(pid types.PID) (string, uint32) {
1313
ctx := metadata.NewOutgoingContext(context.Background(), GRPCAccountCommonMetadata)
1414

15-
response, err := GRPCAccountClient.GetNEXPassword(ctx, &pb.GetNEXPasswordRequest{Pid: pid.LegacyValue()})
15+
response, err := GRPCAccountClient.GetNEXPassword(ctx, &pb.GetNEXPasswordRequest{Pid: uint32(pid)})
1616
if err != nil {
1717
Logger.Error(err.Error())
1818
return "", nex.ResultCodes.RendezVous.InvalidUsername

go.mod

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
module github.com/PretendoNetwork/minecraft-wiiu
22

3-
go 1.22.1
3+
go 1.23.0
44

55
toolchain go1.23.4
66

77
require (
88
github.com/PretendoNetwork/grpc-go v1.0.2
9-
github.com/PretendoNetwork/nex-go/v2 v2.0.6-0.20250106233037-9a3d0bcbb18e
10-
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.0.6
11-
github.com/PretendoNetwork/nex-protocols-go/v2 v2.0.4
9+
github.com/PretendoNetwork/nex-go/v2 v2.1.2
10+
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.2.2
11+
github.com/PretendoNetwork/nex-protocols-go/v2 v2.2.0
1212
github.com/PretendoNetwork/plogger-go v1.0.4
1313
github.com/joho/godotenv v1.5.1
14-
google.golang.org/grpc v1.63.2
14+
google.golang.org/grpc v1.70.0
1515
)
1616

1717
require (
@@ -23,16 +23,16 @@ require (
2323
github.com/klauspost/compress v1.17.11 // indirect
2424
github.com/lib/pq v1.10.9 // indirect
2525
github.com/lxzan/gws v1.8.8 // indirect
26-
github.com/mattn/go-colorable v0.1.13 // indirect
26+
github.com/mattn/go-colorable v0.1.14 // indirect
2727
github.com/mattn/go-isatty v0.0.20 // indirect
2828
github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e // indirect
2929
github.com/superwhiskers/crunch/v3 v3.5.7 // indirect
30-
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect
31-
golang.org/x/mod v0.22.0 // indirect
32-
golang.org/x/net v0.33.0 // indirect
33-
golang.org/x/sys v0.28.0 // indirect
34-
golang.org/x/term v0.27.0 // indirect
35-
golang.org/x/text v0.21.0 // indirect
36-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d // indirect
37-
google.golang.org/protobuf v1.36.1 // indirect
30+
golang.org/x/exp v0.0.0-20250215185904-eff6e970281f // indirect
31+
golang.org/x/mod v0.23.0 // indirect
32+
golang.org/x/net v0.35.0 // indirect
33+
golang.org/x/sys v0.30.0 // indirect
34+
golang.org/x/term v0.29.0 // indirect
35+
golang.org/x/text v0.22.0 // indirect
36+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250212204824-5a70512c5d8b // indirect
37+
google.golang.org/protobuf v1.36.5 // indirect
3838
)

go.sum

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,20 @@ github.com/PretendoNetwork/nex-go/v2 v2.0.5 h1:S/bYPb2SNUb9MSzai4wlqj/9J1JIiLuMt
66
github.com/PretendoNetwork/nex-go/v2 v2.0.5/go.mod h1:iW1xjbg/vl2c3uheitUFxGcrt0sxaDxeXR5QqDcyLpI=
77
github.com/PretendoNetwork/nex-go/v2 v2.0.6-0.20250106233037-9a3d0bcbb18e h1:6qXPe5uysf+pCSrVRple+CMKz4GEM8YrglIqIFqy7fI=
88
github.com/PretendoNetwork/nex-go/v2 v2.0.6-0.20250106233037-9a3d0bcbb18e/go.mod h1:iW1xjbg/vl2c3uheitUFxGcrt0sxaDxeXR5QqDcyLpI=
9+
github.com/PretendoNetwork/nex-go/v2 v2.1.2 h1:OJFAS6U6VNzZ4YzteKqUEZ5aJMwWIHODeRrLwNbN7nw=
10+
github.com/PretendoNetwork/nex-go/v2 v2.1.2/go.mod h1:3LyJzsv3AataJW8D0binp15Q8ZH22MWTYly1VNtXi64=
911
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.0.5 h1:17b7vA8wjWLW9JdJTHeOoX2g2e4S/EwA32m9AuPEA80=
1012
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.0.5/go.mod h1:0wDEYxDYbUOjsKjsTUjU0/f3pL1MT54h+tGn4UyeB+A=
1113
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.0.6 h1:8nNJvJi5aTmGBRtEGVYAI6cjNK1WyIiF+AnGD1QyD+E=
1214
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.0.6/go.mod h1:Mngar0XMLs7oG9KfeyVJBBhYNCNRXxDcucJTthpP9GY=
15+
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.2.2 h1:rBJNZDJ92pa9fU3Og0sanyizJTWnELPoGR0Tjz8zlws=
16+
github.com/PretendoNetwork/nex-protocols-common-go/v2 v2.2.2/go.mod h1:iuNMuBK/zww+44d6ajfLsOusXx/6Llj3zSkmhJwMuuM=
1317
github.com/PretendoNetwork/nex-protocols-go/v2 v2.0.3 h1:80CG7f9w/34MN1vAZ1XP3ec4LJ4mqKlkests+HQzrvc=
1418
github.com/PretendoNetwork/nex-protocols-go/v2 v2.0.3/go.mod h1:2UN8khoMDNaeJ4GcIG7ez7MqqmbLfLzbVS6hSa+kGnk=
1519
github.com/PretendoNetwork/nex-protocols-go/v2 v2.0.4 h1:7Vb/jV/cO6c8XcGzGCoowSNXjZDLb/D1lYkLk8rxm7c=
1620
github.com/PretendoNetwork/nex-protocols-go/v2 v2.0.4/go.mod h1:2UN8khoMDNaeJ4GcIG7ez7MqqmbLfLzbVS6hSa+kGnk=
21+
github.com/PretendoNetwork/nex-protocols-go/v2 v2.2.0 h1:abbCXgYN9icR9hmGV9GkuiOvg92+WBeVTnvtiAU06QU=
22+
github.com/PretendoNetwork/nex-protocols-go/v2 v2.2.0/go.mod h1:+soBHmwX6ixGxj6cphLuCvfJqxcZPuowc/5e7Qi9Bz0=
1723
github.com/PretendoNetwork/plogger-go v1.0.4 h1:PF7xHw9eDRHH+RsAP9tmAE7fG0N0p6H4iPwHKnsoXwc=
1824
github.com/PretendoNetwork/plogger-go v1.0.4/go.mod h1:7kD6M4vPq1JL4LTuPg6kuB1OvUBOwQOtAvTaUwMbwvU=
1925
github.com/PretendoNetwork/pq-extended v1.0.0 h1:GHZ0hLvCvmYKQPTV9I9XtTx8J1iB5Z9CEnfW2tUpsYg=
@@ -46,6 +52,8 @@ github.com/lxzan/gws v1.8.8 h1:st193ZG8qN8sSw8/g/UituFhs7etmKzS7jUqhijg5wM=
4652
github.com/lxzan/gws v1.8.8/go.mod h1:FcGeRMB7HwGuTvMLR24ku0Zx0p6RXqeKASeMc4VYgi4=
4753
github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA=
4854
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
55+
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
56+
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
4957
github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
5058
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
5159
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
@@ -61,14 +69,20 @@ golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842 h1:vr/HnozRka3pE4EsMEg1lgkXJ
6169
golang.org/x/exp v0.0.0-20240506185415-9bf2ced13842/go.mod h1:XtvwrStGgqGPLc4cjQfWqZHG1YFdYs6swckp8vpsjnc=
6270
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 h1:1UoZQm6f0P/ZO0w1Ri+f+ifG/gXhegadRdwBIXEFWDo=
6371
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67/go.mod h1:qj5a5QZpwLU2NLQudwIN5koi3beDhSAlJwa67PuM98c=
72+
golang.org/x/exp v0.0.0-20250215185904-eff6e970281f h1:oFMYAjX0867ZD2jcNiLBrI9BdpmEkvPyi5YrBGXbamg=
73+
golang.org/x/exp v0.0.0-20250215185904-eff6e970281f/go.mod h1:BHOTPb3L19zxehTsLoJXVaTktb06DFgmdW6Wb9s8jqk=
6474
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
6575
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
6676
golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
6777
golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
78+
golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
79+
golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
6880
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
6981
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
7082
golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
7183
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
84+
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
85+
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
7286
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
7387
golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
7488
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -77,28 +91,40 @@ golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
7791
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
7892
golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
7993
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
94+
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
95+
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
8096
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
8197
golang.org/x/term v0.20.0 h1:VnkxpohqXaOBYJtBmEppKUG6mXpi+4O6purfc2+sMhw=
8298
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
8399
golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
84100
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
101+
golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
102+
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
85103
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
86104
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
87105
golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
88106
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
107+
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
108+
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
89109
google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be h1:LG9vZxsWGOmUKieR8wPAUR3u3MpnYFQZROPIMaXh7/A=
90110
google.golang.org/genproto/googleapis/rpc v0.0.0-20240415180920-8c6c420018be/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY=
91111
google.golang.org/genproto/googleapis/rpc v0.0.0-20241230172942-26aa7a208def h1:4P81qv5JXI/sDNae2ClVx88cgDDA6DPilADkG9tYKz8=
92112
google.golang.org/genproto/googleapis/rpc v0.0.0-20241230172942-26aa7a208def/go.mod h1:bdAgzvd4kFrpykc5/AC2eLUiegK9T/qxZHD4hXYf/ho=
93113
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d h1:xJJRGY7TJcvIlpSrN3K6LAWgNFUILlO+OMAqtg9aqnw=
94114
google.golang.org/genproto/googleapis/rpc v0.0.0-20250102185135-69823020774d/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4=
115+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250212204824-5a70512c5d8b h1:FQtJ1MxbXoIIrZHZ33M+w5+dAP9o86rgpjoKr/ZmT7k=
116+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250212204824-5a70512c5d8b/go.mod h1:8BS3B93F/U1juMFq9+EDk+qOT5CO1R9IzXxG3PTqiRk=
95117
google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM=
96118
google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA=
97119
google.golang.org/grpc v1.69.2 h1:U3S9QEtbXC0bYNvRtcoklF3xGtLViumSYxWykJS+7AU=
98120
google.golang.org/grpc v1.69.2/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4=
121+
google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
122+
google.golang.org/grpc v1.70.0/go.mod h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw=
99123
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
100124
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
101125
google.golang.org/protobuf v1.36.1 h1:yBPeRvTftaleIgM3PZ/WBIZ7XM/eEYAaEyCwvyjq/gk=
102126
google.golang.org/protobuf v1.36.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
127+
google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
128+
google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
103129
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
104130
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

init.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main
22

33
import (
4+
"crypto/rand"
45
"database/sql"
56
"fmt"
67
pbfriends "github.com/PretendoNetwork/grpc-go/friends"
@@ -27,7 +28,6 @@ func init() {
2728
globals.Logger.Warning("Error loading .env file")
2829
}
2930

30-
kerberosPassword := os.Getenv("PN_MINECRAFT_KERBEROS_PASSWORD")
3131
authenticationServerPort := os.Getenv("PN_MINECRAFT_AUTHENTICATION_SERVER_PORT")
3232
secureServerHost := os.Getenv("PN_MINECRAFT_SECURE_SERVER_HOST")
3333
secureServerPort := os.Getenv("PN_MINECRAFT_SECURE_SERVER_PORT")
@@ -38,12 +38,15 @@ func init() {
3838
friendsGRPCPort := os.Getenv("PN_MINECRAFT_FRIENDS_GRPC_PORT")
3939
friendsGRPCAPIKey := os.Getenv("PN_MINECRAFT_FRIENDS_GRPC_API_KEY")
4040

41-
if strings.TrimSpace(kerberosPassword) == "" {
42-
globals.Logger.Warningf("PN_MINECRAFT_KERBEROS_PASSWORD environment variable not set. Using default password: %q", globals.KerberosPassword)
43-
} else {
44-
globals.KerberosPassword = kerberosPassword
41+
kerberosPassword := make([]byte, 0x10)
42+
_, err = rand.Read(kerberosPassword)
43+
if err != nil {
44+
globals.Logger.Error("Error generating Kerberos password")
45+
os.Exit(0)
4546
}
4647

48+
globals.KerberosPassword = string(kerberosPassword)
49+
4750
globals.InitAccounts()
4851

4952
if strings.TrimSpace(authenticationServerPort) == "" {

nex/register_common_secure_server_protocols.go

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ func cleanupSearchMatchmakeSessionHandler(matchmakeSession *matchmakingtypes.Mat
3131
globals.Logger.Info(matchmakeSession.String())
3232
}
3333

34-
func CreateReportDBRecord(_ *types.PID, _ *types.PrimitiveU32, _ *types.QBuffer) error {
34+
func CreateReportDBRecord(_ types.PID, _ types.UInt32, _ types.QBuffer) error {
3535
return nil
3636
}
3737

3838
// * Minecraft WiiU edition isn't always safe to play on public matches. To mitigate this, just claim there are no
3939
// * public matches.
40-
func stubBrowseMatchmakeSession(err error, packet nex.PacketInterface, callID uint32, _ *matchmakingtypes.MatchmakeSessionSearchCriteria, _ *types.ResultRange) (*nex.RMCMessage, *nex.Error) {
40+
func stubBrowseMatchmakeSession(err error, packet nex.PacketInterface, callID uint32, _ matchmakingtypes.MatchmakeSessionSearchCriteria, _ types.ResultRange) (*nex.RMCMessage, *nex.Error) {
4141
if err != nil {
4242
globals.Logger.Error(err.Error())
4343
return nil, nex.NewError(nex.ResultCodes.Core.InvalidArgument, "change_error")
@@ -46,8 +46,7 @@ func stubBrowseMatchmakeSession(err error, packet nex.PacketInterface, callID ui
4646
connection := packet.Sender().(*nex.PRUDPConnection)
4747
endpoint := connection.Endpoint().(*nex.PRUDPEndPoint)
4848

49-
lstGathering := types.NewList[*types.AnyDataHolder]()
50-
lstGathering.Type = types.NewAnyDataHolder()
49+
lstGathering := types.NewList[types.DataHolder]()
5150

5251
// * Don't include any sessions!
5352
//for _, session := range sessions {
@@ -72,43 +71,41 @@ func stubBrowseMatchmakeSession(err error, packet nex.PacketInterface, callID ui
7271
return rmcResponse, nil
7372
}
7473

75-
func gameSpecificCanJoinMatchmakeSession(manager *commonglobals.MatchmakingManager, pid *types.PID, session *matchmakingtypes.MatchmakeSession) *nex.Error {
76-
if !session.OpenParticipation.Value {
74+
func gameSpecificCanJoinMatchmakeSession(manager *commonglobals.MatchmakingManager, pid types.PID, session matchmakingtypes.MatchmakeSession) *nex.Error {
75+
if !session.OpenParticipation {
7776
return nex.NewError(nex.ResultCodes.RendezVous.PermissionDenied, "Gathering is not open to new participants")
7877
}
7978

8079
isPublic := false
81-
attrib, err := session.Attributes.Get(0)
82-
if err == nil {
83-
// * I wish this was a joke. top 8 bits are GameMode
84-
// * This is the only difference between a public and a Friends match
85-
isPublic = (attrib.Value & 0xFFFFFF) == 0x30881
86-
}
80+
attrib := session.Attributes[0]
81+
// * I wish this was a joke. top 8 bits are GameMode
82+
// * This is the only difference between a public and a Friends match
83+
isPublic = (attrib & 0xFFFFFF) == 0x30881
8784

8885
if isPublic && os.Getenv("PN_MINECRAFT_ALLOW_PUBLIC_MATCHMAKING") == "1" {
8986
//globals.Logger.Info("Game is public")
9087
return nil
9188
}
9289

9390
host := session.OwnerPID
94-
hostFriends := manager.GetUserFriendPIDs(host.LegacyValue())
95-
if slices.Contains(hostFriends, pid.LegacyValue()) {
91+
hostFriends := manager.GetUserFriendPIDs(uint32(host))
92+
if slices.Contains(hostFriends, uint32(pid)) {
9693
//globals.Logger.Info("User is friend of host")
9794
return nil
9895
}
9996

10097
isFriendsOfFriends := false
101-
if len(session.ApplicationBuffer.Value) > 0xc3 {
102-
isFriendsOfFriends = session.ApplicationBuffer.Value[0xc3] == 0x8F
98+
if len(session.ApplicationBuffer) > 0xc3 {
99+
isFriendsOfFriends = session.ApplicationBuffer[0xc3] == 0x8F
103100
}
104101

105102
if !isFriendsOfFriends {
106103
return nex.NewError(nex.ResultCodes.RendezVous.NotFriend, "User is not a friend of host")
107104
}
108105

109106
// * Get the participants of this gathering so we don't have to check all 100whatever of host's friends
110-
_, _, participants, _, nerr := database.FindGatheringByID(manager, session.ID.Value)
111-
if err != nil {
107+
_, _, participants, _, nerr := database.FindGatheringByID(manager, uint32(session.ID))
108+
if nerr != nil {
112109
globals.Logger.Errorf("Can't find gathering for pariticpation check: %v", nerr)
113110
return nerr
114111
}
@@ -119,7 +116,7 @@ func gameSpecificCanJoinMatchmakeSession(manager *commonglobals.MatchmakingManag
119116
if slices.Contains(participants, uint64(friend)) {
120117
// * Are you a friend of the host's friend?
121118
friendsFriends := manager.GetUserFriendPIDs(friend)
122-
if slices.Contains(friendsFriends, pid.LegacyValue()) {
119+
if slices.Contains(friendsFriends, uint32(pid)) {
123120
//globals.Logger.Infof("User is friend of host's friend %v", friend)
124121
return nil
125122
}

0 commit comments

Comments
 (0)