package com.earth2me.essentials.api; import net.ess3.api.IUser; import org.bukkit.Location; import java.util.Collection; import java.util.concurrent.CompletableFuture; /** * Provides access to the storage of jail locations. Maintainers should add methods to this interface. * * @deprecated External plugins should use {@link net.ess3.api.IJails} instead of this interface in case future APIs are added. */ @Deprecated public interface IJails extends IReload { /** * Gets the location of the jail with the given name * * @param jailName The name of the jail * @return the location of the jail * @throws Exception if the jail does not exist */ Location getJail(String jailName) throws Exception; /** * Gets a list of jails by names * * @return a list of jails, if there are none the list will be empty * @throws Exception */ Collection getList() throws Exception; /** * Gets the number of jails * * @return the size of the list of jails */ int getCount(); /** * Remove the jail with the given name * * @param jail the jail to remove * @throws Exception if the jail does not exist */ void removeJail(String jail) throws Exception; /** * Attempts to send the given user to the given jail * * @param user the user to send to jail * @param jail the jail to send the user to * @throws Exception if the user is offline or jail does not exist * @deprecated Use {@link IJails#sendToJail(IUser, String, CompletableFuture)} */ @Deprecated void sendToJail(IUser user, String jail) throws Exception; /** * Attempts to send the given user to the given jail * * @param user the user to send to jail * @param jail the jail to send the user to * @param future Future which is completed with the success status of the execution * @throws Exception if the user is offline or jail does not exist */ void sendToJail(IUser user, String jail, CompletableFuture future) throws Exception; /** * Set a new jail with the given name and location * * @param jailName the name of the jail being set * @param loc the location of the jail being set * @throws Exception */ void setJail(String jailName, Location loc) throws Exception; }