quantum-space-buddies/QSB/WorldSync/WorldObjectsHashMessage.cs

31 lines
872 B
C#
Raw Normal View History

2022-10-08 20:18:22 +01:00
using OWML.Common;
using QSB.Messaging;
using QSB.Player.Messages;
using QSB.Utility;
namespace QSB.WorldSync;
2022-10-08 14:27:57 -07:00
/// <summary>
/// sends QSBWorldSync.WorldObjectsHash to the server for sanity checking
/// </summary>
2022-10-09 13:22:53 +01:00
internal class WorldObjectsHashMessage : QSBMessage<string>
2022-10-08 20:18:22 +01:00
{
2022-10-08 14:27:57 -07:00
public WorldObjectsHashMessage() : base(QSBWorldSync.WorldObjectsHash) => To = 0;
2022-10-08 20:18:22 +01:00
public override void OnReceiveRemote()
{
var serverHash = QSBWorldSync.WorldObjectsHash;
if (serverHash != Data)
{
// oh fuck oh no oh god
DebugLog.ToConsole($"Kicking {From} because their WorldObjects hash is wrong. (server:{serverHash}, client:{Data})", MessageType.Error);
new PlayerKickMessage(From, $"WorldObject hash error. (Server:{serverHash}, Client:{Data})").Send();
}
else
{
DebugLog.DebugWrite($"WorldObject hash from {From} verified!", MessageType.Success);
}
}
}