More command workings and using the custom languages.

This commit is contained in:
graywolf336 2014-01-21 18:09:47 -06:00
parent 3ab751baa8
commit 34ac65565c
9 changed files with 88 additions and 17 deletions

View File

@ -150,6 +150,11 @@ public class Jail {
return this.cells.get(name);
}
/** Removes the cell from the jail. */
public void removeCell(String name) {
this.cells.remove(name);
}
/** Returns the cell which the given player name is jailed in, null if not. */
public Cell getCellPrisonerIsIn(String name) {
for(Cell c : cells.values())

View File

@ -9,7 +9,7 @@ import com.graywolf336.jail.command.CommandInfo;
@CommandInfo(
maxArgs = 1,
minimumArgs = 0,
needsPlayer = true,
needsPlayer = false,
pattern = "jailcheck|jcheck",
permission = "jail.command.jailcheck",
usage = "/jailcheck (Player name)"

View File

@ -100,16 +100,17 @@ public class JailCommand implements Command {
//Check if the cell is defined, and if so check to be sure it exists.
if(!params.cell().isEmpty()) {
if(jm.getJail(params.jail()).getCell(params.cell()) == null) {
sender.sendMessage(ChatColor.RED + "The cell provided does not exist.");
//There is cell by that name
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOCELL, new String[] { params.cell(), params.jail() }));
return true;
}else if(jm.getJail(params.jail()).getCell(params.cell()).hasPrisoner()) {
//If the cell has a prisoner, don't allow jailing them to that particular cell
sender.sendMessage(ChatColor.RED + "The destination cell already has a prisoner in it.");
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.CELLNOTEMPTY, params.cell()));
Cell suggestedCell = jm.getJail(params.jail()).getFirstEmptyCell();
if(suggestedCell != null) {
sender.sendMessage(ChatColor.RED + "We found an empty cell in the same jail (" + params.jail() + ") with the name: " + suggestedCell.getName());
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.SUGGESTEDCELL, new String[] { params.jail(), suggestedCell.getName() }));
}else {
sender.sendMessage(ChatColor.RED + "We didn't find any empty cells, this jail's (" + params.jail() + ") cells appear to be full");
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOEMPTYCELLS, params.jail()));
}
return true;
@ -141,7 +142,7 @@ public class JailCommand implements Command {
//check if the event is cancelled
if(event.isCancelled()) {
if(event.getCancelledMessage().isEmpty())
sender.sendMessage(ChatColor.RED + "Jailing " + params.player() + " was cancelled by another plugin and they didn't leave you a message.");
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.CANCELLEDBYANOTHERPLUGIN, params.player()));
else
sender.sendMessage(event.getCancelledMessage());

View File

@ -8,6 +8,7 @@ import com.graywolf336.jail.beans.Cell;
import com.graywolf336.jail.beans.Jail;
import com.graywolf336.jail.command.Command;
import com.graywolf336.jail.command.CommandInfo;
import com.graywolf336.jail.enums.LangString;
@CommandInfo(
maxArgs = 1,
@ -36,15 +37,15 @@ public class JailListCellsCommand implements Command {
}
if(message.isEmpty()) {
sender.sendMessage(ChatColor.RED + "There are no cells for the jail '" + args[0] + "'.");
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOCELLS, j.getName()));
}else {
sender.sendMessage(ChatColor.GREEN + message);
}
}else {
sender.sendMessage(ChatColor.RED + "No jail by the name of '" + args[0] + "'.");
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOJAIL, args[0]));
}
}else {
sender.sendMessage(ChatColor.RED + " There are no jails.");
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOJAILS));
}
sender.sendMessage(ChatColor.AQUA + "-------------------------");

View File

@ -7,6 +7,7 @@ import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
import com.graywolf336.jail.command.Command;
import com.graywolf336.jail.command.CommandInfo;
import com.graywolf336.jail.enums.LangString;
@CommandInfo(
maxArgs = 0,
@ -27,7 +28,7 @@ public class JailListCommand implements Command {
sender.sendMessage(ChatColor.BLUE + " " + j.getName() + " (" + j.getAllPrisoners().size() + ")");
}
}else {
sender.sendMessage(ChatColor.RED + " There are no jails.");
sender.sendMessage(" " + jm.getPlugin().getJailIO().getLanguageString(LangString.NOJAILS));
}
sender.sendMessage(ChatColor.AQUA + "-------------------------");

View File

@ -3,23 +3,47 @@ package com.graywolf336.jail.command.commands;
import org.bukkit.command.CommandSender;
import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
import com.graywolf336.jail.command.Command;
import com.graywolf336.jail.command.CommandInfo;
import com.graywolf336.jail.enums.LangString;
@CommandInfo(
maxArgs = 2,
minimumArgs = 1,
needsPlayer = true,
minimumArgs = 2,
needsPlayer = false,
pattern = "jailremovecell|jrcell",
permission = "jail.command.jailremovecell",
usage = "/jailremovecell [Jail Name] (Cell Name)"
)
public class JailRemoveCellCommand implements Command{
// Remove the specified Cell from the Specified Jail, if no cell specified will delete nearest cell
// Remove the specified Cell from the Specified Jail
public boolean execute(JailManager jm, CommandSender sender, String... args) {
return true; //If they made it this far, the command is intact and ready to be processed. :)
Jail j = jm.getJail(args[0]);
if(j != null) {
if(!j.getCells().isEmpty()) {
if(j.getCell(args[1]) != null) {
//remove it!
j.removeCell(args[1]);
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.CELLREMOVED,
new String[] { args[1], args[0] }));
}else {
//No cell by that name
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOCELL,
new String[] { args[1], args[0] }));
}
}else {
//No cells in this jail
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOCELLS, args[0]));
}
}else {
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOJAIL, args[0]));
}
return true;
}
}

View File

@ -8,6 +8,7 @@ import com.graywolf336.jail.JailManager;
import com.graywolf336.jail.beans.Jail;
import com.graywolf336.jail.command.Command;
import com.graywolf336.jail.command.CommandInfo;
import com.graywolf336.jail.enums.LangString;
@CommandInfo(
maxArgs = 1,
@ -20,12 +21,19 @@ import com.graywolf336.jail.command.CommandInfo;
public class UnjailCommand implements Command {
public boolean execute(JailManager jm, CommandSender sender, String... args) {
//Check if the player is jailed
if(jm.isPlayerJailed(args[0])) {
Jail j = jm.getJailPlayerIsIn(args[0]);
Player p = jm.getPlugin().getServer().getPlayerExact(args[0]);
//Check if the player is on the server or not
if(p == null) {
sender.sendMessage(ChatColor.RED + "Offline unjailing is not implemented yet.");
//The player is not, so we'll set the remaining time to zero and do it when they login next
j.getPrisoner(args[0]).setRemainingTime(0L);
j.getPrisoner(args[0]).setOfflinePending(true);
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.WILLBEUNJAILED, args[0]));
}else {
Jail j = jm.getJailPlayerIsIn(args[0]);
//Player is online, so let's try unjailing them
try {
jm.getPlugin().getPrisonerManager().unJail(j, j.getCellPrisonerIsIn(args[0]), p, j.getPrisoner(args[0]));
} catch (Exception e) {
@ -33,7 +41,8 @@ public class UnjailCommand implements Command {
}
}
}else {
sender.sendMessage(ChatColor.RED + "That player is not jailed.");
//The player is not currently jailed
sender.sendMessage(jm.getPlugin().getJailIO().getLanguageString(LangString.NOTJAILED, args[0]));
}
return true;

View File

@ -20,8 +20,12 @@ public enum LangString {
BROADCASTMESSAGEFOREVER ("jailing"),
/** The message sent when we broadcast/log the message for any time above -1. */
BROADCASTMESSAGEFORMINUTES ("jailing"),
/** The message sent to the sender when trying to jail someone and a plugin cancels it but doesn't leave a message why. */
CANCELLEDBYANOTHERPLUGIN ("jailing"),
/** The message sent when trying to jail someone who can't be jailed by permission. */
CANTBEJAILED ("jailing"),
/** The message sent to the sender when they are trying to jail into a cell which is not empty. */
CELLNOTEMPTY ("jailing"),
/** The message sent when someone is jailed without a reason. */
DEFAULTJAILEDREASON ("jailing"),
/** The message sent when players are jailed without a reason. */
@ -30,12 +34,20 @@ public enum LangString {
JAILEDWITHREASON ("jailing"),
/** The message sent when players are jailed and they try to talk. */
MUTED ("jailing"),
/** The message sent when the sender tries to jail someone in a cell and there aren't any cells to suggest. */
NOEMPTYCELLS ("jailing"),
/** The message sent when a player is not jailed and the sender is trying to see/do something about it. */
NOTJAILED ("jailing"),
/** The message sent to the prisoner when they try to do something but it is protected. */
PROTECTIONMESSAGE ("jailing"),
/** The message sent to the prisoner when they try to do something and it is protected, but no penalty. */
PROTECTIONMESSAGENOPENALTY ("jailing"),
/** The message sent to the sender of a command when suggesting a cell. */
SUGGESTEDCELL ("jailing"),
/** The message sent when players are released from jail. */
UNJAILED ("jailing"),
/** The message went when an offline player is unjailed. */
WILLBEUNJAILED ("jailing"),
//Handcuffing section
@ -58,6 +70,14 @@ public enum LangString {
/** Part message of any messages which require 'all the jails' or such. */
ALLJAILS ("general"),
/** The message sent whenever a cell is successfully removed. */
CELLREMOVED ("general"),
/** The message sent whenever a jail is successfully removed. */
JAILREMOVED ("general"),
/** Message sent when doing something that requires a cell but the given name of a cell doesn't exist. */
NOCELL ("general"),
/** Message sent when needing a cell or something and there are no cells. */
NOCELLS ("general"),
/** The message sent whenever the sender does something which the jail does not found. */
NOJAIL ("general"),
/** The message sent whenever the sender does something and there are no jails. */

View File

@ -5,6 +5,10 @@ language:
command: 'trying to use a command'
general:
alljails: 'all the jails'
cellremoved: '&9Cell %0% has been successfully removed from the jail %1%.'
jailremoved: '&9Jail %0% has been successfully removed.'
nocell: '&cNo cell found by the name of &0& in the jail %1%.'
nocells: '&cNo cells found in the jail %0%.'
nojail: '&cNo jail found by the name of %0%.'
nojails: '&cThere are currently no jails.'
nopermission: '&cInsufficient permission.'
@ -18,14 +22,20 @@ language:
alreadyjailed: '&cThat player is already jailed.'
broadcastmessageforever: '&9%0% has been jailed forever.'
broadcastmessageforminutes: '&9%0% has been jailed for %1% minutes.'
cancelledbyanotherplugin: '&cJailing %0% was cancelled by another plugin and they did not leave you a message.'
cantbejailed: '&cThat player can not be jailed.'
cellnotempty: '&cThe destination cell, %0%, already has a prisoner in it.'
defaultjailedreason: 'Breaking the rules.'
jailed: '&cYou have been jailed!'
jailedwithreason: '&cYou have been jailed for: %0%'
muted: '&cStop talking, you are in jail.'
noemptycells: '&cNo empty cells were found for %0%, all them appear to be full.'
notjailed: '&c%0% is not jailed.'
protectionmessage: '&c%0% minutes has been added to your time for %1%.'
protectionmessagenopenalty: '&cProtection enabled for %0%, do not do it again.'
suggestedcell: '&cAn empty cell in the same jail, %0%, was found: %1%'
unjailed: '&2You have been released! Please respect the server rules.'
willbeunjailed: '&2%0% will be released the next time they log on.'
handcuffing:
cantbehandcuffed: '&9%0% &ccan not be handcuffed.'
currentlyjailed: '&9%0% &cis currently jailed, you can not handcuff a prisoner.'