Add .gitattributes
This commit is contained in:
@ -1,28 +1,28 @@
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
/**
|
||||
* An object for storing online cached prisoners.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public class CachePrisoner {
|
||||
private Jail jail;
|
||||
private Prisoner p;
|
||||
|
||||
public CachePrisoner(Jail jail, Prisoner prisoner) {
|
||||
this.jail = jail;
|
||||
this.p = prisoner;
|
||||
}
|
||||
|
||||
/** Gets the Jail this cache is in. */
|
||||
public Jail getJail() {
|
||||
return this.jail;
|
||||
}
|
||||
|
||||
/** Gets the Prisoner in this cache. */
|
||||
public Prisoner getPrisoner() {
|
||||
return this.p;
|
||||
}
|
||||
}
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
/**
|
||||
* An object for storing online cached prisoners.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.0.0
|
||||
*/
|
||||
public class CachePrisoner {
|
||||
private Jail jail;
|
||||
private Prisoner p;
|
||||
|
||||
public CachePrisoner(Jail jail, Prisoner prisoner) {
|
||||
this.jail = jail;
|
||||
this.p = prisoner;
|
||||
}
|
||||
|
||||
/** Gets the Jail this cache is in. */
|
||||
public Jail getJail() {
|
||||
return this.jail;
|
||||
}
|
||||
|
||||
/** Gets the Prisoner in this cache. */
|
||||
public Prisoner getPrisoner() {
|
||||
return this.p;
|
||||
}
|
||||
}
|
||||
|
@ -1,44 +1,44 @@
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import com.graywolf336.jail.enums.Confirmation;
|
||||
|
||||
/**
|
||||
* Holds data for when a player is confirming a command.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @version 1.0.0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
public class ConfirmPlayer {
|
||||
private String name;
|
||||
private String[] args;
|
||||
private Confirmation confirm;
|
||||
private Long expires;
|
||||
|
||||
public ConfirmPlayer(String name, String[] args, Confirmation confirm) {
|
||||
this.name = name;
|
||||
this.args = args;
|
||||
this.confirm = confirm;
|
||||
this.expires = System.currentTimeMillis() + 5000L;
|
||||
}
|
||||
|
||||
/** Returns the name of the thing needing to confirm. */
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Returns the initial arguments they sent with their command. */
|
||||
public String[] getArguments() {
|
||||
return this.args;
|
||||
}
|
||||
|
||||
/** Returns what they are {@link Confirmation confirming}. */
|
||||
public Confirmation getConfirming() {
|
||||
return this.confirm;
|
||||
}
|
||||
|
||||
/** Returns the time in milliseconds their confirmation time frame expires. */
|
||||
public Long getExpiryTime() {
|
||||
return this.expires;
|
||||
}
|
||||
}
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import com.graywolf336.jail.enums.Confirmation;
|
||||
|
||||
/**
|
||||
* Holds data for when a player is confirming a command.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @version 1.0.0
|
||||
* @since 3.0.0
|
||||
*/
|
||||
public class ConfirmPlayer {
|
||||
private String name;
|
||||
private String[] args;
|
||||
private Confirmation confirm;
|
||||
private Long expires;
|
||||
|
||||
public ConfirmPlayer(String name, String[] args, Confirmation confirm) {
|
||||
this.name = name;
|
||||
this.args = args;
|
||||
this.confirm = confirm;
|
||||
this.expires = System.currentTimeMillis() + 5000L;
|
||||
}
|
||||
|
||||
/** Returns the name of the thing needing to confirm. */
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Returns the initial arguments they sent with their command. */
|
||||
public String[] getArguments() {
|
||||
return this.args;
|
||||
}
|
||||
|
||||
/** Returns what they are {@link Confirmation confirming}. */
|
||||
public Confirmation getConfirming() {
|
||||
return this.confirm;
|
||||
}
|
||||
|
||||
/** Returns the time in milliseconds their confirmation time frame expires. */
|
||||
public Long getExpiryTime() {
|
||||
return this.expires;
|
||||
}
|
||||
}
|
||||
|
@ -1,382 +1,382 @@
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import com.graywolf336.jail.JailMain;
|
||||
import com.graywolf336.jail.Util;
|
||||
|
||||
/** Represents a Jail, contains the prisoners and the cells.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.0.3
|
||||
*/
|
||||
public class Jail {
|
||||
private JailMain plugin;
|
||||
private HashMap<String, Cell> cells;
|
||||
private HashMap<UUID, Prisoner> nocellPrisoners;//prisoners who aren't in a cell
|
||||
private String name = "", world = "";
|
||||
private int minX, minY, minZ, maxX, maxY, maxZ;
|
||||
private Location in, free;
|
||||
|
||||
public Jail(JailMain plugin, String name) {
|
||||
this.plugin = plugin;
|
||||
this.name = name;
|
||||
cells = new HashMap<String, Cell>();
|
||||
nocellPrisoners = new HashMap<UUID, Prisoner>();
|
||||
}
|
||||
|
||||
/** Gets the instance of the plugin's main class. */
|
||||
public JailMain getPlugin() {
|
||||
return this.plugin;
|
||||
}
|
||||
|
||||
/** Sets the name of the jail. */
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/** Gets the name of the jail. */
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Sets the location of the <b>minimum</b> point to the given location's coordinates. */
|
||||
public void setMinPoint(Location location) {
|
||||
if(this.world.isEmpty()) this.world = location.getWorld().getName();
|
||||
|
||||
this.minX = location.getBlockX();
|
||||
this.minY = location.getBlockY();
|
||||
this.minZ = location.getBlockZ();
|
||||
}
|
||||
|
||||
/** Accepts an array of ints as the coord, where <strong>0 = x</strong>, <strong>1 = y</strong>, <strong>2 = z</strong>. */
|
||||
public void setMinPoint(int[] coords) {
|
||||
if(coords.length != 3) return;
|
||||
|
||||
this.minX = coords[0];
|
||||
this.minY = coords[1];
|
||||
this.minZ = coords[2];
|
||||
}
|
||||
|
||||
/** Gets the minimum point as a Bukkit Location class. */
|
||||
public Location getMinPoint() {
|
||||
return new Location(plugin.getServer().getWorld(world), minX, minY, minZ);
|
||||
}
|
||||
|
||||
/** Sets the location of the <b>maximum</b> point to the given location's coordinates. */
|
||||
public void setMaxPoint(Location location) {
|
||||
if(this.world.isEmpty()) this.world = location.getWorld().getName();
|
||||
|
||||
this.maxX = location.getBlockX();
|
||||
this.maxY = location.getBlockY();
|
||||
this.maxZ = location.getBlockZ();
|
||||
}
|
||||
|
||||
/** Gets the minimum point as a Bukkit Location class. */
|
||||
public Location getMaxPoint() {
|
||||
return new Location(plugin.getServer().getWorld(world), maxX, maxY, maxZ);
|
||||
}
|
||||
|
||||
/** Accepts an array of ints as the coord, where <strong>0 = x</strong>, <strong>1 = y</strong>, <strong>2 = z</strong>. */
|
||||
public void setMaxPoint(int[] coords) {
|
||||
if(coords.length != 3) return;
|
||||
|
||||
this.maxX = coords[0];
|
||||
this.maxY = coords[1];
|
||||
this.maxZ = coords[2];
|
||||
}
|
||||
|
||||
/** Sets the name of the world this Jail is in. */
|
||||
public void setWorld(String name) {
|
||||
this.world = name;
|
||||
}
|
||||
|
||||
/** Gets the name of the world this Jail is in. */
|
||||
public String getWorldName() {
|
||||
return this.world;
|
||||
}
|
||||
|
||||
/** Gets the instance of the {@link World world} this Jail is in. */
|
||||
public World getWorld() {
|
||||
return plugin.getServer().getWorld(world);
|
||||
}
|
||||
|
||||
/** Sets the {@link Location location} of the teleport <strong>in</strong>. */
|
||||
public void setTeleportIn(Location location) {
|
||||
if(this.world.isEmpty()) this.world = location.getWorld().getName();
|
||||
|
||||
this.in = location;
|
||||
}
|
||||
|
||||
/** Gets the {@link Location location} of the teleport in. */
|
||||
public Location getTeleportIn() {
|
||||
return this.in;
|
||||
}
|
||||
|
||||
/** Sets the {@link Location location} of the teleport for the <strong>free</strong> spot. */
|
||||
public void setTeleportFree(Location location) {
|
||||
this.free = location;
|
||||
}
|
||||
|
||||
/** Gets the {@link Location location} of the teleport free spot.*/
|
||||
public Location getTeleportFree() {
|
||||
return this.free;
|
||||
}
|
||||
|
||||
/** Add a prisoner to this jail. */
|
||||
public void addPrisoner(Prisoner p) {
|
||||
this.nocellPrisoners.put(p.getUUID(), p);
|
||||
}
|
||||
|
||||
/** Removes a prisoner from this jail, doesn't remove it from the cell. */
|
||||
public void removePrisoner(Prisoner p) {
|
||||
this.nocellPrisoners.remove(p);
|
||||
}
|
||||
|
||||
/** Adds a cell to the Jail. */
|
||||
public void addCell(Cell cell, boolean save) {
|
||||
if(save) plugin.getJailIO().saveCell(this, cell);
|
||||
this.cells.put(cell.getName(), cell);
|
||||
}
|
||||
|
||||
/** Gets the cell with the given name. */
|
||||
public Cell getCell(String name) {
|
||||
return this.cells.get(name);
|
||||
}
|
||||
|
||||
/** Checks if the given name is a valid cell. */
|
||||
public boolean isValidCell(String name) {
|
||||
return this.cells.get(name) != null;
|
||||
}
|
||||
|
||||
/** Removes the cell from the jail. */
|
||||
public void removeCell(String name) {
|
||||
Cell c = this.cells.get(name);
|
||||
//If we have a chest, clear the inventory
|
||||
if(c.hasChest()) {
|
||||
c.getChest().getInventory().clear();
|
||||
}
|
||||
|
||||
//For each sign, clear the lines on the sign
|
||||
for(SimpleLocation s : c.getSigns()) {
|
||||
if(s.getLocation().getBlock() instanceof Sign) {
|
||||
Sign sign = (Sign) s.getLocation().getBlock();
|
||||
for(int i = 0; i < 4; i++) {
|
||||
sign.setLine(i, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//remove the information from the storage first as it requires an instance
|
||||
plugin.getJailIO().removeCell(this, c);
|
||||
//now remove it from the local storage
|
||||
this.cells.remove(name);
|
||||
}
|
||||
|
||||
/** Returns the cell which the given player name is jailed in, null if not. */
|
||||
public Cell getCellPrisonerIsIn(UUID uuid) {
|
||||
for(Cell c : cells.values())
|
||||
if(c.hasPrisoner())
|
||||
if(c.getPrisoner().getUUID().equals(uuid))
|
||||
return c;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Returns the first empty cell, returns null if there aren't any cells or any free cells. */
|
||||
public Cell getFirstEmptyCell() {
|
||||
for(Cell c : getCells())
|
||||
if(c.hasPrisoner())
|
||||
continue;
|
||||
else
|
||||
return c;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Gets the amount of cells the jail. */
|
||||
public int getCellCount() {
|
||||
return this.cells.size();
|
||||
}
|
||||
|
||||
/** Gets all the cells in the jail. */
|
||||
public HashSet<Cell> getCells() {
|
||||
return new HashSet<Cell>(this.cells.values());
|
||||
}
|
||||
|
||||
/** Gets the closest cell to the provided location, via the teleport in location of the cells. */
|
||||
public Cell getNearestCell(Location loc) {
|
||||
Cell cell = null;
|
||||
double distance = -1;
|
||||
|
||||
for(Cell c : getCells()) {
|
||||
//Check if the worlds are the same, if not we can't calculate anything
|
||||
if(c.getTeleport().getWorld().getName().equalsIgnoreCase(loc.getWorld().getName())) {
|
||||
//They are in the same world
|
||||
double dist = c.getTeleport().distance(loc);
|
||||
if (dist < distance || distance < 0) {
|
||||
cell = c;
|
||||
distance = dist;
|
||||
}
|
||||
}else {
|
||||
//If they aren't, return the first cell found.
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
/** Clears all the prisoners from this Jail. */
|
||||
public void clearPrisoners() {
|
||||
//Remove the prisoners from all the cells
|
||||
for(Cell c : getCells()) {
|
||||
c.removePrisoner();
|
||||
}
|
||||
|
||||
//Replace all the current no cell prisoners with
|
||||
//a new hashset of prisoners.
|
||||
this.nocellPrisoners = new HashMap<UUID, Prisoner>();
|
||||
}
|
||||
|
||||
/** Gets a HashMap of <b>all</b> the prisoners, the ones in cells and ones who aren't. */
|
||||
public HashMap<UUID, Prisoner> getAllPrisoners() {
|
||||
HashMap<UUID, Prisoner> all = new HashMap<UUID, Prisoner>(nocellPrisoners); //initalize the temp one to return with the prisoners not in any cells
|
||||
|
||||
for(Cell c : cells.values())
|
||||
if(c.hasPrisoner())
|
||||
all.put(c.getPrisoner().getUUID(), c.getPrisoner());
|
||||
|
||||
return all;
|
||||
}
|
||||
|
||||
/** Gets a HashSet of the prisoners <b>in cells</b>. */
|
||||
public HashSet<Prisoner> getPrisonersInCells() {
|
||||
HashSet<Prisoner> all = new HashSet<Prisoner>();
|
||||
|
||||
for(Cell c : getCells())
|
||||
if(c.hasPrisoner())
|
||||
all.add(c.getPrisoner());
|
||||
|
||||
return all;
|
||||
}
|
||||
|
||||
/** Gets a HashSet of the prisoners <b>not</b> in cells.*/
|
||||
public HashMap<UUID, Prisoner> getPrisonersNotInCells() {
|
||||
return this.nocellPrisoners;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the player is a prisoner in the system, whether in a cell or no cell.
|
||||
*
|
||||
* @param player The {@link Player player instance} of the person we're checking.
|
||||
* @return true if is jailed, false if not.
|
||||
*/
|
||||
public boolean isPlayerJailed(Player player) {
|
||||
return this.isPlayerAPrisoner(player.getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the uuid of a player is a prisoner in the system, whether in a cell or no cell.
|
||||
*
|
||||
* @param uuid The uuid of the person we're checking.
|
||||
* @return true if is jailed, false if not.
|
||||
*/
|
||||
public boolean isPlayerJailed(UUID uuid) {
|
||||
return this.isPlayerAPrisoner(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the uuid of a player is a prisoner in this jail, no matter if they're in a cell or not.
|
||||
*
|
||||
* @param uuid The name of the person we're checking.
|
||||
* @return true if is a prisoner, false if not.
|
||||
*/
|
||||
private boolean isPlayerAPrisoner(UUID uuid) {
|
||||
return this.getAllPrisoners().containsKey(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given uuid of a player is a prisoner in a cell.
|
||||
*
|
||||
* @param uuid of the prisoner to check.
|
||||
* @return true if is jailed in a cell, false if not.
|
||||
*/
|
||||
public boolean isJailedInACell(UUID uuid) {
|
||||
if(this.nocellPrisoners.containsKey(uuid)) return false;
|
||||
|
||||
for(Cell c : cells.values())
|
||||
if(c.getPrisoner() != null)
|
||||
if(c.getPrisoner().getUUID().equals(uuid))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link Prisoner prisoner} instance for the given name.
|
||||
*
|
||||
* @param name The name of the prisoner to get.
|
||||
* @return the prisoner instance, can be null
|
||||
*/
|
||||
public Prisoner getPrisonerByLastKnownName(String name) {
|
||||
for(Prisoner p : this.getAllPrisoners().values())
|
||||
if(p.getLastKnownName().equalsIgnoreCase(name))
|
||||
return p;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link Prisoner prisoner} instance for the given uuid.
|
||||
*
|
||||
* @param uuid The uuid of the prisoner to get.
|
||||
* @return the prisoner instance, can be null
|
||||
*/
|
||||
public Prisoner getPrisoner(UUID uuid) {
|
||||
if(this.nocellPrisoners.containsKey(uuid)) return this.nocellPrisoners.get(uuid);
|
||||
|
||||
for(Cell c : cells.values())
|
||||
if(c.hasPrisoner())
|
||||
if(c.getPrisoner().getUUID().equals(uuid))
|
||||
return c.getPrisoner();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the squared distance between teleport location of this jail
|
||||
* and specified location in blocks. If locations are not in same world,
|
||||
* distance cannot be calculated and it will return Integer.MAX_VALUE.
|
||||
*
|
||||
* @param loc The location to check
|
||||
* @return Distance between the location provided and the teleport in location.
|
||||
*/
|
||||
public double getDistance(Location loc) {
|
||||
if (loc.getWorld().getName().equalsIgnoreCase(getTeleportIn().getWorld().getName())) return (double) Integer.MAX_VALUE;
|
||||
else return loc.distance(getTeleportIn());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the given location is inside this Jail.
|
||||
*
|
||||
* @param loc to check whether is inside this jail
|
||||
* @return True if the location is in the jail, false if it isn't
|
||||
*/
|
||||
public boolean isInside(Location loc) {
|
||||
if(loc.getWorld().getName().equalsIgnoreCase(world)) {
|
||||
return Util.isInsideAB(loc.toVector(), new Vector(minX, minY, minZ), new Vector(maxX, maxY, maxZ));
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.Sign;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import com.graywolf336.jail.JailMain;
|
||||
import com.graywolf336.jail.Util;
|
||||
|
||||
/** Represents a Jail, contains the prisoners and the cells.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.0.3
|
||||
*/
|
||||
public class Jail {
|
||||
private JailMain plugin;
|
||||
private HashMap<String, Cell> cells;
|
||||
private HashMap<UUID, Prisoner> nocellPrisoners;//prisoners who aren't in a cell
|
||||
private String name = "", world = "";
|
||||
private int minX, minY, minZ, maxX, maxY, maxZ;
|
||||
private Location in, free;
|
||||
|
||||
public Jail(JailMain plugin, String name) {
|
||||
this.plugin = plugin;
|
||||
this.name = name;
|
||||
cells = new HashMap<String, Cell>();
|
||||
nocellPrisoners = new HashMap<UUID, Prisoner>();
|
||||
}
|
||||
|
||||
/** Gets the instance of the plugin's main class. */
|
||||
public JailMain getPlugin() {
|
||||
return this.plugin;
|
||||
}
|
||||
|
||||
/** Sets the name of the jail. */
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/** Gets the name of the jail. */
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Sets the location of the <b>minimum</b> point to the given location's coordinates. */
|
||||
public void setMinPoint(Location location) {
|
||||
if(this.world.isEmpty()) this.world = location.getWorld().getName();
|
||||
|
||||
this.minX = location.getBlockX();
|
||||
this.minY = location.getBlockY();
|
||||
this.minZ = location.getBlockZ();
|
||||
}
|
||||
|
||||
/** Accepts an array of ints as the coord, where <strong>0 = x</strong>, <strong>1 = y</strong>, <strong>2 = z</strong>. */
|
||||
public void setMinPoint(int[] coords) {
|
||||
if(coords.length != 3) return;
|
||||
|
||||
this.minX = coords[0];
|
||||
this.minY = coords[1];
|
||||
this.minZ = coords[2];
|
||||
}
|
||||
|
||||
/** Gets the minimum point as a Bukkit Location class. */
|
||||
public Location getMinPoint() {
|
||||
return new Location(plugin.getServer().getWorld(world), minX, minY, minZ);
|
||||
}
|
||||
|
||||
/** Sets the location of the <b>maximum</b> point to the given location's coordinates. */
|
||||
public void setMaxPoint(Location location) {
|
||||
if(this.world.isEmpty()) this.world = location.getWorld().getName();
|
||||
|
||||
this.maxX = location.getBlockX();
|
||||
this.maxY = location.getBlockY();
|
||||
this.maxZ = location.getBlockZ();
|
||||
}
|
||||
|
||||
/** Gets the minimum point as a Bukkit Location class. */
|
||||
public Location getMaxPoint() {
|
||||
return new Location(plugin.getServer().getWorld(world), maxX, maxY, maxZ);
|
||||
}
|
||||
|
||||
/** Accepts an array of ints as the coord, where <strong>0 = x</strong>, <strong>1 = y</strong>, <strong>2 = z</strong>. */
|
||||
public void setMaxPoint(int[] coords) {
|
||||
if(coords.length != 3) return;
|
||||
|
||||
this.maxX = coords[0];
|
||||
this.maxY = coords[1];
|
||||
this.maxZ = coords[2];
|
||||
}
|
||||
|
||||
/** Sets the name of the world this Jail is in. */
|
||||
public void setWorld(String name) {
|
||||
this.world = name;
|
||||
}
|
||||
|
||||
/** Gets the name of the world this Jail is in. */
|
||||
public String getWorldName() {
|
||||
return this.world;
|
||||
}
|
||||
|
||||
/** Gets the instance of the {@link World world} this Jail is in. */
|
||||
public World getWorld() {
|
||||
return plugin.getServer().getWorld(world);
|
||||
}
|
||||
|
||||
/** Sets the {@link Location location} of the teleport <strong>in</strong>. */
|
||||
public void setTeleportIn(Location location) {
|
||||
if(this.world.isEmpty()) this.world = location.getWorld().getName();
|
||||
|
||||
this.in = location;
|
||||
}
|
||||
|
||||
/** Gets the {@link Location location} of the teleport in. */
|
||||
public Location getTeleportIn() {
|
||||
return this.in;
|
||||
}
|
||||
|
||||
/** Sets the {@link Location location} of the teleport for the <strong>free</strong> spot. */
|
||||
public void setTeleportFree(Location location) {
|
||||
this.free = location;
|
||||
}
|
||||
|
||||
/** Gets the {@link Location location} of the teleport free spot.*/
|
||||
public Location getTeleportFree() {
|
||||
return this.free;
|
||||
}
|
||||
|
||||
/** Add a prisoner to this jail. */
|
||||
public void addPrisoner(Prisoner p) {
|
||||
this.nocellPrisoners.put(p.getUUID(), p);
|
||||
}
|
||||
|
||||
/** Removes a prisoner from this jail, doesn't remove it from the cell. */
|
||||
public void removePrisoner(Prisoner p) {
|
||||
this.nocellPrisoners.remove(p);
|
||||
}
|
||||
|
||||
/** Adds a cell to the Jail. */
|
||||
public void addCell(Cell cell, boolean save) {
|
||||
if(save) plugin.getJailIO().saveCell(this, cell);
|
||||
this.cells.put(cell.getName(), cell);
|
||||
}
|
||||
|
||||
/** Gets the cell with the given name. */
|
||||
public Cell getCell(String name) {
|
||||
return this.cells.get(name);
|
||||
}
|
||||
|
||||
/** Checks if the given name is a valid cell. */
|
||||
public boolean isValidCell(String name) {
|
||||
return this.cells.get(name) != null;
|
||||
}
|
||||
|
||||
/** Removes the cell from the jail. */
|
||||
public void removeCell(String name) {
|
||||
Cell c = this.cells.get(name);
|
||||
//If we have a chest, clear the inventory
|
||||
if(c.hasChest()) {
|
||||
c.getChest().getInventory().clear();
|
||||
}
|
||||
|
||||
//For each sign, clear the lines on the sign
|
||||
for(SimpleLocation s : c.getSigns()) {
|
||||
if(s.getLocation().getBlock() instanceof Sign) {
|
||||
Sign sign = (Sign) s.getLocation().getBlock();
|
||||
for(int i = 0; i < 4; i++) {
|
||||
sign.setLine(i, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//remove the information from the storage first as it requires an instance
|
||||
plugin.getJailIO().removeCell(this, c);
|
||||
//now remove it from the local storage
|
||||
this.cells.remove(name);
|
||||
}
|
||||
|
||||
/** Returns the cell which the given player name is jailed in, null if not. */
|
||||
public Cell getCellPrisonerIsIn(UUID uuid) {
|
||||
for(Cell c : cells.values())
|
||||
if(c.hasPrisoner())
|
||||
if(c.getPrisoner().getUUID().equals(uuid))
|
||||
return c;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Returns the first empty cell, returns null if there aren't any cells or any free cells. */
|
||||
public Cell getFirstEmptyCell() {
|
||||
for(Cell c : getCells())
|
||||
if(c.hasPrisoner())
|
||||
continue;
|
||||
else
|
||||
return c;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/** Gets the amount of cells the jail. */
|
||||
public int getCellCount() {
|
||||
return this.cells.size();
|
||||
}
|
||||
|
||||
/** Gets all the cells in the jail. */
|
||||
public HashSet<Cell> getCells() {
|
||||
return new HashSet<Cell>(this.cells.values());
|
||||
}
|
||||
|
||||
/** Gets the closest cell to the provided location, via the teleport in location of the cells. */
|
||||
public Cell getNearestCell(Location loc) {
|
||||
Cell cell = null;
|
||||
double distance = -1;
|
||||
|
||||
for(Cell c : getCells()) {
|
||||
//Check if the worlds are the same, if not we can't calculate anything
|
||||
if(c.getTeleport().getWorld().getName().equalsIgnoreCase(loc.getWorld().getName())) {
|
||||
//They are in the same world
|
||||
double dist = c.getTeleport().distance(loc);
|
||||
if (dist < distance || distance < 0) {
|
||||
cell = c;
|
||||
distance = dist;
|
||||
}
|
||||
}else {
|
||||
//If they aren't, return the first cell found.
|
||||
return c;
|
||||
}
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
/** Clears all the prisoners from this Jail. */
|
||||
public void clearPrisoners() {
|
||||
//Remove the prisoners from all the cells
|
||||
for(Cell c : getCells()) {
|
||||
c.removePrisoner();
|
||||
}
|
||||
|
||||
//Replace all the current no cell prisoners with
|
||||
//a new hashset of prisoners.
|
||||
this.nocellPrisoners = new HashMap<UUID, Prisoner>();
|
||||
}
|
||||
|
||||
/** Gets a HashMap of <b>all</b> the prisoners, the ones in cells and ones who aren't. */
|
||||
public HashMap<UUID, Prisoner> getAllPrisoners() {
|
||||
HashMap<UUID, Prisoner> all = new HashMap<UUID, Prisoner>(nocellPrisoners); //initalize the temp one to return with the prisoners not in any cells
|
||||
|
||||
for(Cell c : cells.values())
|
||||
if(c.hasPrisoner())
|
||||
all.put(c.getPrisoner().getUUID(), c.getPrisoner());
|
||||
|
||||
return all;
|
||||
}
|
||||
|
||||
/** Gets a HashSet of the prisoners <b>in cells</b>. */
|
||||
public HashSet<Prisoner> getPrisonersInCells() {
|
||||
HashSet<Prisoner> all = new HashSet<Prisoner>();
|
||||
|
||||
for(Cell c : getCells())
|
||||
if(c.hasPrisoner())
|
||||
all.add(c.getPrisoner());
|
||||
|
||||
return all;
|
||||
}
|
||||
|
||||
/** Gets a HashSet of the prisoners <b>not</b> in cells.*/
|
||||
public HashMap<UUID, Prisoner> getPrisonersNotInCells() {
|
||||
return this.nocellPrisoners;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the player is a prisoner in the system, whether in a cell or no cell.
|
||||
*
|
||||
* @param player The {@link Player player instance} of the person we're checking.
|
||||
* @return true if is jailed, false if not.
|
||||
*/
|
||||
public boolean isPlayerJailed(Player player) {
|
||||
return this.isPlayerAPrisoner(player.getUniqueId());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the uuid of a player is a prisoner in the system, whether in a cell or no cell.
|
||||
*
|
||||
* @param uuid The uuid of the person we're checking.
|
||||
* @return true if is jailed, false if not.
|
||||
*/
|
||||
public boolean isPlayerJailed(UUID uuid) {
|
||||
return this.isPlayerAPrisoner(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the uuid of a player is a prisoner in this jail, no matter if they're in a cell or not.
|
||||
*
|
||||
* @param uuid The name of the person we're checking.
|
||||
* @return true if is a prisoner, false if not.
|
||||
*/
|
||||
private boolean isPlayerAPrisoner(UUID uuid) {
|
||||
return this.getAllPrisoners().containsKey(uuid);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given uuid of a player is a prisoner in a cell.
|
||||
*
|
||||
* @param uuid of the prisoner to check.
|
||||
* @return true if is jailed in a cell, false if not.
|
||||
*/
|
||||
public boolean isJailedInACell(UUID uuid) {
|
||||
if(this.nocellPrisoners.containsKey(uuid)) return false;
|
||||
|
||||
for(Cell c : cells.values())
|
||||
if(c.getPrisoner() != null)
|
||||
if(c.getPrisoner().getUUID().equals(uuid))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link Prisoner prisoner} instance for the given name.
|
||||
*
|
||||
* @param name The name of the prisoner to get.
|
||||
* @return the prisoner instance, can be null
|
||||
*/
|
||||
public Prisoner getPrisonerByLastKnownName(String name) {
|
||||
for(Prisoner p : this.getAllPrisoners().values())
|
||||
if(p.getLastKnownName().equalsIgnoreCase(name))
|
||||
return p;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the {@link Prisoner prisoner} instance for the given uuid.
|
||||
*
|
||||
* @param uuid The uuid of the prisoner to get.
|
||||
* @return the prisoner instance, can be null
|
||||
*/
|
||||
public Prisoner getPrisoner(UUID uuid) {
|
||||
if(this.nocellPrisoners.containsKey(uuid)) return this.nocellPrisoners.get(uuid);
|
||||
|
||||
for(Cell c : cells.values())
|
||||
if(c.hasPrisoner())
|
||||
if(c.getPrisoner().getUUID().equals(uuid))
|
||||
return c.getPrisoner();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the squared distance between teleport location of this jail
|
||||
* and specified location in blocks. If locations are not in same world,
|
||||
* distance cannot be calculated and it will return Integer.MAX_VALUE.
|
||||
*
|
||||
* @param loc The location to check
|
||||
* @return Distance between the location provided and the teleport in location.
|
||||
*/
|
||||
public double getDistance(Location loc) {
|
||||
if (loc.getWorld().getName().equalsIgnoreCase(getTeleportIn().getWorld().getName())) return (double) Integer.MAX_VALUE;
|
||||
else return loc.distance(getTeleportIn());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether the given location is inside this Jail.
|
||||
*
|
||||
* @param loc to check whether is inside this jail
|
||||
* @return True if the location is in the jail, false if it isn't
|
||||
*/
|
||||
public boolean isInside(Location loc) {
|
||||
if(loc.getWorld().getName().equalsIgnoreCase(world)) {
|
||||
return Util.isInsideAB(loc.toVector(), new Vector(minX, minY, minZ), new Vector(maxX, maxY, maxZ));
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,254 +1,254 @@
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
|
||||
/**
|
||||
* Represents a Prisoner, player who is jailed, and contains all the information about him/her.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 2.x.x
|
||||
* @version 3.0.1
|
||||
*/
|
||||
public class Prisoner {
|
||||
private String uuid, name, jailer, reason, inventory, armor;
|
||||
private boolean muted, offlinePending, teleporting, toBeTransferred;
|
||||
private long time, afk;
|
||||
private Location previousPosition;
|
||||
private GameMode previousGameMode;
|
||||
|
||||
/**
|
||||
* Creates a new prisoner with a name and whether they are muted or not.
|
||||
*
|
||||
* @param uuid The uuid of the prisoner
|
||||
* @param name The name of the prisoner
|
||||
* @param muted Whether the prisoner is muted or not
|
||||
* @param time The amount of remaining time the prisoner has
|
||||
* @param jailer The name of the person who jailed this prisoner
|
||||
* @param reason The reason why this prisoner is in jail
|
||||
*/
|
||||
public Prisoner(String uuid, String name, boolean muted, long time, String jailer, String reason) {
|
||||
this.uuid = uuid;
|
||||
this.name = name;
|
||||
this.muted = muted;
|
||||
this.time = time;
|
||||
this.jailer = jailer;
|
||||
this.reason = reason;
|
||||
this.offlinePending = false;
|
||||
this.teleporting = false;
|
||||
this.toBeTransferred = false;
|
||||
this.previousPosition = null;
|
||||
this.previousGameMode = GameMode.SURVIVAL;
|
||||
this.inventory = "";
|
||||
this.armor = "";
|
||||
this.afk = 0;
|
||||
}
|
||||
|
||||
/** Returns the UUID of the prisoner. */
|
||||
public UUID getUUID() {
|
||||
return UUID.fromString(this.uuid);
|
||||
}
|
||||
|
||||
/** Gets the name of this prisoner. */
|
||||
public String getLastKnownName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Sets the name of this prisoner. */
|
||||
public String setLastKnownName(String username) {
|
||||
this.name = username;
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Gets the reason this player was jailed for. */
|
||||
public String getReason() {
|
||||
return this.reason;
|
||||
}
|
||||
|
||||
/** Sets the reason this player was jailed for. */
|
||||
public void setReason(String reason) {
|
||||
this.reason = reason;
|
||||
}
|
||||
|
||||
/** Gets the person who jailed this prisoner. */
|
||||
public String getJailer() {
|
||||
return this.jailer;
|
||||
}
|
||||
|
||||
/** Sets the person who jailed this prisoner. */
|
||||
public void setJailer(String jailer) {
|
||||
this.jailer = jailer;
|
||||
}
|
||||
|
||||
/** Gets whether the prisoner is muted or not. */
|
||||
public boolean isMuted() {
|
||||
return this.muted;
|
||||
}
|
||||
|
||||
/** Sets whether the prisoner is muted or not. */
|
||||
public void setMuted(boolean muted) {
|
||||
this.muted = muted;
|
||||
}
|
||||
|
||||
/** Gets the remaining time the prisoner has. */
|
||||
public long getRemainingTime() {
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/** Gets the remaining time the prisoner has in minutes. */
|
||||
public long getRemainingTimeInMinutes() {
|
||||
return TimeUnit.MINUTES.convert(time, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
/** Gets the remaining time the prison has in minutes except only in int format. */
|
||||
public int getRemainingTimeInMinutesInt() {
|
||||
return (int) this.getRemainingTimeInMinutes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time The amount of time left, in milliseconds.
|
||||
*/
|
||||
public void setRemainingTime(long time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the given time to the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time to add to the prisoner's remaining time.
|
||||
* @return the new remaining time the prisoner has
|
||||
*/
|
||||
public long addTime(long time) {
|
||||
this.time += time;
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Subtracts the given time from the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time to subtract from the prisoner's remaining time.
|
||||
* @return the new remaining time the prisoner has
|
||||
*/
|
||||
public long subtractTime(long time) {
|
||||
this.time -= time;
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/** Gets whether the player is offline or not. */
|
||||
public boolean isOfflinePending() {
|
||||
return this.offlinePending;
|
||||
}
|
||||
|
||||
/** Sets whether the player is offline or not. */
|
||||
public void setOfflinePending(boolean offline) {
|
||||
this.offlinePending = offline;
|
||||
}
|
||||
|
||||
/** Gets whether the player is being teleported or not. */
|
||||
public boolean isTeleporting() {
|
||||
return this.teleporting;
|
||||
}
|
||||
|
||||
/** Sets whether the player is being teleported or not. */
|
||||
public void setTeleporting(boolean teleport) {
|
||||
this.teleporting = teleport;
|
||||
}
|
||||
|
||||
/** Gets whether the prisoner is going to be transferred or not, mainly for teleporting on join purposes. */
|
||||
public boolean isToBeTransferred() {
|
||||
return this.toBeTransferred;
|
||||
}
|
||||
|
||||
/** Sets whether the prisoner is going to be transferred or not, mainly for teleporting on join purposes. */
|
||||
public void setToBeTransferred(boolean transferred) {
|
||||
this.toBeTransferred = transferred;
|
||||
}
|
||||
|
||||
/** Gets the previous location of this player, can be null. */
|
||||
public Location getPreviousLocation() {
|
||||
return this.previousPosition;
|
||||
}
|
||||
|
||||
/** Gets the previous location of this player, separated by a comma. */
|
||||
public String getPreviousLocationString() {
|
||||
if(previousPosition == null) return "";
|
||||
else return previousPosition.getWorld().getName() + "," +
|
||||
previousPosition.getX() + "," +
|
||||
previousPosition.getY() + "," +
|
||||
previousPosition.getZ() + "," +
|
||||
previousPosition.getYaw() + "," +
|
||||
previousPosition.getPitch();
|
||||
}
|
||||
|
||||
/** Sets the previous location of this player. */
|
||||
public void setPreviousPosition(Location location) {
|
||||
this.previousPosition = location;
|
||||
}
|
||||
|
||||
/** Sets the previous location of this player from a comma separated string. */
|
||||
public void setPreviousPosition(String location) {
|
||||
if(location == null) return;
|
||||
if(location.isEmpty()) return;
|
||||
|
||||
String[] s = location.split(",");
|
||||
this.previousPosition = new Location(Bukkit.getWorld(s[0]),
|
||||
Double.valueOf(s[1]),
|
||||
Double.valueOf(s[2]),
|
||||
Double.valueOf(s[3]),
|
||||
Float.valueOf(s[4]),
|
||||
Float.valueOf(s[5]));
|
||||
}
|
||||
|
||||
/** Gets the previous gamemode of this player. */
|
||||
public GameMode getPreviousGameMode() {
|
||||
return this.previousGameMode;
|
||||
}
|
||||
|
||||
/** Sets the previous gamemode of this player. */
|
||||
public void setPreviousGameMode(GameMode previous) {
|
||||
this.previousGameMode = previous;
|
||||
}
|
||||
|
||||
/** Sets the previous gamemode of this player based upon the provided string. */
|
||||
public void setPreviousGameMode(String previous) {
|
||||
if(previous == null) return;
|
||||
else if(previous.isEmpty()) return;
|
||||
else this.previousGameMode = GameMode.valueOf(previous);
|
||||
}
|
||||
|
||||
/** Gets the inventory string for this player, it is encoded in Base64 string. */
|
||||
public String getInventory() {
|
||||
return this.inventory;
|
||||
}
|
||||
|
||||
/** Sets the inventory Base64 string. */
|
||||
public void setInventory(String inventory) {
|
||||
this.inventory = inventory;
|
||||
}
|
||||
|
||||
/** Gets the armor content, encoded in Base64 string. */
|
||||
public String getArmor() {
|
||||
return this.armor;
|
||||
}
|
||||
|
||||
/** Sets the armor inventory Base64 string. */
|
||||
public void setArmor(String armor) {
|
||||
this.armor = armor;
|
||||
}
|
||||
|
||||
/** Gets the time, in milliseconds, this prisoner has been afk. */
|
||||
public long getAFKTime() {
|
||||
return this.afk;
|
||||
}
|
||||
|
||||
/** Sets the time, in milliseconds, this prisoner has been afk. */
|
||||
public void setAFKTime(long time) {
|
||||
this.afk = time;
|
||||
}
|
||||
}
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Location;
|
||||
|
||||
/**
|
||||
* Represents a Prisoner, player who is jailed, and contains all the information about him/her.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 2.x.x
|
||||
* @version 3.0.1
|
||||
*/
|
||||
public class Prisoner {
|
||||
private String uuid, name, jailer, reason, inventory, armor;
|
||||
private boolean muted, offlinePending, teleporting, toBeTransferred;
|
||||
private long time, afk;
|
||||
private Location previousPosition;
|
||||
private GameMode previousGameMode;
|
||||
|
||||
/**
|
||||
* Creates a new prisoner with a name and whether they are muted or not.
|
||||
*
|
||||
* @param uuid The uuid of the prisoner
|
||||
* @param name The name of the prisoner
|
||||
* @param muted Whether the prisoner is muted or not
|
||||
* @param time The amount of remaining time the prisoner has
|
||||
* @param jailer The name of the person who jailed this prisoner
|
||||
* @param reason The reason why this prisoner is in jail
|
||||
*/
|
||||
public Prisoner(String uuid, String name, boolean muted, long time, String jailer, String reason) {
|
||||
this.uuid = uuid;
|
||||
this.name = name;
|
||||
this.muted = muted;
|
||||
this.time = time;
|
||||
this.jailer = jailer;
|
||||
this.reason = reason;
|
||||
this.offlinePending = false;
|
||||
this.teleporting = false;
|
||||
this.toBeTransferred = false;
|
||||
this.previousPosition = null;
|
||||
this.previousGameMode = GameMode.SURVIVAL;
|
||||
this.inventory = "";
|
||||
this.armor = "";
|
||||
this.afk = 0;
|
||||
}
|
||||
|
||||
/** Returns the UUID of the prisoner. */
|
||||
public UUID getUUID() {
|
||||
return UUID.fromString(this.uuid);
|
||||
}
|
||||
|
||||
/** Gets the name of this prisoner. */
|
||||
public String getLastKnownName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Sets the name of this prisoner. */
|
||||
public String setLastKnownName(String username) {
|
||||
this.name = username;
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** Gets the reason this player was jailed for. */
|
||||
public String getReason() {
|
||||
return this.reason;
|
||||
}
|
||||
|
||||
/** Sets the reason this player was jailed for. */
|
||||
public void setReason(String reason) {
|
||||
this.reason = reason;
|
||||
}
|
||||
|
||||
/** Gets the person who jailed this prisoner. */
|
||||
public String getJailer() {
|
||||
return this.jailer;
|
||||
}
|
||||
|
||||
/** Sets the person who jailed this prisoner. */
|
||||
public void setJailer(String jailer) {
|
||||
this.jailer = jailer;
|
||||
}
|
||||
|
||||
/** Gets whether the prisoner is muted or not. */
|
||||
public boolean isMuted() {
|
||||
return this.muted;
|
||||
}
|
||||
|
||||
/** Sets whether the prisoner is muted or not. */
|
||||
public void setMuted(boolean muted) {
|
||||
this.muted = muted;
|
||||
}
|
||||
|
||||
/** Gets the remaining time the prisoner has. */
|
||||
public long getRemainingTime() {
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/** Gets the remaining time the prisoner has in minutes. */
|
||||
public long getRemainingTimeInMinutes() {
|
||||
return TimeUnit.MINUTES.convert(time, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
/** Gets the remaining time the prison has in minutes except only in int format. */
|
||||
public int getRemainingTimeInMinutesInt() {
|
||||
return (int) this.getRemainingTimeInMinutes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time The amount of time left, in milliseconds.
|
||||
*/
|
||||
public void setRemainingTime(long time) {
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the given time to the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time to add to the prisoner's remaining time.
|
||||
* @return the new remaining time the prisoner has
|
||||
*/
|
||||
public long addTime(long time) {
|
||||
this.time += time;
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Subtracts the given time from the remaining time the prisoner has left.
|
||||
*
|
||||
* @param time to subtract from the prisoner's remaining time.
|
||||
* @return the new remaining time the prisoner has
|
||||
*/
|
||||
public long subtractTime(long time) {
|
||||
this.time -= time;
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/** Gets whether the player is offline or not. */
|
||||
public boolean isOfflinePending() {
|
||||
return this.offlinePending;
|
||||
}
|
||||
|
||||
/** Sets whether the player is offline or not. */
|
||||
public void setOfflinePending(boolean offline) {
|
||||
this.offlinePending = offline;
|
||||
}
|
||||
|
||||
/** Gets whether the player is being teleported or not. */
|
||||
public boolean isTeleporting() {
|
||||
return this.teleporting;
|
||||
}
|
||||
|
||||
/** Sets whether the player is being teleported or not. */
|
||||
public void setTeleporting(boolean teleport) {
|
||||
this.teleporting = teleport;
|
||||
}
|
||||
|
||||
/** Gets whether the prisoner is going to be transferred or not, mainly for teleporting on join purposes. */
|
||||
public boolean isToBeTransferred() {
|
||||
return this.toBeTransferred;
|
||||
}
|
||||
|
||||
/** Sets whether the prisoner is going to be transferred or not, mainly for teleporting on join purposes. */
|
||||
public void setToBeTransferred(boolean transferred) {
|
||||
this.toBeTransferred = transferred;
|
||||
}
|
||||
|
||||
/** Gets the previous location of this player, can be null. */
|
||||
public Location getPreviousLocation() {
|
||||
return this.previousPosition;
|
||||
}
|
||||
|
||||
/** Gets the previous location of this player, separated by a comma. */
|
||||
public String getPreviousLocationString() {
|
||||
if(previousPosition == null) return "";
|
||||
else return previousPosition.getWorld().getName() + "," +
|
||||
previousPosition.getX() + "," +
|
||||
previousPosition.getY() + "," +
|
||||
previousPosition.getZ() + "," +
|
||||
previousPosition.getYaw() + "," +
|
||||
previousPosition.getPitch();
|
||||
}
|
||||
|
||||
/** Sets the previous location of this player. */
|
||||
public void setPreviousPosition(Location location) {
|
||||
this.previousPosition = location;
|
||||
}
|
||||
|
||||
/** Sets the previous location of this player from a comma separated string. */
|
||||
public void setPreviousPosition(String location) {
|
||||
if(location == null) return;
|
||||
if(location.isEmpty()) return;
|
||||
|
||||
String[] s = location.split(",");
|
||||
this.previousPosition = new Location(Bukkit.getWorld(s[0]),
|
||||
Double.valueOf(s[1]),
|
||||
Double.valueOf(s[2]),
|
||||
Double.valueOf(s[3]),
|
||||
Float.valueOf(s[4]),
|
||||
Float.valueOf(s[5]));
|
||||
}
|
||||
|
||||
/** Gets the previous gamemode of this player. */
|
||||
public GameMode getPreviousGameMode() {
|
||||
return this.previousGameMode;
|
||||
}
|
||||
|
||||
/** Sets the previous gamemode of this player. */
|
||||
public void setPreviousGameMode(GameMode previous) {
|
||||
this.previousGameMode = previous;
|
||||
}
|
||||
|
||||
/** Sets the previous gamemode of this player based upon the provided string. */
|
||||
public void setPreviousGameMode(String previous) {
|
||||
if(previous == null) return;
|
||||
else if(previous.isEmpty()) return;
|
||||
else this.previousGameMode = GameMode.valueOf(previous);
|
||||
}
|
||||
|
||||
/** Gets the inventory string for this player, it is encoded in Base64 string. */
|
||||
public String getInventory() {
|
||||
return this.inventory;
|
||||
}
|
||||
|
||||
/** Sets the inventory Base64 string. */
|
||||
public void setInventory(String inventory) {
|
||||
this.inventory = inventory;
|
||||
}
|
||||
|
||||
/** Gets the armor content, encoded in Base64 string. */
|
||||
public String getArmor() {
|
||||
return this.armor;
|
||||
}
|
||||
|
||||
/** Sets the armor inventory Base64 string. */
|
||||
public void setArmor(String armor) {
|
||||
this.armor = armor;
|
||||
}
|
||||
|
||||
/** Gets the time, in milliseconds, this prisoner has been afk. */
|
||||
public long getAFKTime() {
|
||||
return this.afk;
|
||||
}
|
||||
|
||||
/** Sets the time, in milliseconds, this prisoner has been afk. */
|
||||
public void setAFKTime(long time) {
|
||||
this.afk = time;
|
||||
}
|
||||
}
|
||||
|
@ -1,103 +1,103 @@
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
|
||||
/**
|
||||
* Simple location class which doesn't store any instances of {@link World worlds} or {@link org.bukkit.block.Block blocks}, just uses strings, floats, and doubles.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.1.1
|
||||
*/
|
||||
public class SimpleLocation {
|
||||
private String world;
|
||||
private double x, y, z;
|
||||
private float yaw, pitch;
|
||||
|
||||
/**
|
||||
* Creates a new SimpleLocation with each detail provided separately.
|
||||
*
|
||||
* @param world as a string
|
||||
* @param x coordinate as a double
|
||||
* @param y coordinate as a double
|
||||
* @param z coordinate as a double
|
||||
* @param yaw as a float
|
||||
* @param pitch as a float
|
||||
*/
|
||||
public SimpleLocation(String world, double x, double y, double z, float yaw, float pitch) {
|
||||
this.world = world;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.yaw = yaw;
|
||||
this.pitch = pitch;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new SimpleLocation with all the detail provided from {@link Location}.
|
||||
*
|
||||
* @param location to convert to a SimpleLocation
|
||||
*/
|
||||
public SimpleLocation(Location location) {
|
||||
this.world = location.getWorld().getName();
|
||||
this.x = location.getX();
|
||||
this.y = location.getY();
|
||||
this.z = location.getZ();
|
||||
this.yaw = location.getYaw();
|
||||
this.pitch = location.getPitch();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new Simple Location with all the inputs being in string.
|
||||
*
|
||||
* @param world the name of the world
|
||||
* @param x coordinate as a string
|
||||
* @param y coordinate as a string
|
||||
* @param z coordinate as a string
|
||||
*/
|
||||
public SimpleLocation(String world, String x, String y, String z) {
|
||||
this.world = world;
|
||||
this.x = Double.valueOf(x);
|
||||
this.y = Double.valueOf(y);
|
||||
this.z = Double.valueOf(z);
|
||||
this.yaw = 0;
|
||||
this.pitch = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new SimpleLocation with each detail provided separately.
|
||||
*
|
||||
* @param world as a string
|
||||
* @param x coordinate as a double
|
||||
* @param y coordinate as a double
|
||||
* @param z coordinate as a double
|
||||
*/
|
||||
public SimpleLocation(String world, double x, double y, double z) {
|
||||
this.world = world;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
/** Returns the instance from Bukkit of the world this location is in. */
|
||||
public World getWorld() {
|
||||
return Bukkit.getWorld(world);
|
||||
}
|
||||
|
||||
/** Returns the name of the world this location is in. */
|
||||
public String getWorldName() {
|
||||
return this.world;
|
||||
}
|
||||
|
||||
/** Returns a new {@link Location} from this SimpleLocation. */
|
||||
public Location getLocation() {
|
||||
return new Location(Bukkit.getWorld(world), x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return world + "," + x + "," + y + "," + z + "," + yaw + "," + pitch;
|
||||
}
|
||||
}
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
|
||||
/**
|
||||
* Simple location class which doesn't store any instances of {@link World worlds} or {@link org.bukkit.block.Block blocks}, just uses strings, floats, and doubles.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.1.1
|
||||
*/
|
||||
public class SimpleLocation {
|
||||
private String world;
|
||||
private double x, y, z;
|
||||
private float yaw, pitch;
|
||||
|
||||
/**
|
||||
* Creates a new SimpleLocation with each detail provided separately.
|
||||
*
|
||||
* @param world as a string
|
||||
* @param x coordinate as a double
|
||||
* @param y coordinate as a double
|
||||
* @param z coordinate as a double
|
||||
* @param yaw as a float
|
||||
* @param pitch as a float
|
||||
*/
|
||||
public SimpleLocation(String world, double x, double y, double z, float yaw, float pitch) {
|
||||
this.world = world;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
this.yaw = yaw;
|
||||
this.pitch = pitch;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new SimpleLocation with all the detail provided from {@link Location}.
|
||||
*
|
||||
* @param location to convert to a SimpleLocation
|
||||
*/
|
||||
public SimpleLocation(Location location) {
|
||||
this.world = location.getWorld().getName();
|
||||
this.x = location.getX();
|
||||
this.y = location.getY();
|
||||
this.z = location.getZ();
|
||||
this.yaw = location.getYaw();
|
||||
this.pitch = location.getPitch();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new Simple Location with all the inputs being in string.
|
||||
*
|
||||
* @param world the name of the world
|
||||
* @param x coordinate as a string
|
||||
* @param y coordinate as a string
|
||||
* @param z coordinate as a string
|
||||
*/
|
||||
public SimpleLocation(String world, String x, String y, String z) {
|
||||
this.world = world;
|
||||
this.x = Double.valueOf(x);
|
||||
this.y = Double.valueOf(y);
|
||||
this.z = Double.valueOf(z);
|
||||
this.yaw = 0;
|
||||
this.pitch = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new SimpleLocation with each detail provided separately.
|
||||
*
|
||||
* @param world as a string
|
||||
* @param x coordinate as a double
|
||||
* @param y coordinate as a double
|
||||
* @param z coordinate as a double
|
||||
*/
|
||||
public SimpleLocation(String world, double x, double y, double z) {
|
||||
this.world = world;
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
/** Returns the instance from Bukkit of the world this location is in. */
|
||||
public World getWorld() {
|
||||
return Bukkit.getWorld(world);
|
||||
}
|
||||
|
||||
/** Returns the name of the world this location is in. */
|
||||
public String getWorldName() {
|
||||
return this.world;
|
||||
}
|
||||
|
||||
/** Returns a new {@link Location} from this SimpleLocation. */
|
||||
public Location getLocation() {
|
||||
return new Location(Bukkit.getWorld(world), x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return world + "," + x + "," + y + "," + z + "," + yaw + "," + pitch;
|
||||
}
|
||||
}
|
||||
|
@ -1,37 +1,37 @@
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
/**
|
||||
* Represents a Jail Stick, contains all the information.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @version 1.0.1
|
||||
* @since 3.0.0
|
||||
*
|
||||
*/
|
||||
public class Stick {
|
||||
private String jail, reason;
|
||||
private long time;
|
||||
|
||||
public Stick(String jail, String reason, long time) {
|
||||
this.jail = jail;
|
||||
this.reason = reason;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getJail() {
|
||||
return this.jail;
|
||||
}
|
||||
|
||||
public String getReason() {
|
||||
return this.reason;
|
||||
}
|
||||
|
||||
public long getTime() {
|
||||
return this.time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return time + "," + jail + "," + reason;
|
||||
}
|
||||
}
|
||||
package com.graywolf336.jail.beans;
|
||||
|
||||
/**
|
||||
* Represents a Jail Stick, contains all the information.
|
||||
*
|
||||
* @author graywolf336
|
||||
* @version 1.0.1
|
||||
* @since 3.0.0
|
||||
*
|
||||
*/
|
||||
public class Stick {
|
||||
private String jail, reason;
|
||||
private long time;
|
||||
|
||||
public Stick(String jail, String reason, long time) {
|
||||
this.jail = jail;
|
||||
this.reason = reason;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
public String getJail() {
|
||||
return this.jail;
|
||||
}
|
||||
|
||||
public String getReason() {
|
||||
return this.reason;
|
||||
}
|
||||
|
||||
public long getTime() {
|
||||
return this.time;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return time + "," + jail + "," + reason;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user