Some work on the plugin, added a couple things and worked on the
preparing the jail.
This commit is contained in:
parent
a27596bcfb
commit
63032ad6cc
@ -1,5 +1,13 @@
|
||||
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 {
|
||||
private JailMain pl;
|
||||
|
||||
@ -7,7 +15,56 @@ public class PrisonerManager {
|
||||
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();
|
||||
}
|
||||
|
||||
/** Add a prisoner to this jail. */
|
||||
public void addPrisoner(Prisoner p) {
|
||||
this.nocellPrisoners.add(p);
|
||||
}
|
||||
|
||||
/** Adds a cell to the Jail. */
|
||||
public void addCell(Cell cell, boolean save) {
|
||||
if(save) plugin.getJailIO().saveJail(this);
|
||||
|
@ -1,5 +1,7 @@
|
||||
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.
|
||||
*
|
||||
@ -9,7 +11,7 @@ package com.graywolf336.jail.beans;
|
||||
*/
|
||||
public class Prisoner {
|
||||
private String name;
|
||||
private boolean muted;
|
||||
private boolean muted, offlinePending;
|
||||
private long time;
|
||||
|
||||
/**
|
||||
@ -40,26 +42,32 @@ public class Prisoner {
|
||||
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.
|
||||
*/
|
||||
/** 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
|
||||
/** 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
|
||||
//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
|
||||
//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()) {
|
||||
String dJail = jm.getPlugin().getConfig().getString(Settings.DEFAULTJAIL.getPath());
|
||||
|
||||
@ -71,11 +72,14 @@ public class JailCommand implements Command {
|
||||
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;
|
||||
try {
|
||||
if(params.time().isEmpty()) {
|
||||
time = Util.getTime(jm.getPlugin().getConfig().getString(Settings.JAILDEFAULTTIME.getPath(), "30m"));
|
||||
}else if(Integer.valueOf(params.time()) == -1) {
|
||||
time = -1L;
|
||||
}else {
|
||||
time = Util.getTime(params.time());
|
||||
}
|
||||
@ -84,6 +88,7 @@ public class JailCommand implements Command {
|
||||
return true;
|
||||
}
|
||||
|
||||
//Get the jail instance from the name of jail in the params.
|
||||
Jail j = jm.getJail(params.jail());
|
||||
Prisoner pris = new Prisoner(params.player(), params.muted(), time);
|
||||
Player p = jm.getPlugin().getServer().getPlayer(params.player());
|
||||
|
@ -1,6 +1,10 @@
|
||||
package com.graywolf336.jail.enums;
|
||||
|
||||
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. */
|
||||
JAILED,
|
||||
/** The message sent when players are jailed with a reason. */
|
||||
|
@ -1,10 +1,12 @@
|
||||
package com.graywolf336.jail.enums;
|
||||
|
||||
public enum Settings {
|
||||
BROADCASTJAILING("jailing.jail.broadcastJailing"),
|
||||
DEBUG("system.debug"),
|
||||
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;
|
||||
|
||||
|
@ -2,3 +2,5 @@ language:
|
||||
jailed: "&cYou have been jailed!"
|
||||
jailedwithreason: "&cYou have been jailed for: %0%"
|
||||
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."
|
Loading…
Reference in New Issue
Block a user