Venusanticheat docs

AlertService interface

Four independent alert channels per player: detections, mitigations, verbose and brands.

Reach it through api.alerts(). Staff toggle these channels with the /venus alerts and /venus mitigations commands; the service is how your plugin reads or drives the same state. Each channel is a simple on/off, and silent controls whether a toggle change echoes back to the player.

xyz.kaosmc.anticheat.api.alert.AlertService
SignatureDescription
boolean alertsEnabled(User)Whether the player receives detection alerts.
void setAlertsEnabled(User, boolean enabled, boolean silent)Toggles detection alerts. silent = true suppresses the confirmation message.
boolean verboseEnabled(User)Whether the player receives verbose (per-check tick) output.
void setVerboseEnabled(User, boolean enabled, boolean silent)Toggles verbose output.
boolean brandsEnabled(User)Whether the player receives client-brand join messages.
void setBrandsEnabled(User, boolean enabled, boolean silent)Toggles brand messages.
boolean mitigationEnabled(User)Whether the player receives cloud mitigation notices.
void setMitigationEnabled(User, boolean enabled)Toggles mitigation alerts. No silent variant — this one is quiet by nature.
AlertSettings settings(User, Channel)Direct access to one channel’s settings object.

Channel

xyz.kaosmc.anticheat.api.alert.AlertService.Channel
SignatureDescription
DETECTIONSStandard violation alerts — the ones /venus alerts controls.
MITIGATIONSCloud mitigation applied to a player.
VERBOSEHigh-volume per-tick output for debugging one player.
BRANDSClient brand reporting on join.

AlertSettings

xyz.kaosmc.anticheat.api.user.settings.AlertSettings
public interface AlertSettings {
    AlertSettings NONE = ...;              // shared, always-off instance
    boolean enabled();
    void setEnabled(boolean enabled);
    static AlertSettings of(boolean initial) { ... }
}

settings(user, channel) hands back the live object — mutate setEnabled and the change takes effect immediately. NONE is what you get for channels with no state yet, so never compare by identity if you intend to write through it.

turning on everything for a moderator
api.alerts().setAlertsEnabled(mod, true, true);
api.alerts().setVerboseEnabled(mod, true, true);

// Later, quiet them back down with feedback:
api.alerts().setAlertsEnabled(mod, false, false);
api.alerts().settings(mod, AlertService.Channel.VERBOSE).setEnabled(false);

Events carrying alert text are documented under event classes.