private static void CantSpawnBoss(ColonyState cs) { cs.FaiedBossSpawns++; if (cs.FaiedBossSpawns > 10) { PandaChat.SendThrottle(cs, _localizationHelper, "NoBanner", ChatColor.red, ColonistManager.PenalizeFood(cs.ColonyRef, 0.15f) * 100 + "%"); } cs.ColonyRef.OnZombieSpawn(false); }
private static void CantSpawnBoss(PlayerState ps, Colony colony) { ps.FaiedBossSpawns++; if (ps.FaiedBossSpawns > 10) { PandaChat.SendThrottle(ps.Player, $"WARNING: Unable to spawn boss. Please ensure you have a path to your banner. You will be penalized {SettlerManager.PenalizeFood(colony, 0.15f)} food.", ChatColor.red); } colony.OnZombieSpawn(false); }
public static void OnTryChangeBlockUser(ModLoader.OnTryChangeBlockData userData) { if (ServerManager.BlockEntityTracker.BannerTracker.TryGetClosest(userData.Position, out BannerTracker.Banner existingBanner, ServerManager.ServerSettings.Colony.ExclusiveRadius * 2)) { if (userData.RequestOrigin.Type == BlockChangeRequestOrigin.EType.Player && !existingBanner.Colony.Owners.Contains(userData.RequestOrigin.AsPlayer)) { PandaChat.SendThrottle(userData.RequestOrigin.AsPlayer, _LocalizationHelper.LocalizeOrDefault("NotYourColony", userData.RequestOrigin.AsPlayer) + string.Join(", ", existingBanner.Colony.Owners.Select(o => o.Name)), ChatColor.red); userData.CallbackState = ModLoader.OnTryChangeBlockData.ECallbackState.Cancelled; userData.CallbackConsumedResult = EServerChangeBlockResult.CancelledByCallback; } } }
public static void OnTryChangeBlockUser(ModLoader.OnTryChangeBlockData userData) { if (SettlersConfiguration.GetorDefault("AntigriefEnabled", true) && ServerManager.BlockEntityTracker.BannerTracker.TryGetClosest(userData.Position, out BannerTracker.Banner existingBanner, ServerManager.ServerSettings.Colony.ExclusiveRadius)) { if (userData.RequestOrigin.Type == BlockChangeRequestOrigin.EType.Player && userData.RequestOrigin.AsPlayer.ID.type == NetworkID.IDType.Steam && !PermissionsManager.HasPermission(userData.RequestOrigin.AsPlayer, new PermissionsManager.Permission(GameLoader.NAMESPACE + ".Permissions.Antigrief")) && !PermissionsManager.HasPermission(userData.RequestOrigin.AsPlayer, new PermissionsManager.Permission("god")) && !existingBanner.Colony.Owners.Contains(userData.RequestOrigin.AsPlayer)) { PandaChat.SendThrottle(userData.RequestOrigin.AsPlayer, _LocalizationHelper, _LocalizationHelper.LocalizeOrDefault("NotYourColony", userData.RequestOrigin.AsPlayer) + string.Join(", ", existingBanner.Colony.Owners.Select(o => o.Name)), ChatColor.red); userData.InventoryItemResults.Clear(); userData.CallbackState = ModLoader.OnTryChangeBlockData.ECallbackState.Cancelled; userData.CallbackConsumedResult = EServerChangeBlockResult.CancelledByCallback; } } }