TH1/Unity/Assets/Scripts/Hotfix/Server/Demo/Gate/GateSessionKeyComponentSystem.cs
2025-07-17 18:26:28 +08:00

30 lines
960 B
C#

namespace ET.Server
{
[FriendOf(typeof(GateSessionKeyComponent))]
public static partial class GateSessionKeyComponentSystem
{
public static void Add(this GateSessionKeyComponent self, long key, string account)
{
self.sessionKey.Add(key, account);
self.TimeoutRemoveKey(key).Coroutine();
}
public static string Get(this GateSessionKeyComponent self, long key)
{
string account = null;
self.sessionKey.TryGetValue(key, out account);
return account;
}
public static void Remove(this GateSessionKeyComponent self, long key)
{
self.sessionKey.Remove(key);
}
private static async ETTask TimeoutRemoveKey(this GateSessionKeyComponent self, long key)
{
await self.Root().GetComponent<TimerComponent>().WaitAsync(20000);
self.sessionKey.Remove(key);
}
}
}