Let's start work on saving of the cells.
This commit is contained in:
parent
0272a3a241
commit
d0273828b8
@ -4,10 +4,13 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.Set;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
import com.graywolf336.jail.beans.Cell;
|
||||
import com.graywolf336.jail.beans.Jail;
|
||||
import com.graywolf336.jail.beans.Prisoner;
|
||||
import com.graywolf336.jail.beans.SimpleLocation;
|
||||
|
||||
public class JailIO {
|
||||
@ -103,6 +106,33 @@ public class JailIO {
|
||||
flat.set(node + "tps.free.yaw", j.getTeleportFree().getYaw());
|
||||
flat.set(node + "tps.free.pitch", j.getTeleportFree().getPitch());
|
||||
|
||||
for(Cell c : j.getCells()) {
|
||||
String cNode = node + ".cells." + c.getName() + ".";
|
||||
|
||||
if(c.getTeleport() != null) {
|
||||
flat.set(cNode + "tp.x", c.getTeleport().getX());
|
||||
flat.set(cNode + "tp.y", c.getTeleport().getY());
|
||||
flat.set(cNode + "tp.z", c.getTeleport().getZ());
|
||||
flat.set(cNode + "tp.yaw", c.getTeleport().getYaw());
|
||||
flat.set(cNode + "tp.pitch", c.getTeleport().getPitch());
|
||||
}
|
||||
|
||||
if(c.getChestLocation() != null) {
|
||||
flat.set(cNode + "chest.x", c.getChestLocation().getBlockX());
|
||||
flat.set(cNode + "chest.y", c.getChestLocation().getBlockY());
|
||||
flat.set(cNode + "chest.z", c.getChestLocation().getBlockZ());
|
||||
}
|
||||
|
||||
flat.set(cNode + "signs", c.getSigns().toArray(new String[c.getSigns().size()]));
|
||||
|
||||
if(c.getPrisoner() != null) {
|
||||
Prisoner p = c.getPrisoner();
|
||||
flat.set(cNode + "prisoner.name", p.getName());
|
||||
flat.set(cNode + "prisoner.muted", p.isMuted());
|
||||
flat.set(cNode + "prisoner.time", p.getRemainingTime());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
flat.save(new File(pl.getDataFolder(), "data.yml"));
|
||||
} catch (IOException e) {
|
||||
@ -122,6 +152,7 @@ public class JailIO {
|
||||
break;
|
||||
default:
|
||||
String node = "jails." + name + ".";
|
||||
String cNode = node + "cells.";
|
||||
Jail j = new Jail(pl, name);
|
||||
|
||||
j.setWorld(node + "world");
|
||||
@ -143,6 +174,47 @@ public class JailIO {
|
||||
(float) flat.getDouble(node + "tps.free.yaw"),
|
||||
(float) flat.getDouble(node + "tps.free.pitch")));
|
||||
|
||||
if(flat.isConfigurationSection(node + "cells")) {
|
||||
Set<String> cells = flat.getConfigurationSection(node + "cells").getKeys(false);
|
||||
if(!cells.isEmpty()) {
|
||||
pl.getLogger().info("Cell configuration section for " + name + " exists and there are " + cells.size() + " cells.");
|
||||
for(String cell : cells) {
|
||||
Cell c = new Cell(cell);
|
||||
String cellNode = cNode + "cell.";
|
||||
|
||||
c.setTeleport(new SimpleLocation(j.getTeleportIn().getWorld().getName(),
|
||||
flat.getDouble(cellNode + "tp.x"),
|
||||
flat.getDouble(cellNode + "tp.y"),
|
||||
flat.getDouble(cellNode + "tp.z"),
|
||||
(float) flat.getDouble(cellNode + "tp.yaw"),
|
||||
(float) flat.getDouble(cellNode + "tp.pitch")));
|
||||
c.setChestLocation(new Location(j.getTeleportIn().getWorld(),
|
||||
flat.getInt(cellNode + "chest.x"),
|
||||
flat.getInt(cellNode + "chest.y"),
|
||||
flat.getInt(cellNode + "cheset.z")));
|
||||
|
||||
for(String sign : flat.getStringList(cellNode + "signs")) {
|
||||
String[] arr = sign.split(",");
|
||||
c.addSign(new SimpleLocation(arr[0],
|
||||
Double.valueOf(arr[1]),
|
||||
Double.valueOf(arr[2]),
|
||||
Double.valueOf(arr[3]),
|
||||
Float.valueOf(arr[4]),
|
||||
Float.valueOf(arr[5])));
|
||||
}
|
||||
|
||||
Prisoner p = null;
|
||||
if(flat.contains(cellNode + "prisoner")) {
|
||||
p = new Prisoner(flat.getString(cellNode + "prisoner.name"), flat.getBoolean(cellNode + "prisoner.muted"), flat.getLong(cellNode + "prisoner.time"));
|
||||
c.setPrisoner(p);
|
||||
}
|
||||
|
||||
}
|
||||
}else {
|
||||
pl.getLogger().warning("Cell configuration section for " + name + " exists but no cells are there.");
|
||||
}
|
||||
}
|
||||
|
||||
pl.getJailManager().addJail(j, false);
|
||||
break;
|
||||
}
|
||||
|
@ -10,7 +10,7 @@ import org.bukkit.block.Chest;
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.1.1
|
||||
* @version 1.1.2
|
||||
*/
|
||||
public class Cell {
|
||||
private String name;
|
||||
@ -18,6 +18,10 @@ public class Cell {
|
||||
private HashSet<SimpleLocation> signs;
|
||||
private SimpleLocation teleport, chest;
|
||||
|
||||
/** Creates a new Cell with the given name
|
||||
*
|
||||
* @param name The name of the cell.
|
||||
*/
|
||||
public Cell(String name) {
|
||||
this.name = name;
|
||||
this.signs = new HashSet<SimpleLocation>();
|
||||
@ -57,6 +61,11 @@ public class Cell {
|
||||
this.signs.add(sign);
|
||||
}
|
||||
|
||||
/** Returns all the signs for this cell. */
|
||||
public HashSet<SimpleLocation> getSigns() {
|
||||
return this.signs;
|
||||
}
|
||||
|
||||
/** Sets the location of where the prisoner will be teleported at when jailed here. */
|
||||
public void setTeleport(SimpleLocation location) {
|
||||
this.teleport = location;
|
||||
|
@ -5,28 +5,61 @@ package com.graywolf336.jail.beans;
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 2.x.x
|
||||
* @version 2.0.0
|
||||
* @version 2.0.1
|
||||
*/
|
||||
public class Prisoner {
|
||||
private String name;
|
||||
private boolean muted;
|
||||
private long time;
|
||||
|
||||
/**
|
||||
* Creates a new prisoner with a name and whether they are muted or not.
|
||||
*
|
||||
* @param name
|
||||
* @param muted
|
||||
* @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
|
||||
*/
|
||||
public Prisoner(String name, boolean muted) {
|
||||
public Prisoner(String name, boolean muted, long time) {
|
||||
this.name = name;
|
||||
this.muted = muted;
|
||||
this.time = time;
|
||||
}
|
||||
|
||||
/** Gets the name of this player. */
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
/** 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.
|
||||
*
|
||||
* <p />
|
||||
*
|
||||
* <strong>WARNING:</strong> The time system hasn't been implemented so this is likely to change.
|
||||
*/
|
||||
public long getRemainingTime() {
|
||||
return this.time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the remaining time the prisoner has left.
|
||||
*
|
||||
* <p />
|
||||
*
|
||||
* <strong>WARNING:</strong> The time system hasn't been implemented so this is likely to change.
|
||||
*
|
||||
* @param time The amount of time left, in milliseconds.
|
||||
*/
|
||||
public void setRemainingTime(long time) {
|
||||
this.time = time;
|
||||
}
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ import org.bukkit.World;
|
||||
*
|
||||
* @author graywolf336
|
||||
* @since 3.0.0
|
||||
* @version 1.1.0
|
||||
* @version 1.1.1
|
||||
*/
|
||||
public class SimpleLocation {
|
||||
private String world;
|
||||
@ -45,4 +45,8 @@ public class SimpleLocation {
|
||||
public Location getLocation() {
|
||||
return new Location(Bukkit.getWorld(world), x, y, z, yaw, pitch);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return world + "," + x + "," + y + "," + z + "," + yaw + "," + pitch;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user