Some work on the plugin, added a couple things and worked on the
preparing the jail.
This commit is contained in:
		| @@ -1,5 +1,13 @@ | |||||||
| package com.graywolf336.jail; | package com.graywolf336.jail; | ||||||
|  |  | ||||||
|  | import org.bukkit.entity.Player; | ||||||
|  |  | ||||||
|  | import com.graywolf336.jail.beans.Cell; | ||||||
|  | import com.graywolf336.jail.beans.Jail; | ||||||
|  | import com.graywolf336.jail.beans.Prisoner; | ||||||
|  | import com.graywolf336.jail.enums.LangString; | ||||||
|  | import com.graywolf336.jail.enums.Settings; | ||||||
|  |  | ||||||
| public class PrisonerManager { | public class PrisonerManager { | ||||||
| 	private JailMain pl; | 	private JailMain pl; | ||||||
| 	 | 	 | ||||||
| @@ -7,7 +15,56 @@ public class PrisonerManager { | |||||||
| 		this.pl = plugin; | 		this.pl = plugin; | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	public void prepareSomething() { | 	/** | ||||||
| 		pl.getLogger().info("Preparing something."); | 	 * Prepare the jailing of this player. | ||||||
|  | 	 *  | ||||||
|  | 	 * @param player The player we are preparing the jail for. | ||||||
|  | 	 * @param prisoner The prisoner file. | ||||||
|  | 	 */ | ||||||
|  | 	public void prepareJail(Jail jail, Cell cell, Player player, Prisoner prisoner) throws Exception { | ||||||
|  | 		//Do some checks of whether the passed params are null. | ||||||
|  | 		if(jail == null) | ||||||
|  | 			throw new Exception("The jail can not be null."); | ||||||
|  | 		 | ||||||
|  | 		if(prisoner == null) | ||||||
|  | 			throw new Exception("Prisoner data can not be null."); | ||||||
|  | 		 | ||||||
|  | 		//Set whether the prisoner is offline or not. | ||||||
|  | 		prisoner.setOfflinePending(player == null); | ||||||
|  | 		 | ||||||
|  | 		//Now that we've got those checks out of the way, let's start preparing. | ||||||
|  | 		if(cell == null) { | ||||||
|  | 			jail.addPrisoner(prisoner); | ||||||
|  | 		}else { | ||||||
|  | 			jail.getCell(cell.getName()).setPrisoner(prisoner); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		//Save the jail after adding them to the jail | ||||||
|  | 		pl.getJailIO().saveJail(jail); | ||||||
|  | 		 | ||||||
|  | 		//If they are offline, handle different..? | ||||||
|  | 		if(prisoner.isOfflinePending()) { | ||||||
|  | 			 | ||||||
|  | 		}else { | ||||||
|  | 			 | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		//Get a message ready for broadcasting or logging. | ||||||
|  | 		String msg = ""; | ||||||
|  | 		 | ||||||
|  | 		if(prisoner.getRemainingTime() < 0) | ||||||
|  | 			msg = pl.getJailIO().getLanguageString(LangString.BROADCASTMESSAGEFOREVER, new String[] { prisoner.getName() }); | ||||||
|  | 		else// | ||||||
|  | 			msg = pl.getJailIO().getLanguageString(LangString.BROADCASTMESSAGEFOREVER, new String[] { prisoner.getName(), String.valueOf(prisoner.getRemainingTimeInMinutes()) }); | ||||||
|  | 		 | ||||||
|  | 		//Broadcast the message, if it is enabled | ||||||
|  | 		if(pl.getConfig().getBoolean(Settings.BROADCASTJAILING.getPath(), false)) { | ||||||
|  | 			pl.getServer().broadcastMessage(msg); | ||||||
|  | 		} | ||||||
|  | 		 | ||||||
|  | 		//Log the message, if it is enabled | ||||||
|  | 		if(pl.getConfig().getBoolean(Settings.LOGJAILING.getPath(), true)) { | ||||||
|  | 			pl.getLogger().info(msg); | ||||||
|  | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -129,6 +129,11 @@ public class Jail { | |||||||
| 		return this.free.getLocation(); | 		return this.free.getLocation(); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|  | 	/** Add a prisoner to this jail. */ | ||||||
|  | 	public void addPrisoner(Prisoner p) { | ||||||
|  | 		this.nocellPrisoners.add(p); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
| 	/** Adds a cell to the Jail. */ | 	/** Adds a cell to the Jail. */ | ||||||
| 	public void addCell(Cell cell, boolean save) { | 	public void addCell(Cell cell, boolean save) { | ||||||
| 		if(save) plugin.getJailIO().saveJail(this); | 		if(save) plugin.getJailIO().saveJail(this); | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| package com.graywolf336.jail.beans; | package com.graywolf336.jail.beans; | ||||||
|  |  | ||||||
|  | import java.util.concurrent.TimeUnit; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Represents a Prisoner, player who is jailed, and contains all the information about him/her. |  * Represents a Prisoner, player who is jailed, and contains all the information about him/her. | ||||||
|  *  |  *  | ||||||
| @@ -9,7 +11,7 @@ package com.graywolf336.jail.beans; | |||||||
|  */ |  */ | ||||||
| public class Prisoner { | public class Prisoner { | ||||||
| 	private String name; | 	private String name; | ||||||
| 	private boolean muted; | 	private boolean muted, offlinePending; | ||||||
| 	private long time; | 	private long time; | ||||||
| 	 | 	 | ||||||
| 	/** | 	/** | ||||||
| @@ -40,26 +42,32 @@ public class Prisoner { | |||||||
| 		this.muted = muted; | 		this.muted = muted; | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	/** Gets the remaining time the prisoner has. | 	/** 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() { | 	public long getRemainingTime() { | ||||||
| 		return this.time; | 		return this.time; | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|  | 	/** Gets the remaining time the prisoner has in minutes. */ | ||||||
|  | 	public long getRemainingTimeInMinutes() { | ||||||
|  | 		return TimeUnit.MINUTES.convert(time, TimeUnit.MILLISECONDS); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
| 	/** | 	/** | ||||||
| 	 * Sets the remaining time the prisoner has left. | 	 * 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. | 	 * @param time The amount of time left, in milliseconds. | ||||||
| 	 */ | 	 */ | ||||||
| 	public void setRemainingTime(long time) { | 	public void setRemainingTime(long time) { | ||||||
| 		this.time = time; | 		this.time = 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; | ||||||
|  | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -57,7 +57,8 @@ public class JailCommand implements Command { | |||||||
| 		//Check the jail params. If it is empty, let's get the default jail | 		//Check the jail params. If it is empty, let's get the default jail | ||||||
| 		//from the config. If that is nearest, let's make a call to getting the nearest jail to | 		//from the config. If that is nearest, let's make a call to getting the nearest jail to | ||||||
| 		//the sender but otherwise if it isn't nearest then let's set it to the default jail | 		//the sender but otherwise if it isn't nearest then let's set it to the default jail | ||||||
| 		//which is defined in the config. | 		//which is defined in the config. After that is done, we set the name of it in the params | ||||||
|  | 		//so that we can keep consistency. | ||||||
| 		if(params.jail().isEmpty()) { | 		if(params.jail().isEmpty()) { | ||||||
| 			String dJail = jm.getPlugin().getConfig().getString(Settings.DEFAULTJAIL.getPath()); | 			String dJail = jm.getPlugin().getConfig().getString(Settings.DEFAULTJAIL.getPath()); | ||||||
| 			 | 			 | ||||||
| @@ -71,11 +72,14 @@ public class JailCommand implements Command { | |||||||
| 			return true; | 			return true; | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
| 		//Trying out the time. | 		//Try to parse the time, if they give us nothing in the time parameter then we get the default time | ||||||
|  | 		//from the config and if that isn't there then we default to thirty minutes. | ||||||
| 		Long time = 10L; | 		Long time = 10L; | ||||||
| 		try { | 		try { | ||||||
| 			if(params.time().isEmpty()) { | 			if(params.time().isEmpty()) { | ||||||
| 				time = Util.getTime(jm.getPlugin().getConfig().getString(Settings.JAILDEFAULTTIME.getPath(), "30m")); | 				time = Util.getTime(jm.getPlugin().getConfig().getString(Settings.JAILDEFAULTTIME.getPath(), "30m")); | ||||||
|  | 			}else if(Integer.valueOf(params.time()) == -1) { | ||||||
|  | 				time = -1L; | ||||||
| 			}else { | 			}else { | ||||||
| 				time = Util.getTime(params.time()); | 				time = Util.getTime(params.time()); | ||||||
| 			} | 			} | ||||||
| @@ -84,6 +88,7 @@ public class JailCommand implements Command { | |||||||
| 			return true; | 			return true; | ||||||
| 		} | 		} | ||||||
| 		 | 		 | ||||||
|  | 		//Get the jail instance from the name of jail in the params. | ||||||
| 		Jail j = jm.getJail(params.jail()); | 		Jail j = jm.getJail(params.jail()); | ||||||
| 		Prisoner pris = new Prisoner(params.player(), params.muted(), time); | 		Prisoner pris = new Prisoner(params.player(), params.muted(), time); | ||||||
| 		Player p = jm.getPlugin().getServer().getPlayer(params.player()); | 		Player p = jm.getPlugin().getServer().getPlayer(params.player()); | ||||||
|   | |||||||
| @@ -1,6 +1,10 @@ | |||||||
| package com.graywolf336.jail.enums; | package com.graywolf336.jail.enums; | ||||||
|  |  | ||||||
| public enum LangString { | public enum LangString { | ||||||
|  | 	/** The message sent when we broadcast/log the message for time below -1. */ | ||||||
|  | 	BROADCASTMESSAGEFOREVER, | ||||||
|  | 	/** The message sent when we broadcast/log the message for any time above -1. */ | ||||||
|  | 	BROADCASTMESSAGEFORMINUTES, | ||||||
| 	/** The message sent when players are jailed without a reason. */ | 	/** The message sent when players are jailed without a reason. */ | ||||||
| 	JAILED, | 	JAILED, | ||||||
| 	/** The message sent when players are jailed with a reason. */ | 	/** The message sent when players are jailed with a reason. */ | ||||||
|   | |||||||
| @@ -1,10 +1,12 @@ | |||||||
| package com.graywolf336.jail.enums; | package com.graywolf336.jail.enums; | ||||||
|  |  | ||||||
| public enum Settings { | public enum Settings { | ||||||
|  | 	BROADCASTJAILING("jailing.jail.broadcastJailing"), | ||||||
| 	DEBUG("system.debug"), | 	DEBUG("system.debug"), | ||||||
| 	DEFAULTJAIL("jailing.jail.defaultJail"), | 	DEFAULTJAIL("jailing.jail.defaultJail"), | ||||||
| 	UPDATENOTIFICATIONS("system.updateNotifications"), | 	JAILDEFAULTTIME("jailing.jail.defaultTime"), | ||||||
| 	JAILDEFAULTTIME("jailing.jail.defaultTime"); | 	LOGJAILING("jailing.jail.logToConsole"), | ||||||
|  | 	UPDATENOTIFICATIONS("system.updateNotifications"); | ||||||
| 	 | 	 | ||||||
| 	private String path; | 	private String path; | ||||||
| 	 | 	 | ||||||
|   | |||||||
| @@ -2,3 +2,5 @@ language: | |||||||
|   jailed: "&cYou have been jailed!" |   jailed: "&cYou have been jailed!" | ||||||
|   jailedwithreason: "&cYou have been jailed for: %0%" |   jailedwithreason: "&cYou have been jailed for: %0%" | ||||||
|   unjailed: "&2You have been released! Please respect the server rules." |   unjailed: "&2You have been released! Please respect the server rules." | ||||||
|  |   broadcastmessageforever: "&9%0% has been jailed forever." | ||||||
|  |   broadcastmessageforminutes: "&9%0% has been jailed for %1% minutes." | ||||||
		Reference in New Issue
	
	Block a user
	 graywolf336
					graywolf336