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));
}
Aggregations