AdminStealth 0.3.15: no reply to css_hide from players who may not hide
A catch-all command listener stops it before any handler, so CSS's missing-permission message isn't sent either.
This commit is contained in:
parent
7eba09905a
commit
637a7f430c
2 changed files with 14 additions and 1 deletions
|
|
@ -23,7 +23,7 @@ namespace AdminStealth;
|
||||||
public class AdminStealth : BasePlugin
|
public class AdminStealth : BasePlugin
|
||||||
{
|
{
|
||||||
public override string ModuleName => "AdminStealth";
|
public override string ModuleName => "AdminStealth";
|
||||||
public override string ModuleVersion => "0.3.14";
|
public override string ModuleVersion => "0.3.15";
|
||||||
public override string ModuleAuthor => "astra";
|
public override string ModuleAuthor => "astra";
|
||||||
public override string ModuleDescription => "Makes CS2-SimpleAdmin's css_hide look like leaving, and keeps it";
|
public override string ModuleDescription => "Makes CS2-SimpleAdmin's css_hide look like leaving, and keeps it";
|
||||||
|
|
||||||
|
|
@ -66,6 +66,9 @@ public class AdminStealth : BasePlugin
|
||||||
// without ever calling us.
|
// without ever calling us.
|
||||||
foreach (var alias in _hideAliases)
|
foreach (var alias in _hideAliases)
|
||||||
AddCommandListener(alias, (player, command) => OnHideTyped(player, command));
|
AddCommandListener(alias, (player, command) => OnHideTyped(player, command));
|
||||||
|
// Players who may not hide get no reply at all, not even CSS's missing-permission one. Only
|
||||||
|
// a catch-all listener runs before every plugin's command handler, for console and chat.
|
||||||
|
AddCommandListener(null, OnAnyCommand);
|
||||||
// Joining any team, spectators included, would make SimpleAdmin unhide them.
|
// Joining any team, spectators included, would make SimpleAdmin unhide them.
|
||||||
AddCommandListener("jointeam", (player, command) => OnJoinTeam(player, command));
|
AddCommandListener("jointeam", (player, command) => OnJoinTeam(player, command));
|
||||||
AddCommandListener("spectate", (player, command) => OnJoinTeam(player, command));
|
AddCommandListener("spectate", (player, command) => OnJoinTeam(player, command));
|
||||||
|
|
@ -123,6 +126,14 @@ public class AdminStealth : BasePlugin
|
||||||
return player == null ? HookResult.Continue : HookResult.Stop;
|
return player == null ? HookResult.Continue : HookResult.Stop;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private HookResult OnAnyCommand(CCSPlayerController? player, CommandInfo command)
|
||||||
|
{
|
||||||
|
if (player is not { IsValid: true, IsBot: false } ||
|
||||||
|
!_hideAliases.Contains(command.GetArg(0), StringComparer.OrdinalIgnoreCase) || CanHide(player))
|
||||||
|
return HookResult.Continue;
|
||||||
|
return HookResult.Stop;
|
||||||
|
}
|
||||||
|
|
||||||
private HookResult OnHideTyped(CCSPlayerController? player, CommandInfo command)
|
private HookResult OnHideTyped(CCSPlayerController? player, CommandInfo command)
|
||||||
{
|
{
|
||||||
if (player is { IsValid: true } && !_restoring.Contains(player.Slot))
|
if (player is { IsValid: true } && !_restoring.Contains(player.Slot))
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,8 @@ admin off the scoreboard. This plugin makes it look like they left the server:
|
||||||
does (with `sv_disable_teamselect_menu` on around it), which closes it. The team events aren't
|
does (with `sv_disable_teamselect_menu` on around it), which closes it. The team events aren't
|
||||||
broadcast; for about 0.15 s they're on the spectator list of anyone looking at the scoreboard.
|
broadcast; for about 0.15 s they're on the spectator list of anyone looking at the scoreboard.
|
||||||
- Restoring runs `css_hide` at most once: it toggles, so a second run could unhide them.
|
- Restoring runs `css_hide` at most once: it toggles, so a second run could unhide them.
|
||||||
|
- Players who may not use `css_hide` (or its aliases) get no reply at all when they try it, from
|
||||||
|
console or chat: not even CSS's missing-permission message.
|
||||||
|
|
||||||
Needs our SimpleAdmin fork (1.8.2b-zio2 or later), where moving to spectators doesn't unhide a
|
Needs our SimpleAdmin fork (1.8.2b-zio2 or later), where moving to spectators doesn't unhide a
|
||||||
hidden admin. Never hot-reload CS2-SimpleAdmin while this runs: CSS keeps handing out the old
|
hidden admin. Never hot-reload CS2-SimpleAdmin while this runs: CSS keeps handing out the old
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue