Search in sources :

Example 1 with DeletePlayerEvent

use of com.palmergames.bukkit.towny.event.DeletePlayerEvent in project Towny by TownyAdvanced.

the class TownyDatabaseHandler method removeResident.

/*
	 * Remove Object Methods
	 */
@Override
public void removeResident(Resident resident) {
    // Remove resident from towns' outlawlists.
    for (Town townOutlaw : universe.getTowns()) {
        if (townOutlaw.hasOutlaw(resident)) {
            townOutlaw.removeOutlaw(resident);
            saveTown(townOutlaw);
        }
    }
    // Remove resident from residents' friendslists.
    List<Resident> toSave = new ArrayList<>();
    for (Resident toCheck : universe.getResidents()) {
        TownyMessaging.sendDebugMsg("Checking friends of: " + toCheck.getName());
        if (toCheck.hasFriend(resident)) {
            TownyMessaging.sendDebugMsg("       - Removing Friend: " + resident.getName());
            toCheck.removeFriend(resident);
            toSave.add(toCheck);
        }
    }
    for (Resident toCheck : toSave) saveResident(toCheck);
    if (resident.hasTown()) {
        Town town = resident.getTownOrNull();
        if (town != null) {
            // Delete the town if there are no more residents
            if (town.getNumResidents() <= 1) {
                universe.getDataSource().removeTown(town);
            }
            resident.removeTown();
        }
    }
    if (resident.hasUUID() && !resident.isNPC())
        saveHibernatedResident(resident.getUUID(), resident.getRegistered());
    // Delete the residents file.
    deleteResident(resident);
    // Remove the residents record from memory.
    try {
        universe.unregisterResident(resident);
    } catch (NotRegisteredException e) {
        e.printStackTrace();
    }
    // Clear accounts
    if (TownySettings.isDeleteEcoAccount() && TownyEconomyHandler.isActive())
        resident.getAccount().removeAccount();
    plugin.deleteCache(resident);
    BukkitTools.getPluginManager().callEvent(new DeletePlayerEvent(resident));
}
Also used : NotRegisteredException(com.palmergames.bukkit.towny.exceptions.NotRegisteredException) Town(com.palmergames.bukkit.towny.object.Town) ArrayList(java.util.ArrayList) Resident(com.palmergames.bukkit.towny.object.Resident) DeletePlayerEvent(com.palmergames.bukkit.towny.event.DeletePlayerEvent)

Aggregations

DeletePlayerEvent (com.palmergames.bukkit.towny.event.DeletePlayerEvent)1 NotRegisteredException (com.palmergames.bukkit.towny.exceptions.NotRegisteredException)1 Resident (com.palmergames.bukkit.towny.object.Resident)1 Town (com.palmergames.bukkit.towny.object.Town)1 ArrayList (java.util.ArrayList)1