PretendoNetwork / splatoon

Pretendo Splatoon server implementation
GNU Affero General Public License v3.0
33 stars 4 forks source link

[Bug]: Private Battle error #7

Closed AToska21 closed 1 month ago

AToska21 commented 2 months ago

Checked Existing

What happened?

Trying to join a Splatoon private battle from a Wii U when connecting to a Private Battle hosted by Cemu causes a "Communication Error" and an error in the logs which I have attached. This also happens when trying to join a Regular Battle With Friends. Seems to be something related to matchmaking with params, specifically the CallID.

What did you expect to happen?

Should have joined the Private Battle/Regular Battle with friends.

Steps to reproduce?

  1. Have a functional Account, Friends and BOSS server.
  2. Install the Splatoon server and create a Private Battle.
  3. Join with an alt on any device (tested on Cemu)
  4. Error.

Other relevant information. (OPTIONAL)

Log:

splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 21
splatoon-1  | Method ID: 2
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 11
splatoon-1  | Method ID: 8
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 109
splatoon-1  | Method ID: 16
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 109
splatoon-1  | Method ID: 38
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 3
splatoon-1  | Method ID: 5
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 11
splatoon-1  | Method ID: 8
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 109
splatoon-1  | Method ID: 34
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 109
splatoon-1  | Method ID: 16
splatoon-1  | ===============
splatoon-1  | ==Splatoon - Secure==
splatoon-1  | Protocol ID: 109
splatoon-1  | Method ID: 39
splatoon-1  | ===============
splatoon-1  | [2024-09-15T20:40:56] [ERROR]    [func (*CommonProtocol).joinMatchmakeSessionWithParam() github.com/PretendoNetwork/nex-protocols-common-go/v2/matchmake-extension/join_matchmake_session_with_param.go:12] : Failed to read joinMatchmakeSessionParam from parameters. Failed to extract JoinMatchmakeSessionParam.ExtraParticipants. Not enough data to read uint16
splatoon-1  | 
splatoon-1  | [2024-09-15T20:40:56] [ERROR]    [func func2() github.com/PretendoNetwork/splatoon/nex.StartSecureServer/secure.go:36] : Secure: [Core::InvalidArgument] change_error
AToska21 commented 2 months ago

whoops, forgot to update the title :P

AToska21 commented 1 month ago

It seems this might be an issue with nex-protocols-go.

AToska21 commented 1 month ago

this has been fixed, thanks @ashquarky for anyone wondering, you need the latest dev build of nex-protocols-go:

Developing core libraries

This server depends on nex-protocols-common-go, nex-protocols-go, and nex-go to implement the bulk of its functionality. Sometimes features or bugfixes depend on unreleased development versions of these libraries; or changes have to be made at the library level to work on this server. To use these unreleased libraries, add a go.work file with something like the following content:

go 1.21
use (
    .
)
replace (
    github.com/PretendoNetwork/nex-go/v2 => ../nex-go
    github.com/PretendoNetwork/nex-protocols-go/v2 => ../nex-protocols-go
    github.com/PretendoNetwork/nex-protocols-common-go/v2 => ../nex-protocols-common-go
)

The build will then build these libraries out of the folders specified instead of pulling the released versions.