Search in sources :

Example 1 with ResidentUnjailEvent

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));
}
Also used : Town(com.palmergames.bukkit.towny.object.Town) Jail(com.palmergames.bukkit.towny.object.jail.Jail) ResidentUnjailEvent(com.palmergames.bukkit.towny.event.resident.ResidentUnjailEvent)

Aggregations

ResidentUnjailEvent (com.palmergames.bukkit.towny.event.resident.ResidentUnjailEvent)1 Town (com.palmergames.bukkit.towny.object.Town)1 Jail (com.palmergames.bukkit.towny.object.jail.Jail)1