Added resets for island joining.

This commit is contained in:
tastybento 2018-06-25 16:40:28 -07:00
parent 11d257c64a
commit 56d63dc9c8
3 changed files with 49 additions and 7 deletions

View File

@ -77,14 +77,14 @@ public class IslandTeamInviteAcceptCommand extends CompositeCommand {
user.teleport(newHome); user.teleport(newHome);
// Remove player as owner of the old island // Remove player as owner of the old island
getIslands().removePlayer(getWorld(), playerUUID); getIslands().removePlayer(getWorld(), playerUUID);
// Remove money inventory etc. // Remove money inventory etc. for leaving
if (getIWM().isOnLeaveResetEnderChest(getWorld())) { if (getIWM().isOnLeaveResetEnderChest(getWorld()) || getIWM().isOnJoinResetEnderChest(getWorld())) {
user.getPlayer().getEnderChest().clear(); user.getPlayer().getEnderChest().clear();
} }
if (getIWM().isOnLeaveResetInventory(getWorld())) { if (getIWM().isOnLeaveResetInventory(getWorld()) || getIWM().isOnJoinResetInventory(getWorld())) {
user.getPlayer().getInventory().clear(); user.getPlayer().getInventory().clear();
} }
if (getSettings().isUseEconomy() && getIWM().isOnLeaveResetMoney(getWorld())) { if (getSettings().isUseEconomy() && (getIWM().isOnLeaveResetMoney(getWorld()) || getIWM().isOnJoinResetMoney(getWorld()))) {
// TODO: needs Vault // TODO: needs Vault
} }
// Add the player as a team member of the new island // Add the player as a team member of the new island

View File

@ -474,17 +474,44 @@ public class IslandsManager {
* @param player - the player * @param player - the player
*/ */
public void homeTeleport(World world, Player player) { public void homeTeleport(World world, Player player) {
homeTeleport(world, player, 1); homeTeleport(world, player, 1, false);
} }
/** /**
* Teleport player to a home location. If one cannot be found a search is done to * Teleport player to a home location. If one cannot be found a search is done to
* find a safe place. * find a safe place.
*
* @param world - world to check
* @param player - the player * @param player - the player
* @param number - a number - home location to do to * @param number - a number - home location to do to
*/ */
@SuppressWarnings("deprecation")
public void homeTeleport(World world, Player player, int number) { public void homeTeleport(World world, Player player, int number) {
homeTeleport(world, player, number, false);
}
/**
* This teleports player to their island. If not safe place can be found
* then the player is sent to spawn via /spawn command
*
* @param world - world to check
* @param player - the player
* @param newIsland - true if this is a new island teleport
*/
public void homeTeleport(World world, Player player, boolean newIsland) {
homeTeleport(world, player, 1, newIsland);
}
/**
* Teleport player to a home location. If one cannot be found a search is done to
* find a safe place.
*
* @param world - world to check
* @param player - the player
* @param number - a number - home location to do to
* @param newIsland - true if this is a new island teleport
*/
@SuppressWarnings("deprecation")
public void homeTeleport(World world, Player player, int number, boolean newIsland) {
User user = User.getInstance(player); User user = User.getInstance(player);
Location home = getSafeHomeLocation(world, user, number); Location home = getSafeHomeLocation(world, user, number);
// Stop any gliding // Stop any gliding
@ -518,6 +545,21 @@ public class IslandsManager {
if (player.getGameMode().equals(GameMode.SPECTATOR)) { if (player.getGameMode().equals(GameMode.SPECTATOR)) {
player.setGameMode(plugin.getIWM().getDefaultGameMode(world)); player.setGameMode(plugin.getIWM().getDefaultGameMode(world));
} }
// If this is a new island, then run commands and do resets
if (newIsland) {
// TODO add command running
// Remove money inventory etc.
if (plugin.getIWM().isOnJoinResetEnderChest(world)) {
user.getPlayer().getEnderChest().clear();
}
if (plugin.getIWM().isOnJoinResetInventory(world)) {
user.getPlayer().getInventory().clear();
}
if (plugin.getSettings().isUseEconomy() && plugin.getIWM().isOnJoinResetMoney(world)) {
// TODO: needs Vault
}
}
} }
/** /**

View File

@ -132,7 +132,7 @@ public class NewIsland {
ib.setType(IslandType.END).build(); ib.setType(IslandType.END).build();
} }
// Teleport player to their island // Teleport player to their island
plugin.getIslands().homeTeleport(world, user.getPlayer()); plugin.getIslands().homeTeleport(world, user.getPlayer(), true);
// Fire exit event // Fire exit event
Reason reasonDone = Reason.CREATED; Reason reasonDone = Reason.CREATED;
switch (reason) { switch (reason) {