Class DiscordUtil

java.lang.Object
tv.phantombot.discord.util.DiscordUtil
Direct Known Subclasses:
DiscordAPI

public class DiscordUtil extends Object
Has all of the methods to work with Discord4J.
Author:
IllusionaryOne, ScaniaTV
  • Constructor Details

    • DiscordUtil

      public DiscordUtil()
  • Method Details

    • sanitizeChannelName

      public String sanitizeChannelName(String channelName)
      Method that removes the # in the channel name.
      Parameters:
      channelName -
      Returns:
    • isValidFilePath

      public boolean isValidFilePath(String fileLocation)
    • sendMessage

      public Message sendMessage(MessageChannel channel, String message)
    • sendMessageAsync

      public Mono<Message> sendMessageAsync(MessageChannel channel, String message)
    • sendMessage

      public Message sendMessage(String channelName, String message)
      Method to send a message to a channel.
      Parameters:
      channelName -
      message -
      Returns:
    • sendMessageAsync

      public Mono<Message> sendMessageAsync(String channelName, String message)
    • sendPrivateMessage

      public void sendPrivateMessage(User user, String message)
      Method to send private messages to a user.
      Parameters:
      user -
      message -
    • sendPrivateMessage

      public void sendPrivateMessage(String userName, String message)
      Method to send private messages to a user.
      Parameters:
      userName -
      message -
    • sendPrivateMessage

      public void sendPrivateMessage(PrivateChannel channel, String message)
    • sendMessageEmbed

      public Message sendMessageEmbed(GuildMessageChannel channel, EmbedCreateSpec embed)
    • sendMessageEmbedAsync

      public Mono<Message> sendMessageEmbedAsync(GuildMessageChannel channel, EmbedCreateSpec embed)
    • sendMessageEmbed

      public Message sendMessageEmbed(String channelName, EmbedCreateSpec embed)
      Method to send embed messages.
      Parameters:
      channelName -
      embed -
      Returns:
    • sendMessageEmbedAsync

      public Mono<Message> sendMessageEmbedAsync(String channelName, EmbedCreateSpec embed)
    • sendMessageEmbed

      public Message sendMessageEmbed(GuildMessageChannel channel, String color, String message)
      Method to send embed messages.
      Parameters:
      channel -
      message -
      color -
      Returns:
    • sendMessageEmbedAsync

      public Mono<Message> sendMessageEmbedAsync(GuildMessageChannel channel, String color, String message)
    • sendMessageEmbed

      public Message sendMessageEmbed(String channelName, String color, String message)
      Method to send embed messages.
      Parameters:
      channelName -
      message -
      color -
      Returns:
    • sendFile

      public Message sendFile(GuildMessageChannel channel, String message, String fileLocation)
    • sendFileAsync

      public Mono<Message> sendFileAsync(GuildMessageChannel channel, String message, String fileLocation)
    • sendFileAsync

      public Mono<Message> sendFileAsync(GuildMessageChannel channel, String message, DiscordUtil.MessageCreateFile file)
    • sendFile

      public Message sendFile(String channelName, String message, String fileLocation)
      Method to send a file to a channel.
      Parameters:
      channelName -
      message -
      fileLocation -
      Returns:
    • sendFileAsync

      public Mono<Message> sendFileAsync(String channelName, String message, String fileLocation)
    • sendFile

      public Message sendFile(GuildMessageChannel channel, String fileLocation)
      Method to send a file to a channel.
      Parameters:
      channel -
      fileLocation -
      Returns:
    • sendFile

      public Message sendFile(String channelName, String fileLocation)
      Method to send a file to a channel.
      Parameters:
      channelName -
      fileLocation -
      Returns:
    • addReaction

      public void addReaction(Message message, ReactionEmoji emoji)
      Method that adds a reaction to a message.
      Parameters:
      message - The message object
      emoji - The reaction object
    • addReactions

      public void addReactions(Message message, ReactionEmoji... emojis)
      Method that adds multiple reactions to a message.
      Parameters:
      message - The message object
      emojis - The reaction objects
    • addReaction

      public void addReaction(Message message, String emoji)
      Method that adds a reaction to a message.
      Parameters:
      message - The message object
      emoji - The emoji unicode
    • addReactions

      public void addReactions(Message message, String... emojis)
      Method that adds a reaction to a message.
      Parameters:
      message - The message object
      emojis - The emoji unicodes
    • canChannelPublish

      public boolean canChannelPublish(String channelName)
      * Indicates if the channel is a type that is allowed to publish crossposts
      Parameters:
      channelName - The channel to check
      Returns:
    • canChannelPublish

      public boolean canChannelPublish(GuildMessageChannel channel)
      * Indicates if the channel is a type that is allowed to publish crossposts
      Parameters:
      channel - The channel to check
      Returns:
    • getChannel

      public GuildMessageChannel getChannel(String channelName)
      Method to return a channel object by its name.
      Parameters:
      channelName - - The name of the channel.
      Returns:
    • getChannelAsync

      public Mono<GuildMessageChannel> getChannelAsync(String channelName)
    • getChannelAsync

      public Mono<GuildMessageChannel> getChannelAsync(String channelName, Predicate<? super GuildChannel> filter)
    • getAllChannelInfo

      public Map<String,Map<String,String>> getAllChannelInfo()
    • getAllChannelInfoAsync

      public Flux<GuildChannel> getAllChannelInfoAsync(Map<String,Map<String,String>> data)
    • getChannelByID

      public GuildMessageChannel getChannelByID(String channelId)
      Method to return a channel object by its ID.
      Parameters:
      channelId - - The string ID of the channel
      Returns:
    • getChannelByIDAsync

      public Mono<GuildMessageChannel> getChannelByIDAsync(String channelId)
    • getUser

      public User getUser(String userName)
    • getUserAsync

      public Mono<User> getUserAsync(String userName)
      Method to return a user object by its name.
      Parameters:
      userName - - The user's name.
      Returns:
    • getUserById

      public User getUserById(long userId)
    • getUserByIdAsync

      public Mono<User> getUserByIdAsync(long userId)
      Method to return a user object by its id.
      Parameters:
      userId - - The ID of the user.
      Returns:
    • getUserWithDiscriminator

      @Deprecated(since="3.10.0.0", forRemoval=true) public User getUserWithDiscriminator(String userName, String discriminator)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Discriminators have been removed from Discord
    • getUserWithDiscriminatorAsync

      @Deprecated(since="3.10.0.0", forRemoval=true) public Mono<User> getUserWithDiscriminatorAsync(String userName, String discriminator)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Discriminators have been removed from Discord
      Method to return a user object by its name and its discriminator.
      Parameters:
      userName -
      discriminator -
      Returns:
    • getRolesAsync

      public Flux<Role> getRolesAsync(String... roleNames)
      Search for Discord roles by display name or mention and return a Flux
      Matching is performed case insensitively
      The Flux is sorted so the roles are returned in permission order, as displayed in the Discord roles list of the Guild settings. The sort starts with the cloest role to @everyone, and then continues up
      Parameters:
      roleNames - The role names or mentions to find
      Returns:
      a Flux containing matching roles
    • getRole

      public Role getRole(String roleName)
    • getRoleAsync

      public Mono<Role> getRoleAsync(String roleName)
      Method to return a role object by its name.
      Parameters:
      roleName -
      Returns:
    • getRoleByID

      public Role getRoleByID(String id)
    • getRoleByIDAsync

      public Mono<Role> getRoleByIDAsync(String id)
      Method that returns a role by its ID.
      Parameters:
      id -
      Returns:
    • getRoleObjects

      public Role[] getRoleObjects(String... roles)
      Method to get an array of role objects by a string of role names.
      Parameters:
      roles -
      Returns:
    • getRoleObjectsAsync

      public Mono<Role[]> getRoleObjectsAsync(String... roles)
    • getUserRoles

      public Role[] getUserRoles(User user)
      Method to get a list of a user's roles.
      Parameters:
      user -
      Returns:
    • getUserRolesAsync

      public Mono<Role[]> getUserRolesAsync(User user)
    • getUserRoles

      public Role[] getUserRoles(String userId)
      Method to get a list of a user's roles.
      Parameters:
      userId -
      Returns:
    • getUserRolesAsync

      public Mono<Role[]> getUserRolesAsync(String userId)
    • editUserRoles

      public void editUserRoles(User user, Role... roles)
      Method to edit roles on a user, multiple can be set at once to replace the current ones.
      Parameters:
      user -
      roles -
    • editUserRoles

      public void editUserRoles(String userId, Role... roles)
      Method to edit roles on a user, multiple can be set at once to replace the current ones.
      Parameters:
      userId -
      roles -
    • addRole

      public void addRole(Role role, User user)
      Method to set a role on a user.
      Parameters:
      role -
      user -
    • addRole

      public void addRole(String roleName, String userName)
      Method to set a role on a user.
      Parameters:
      roleName -
      userName -
    • addRole

      public void addRole(String roleName, User user)
      Method to set a role on a user.
      Parameters:
      roleName -
      user -
    • removeRole

      public void removeRole(Role role, User user)
      Method to remove a role on a user.
      Parameters:
      role -
      user -
    • removeRole

      public void removeRole(String roleName, String userName)
      Method to remove a role on a user.
      Parameters:
      roleName -
      userName -
    • createRole

      public void createRole(String roleName)
      Method to create a new role.
      Parameters:
      roleName -
    • deleteRole

      public void deleteRole(Role role)
      Method to delete a role.
      Parameters:
      role -
    • deleteRole

      public void deleteRole(String roleName)
      Method to delete a role.
      Parameters:
      roleName -
    • getGuildRoles

      public List<Role> getGuildRoles()
      Method that gets a list of guild roles.
      Returns:
    • getGuildRolesAsync

      public Mono<List<Role>> getGuildRolesAsync()
    • isAdministrator

      public boolean isAdministrator(User user)
      Method to check if someone is an administrator.
      Parameters:
      user -
      Returns:
    • isAdministratorAsync

      public Mono<Boolean> isAdministratorAsync(User user)
    • isAdministrator

      public boolean isAdministrator(String userName)
      Method to check if someone is an administrator.
      Parameters:
      userName -
      Returns:
    • isAdministratorAsync

      public Mono<Boolean> isAdministratorAsync(String userName)
    • bulkDelete

      public void bulkDelete(GuildMessageChannel channel, int amount)
      Method to bulk delete messages from a channel.
      Parameters:
      channel -
      amount -
    • bulkDelete

      public void bulkDelete(String channelName, int amount)
      Method to bulk delete messages from a channel.
      Parameters:
      channelName -
      amount -
    • bulkDeleteMessages

      public void bulkDeleteMessages(GuildMessageChannel channel, Message... list)
      Method to bulk delete messages from a channel.
      Parameters:
      channel -
      list -
    • bulkDeleteMessages

      public void bulkDeleteMessages(String channelName, Message... messages)
      Method to bulk delete messages from a channel.
      Parameters:
      channelName -
      messages -
    • deleteMessage

      public void deleteMessage(Message message)
      Method to delete a message.
      Parameters:
      message -
    • setCompeting

      public void setCompeting(String competingIn)
    • setListening

      public void setListening(String listeningTo)
    • setWatching

      public void setWatching(String watching)
    • setPlaying

      public void setPlaying(String game)
    • setStreaming

      public void setStreaming(String streaming, String url)
    • resetPresence

      public void resetPresence()
    • setGame

      public void setGame(String game)
      Method to set the current game.
      Parameters:
      game -
    • setStream

      public void setStream(String game, String url)
      Method to set the current game and stream.
      Parameters:
      game -
      url -
    • removeGame

      public void removeGame()
      Method to remove the current game or reset the streaming status.
    • getUsers

      public List<User> getUsers()
      Method that gets all server members
      Returns:
    • getUsersAsync

      public Mono<List<User>> getUsersAsync()
    • getColor

      public Color getColor(String color)
      Method to get a color object.
      Parameters:
      color -
      Returns:
    • getMessageById

      public Message getMessageById(String channelName, String messageId)
      Method to return a message by its id.
      Parameters:
      channelName -
      messageId -
      Returns:
    • editMessageContent

      public void editMessageContent(Message message, String newMessage)
      Method to edit message content.
      Parameters:
      message -
      newMessage -
    • editMessageEmbed

      public void editMessageEmbed(Message message, EmbedCreateSpec newEmbed)
      Method to edit message embeds.
      Parameters:
      message -
      newEmbed -
    • getMessagesBefore

      public List<Message> getMessagesBefore(String channelName, String messageId)
      Method to return a list of all messages before the given message.
      Parameters:
      channelName -
      messageId -
      Returns:
    • getLastMessage

      public Message getLastMessage(String channelName)
      Method to return a the last message of a given channel.
      Parameters:
      channelName -
      Returns:
    • channelId

      public static Optional<Snowflake> channelId(Channel channel)
    • channelIdAsString

      public static String channelIdAsString(Channel channel)
    • channelName

      public static String channelName(Channel channel)