public static void ProcessQuery(string q, CommandSender sender) { try { GameObject go = PlayerManager.players.Where(p => p.GetComponent <NicknameSync>().MyNick == sender.Nickname).FirstOrDefault(); string[] query = q.Split(new char[] { ' ' }); if (!q.ToUpper().Contains("SILENT")) { if (go != null) { lastCommand = q; PheggPlayer pheggPlayer = new PheggPlayer(go); if (q.ToUpper().StartsWith("CASSIE")) { q = q.ToUpper() + " PITCH_1"; } try { Base.Debug("Triggering AdminQueryEvent"); PluginManager.TriggerEvent <IEventHandlerAdminQuery>(new AdminQueryEvent(pheggPlayer, q)); } catch (Exception e) { Base.Error($"Error triggering AdminQueryEvent: {e.InnerException}"); } if (PluginManager.oldCommands.ContainsKey(query[0])) { #pragma warning disable CS0618 // Type or member is obsolete PluginManager.TriggerCommand(PluginManager.oldCommands[query[0]], q, pheggPlayer.gameObject, sender); #pragma warning restore CS0618 // Type or member is obsolete return; } else { if (PluginManager.TriggerCommand(new CommandInfo(sender, pheggPlayer.gameObject, query[0], query))) { return; } } } else { if (PluginManager.TriggerConsoleCommand(new CommandInfo(sender, null, query[0], query))) { return; } } } orig_ProcessQuery(q, sender); } catch (Exception e) { Base.Error($"{e.Message}\n{e.StackTrace}\n{e.InnerException.Message}\n{e.InnerException.StackTrace}"); } }
private string KickCommand(string[] arg, JObject jObject) { if (arg.Count() < 4) { return($"```{arg[1]} [UserID] [Reason]```"); } else if (!arg[2].Contains('@')) { return("Invalid UserID given"); } string reason = string.Join(" ", arg.Skip(3)); GameObject go = PlayerManager.players.Where(p => p.GetComponent <CharacterClassManager>().UserId == arg[2]).FirstOrDefault(); if (go == null || go.Equals(default(GameObject))) { return($"Unable to find user `{arg[2]}` on the server!"); } else { PheggPlayer player = new PheggPlayer(go); player.Kick(reason); return($"`{player.ToString()}` was kicked with reason {reason}!"); } }
public void cmd_ball(CommandInfo info) { Vector3 NULL_VECTOR = new Vector3(0, 0, 0); List <GameObject> playerList = GetPlayersFromString(info.commandArgs[1]); foreach (GameObject plr in playerList) { if (plr.GetComponent <CharacterClassManager>().CurClass == RoleType.Spectator) { continue; } PheggPlayer pp = new PheggPlayer(plr); // Initialization GrenadeManager gm = pp.gameObject.GetComponent <GrenadeManager>(); // Finalize creation & Spawn Grenade nade = Object.Instantiate <GameObject>(gm.availableGrenades[2].grenadeInstance).GetComponent <Grenade>(); (nade).InitData(gm, NULL_VECTOR, NULL_VECTOR); NetworkServer.Spawn(nade.gameObject); } info.commandSender.RaReply(info.commandName.ToUpper() + $"#Spawned 018 on {(info.commandArgs[1] == "*" ? "All" : playerList.Count.ToString())} players", true, true, ""); }
public WarheadCancelEvent(PheggPlayer disabler = null) { #pragma warning disable CS0612 // Type or member is obsolete Disablier = disabler; #pragma warning restore CS0612 // Type or member is obsolete Disabler = disabler; }
public PlayerDeathEvent(PheggPlayer player, PheggPlayer attacker, float damage, DamageTypes.DamageType damageType, PlayerStats.HitInfo info) : base(player) { Attacker = attacker; Damage = damage; DamageType = damageType; HitInfo = info; }
public PlayerBanEvent(PheggPlayer player, int duration, PheggPlayer admin = null, string reason = null) { Duration = duration; Player = player; Admin = admin; Reason = reason; }
public PlayerDeathEvent(GameObject plr, GameObject atr, PlayerStats.HitInfo info) { player = new PheggPlayer(plr); attacker = new PheggPlayer(atr); //weapon = info.GetDamageType(); hitInfo = info; }
public new bool HurtPlayer(PlayerStats.HitInfo info, GameObject go) { if (!go.GetComponent <CharacterClassManager>().isLocalPlayer&& info.GetDamageType() != DamageTypes.None && !go.GetComponent <CharacterClassManager>().GodMode) { //if (Commands.CustomInternalCommands.nodamageplayers.ContainsKey(go.GetComponent<RemoteAdmin.QueryProcessor>().PlayerId)) // info.Amount = 0; PheggPlayer pPlayer = new PheggPlayer(go); PlayerStats Pstats = go.GetComponent <PlayerStats>(); PheggPlayer pAttacker = null; if (info.GetPlayerObject() != null) { pAttacker = new PheggPlayer(info.GetPlayerObject()); } if (Pstats.Health - info.Amount < 1) { try { Base.Debug("Triggering PlayerDeathEvent"); PluginManager.TriggerEvent <IEventHandlerPlayerDeath>(new PlayerDeathEvent(pPlayer, pAttacker, info.Amount, info.GetDamageType())); } catch (Exception e) { Base.Error($"Error triggering PlayerDeathEvent: {e.InnerException.ToString()}"); } } else { try { Base.Debug("Triggering PlayerHurtEvent"); PluginManager.TriggerEvent <IEventHandlerPlayerHurt>(new PlayerHurtEvent(pPlayer, pAttacker, info.Amount, info.GetDamageType())); } catch (Exception e) { Base.Error($"Error triggering PlayerHurtEvent: {e.InnerException.ToString()}"); } } } return(orig_HurtPlayer(info, go)); }
private string BanCommand(string[] arg, JObject jObject) { if (arg.Count() < 5) { return($"```{arg[1]} [UserID/Ip] [Duration] [Reason]```"); } bool validUID = arg[2].Contains('@'); bool validIP = IPAddress.TryParse(arg[2], out IPAddress ip); //BanDetails details; if (!validIP && !validUID) { return($"```diff\n- Invalid UserID or IP given```"); } char unit = arg[3].ToString().Where(Char.IsLetter).ToArray()[0]; if (!int.TryParse(new string(arg[3].Where(Char.IsDigit).ToArray()), out int amount) || !validUnits.Contains(unit) || amount < 1) { return("```diff\n- Invalid duration```"); } TimeSpan duration = GetBanDuration(unit, amount); string reason = string.Join(" ", arg.Skip(4)); int index; if (validUID) { index = PlayerManager.players.FindIndex(p => p.GetComponent <CharacterClassManager>().UserId == arg[2]); } else { index = PlayerManager.players.FindIndex(p => p.GetComponent <CharacterClassManager>().connectionToClient.address == arg[2]); } if (index > -1) { PheggPlayer player = new PheggPlayer(PlayerManager.players[index]); player.Ban(duration.Minutes, reason, jObject["Staff"].ToString(), true); player.Kick(reason); } else { BanHandler.IssueBan(new BanDetails { OriginalName = "Offline player", Id = arg[2], Issuer = jObject["Staff"].ToString(), IssuanceTime = DateTime.UtcNow.Ticks, Expires = DateTime.UtcNow.Add(duration).Ticks, Reason = reason }, (validUID ? BanHandler.BanType.UserId : BanHandler.BanType.IP)); } return($"`{arg[2]}` was banned for {arg[3]} with reason {reason}!"); }
public PlayerEscapeEvent(PheggPlayer player, RoleType role, RoleType newrole, Team team) : base(player) { Role = role; newRole = newrole; Team = team; }
public PlayerKickEvent(PheggPlayer player, PheggPlayer admin = null, string reason = null) { Player = player; Admin = admin; Reason = reason; }
public GlobalBanEvent(PheggPlayer player) { Player = player; }
public RefreshAdminPermsEvent(PheggPlayer admin) { Admin = admin; }
public PlayerLeaveEvent(PheggPlayer player) : base(player) { Name = player.name; UserID = player.userId; IpAddress = player.ipAddress; }
public PlayerThrowGrenadeEvent(PheggPlayer player, Grenades.GrenadeSettings settings) : base(player) { Name = player.name; Grenade = settings.apiName; }
public AdminQueryEvent(PheggPlayer admin, string query) { Admin = admin; Query = query; }
public PlayerReportEvent(PheggPlayer reporter, PheggPlayer target, string reason) : base(reporter) { Reporter = reporter; Target = target; Reason = reason; }
public PlayerEvent(PheggPlayer player) { this.player = player; }
public PlayerDeathEvent(PheggPlayer player, PheggPlayer attacker, float damage, DamageTypes.DamageType damageType) : base(player) { Attacker = attacker; Damage = damage; DamageType = damageType; }
public new bool HurtPlayer(HitInfo info, GameObject go, bool noTeamDamage = false, bool IsValidDamage = true) { try { if (isLocalPlayer || !NetworkServer.active || go == null) { try { return(orig_HurtPlayer(info, go, noTeamDamage, IsValidDamage)); } catch (Exception e) { Base.Error(e.ToString()); return(orig_HurtPlayer(info, go, noTeamDamage, IsValidDamage)); } } PheggPlayer player = new PheggPlayer(go); if (player == null) { try { return(orig_HurtPlayer(info, go, noTeamDamage, IsValidDamage)); } catch (Exception e) { Base.Error(e.ToString()); return(orig_HurtPlayer(info, go, noTeamDamage, IsValidDamage)); } } if (player.refHub.characterClassManager.isLocalPlayer || info.GetDamageType() == DamageTypes.None || player.refHub.characterClassManager.GodMode) { return(orig_HurtPlayer(info, go, noTeamDamage, IsValidDamage)); } PheggPlayer attacker = null; try { attacker = new PheggPlayer(info.GetPlayerObject()); } catch { } if (FFDetector.FFDetector.DetectorEnabled) { FFDetector.FFDetector.CalculateFF(go, info, out info.Amount); } bool IsKill = info.Amount >= player.health; if (info.Amount > 0) { if (IsKill && info.Amount > 0) { try { Base.Debug("Triggering PlayerDeathEvent"); PluginManager.TriggerEvent <IEventHandlerPlayerDeath>(new PlayerDeathEvent(player, attacker, info.Amount, info.GetDamageType(), info)); } catch (Exception e) { Base.Error($"Error triggering PlayerDeathEvent: {e.InnerException}"); } } else { try { Base.Debug("Triggering PlayerHurtEvent"); PluginManager.TriggerEvent <IEventHandlerPlayerHurt>(new PlayerHurtEvent(player, attacker, info.Amount, info.GetDamageType(), info)); } catch (Exception e) { Base.Error($"Error triggering PlayerHurtEvent: {e.InnerException}"); } } } bool result = orig_HurtPlayer(info, go, noTeamDamage, IsValidDamage); if (player == null) { return(result); } if (PMConfigFile.enable008 && (info.GetDamageType() == DamageTypes.Scp0492 || info.GetDamageType() == DamageTypes.Poison)) { if (IsKill) { player.roleType = RoleType.Scp0492; } else if (info.GetDamageType() == DamageTypes.Scp0492) { CustomEffects.SCP008 effect = player.refHub.playerEffectsController.GetEffect <CustomEffects.SCP008>(); if (effect == null || !effect.Enabled) { player.gameObject.GetComponent <PlayerEffectsController>().EnableEffect <CustomEffects.SCP008>(300f, false); } else { player.refHub.playerEffectsController.GetEffect <CustomEffects.SCP008>().intensity++; } } } return(result); } catch (Exception) { return(orig_HurtPlayer(info, go)); } }
public PlayerSpawnEvent(PheggPlayer player, RoleType role, Team team) : base(player) { Role = role; Team = team; }