use of com.palmergames.bukkit.towny.event.resident.ResidentUnjailEvent in project Towny by TownyAdvanced.
the class JailUtil method unJailResident.
/**
* Unjails a resident.
*
* @param resident Resident being unjailed.
* @param reason UnJailReason the resident is unjailed for.
*/
public static void unJailResident(Resident resident, UnJailReason reason) {
Jail jail = resident.getJail();
String jailName = jail.hasName() ? jail.getName() : ", cell unknown.";
Town town = null;
switch(reason) {
case ESCAPE:
town = resident.getTownOrNull();
// First show a message to the resident, either by broadcasting to the resident's town or just the resident (if they have no town.)
if (town != null)
TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_player_escaped_jail_into_wilderness", resident.getName(), jail.getWildName()));
else
TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_from_jail"));
// Second, show a message to the town which has just had a prisoner escape.
if (town != null && !town.getUUID().equals(jail.getTown().getUUID()))
TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_player_escaped_jail_into_wilderness", resident.getName(), jail.getWildName()));
break;
case BAIL:
teleportAwayFromJail(resident);
TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_paid_bail"));
TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_has_paid_bail", resident.getName()));
break;
case SENTENCE_SERVED:
teleportAwayFromJail(resident);
TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_served_your_sentence_and_are_free"));
TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_x_has_served_their_sentence_and_is_free", resident.getName()));
break;
case LEFT_TOWN:
town = resident.getTownOrNull();
TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_from_jail"));
TownyMessaging.sendPrefixedTownMessage(town, Translatable.of("msg_player_escaped_jail_by_leaving_town", resident.getName()));
break;
case PARDONED:
case JAIL_DELETED:
case ADMIN:
teleportAwayFromJail(resident);
TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_from_jail"));
TownyMessaging.sendPrefixedTownMessage(jail.getTown(), Translatable.of("msg_x_has_been_freed_from_x", resident.getName(), jailName));
break;
case JAILBREAK:
TownyMessaging.sendMsg(resident, Translatable.of("msg_you_have_been_freed_via_jailbreak"));
break;
default:
}
TownyUniverse.getInstance().getJailedResidentMap().remove(resident);
resident.setJailCell(0);
resident.setJailHours(0);
resident.setJail(null);
resident.save();
Bukkit.getPluginManager().callEvent(new ResidentUnjailEvent(resident));
}
Aggregations