Class AuditLogEntry

java.lang.Object
discord4j.core.object.audit.AuditLogEntry
All Implemented Interfaces:
DiscordObject, Entity

public class AuditLogEntry extends Object implements Entity
A single administrative action or event, that can be recorded by an AuditLogPart if it didn't originate from a gateway event.

Use getActionType() to determine what kind of action occurred, and then getChange(ChangeKey) to get information about what changed. For example,

 
 if (entry.getActionType() == CHANNEL_UPDATE) {
     entry.getChange(ChangeKey.NAME)
         .flatMap(AuditLogChange::getCurrentValue)
         .ifPresent(newName -> System.out.println("The channel's new name is " + newName));
 }
 
 
  • Field Details

    • MAX_REASON_LENGTH

      public static final int MAX_REASON_LENGTH
      The maximum amount of characters that can be in an audit log reason.
      See Also:
  • Constructor Details

    • AuditLogEntry

      public AuditLogEntry(GatewayDiscordClient gateway, discord4j.discordjson.json.AuditLogEntryData data)
  • Method Details

    • getData

      public discord4j.discordjson.json.AuditLogEntryData getData()
      Gets the data of the audit log entry.
      Returns:
      The data of the audit log entry.
    • getTargetId

      public Optional<Snowflake> getTargetId()
      Gets the id of the affected entity (webhook, user, role, etc.), if present.
      Returns:
      The id of the affected entity (webhook, user, role, etc.), if present.
    • getResponsibleUserId

      public Optional<Snowflake> getResponsibleUserId()
      Gets the ID of the user who made the changes, if present.
      Returns:
      The ID of the user who made the changes, if present.
    • getResponsibleUser

      public Optional<User> getResponsibleUser()
      Gets the user who made the changes, if present.
      Returns:
      The user who made the changes, if present.
      Throws:
      NoSuchElementException - if getParent() does not contain the getResponsibleUserId() or if this entry was created from a gateway event.
    • getReason

      public Optional<String> getReason()
      Gets the reason for the change, if present.
      Returns:
      The reason for the change, if present.
    • getActionType

      public ActionType getActionType()
      Gets type of action that occurred.
      Returns:
      The type of action that occurred.
    • getChange

      public <T> Optional<AuditLogChange<T>> getChange(ChangeKey<T> changeKey)
      Gets a change that was recorded by this entry. The possible changes correspond to each ChangeKey.
      Type Parameters:
      T - The type of the audit log change key.
      Parameters:
      changeKey - The audit log change key.
      Returns:
      The change made to the target, if present.
    • getOption

      public <T> Optional<T> getOption(OptionKey<T> optionKey)
      Gets one of the optional extra pieces of information recorded by an audit log entry. The possible options correspond to each OptionKey.
      Type Parameters:
      T - The type of the option key.
      Parameters:
      optionKey - The option key.
      Returns:
      The option, if present.
    • getParent

      @Nullable public AuditLogPart getParent()
      Gets the audit log part that this entry belongs to.
      Returns:
      The audit log part that this entry belongs to, or null if the entry originated from a AuditLogEntryCreateEvent
    • getId

      public Snowflake getId()
      Description copied from interface: Entity
      Gets the Snowflake that uniquely identifies this entity.
      Specified by:
      getId in interface Entity
      Returns:
      The Snowflake that uniquely identifies this entity.
    • getClient

      public GatewayDiscordClient getClient()
      Description copied from interface: DiscordObject
      Returns the GatewayDiscordClient that created this object. Methods in it are exclusively based on the entity cache or Store in use. Refer to calling getClient().rest() to access a DiscordClient that is capable of requesting entities directly from the REST API.
      Specified by:
      getClient in interface DiscordObject
      Returns:
      The GatewayDiscordClient associated to this object.
    • toString

      public String toString()
      Overrides:
      toString in class Object