public async void OnClientResourceStart([FromSource] Player source) { GeminisPlayer player = players.GetPlayerFromSource(source); string identifier = this.GenerateIdentifier(); player.SetData("heartbeat_identifier", identifier); player.SetData("heartbeat", utils.GetTimestamp()); source.TriggerEvent("geminis:set_identifier", identifier); }
public void OnPlayerConnecting(GeminisPlayer geminisPlayer) { geminisPlayer.SetData("entities_ratelimit", new Dictionary <string, EntityRatelimit> { }); Dictionary <string, EntityRatelimit> playerRatelimit = geminisPlayer.GetData("entities_ratelimit"); foreach (KeyValuePair <string, List <int> > pair in config.entities_ratelimit) { if (this.NameToType(pair.Key) != -1 && pair.Value.Count == 2) { playerRatelimit.Add(pair.Key, new EntityRatelimit(pair.Value[0], pair.Value[1])); } } }
public async void OnClientHeartbeat([FromSource] Player source, string identifier) { GeminisPlayer geminisPlayer = players.GetPlayerFromSource(source); if (geminisPlayer == null) { return; } if (geminisPlayer.GetData("heartbeat_identifier") != identifier) { geminisPlayer.Drop(locale.wrong_heartbeat); return; } geminisPlayer.SetData("heartbeat", utils.GetTimestamp()); }