Events

ModuleTriggerEvent

com.kixmc.csapi.api.ModuleTriggerEvent

This event is fired by ChatSentry whenever any (supported) modules are triggered by a player. It is not cancellable. You can use the below methods to get related information to the event:

// get the violation/detection type
APIViolationType getType()

// get the context in which this event was triggered from (chat, command, etc)
APITriggerContext getContext()

// get the player who triggered this event
Player getPlayer()

// get the message before running through the module
String getOldContent()

// get the message after ran through the module
String getNewContent()

// get return the blocked content
String getBlockedContent()

Violation types / supported modules

Any modules that have a violation/detection (APIViolationType) type associated with them are supported by this event. The below are valid detection types:

  • ON_COOLDOWN

  • LINK_OR_AD_BLOCK

  • MESSAGE_FILTER_BLOCK

  • WORD_REPLACER_REPLACE (legacy)

  • SPAM_BLOCK

  • UNICODE_CHARACTER_BLOCK

  • CAP_LIMITER_BLOCK

  • ANTI_PARROT_BLOCK

  • ANTI_CHAT_FLOOD_BLOCK

  • ANTI_STATUE_SPAMBOT_BLOCK

  • ANTI_JOIN_FLOOD_BLOCK

  • CHAT_MODIFIER_MODIFY (legacy)

  • CHAT_EXECUTOR_MATCH

Context types

Below are the valid APITriggerContext types:

  • CHAT

  • COMMAND

  • ANVIL

  • BOOK

  • SIGN

  • JOIN

  • OTHER (as of 4.2.0 this context is never used)

Code examples

For testing if everything is working properly

@EventHandler
public void onModuleTrigger(ModuleTriggerEvent e) {
    Bukkit.broadcastMessage("Module trigger event fired! Details:");
    Bukkit.broadcastMessage("Trigger player: " + e.getPlayer().getName());
    Bukkit.broadcastMessage("Trigger type: " + e.getType().toString());
    Bukkit.broadcastMessage("Trigger context: " + e.getContext());
    Bukkit.broadcastMessage("Original msg: " + e.getOldContent());
    Bukkit.broadcastMessage("New msg: " + e.getNewContent());
    Bukkit.broadcastMessage("Blocked content: " + e.getBlockedContent());
}

Checking contexts and types

@EventHandler
public void onModuleTrigger(ModuleTriggerEvent e) {
    if (e.getContext() == APITriggerContext.BOOK && e.getType() == APIViolationType.UNICODE_CHARACTER_BLOCK) {
        // do something only if context was a book and detection type was from the unicode remover
    }
}

Last updated