Class GenericUserUpdateEvent<T>

java.lang.Object
net.dv8tion.jda.api.events.Event
net.dv8tion.jda.api.events.user.GenericUserEvent
net.dv8tion.jda.api.events.user.update.GenericUserUpdateEvent<T>
Type Parameters:
T - The type of the updated value
All Implemented Interfaces:
GenericEvent, UpdateEvent<User,T>
Direct Known Subclasses:
UserUpdateActivitiesEvent, UserUpdateActivityOrderEvent, UserUpdateAvatarEvent, UserUpdateDiscriminatorEvent, UserUpdateFlagsEvent, UserUpdateGlobalNameEvent, UserUpdateNameEvent, UserUpdateOnlineStatusEvent

public abstract class GenericUserUpdateEvent<T> extends GenericUserEvent implements UpdateEvent<User,T>
Indicates that a user has updated their presence on discord.
This includes name, avatar, and similar visible features of the user.

Requirements

These events require the GUILD_MEMBERS intent to be enabled.
createDefault(String) and createLight(String) disable this by default!

Additionally, these events require the MemberCachePolicy to cache the updated members. Discord does not specifically tell us about the updates, but merely tells us the member was updated and gives us the updated member object. In order to fire a specific event like this we need to have the old member cached to compare against.

  • Constructor Details

  • Method Details

    • getEntity

      @Nonnull public User getEntity()
      Description copied from interface: UpdateEvent
      The affected entity
      Specified by:
      getEntity in interface UpdateEvent<User,T>
      Returns:
      The affected entity
    • getPropertyIdentifier

      @Nonnull public String getPropertyIdentifier()
      Description copied from interface: UpdateEvent
      The field name for the updated property

      Example

      
       @Override
       public void onGenericRoleUpdate(GenericRoleUpdateEvent event)
       {
           switch (event.getPropertyIdentifier())
           {
           case RoleUpdateColorEvent.IDENTIFIER:
               System.out.printf("Updated color for role: %s%n", event);
               break;
           case RoleUpdatePositionEvent.IDENTIFIER:
               RoleUpdatePositionEvent update = (RoleUpdatePositionEvent) event;
               System.out.printf("Updated position for role: %s raw(%s->%s)%n", event, update.getOldPositionRaw(), update.getNewPositionRaw());
               break;
           default: return;
           }
       }
       
      Specified by:
      getPropertyIdentifier in interface UpdateEvent<User,T>
      Returns:
      The name of the updated property
    • getOldValue

      @Nullable public T getOldValue()
      Description copied from interface: UpdateEvent
      The old value
      Specified by:
      getOldValue in interface UpdateEvent<User,T>
      Returns:
      The old value
    • getNewValue

      @Nullable public T getNewValue()
      Description copied from interface: UpdateEvent
      The new value
      Specified by:
      getNewValue in interface UpdateEvent<User,T>
      Returns:
      The new value