mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-02-19 12:40:56 +00:00
30 lines
1.1 KiB
C#
30 lines
1.1 KiB
C#
|
using OWML.Common;
|
|||
|
using QSB.Messaging;
|
|||
|
using QSB.Player.Messages;
|
|||
|
using QSB.Utility;
|
|||
|
|
|||
|
namespace QSB.WorldSync.Messages;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// sends QSBWorldSync.WorldObjectsHash to the server for sanity checking
|
|||
|
/// </summary>
|
|||
|
public class WorldObjectsHashMessage : QSBMessage<(string managerName, string hash, int count)>
|
|||
|
{
|
|||
|
public WorldObjectsHashMessage(string managerName, string hash, int count) : base((managerName, hash, count)) => To = 0;
|
|||
|
|
|||
|
public override void OnReceiveRemote()
|
|||
|
{
|
|||
|
Delay.RunWhen(() => QSBWorldSync.AllObjectsAdded, () =>
|
|||
|
{
|
|||
|
var (hash, count) = QSBWorldSync.ManagerHashes[Data.managerName];
|
|||
|
|
|||
|
if (hash != Data.hash)
|
|||
|
{
|
|||
|
// oh fuck oh no oh god
|
|||
|
DebugLog.ToConsole($"Kicking {From} because their WorldObjects hash for {Data.managerName} is wrong. (Server:{hash} count:{count}, Client:{Data.hash} count:{Data.count})", MessageType.Error);
|
|||
|
new PlayerKickMessage(From, $"WorldObject hash error for {Data.managerName}. (Server:{hash} count:{count}, Client:{Data.hash}, count:{Data.count})").Send();
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
}
|