]> git.deb.at Git - rhonda/impostor.git/commit
Make Impostor's AC modular (#559)
authorminiduikboot <mini@duikbo.at>
Thu, 4 Apr 2024 18:09:59 +0000 (20:09 +0200)
committerGitHub <noreply@github.com>
Thu, 4 Apr 2024 18:09:59 +0000 (20:09 +0200)
commit28f3cb3b2e9b7afe594b0aaa0bf6d4439eb0f7a3
treedcbb3eec236d884f339d0b209648a8bad6628d68
parent7a49d2d91753c7e4ab89c2dc77d91027f1a10164
Make Impostor's AC modular (#559)

* Add extra configuration options for the anticheat

* Implement option to exempt hosts from AC checks

* Add AntiCheatConfig to InnerNetObject and friends

* Categorize calls in InnerNetObject.Anticheat

* Categorize other calls to ReportCheatAsync

* Update cosmetics AC handling

When Innersloth changed SetHat etc to SetHatStr as part of the cosmicube
update we accidentally created a few dead methods. Restore and update
the code.

* Push up cheat category to ReportCheatAsync

This makes it possible to log failed checks for diagnosis. Also much
cleaner now that we don't have to push AntiCheatConfig everywhere.
Should've done this immediately q.q

* Add back old version of ReportCheatAsync

some plugins used this method. affected plugins should rebuild after the
next impostor release

* Add documentation for modular anticheat

* Address comments

* Sort AntiCheatConfig keys

* Rework the option to allow cheating hosts

This option should actually be tristate: to not break host-only mods we
should disable the anticheat for hosts running host-only mods.

* Document CheatingHostMode

* Split Limits category in Color and Name Limits
13 files changed:
docs/Server-configuration.md
src/Impostor.Api/CheatCategory.cs [new file with mode: 0644]
src/Impostor.Api/Config/AntiCheatConfig.cs
src/Impostor.Api/Config/CheatingHostMode.cs [new file with mode: 0644]
src/Impostor.Api/Net/IClient.cs
src/Impostor.Server/Net/Client.cs
src/Impostor.Server/Net/ClientBase.cs
src/Impostor.Server/Net/Inner/InnerNetObject.Anticheat.cs
src/Impostor.Server/Net/Inner/Objects/Components/InnerPlayerPhysics.cs
src/Impostor.Server/Net/Inner/Objects/Components/InnerVoteBanSystem.cs
src/Impostor.Server/Net/Inner/Objects/InnerMeetingHud.cs
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs
src/Impostor.Server/Net/State/Game.Data.cs