All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.whimxiqal.journey.JourneyAgent Maven / Gradle / Ivy

The newest version!
package net.whimxiqal.journey;

import java.util.Optional;
import java.util.Set;
import java.util.UUID;
import net.kyori.adventure.audience.Audience;
import net.whimxiqal.journey.search.ModeType;

/**
 * An entity representing the ability to move along a path throughout Minecraft worlds.
 */
public interface JourneyAgent {


  /**
   * The agent's UUID.
   *
   * @return the UUID
   */
  UUID uuid();

  /**
   * The agent's current location, if it exists.
   *
   * @return the location
   */
  @Synchronous
  Optional location();

  /**
   * Whether the agent has a permission.
   *
   * @param permission the permission
   * @return true if the agent has the permission
   */
  @Synchronous
  boolean hasPermission(String permission);

  /**
   * The {@link Audience} with which messages and content may
   * be sent to the agent.
   *
   * @return the audience
   */
  Audience audience();

  /**
   * The capabilities that this agent has to move throughout the world.
   *
   * @return a set of all capabilities
   */
  @Synchronous
  Set modeCapabilities();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy