multiplayer-community-contributions
multiplayer-community-contributions copied to clipboard
FacepunchTransport.cs - connectedClients Client.steamId is always 0 - Facepunch.Steamworks Runtime needs to be updated!
So i am trying to modify the FacepunchTransport.cs in a way i can simply get peoples steamid per connectionID in a way they cannot spoof it that easily. But i came across a problem when i checked the connectedClients Dictionary.
When a new client connects to the socket, the steamId applied already is 0 only:
void ISocketManager.OnConnected(SocketConnection connection, ConnectionInfo info)
{
if (!connectedClients.ContainsKey(connection.Id))
{
connectedClients.Add(connection.Id, new Client()
{
connection = connection,
steamId = info.Identity.SteamId
});
InvokeOnTransportEvent(NetworkEvent.Connect, connection.Id, default, Time.realtimeSinceStartup);
if (LogLevel <= LogLevel.Developer)
Debug.Log($"[{nameof(FacepunchTransport)}] - Connected with Steam user {info.Identity.SteamId}.");
}
else if (LogLevel <= LogLevel.Normal)
Debug.LogWarning($"[{nameof(FacepunchTransport)}] - Failed to connect client with ID {connection.Id}, client already connected.");
}
The problem is an issue with the released Facepunch.Steamworks, see https://github.com/Facepunch/Facepunch.Steamworks/issues/455
So i compiled the current master branch from Facepunch.Steamworks and replaced the Runtime files and redist bin files with the new compiled ones & now the connectedClients Client actually contains the persons SteamID.
Also, i think the NetworkManager should allow custom transports to map NetworkManager connection IDs together with a Platform ID which could be SteamID, PlayfabID, etc.
I have no idea why Facepunch.Steamworks did not pushed a new release in 3 years.
Greetings
This issuse still exists, can't connect to any host.
[FacepunchTransport] - Connecting with Steam user 0.
THE FIX:
- Download the Zip file below
- Go to com.community.netcode.transport.facepunch\Runtime\Facepunch (where the package is installed in your Unity project)
- replace both files with the downloaded ones.
- YOURE GOOD TO GO!
what I did: I downloaded the facepunch.steamworks source code, fixed it and compiled it. you're welcome. Credits to Matze.