Goobwabber / MultiplayerExtensions

A Beat Saber mod that expands multiplayer functionality.
Other
488 stars 174 forks source link

[BUG] Player is disconnected when the host selects a song #52

Closed dotMortis closed 3 years ago

dotMortis commented 3 years ago

Your Platform PC Steam

Describe the bug When the host picks a song, there is something like an 70% chance that a random player will be kicked out of the lobby. The player is kicked right when clicking on a song.

We were a group of 3-4 players

Goobwabber commented 3 years ago

Do you have logs?

marcin212 commented 3 years ago

I have the same problem. My logs: https://img.bymarcin.com/2020.11.18.18.45.36.log https://img.bymarcin.com/2020.11.18.19.43.59.log

Goobwabber commented 3 years ago

For anyone who has this issue in the future, update to the newest version. The kick is caused by an incompatibility between the two versions.

dotMortis commented 3 years ago

@Goobwabber Thank you. Is it possible to check the plugin version when joining the lobby and display a warning when the host is on a diffrent version?

Goobwabber commented 3 years ago

Yeah, that will probably be added in #53

jklpuzo commented 3 years ago

we have the same version but still have this problem from time to time. I would say 20% chance of being kicked.

dotMortis commented 3 years ago

@Goobwabber Had this issue again, both clients have exactly the same plugins + versions (everything up to date). The same Song worked correctly the second time.

[DEBUG @ 00:38:59 | MultiplayerExtensions] Local user selected song '2BCA9FBF43339CD05493628773EA5BE3F03F5177'.
[DEBUG @ 00:38:59 | MultiplayerExtensions] PreviewBeatmap(custom_level_2BCA9FBF43339CD05493628773EA5BE3F03F5177): Cached preview found, skipping beatsaver request.
[DEBUG @ 00:38:59 | MultiplayerExtensions] PreviewBeatmap(custom_level_2BCA9FBF43339CD05493628773EA5BE3F03F5177): Cached preview found, skipping beatsaver request.
[DEBUG @ 00:38:59 | MultiplayerExtensions] PreviewBeatmap(custom_level_2BCA9FBF43339CD05493628773EA5BE3F03F5177): Cached preview found, skipping beatsaver request.
[WARNING @ 00:38:59 | MultiplayerExtensions] An exception was thrown processing a packet from player 'Vaalyria|DlB1jpM7HVpME55HhANl33' (1): Index and count must refer to a location within the buffer.
[WARNING @ 00:38:59 | MultiplayerExtensions] Parameter name: bytes
[DEBUG @ 00:38:59 | MultiplayerExtensions] System.ArgumentOutOfRangeException: Index and count must refer to a location within the buffer.
[DEBUG @ 00:38:59 | MultiplayerExtensions] Parameter name: bytes
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at System.Text.UTF8Encoding.GetString (System.Byte[] bytes, System.Int32 index, System.Int32 count) [0x00057] in <437ba245d8404784b9fbab9b439ac908>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at LiteNetLib.Utils.NetDataReader.GetString () [0x00016] in <98358ea3ff184f2fbc981a5ee9296a66>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at RemoteProcedureCall+TypeWrapper`1[T].Deserialize (LiteNetLib.Utils.NetDataReader reader) [0x000e3] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at RemoteProcedureCall`2[T0,T1].DeserializeData (LiteNetLib.Utils.NetDataReader reader) [0x00000] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at RemoteProcedureCall.LiteNetLib.Utils.INetSerializable.Deserialize (LiteNetLib.Utils.NetDataReader reader) [0x0000c] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2+<>c__DisplayClass7_0`1[TType,TData,TPacket].<RegisterCallback>b__0 (LiteNetLib.Utils.NetDataReader reader, System.Int32 size) [0x0003b] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2+<>c__DisplayClass7_0`1[TType,TData,TPacket].<RegisterCallback>b__1 (LiteNetLib.Utils.NetDataReader reader, System.Int32 size, TData data) [0x00000] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2[TType,TData].ProcessPacketInternal (LiteNetLib.Utils.NetDataReader reader, System.Int32 length, TData data) [0x0001f] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2[TType,TData].INetworkPacketSubSerializer<TData>.Deserialize (LiteNetLib.Utils.NetDataReader reader, System.Int32 length, TData data) [0x00000] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2+<>c__DisplayClass9_0[TType,TData].<RegisterSubSerializer>b__0 (LiteNetLib.Utils.NetDataReader reader, System.Int32 size, TData data) [0x00000] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2[TType,TData].ProcessPacketInternal (LiteNetLib.Utils.NetDataReader reader, System.Int32 length, TData data) [0x0001f] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2[TType,TData].INetworkPacketSubSerializer<TData>.Deserialize (LiteNetLib.Utils.NetDataReader reader, System.Int32 length, TData data) [0x00000] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2+<>c__DisplayClass9_0[TType,TData].<RegisterSubSerializer>b__0 (LiteNetLib.Utils.NetDataReader reader, System.Int32 size, TData data) [0x00000] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2[TType,TData].ProcessPacketInternal (LiteNetLib.Utils.NetDataReader reader, System.Int32 length, TData data) [0x0001f] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2[TType,TData].ProcessPacket (LiteNetLib.Utils.NetDataReader reader, TData data) [0x00011] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at NetworkPacketSerializer`2[TType,TData].ProcessAllPackets (LiteNetLib.Utils.NetDataReader reader, TData data) [0x00000] in <4a09bf1000eb4a3291d3dbf85572f43d>:0 
[DEBUG @ 00:38:59 | MultiplayerExtensions]   at (wrapper dynamic-method) ConnectedPlayerManager.ConnectedPlayerManager.OnNetworkReceive_Patch0(ConnectedPlayerManager,IConnection,LiteNetLib.Utils.NetDataReader,LiteNetLib.DeliveryMethod)
[INFO @ 00:38:59 | MultiplayerExtensions] Player 'DlB1jpM7HVpME55HhANl33' disconnected
[DEBUG @ 00:38:59 | MultiplayerExtensions] PreviewBeatmap(custom_level_2BCA9FBF43339CD05493628773EA5BE3F03F5177): Cached preview found, skipping beatsaver request.
[DEBUG @ 00:38:59 | MultiplayerExtensions] PreviewBeatmap(custom_level_2BCA9FBF43339CD05493628773EA5BE3F03F5177): Metadata downloaded.
[DEBUG @ 00:39:01 | MultiplayerExtensions] Level with ID 'custom_level_2BCA9FBF43339CD05493628773EA5BE3F03F5177' already exists.
dotMortis commented 3 years ago

@Goobwabber It happens much more often when I'm not playing locale multiplayer.

Logs: 2020.12.29.19.42.14.log.gz

Goobwabber commented 3 years ago

seems to be fixed in 0.4.1