| 1234567891011121314151617181920212223242526272829303132333435363738 |
- using Content.Shared.CCVar;
- using Content.Shared.Database;
- using Content.Shared.Players.RateLimiting;
- using Robust.Shared.Player;
- namespace Content.Server.Chat.Managers;
- internal sealed partial class ChatManager
- {
- private const string RateLimitKey = "Chat";
- private void RegisterRateLimits()
- {
- _rateLimitManager.Register(RateLimitKey,
- new RateLimitRegistration(CCVars.ChatRateLimitPeriod,
- CCVars.ChatRateLimitCount,
- RateLimitPlayerLimited,
- CCVars.ChatRateLimitAnnounceAdminsDelay,
- RateLimitAlertAdmins,
- LogType.ChatRateLimited)
- );
- }
- private void RateLimitPlayerLimited(ICommonSession player)
- {
- DispatchServerMessage(player, Loc.GetString("chat-manager-rate-limited"), suppressLog: true);
- }
- private void RateLimitAlertAdmins(ICommonSession player)
- {
- SendAdminAlert(Loc.GetString("chat-manager-rate-limit-admin-announcement", ("player", player.Name)));
- }
- public RateLimitStatus HandleRateLimit(ICommonSession player)
- {
- return _rateLimitManager.CountAction(player, RateLimitKey);
- }
- }
|