Use isPlayer instead of null check.
Refactor code to be easier to understand.
This commit is contained in:
parent
53f02ae686
commit
110a282deb
|
@ -46,21 +46,17 @@ public class AdminDeleteCommand extends ConfirmableCommand {
|
|||
user.sendMessage("general.errors.player-has-no-island");
|
||||
return false;
|
||||
}
|
||||
/*
|
||||
// Team members should be kicked before deleting otherwise the whole team will become weird
|
||||
if (getIslands().inTeam(getWorld(), targetUUID) && owner.equals(targetUUID)) {
|
||||
user.sendMessage("commands.admin.delete.cannot-delete-owner");
|
||||
return false;
|
||||
}
|
||||
}*/
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean execute(User user, String label, List<String> args) {
|
||||
// If args are not right, show help
|
||||
if (args.size() != 1) {
|
||||
showHelp(this, user);
|
||||
return false;
|
||||
}
|
||||
// Get target
|
||||
UUID targetUUID = getPlayers().getUUID(args.get(0));
|
||||
// Confirm
|
||||
|
@ -86,33 +82,8 @@ public class AdminDeleteCommand extends ConfirmableCommand {
|
|||
User target = User.getInstance(targetUUID);
|
||||
// Remove them from this island (it still exists and will be deleted later)
|
||||
getIslands().removePlayer(getWorld(), targetUUID);
|
||||
if (target.getPlayer() != null && target.isOnline()) {
|
||||
// Execute commands when leaving
|
||||
Util.runCommands(user, getIWM().getOnLeaveCommands(getWorld()), "leave");
|
||||
// Remove money inventory etc.
|
||||
if (getIWM().isOnLeaveResetEnderChest(getWorld())) {
|
||||
target.getPlayer().getEnderChest().clear();
|
||||
}
|
||||
if (getIWM().isOnLeaveResetInventory(getWorld())) {
|
||||
target.getPlayer().getInventory().clear();
|
||||
}
|
||||
if (getSettings().isUseEconomy() && getIWM().isOnLeaveResetMoney(getWorld())) {
|
||||
getPlugin().getVault().ifPresent(vault -> vault.withdraw(target, vault.getBalance(target)));
|
||||
}
|
||||
// Reset the health
|
||||
if (getIWM().isOnLeaveResetHealth(getWorld())) {
|
||||
Util.resetHealth(target.getPlayer());
|
||||
}
|
||||
|
||||
// Reset the hunger
|
||||
if (getIWM().isOnLeaveResetHunger(getWorld())) {
|
||||
target.getPlayer().setFoodLevel(20);
|
||||
}
|
||||
|
||||
// Reset the XP
|
||||
if (getIWM().isOnLeaveResetXP(getWorld())) {
|
||||
target.getPlayer().setTotalExperience(0);
|
||||
}
|
||||
if (target.isPlayer() && target.isOnline()) {
|
||||
cleanUp(user, target);
|
||||
}
|
||||
vector = oldIsland.getCenter().toVector();
|
||||
getIslands().deleteIsland(oldIsland, true, targetUUID);
|
||||
|
@ -125,6 +96,36 @@ public class AdminDeleteCommand extends ConfirmableCommand {
|
|||
}
|
||||
}
|
||||
|
||||
private void cleanUp(User user, User target) {
|
||||
// Execute commands when leaving
|
||||
Util.runCommands(user, getIWM().getOnLeaveCommands(getWorld()), "leave");
|
||||
// Remove money inventory etc.
|
||||
if (getIWM().isOnLeaveResetEnderChest(getWorld())) {
|
||||
target.getPlayer().getEnderChest().clear();
|
||||
}
|
||||
if (getIWM().isOnLeaveResetInventory(getWorld())) {
|
||||
target.getPlayer().getInventory().clear();
|
||||
}
|
||||
if (getSettings().isUseEconomy() && getIWM().isOnLeaveResetMoney(getWorld())) {
|
||||
getPlugin().getVault().ifPresent(vault -> vault.withdraw(target, vault.getBalance(target)));
|
||||
}
|
||||
// Reset the health
|
||||
if (getIWM().isOnLeaveResetHealth(getWorld())) {
|
||||
Util.resetHealth(target.getPlayer());
|
||||
}
|
||||
|
||||
// Reset the hunger
|
||||
if (getIWM().isOnLeaveResetHunger(getWorld())) {
|
||||
target.getPlayer().setFoodLevel(20);
|
||||
}
|
||||
|
||||
// Reset the XP
|
||||
if (getIWM().isOnLeaveResetXP(getWorld())) {
|
||||
target.getPlayer().setTotalExperience(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<List<String>> tabComplete(User user, String alias, List<String> args) {
|
||||
String lastArg = !args.isEmpty() ? args.get(args.size()-1) : "";
|
||||
|
|
Loading…
Reference in New Issue