namespace ET.Server { [FriendOf(typeof(GameTokenInfoComponent))] public static class GameTokenInfoComponentSystem { public static void Add(this GameTokenInfoComponent self, string token, long userId) { self.tokenInfo.Add(token, userId); self.TimeoutRemoveKey(token).Coroutine(); } public static long Get(this GameTokenInfoComponent self, string token) { long userId = 0; self.tokenInfo.TryGetValue(token, out userId); return userId; } public static void Remove(this GameTokenInfoComponent self, string token) { self.tokenInfo.Remove(token); } private static async ETTask TimeoutRemoveKey(this GameTokenInfoComponent self, string token) { await TimerComponent.Instance.WaitAsync(20000); self.tokenInfo.Remove(token); } } }