Essentials/EssentialsDiscord/src/main/java/net/essentialsx/api/v2/services/discord/InteractionMember.java

68 lines
1.9 KiB
Java

package net.essentialsx.api.v2.services.discord;
import java.util.List;
import java.util.concurrent.CompletableFuture;
/**
* Represents the interaction command executor as a guild member.
*/
public interface InteractionMember {
/**
* Gets the username of this member.
* @return this member's username.
*/
String getName();
/**
* Gets the four numbers after the {@code #} in the member's username.
* @return this member's discriminator.
*/
String getDiscriminator();
/**
* Gets this member's name and discriminator split by a {@code #}.
* @return this member's tag.
*/
default String getTag() {
return getName() + "#" + getDiscriminator();
}
/**
* Gets the nickname of this member or their username if they don't have one.
* @return this member's nickname or username if none is present.
*/
String getEffectiveName();
/**
* Gets the nickname of this member or null if they do not have one.
* @return this member's nickname or null.
*/
String getNickname();
/**
* Gets the ID of this member.
* @return this member's ID.
*/
String getId();
/**
* Checks if this member has the administrator permission on Discord.
* @return true if this user has administrative permissions.
*/
boolean isAdmin();
/**
* Returns true if the user has one of the specified roles.
* @param roleDefinitions A list of role definitions from the config.
* @return true if the member has one of the given roles.
*/
boolean hasRoles(List<String> roleDefinitions);
/**
* Sends a private message to this member with the given content.
* @param content The message to send.
* @return A future which will complete a boolean stating the success of the message.
*/
CompletableFuture<Boolean> sendPrivateMessage(String content);
}