Table of Contents

Class SpamOptions

Namespace
EchoHub.Server.Config
Assembly
EchoHub.Server.dll

Anti-spam thresholds, bound from the "Spam" config section. Defaults are lenient enough that a fast typist never trips them; Mods and above are always exempt.

public sealed class SpamOptions
Inheritance
SpamOptions
Inherited Members

Constructors

SpamOptions()

public SpamOptions()

Properties

AutoMuteMinutes

Auto-mute duration once a user accumulates ViolationThreshold rejected sends within ViolationWindowMinutes. 0 disables auto-mute (rejections still apply). The mute uses the normal timed-mute machinery, so moderators see it and MuteExpirationService lifts it.

public int AutoMuteMinutes { get; set; }

Property Value

int

ChannelCreateWindowMinutes

public int ChannelCreateWindowMinutes { get; set; }

Property Value

int

Enabled

Master switch for all spam protection.

public bool Enabled { get; set; }

Property Value

bool

JoinWindowSeconds

public int JoinWindowSeconds { get; set; }

Property Value

int

MaxChannelCreatesPerWindow

Max channel creations per ChannelCreateWindowMinutes window.

public int MaxChannelCreatesPerWindow { get; set; }

Property Value

int

MaxDuplicateMessages

How many identical messages in a row are tolerated; the next one is rejected. (End-to-end encrypted rooms are naturally exempt — identical plaintext produces different ciphertext per message, so repeats never look identical to the server.)

public int MaxDuplicateMessages { get; set; }

Property Value

int

MaxJoinsPerWindow

Max first-time channel joins per JoinWindowSeconds window. Joins of channels the user already belongs to (reconnect/auto-join) never count, but a brand-new user's first connect joins every public channel at once — keep this above your public channel count.

public int MaxJoinsPerWindow { get; set; }

Property Value

int

MaxMessagesPerWindow

Max messages a user may send per WindowSeconds window.

public int MaxMessagesPerWindow { get; set; }

Property Value

int

ViolationThreshold

public int ViolationThreshold { get; set; }

Property Value

int

ViolationWindowMinutes

public int ViolationWindowMinutes { get; set; }

Property Value

int

WindowSeconds

public int WindowSeconds { get; set; }

Property Value

int