private static void StaticOnClientJoined(ulong obj) { if (obj == 0) { return; } if (BlockLimiterConfig.Instance.PlayerTimes.Any(x => x.Player == obj) == false) { Instance.Log.Warn($"{obj} logged to player time {DateTime.Now}"); var playerTime = new PlayerTime { Player = obj, Time = DateTime.Now }; BlockLimiterConfig.Instance.PlayerTimes.Add(playerTime); } if (!BlockLimiterConfig.Instance.EnableLimits) { return; } var identityId = Utilities.GetPlayerIdFromSteamId(obj); if (identityId == 0) { return; } var playerFaction = MySession.Static.Factions.GetPlayerFaction(identityId); UpdateLimits.PlayerLimit(identityId); if (playerFaction != null) { UpdateLimits.PlayerLimit(playerFaction.FactionId); } }
private static void StaticOnClientJoined(ulong obj) { var player = MySession.Static.Players.TryGetPlayerBySteamId(obj); if (player == null) { return; } UpdateLimits.PlayerLimit(player); }
private void FactionsOnFactionStateChanged(MyFactionStateChange factionState, long fromFaction, long toFaction, long playerId, long senderId) { if (factionState == MyFactionStateChange.RemoveFaction) { foreach (var limit in BlockLimiterConfig.Instance.AllLimits) { limit.Exceptions.Remove(fromFaction.ToString()); limit.FoundEntities.Remove(fromFaction); } return; } UpdateLimits.FactionLimit(fromFaction); UpdateLimits.FactionLimit(toFaction); UpdateLimits.PlayerLimit(playerId); }
private static void StaticOnClientJoined(ulong obj, string playerName) { if (obj == 0) { return; } if (!BlockLimiterConfig.Instance.EnableLimits) { return; } var identityId = Utilities.GetPlayerIdFromSteamId(obj); if (identityId == 0) { return; } var playerFaction = MySession.Static.Factions.GetPlayerFaction(identityId); UpdateLimits.PlayerLimit(identityId); if (playerFaction != null) { UpdateLimits.PlayerLimit(playerFaction.FactionId); } }
public static void ResetLimits(bool updateGrids = true, bool updatePlayers = true, bool updateFactions = true) { if (!BlockLimiterConfig.Instance.EnableLimits) { foreach (var limit in BlockLimiterConfig.Instance.AllLimits) { limit.FoundEntities.Clear(); } return; } if (updateGrids) { var grids = new HashSet <MyCubeGrid>(); GridCache.GetGrids(grids); Task.Run(() => { Thread.Sleep(500); foreach (var grid in grids) { if (grid == null) { continue; } Parallel.Invoke(() => { Thread.Sleep(100); UpdateLimits.GridLimit(grid); }); } }); } if (updatePlayers) { Task.Run(() => { Thread.Sleep(300); foreach (var player in MySession.Static.Players.GetAllPlayers()) { if (player.SteamId == 0) { continue; } var identity = Utilities.GetPlayerIdFromSteamId(player.SteamId); if (identity == 0) { continue; } Parallel.Invoke(() => UpdateLimits.PlayerLimit(identity)); } }); } if (updateFactions) { Task.Run(() => { Thread.Sleep(100); foreach (var(id, faction) in MySession.Static.Factions.Factions) { if (faction.IsEveryoneNpc() || id == 0) { continue; } Parallel.Invoke(() => UpdateLimits.FactionLimit(id)); } }); } }
public static void ResetLimits(bool updateGrids = true, bool updatePlayers = true, bool updateFactions = true) { if (!BlockLimiterConfig.Instance.EnableLimits) { foreach (var limit in BlockLimiterConfig.Instance.AllLimits) { limit.FoundEntities.Clear(); } return; } if (updateGrids) { var grids = new HashSet <MyCubeGrid>(); GridCache.GetGrids(grids); Task.Run(() => { Parallel.ForEach(grids, grid => { if (grid == null) { return; } UpdateLimits.GridLimit(grid); }); }); } if (updatePlayers) { var players = MySession.Static.Players.GetAllPlayers(); if (players.Count > 0) { Task.Run(() => { Parallel.ForEach(players, player => { if (player.SteamId == 0) { return; } var identity = Utilities.GetPlayerIdFromSteamId(player.SteamId); if (identity == 0) { return; } UpdateLimits.PlayerLimit(identity); }); }); } } if (updateFactions) { Task.Run(() => { Parallel.ForEach(MySession.Static.Factions, factionInfo => { var(id, faction) = factionInfo; if (faction.IsEveryoneNpc() || id == 0) { return; } UpdateLimits.FactionLimit(id); }); }); } }