Files
Reactor/Reactor/Networking/Extensions/ClientExtensions.cs
T
2022-10-06 18:47:40 +00:00

31 lines
1013 B
C#

using Hazel;
using InnerNet;
namespace Reactor.Networking.Extensions;
public static class ClientExtensions
{
public static void KickWithReason(this InnerNetClient innerNetClient, int targetClientId, string reason)
{
var writer = MessageWriter.Get(SendOption.Reliable);
writer.StartMessage(Tags.GameDataTo);
writer.Write(innerNetClient.GameId);
writer.WritePacked(targetClientId);
{
writer.StartMessage(byte.MaxValue);
writer.Write((byte) ReactorGameDataFlag.KickWithReason);
writer.Write(reason);
writer.EndMessage();
}
writer.EndMessage();
innerNetClient.SendOrDisconnect(writer);
writer.Recycle();
}
public static void DisconnectWithReason(this InnerNetClient innerNetClient, string reason)
{
innerNetClient.LastCustomDisconnect = reason;
innerNetClient.HandleDisconnect(innerNetClient.LastDisconnectReason = DisconnectReasons.Custom, reason);
}
}