diff --git a/core/src/main/java/de/erethon/dungeonsxl/event/dplayer/instance/DInstancePlayerUpdateEvent.java b/core/src/main/java/de/erethon/dungeonsxl/event/dplayer/instance/DInstancePlayerUpdateEvent.java index 7b9e801c..d6f20631 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/event/dplayer/instance/DInstancePlayerUpdateEvent.java +++ b/core/src/main/java/de/erethon/dungeonsxl/event/dplayer/instance/DInstancePlayerUpdateEvent.java @@ -30,16 +30,14 @@ public class DInstancePlayerUpdateEvent extends DInstancePlayerEvent implements private boolean locationValid; private boolean teleportWolf; - private boolean respawnInventory; private boolean offline; private boolean kick; private boolean triggerAllInDistance; - public DInstancePlayerUpdateEvent(DInstancePlayer dPlayer, boolean locationValid, boolean teleportWolf, boolean respawnInventory, boolean offline, boolean kick, boolean triggerAllInDistance) { + public DInstancePlayerUpdateEvent(DInstancePlayer dPlayer, boolean locationValid, boolean teleportWolf, boolean offline, boolean kick, boolean triggerAllInDistance) { super(dPlayer); this.locationValid = locationValid; this.teleportWolf = teleportWolf; - this.respawnInventory = respawnInventory; this.offline = offline; this.kick = kick; this.triggerAllInDistance = triggerAllInDistance; @@ -73,20 +71,6 @@ public void setTeleportWolf(boolean teleportWolf) { this.teleportWolf = teleportWolf; } - /** - * @return if the player's inventory gets respawned - */ - public boolean isRespawnInventory() { - return respawnInventory; - } - - /** - * @param respawnInventory respawn the player's old inventory on this update? - */ - public void setRespawnInventory(boolean respawnInventory) { - this.respawnInventory = respawnInventory; - } - /** * @return if the player is offline */ diff --git a/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java b/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java index f3ae7ba5..00bcf6d5 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java +++ b/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java @@ -16,7 +16,6 @@ */ package de.erethon.dungeonsxl.global; -import de.erethon.caliburn.item.VanillaItem; import de.erethon.commons.misc.BlockUtil; import de.erethon.dungeonsxl.DungeonsXL; import de.erethon.dungeonsxl.dungeon.Dungeon; diff --git a/core/src/main/java/de/erethon/dungeonsxl/player/DEditPlayer.java b/core/src/main/java/de/erethon/dungeonsxl/player/DEditPlayer.java index b4ee707a..e00b352b 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/player/DEditPlayer.java +++ b/core/src/main/java/de/erethon/dungeonsxl/player/DEditPlayer.java @@ -176,7 +176,7 @@ public void update(boolean updateSecond) { } } - DInstancePlayerUpdateEvent event = new DInstancePlayerUpdateEvent(this, locationValid, false, false, false, false, false); + DInstancePlayerUpdateEvent event = new DInstancePlayerUpdateEvent(this, locationValid, false, false, false, false); Bukkit.getPluginManager().callEvent(event); if (event.isCancelled()) { diff --git a/core/src/main/java/de/erethon/dungeonsxl/player/DGamePlayer.java b/core/src/main/java/de/erethon/dungeonsxl/player/DGamePlayer.java index b1a0253b..0dd9a55e 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/player/DGamePlayer.java +++ b/core/src/main/java/de/erethon/dungeonsxl/player/DGamePlayer.java @@ -559,11 +559,7 @@ public void kill() { gameWorld.sendMessage(DMessage.GROUP_DEATH_KICK.getMessage(getName(), dGroup.getName())); } - GameRuleProvider rules = Game.getByPlayer(player).getRules(); leave(); - if (rules.getKeepInventoryOnEscape() && rules.getKeepInventoryOnDeath()) { - applyRespawnInventory(); - } } } @@ -744,13 +740,6 @@ public void respawn() { if (wolf != null) { wolf.teleport(getPlayer()); } - - // Respawn Items - Game game = Game.getByWorld(getWorld()); - - if (game != null && game.getRules().getKeepInventoryOnDeath()) { - applyRespawnInventory(); - } } /** @@ -848,12 +837,9 @@ public void onDeath(PlayerDeathEvent event) { } if (game.getRules().getKeepInventoryOnDeath()) { - setRespawnInventory(event.getEntity().getInventory().getContents()); - setRespawnArmor(event.getEntity().getInventory().getArmorContents()); - // Delete all drops - for (ItemStack item : event.getDrops()) { - item.setType(VanillaItem.AIR.getMaterial()); - } + event.setKeepInventory(true); + event.setKeepLevel(true); + event.setDroppedExp(0); } if (getDGroup() != null && dGroup.getLives() != -1) { @@ -904,7 +890,6 @@ public void update(boolean updateSecond) { boolean locationValid = true; Location teleportLocation = player.getLocation(); boolean teleportWolf = false; - boolean respawnInventory = false; boolean offline = false; boolean kick = false; boolean triggerAllInDistance = false; @@ -926,11 +911,6 @@ public void update(boolean updateSecond) { if (getWolf() != null) { teleportWolf = true; } - - // Respawn Items - if (getRespawnInventory() != null || getRespawnArmor() != null) { - respawnInventory = true; - } } } @@ -965,7 +945,7 @@ public void update(boolean updateSecond) { triggerAllInDistance = true; } - DInstancePlayerUpdateEvent event = new DInstancePlayerUpdateEvent(this, locationValid, teleportWolf, respawnInventory, offline, kick, triggerAllInDistance); + DInstancePlayerUpdateEvent event = new DInstancePlayerUpdateEvent(this, locationValid, teleportWolf, offline, kick, triggerAllInDistance); Bukkit.getPluginManager().callEvent(event); if (event.isCancelled()) { @@ -980,10 +960,6 @@ public void update(boolean updateSecond) { getWolf().teleport(teleportLocation); } - if (respawnInventory) { - applyRespawnInventory(); - } - if (kick) { DPlayerKickEvent dPlayerKickEvent = new DPlayerKickEvent(this, DPlayerKickEvent.Cause.OFFLINE); Bukkit.getPluginManager().callEvent(dPlayerKickEvent); diff --git a/core/src/main/java/de/erethon/dungeonsxl/player/DGlobalPlayer.java b/core/src/main/java/de/erethon/dungeonsxl/player/DGlobalPlayer.java index 17486976..9b4aed3f 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/player/DGlobalPlayer.java +++ b/core/src/main/java/de/erethon/dungeonsxl/player/DGlobalPlayer.java @@ -61,8 +61,6 @@ public class DGlobalPlayer implements PlayerWrapper { private ItemStack cachedItem; private boolean announcerEnabled = true; - private ItemStack[] respawnInventory; - private ItemStack[] respawnArmor; private List rewardItems; public DGlobalPlayer(DungeonsXL plugin, Player player) { @@ -90,8 +88,6 @@ public DGlobalPlayer(DGlobalPlayer dPlayer) { chatSpyMode = dPlayer.isInChatSpyMode(); creatingPortal = dPlayer.getPortal(); announcerEnabled = dPlayer.isAnnouncerEnabled(); - respawnInventory = dPlayer.getRespawnInventory(); - respawnArmor = dPlayer.getRespawnArmor(); plugin.getDPlayerCache().addPlayer(this); } @@ -232,48 +228,6 @@ public void setAnnouncerEnabled(boolean enabled) { announcerEnabled = enabled; } - /** - * @return the respawnInventory - */ - public ItemStack[] getRespawnInventory() { - return respawnInventory; - } - - /** - * @param respawnInventory the respawnInventory to set - */ - public void setRespawnInventory(ItemStack[] respawnInventory) { - this.respawnInventory = respawnInventory; - } - - /** - * Give the saved respawn inventory to the player - */ - public void applyRespawnInventory() { - if (respawnInventory == null || respawnArmor == null) { - return; - } - - player.getInventory().setContents(respawnInventory); - player.getInventory().setArmorContents(respawnArmor); - respawnInventory = null; - respawnArmor = null; - } - - /** - * @return the respawnArmor - */ - public ItemStack[] getRespawnArmor() { - return respawnArmor; - } - - /** - * @param respawnArmor the respawnArmor to set - */ - public void setRespawnArmor(ItemStack[] respawnArmor) { - this.respawnArmor = respawnArmor; - } - /** * @param permission the permission to check * @return if the player has the permission diff --git a/core/src/main/java/de/erethon/dungeonsxl/player/DPlayerListener.java b/core/src/main/java/de/erethon/dungeonsxl/player/DPlayerListener.java index fa7e005c..fe2ca6ae 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/player/DPlayerListener.java +++ b/core/src/main/java/de/erethon/dungeonsxl/player/DPlayerListener.java @@ -450,7 +450,6 @@ public void onPlayerRespawn(PlayerRespawnEvent event) { if (isCitizensNPC(player)) { return; } - plugin.getDPlayerCache().getByPlayer(player).applyRespawnInventory(); DGlobalPlayer dPlayer = DGamePlayer.getByPlayer(player); if (dPlayer == null) { @@ -488,7 +487,7 @@ public void onPlayerRespawn(PlayerRespawnEvent event) { } // Because some plugins set another respawn point, DXL teleports a few ticks later. - new RespawnTask(plugin, player, respawn).runTaskLater(plugin, 10L); + new RespawnTask(player, respawn).runTaskLater(plugin, 10L); // Don't forget Doge! if (gamePlayer.getWolf() != null) { diff --git a/core/src/main/java/de/erethon/dungeonsxl/player/RespawnTask.java b/core/src/main/java/de/erethon/dungeonsxl/player/RespawnTask.java index caa8fdcf..94a0823c 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/player/RespawnTask.java +++ b/core/src/main/java/de/erethon/dungeonsxl/player/RespawnTask.java @@ -17,7 +17,6 @@ package de.erethon.dungeonsxl.player; import de.erethon.commons.player.PlayerUtil; -import de.erethon.dungeonsxl.DungeonsXL; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; @@ -27,14 +26,10 @@ */ public class RespawnTask extends BukkitRunnable { - private DPlayerCache dPlayers; - private Player player; private Location location; - public RespawnTask(DungeonsXL plugin, Player player, Location location) { - dPlayers = plugin.getDPlayerCache(); - + public RespawnTask(Player player, Location location) { this.location = location; this.player = player; } @@ -47,14 +42,6 @@ public void run() { if (player.getWorld() != location.getWorld() || player.getLocation().distance(location) > 2) { PlayerUtil.secureTeleport(player, location); } - - DGlobalPlayer dPlayer = dPlayers.getByPlayer(player); - - if (dPlayer == null) { - return; - } - - dPlayer.applyRespawnInventory(); } } diff --git a/core/src/main/java/de/erethon/dungeonsxl/player/TimeIsRunningTask.java b/core/src/main/java/de/erethon/dungeonsxl/player/TimeIsRunningTask.java index 145f1246..d8930a8f 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/player/TimeIsRunningTask.java +++ b/core/src/main/java/de/erethon/dungeonsxl/player/TimeIsRunningTask.java @@ -19,7 +19,6 @@ import de.erethon.commons.chat.MessageUtil; import de.erethon.dungeonsxl.config.DMessage; import de.erethon.dungeonsxl.event.dplayer.DPlayerKickEvent; -import de.erethon.dungeonsxl.game.Game; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @@ -66,11 +65,7 @@ public void run() { if (!dPlayerKickEvent.isCancelled()) { MessageUtil.broadcastMessage(DMessage.PLAYER_TIME_KICK.getMessage(player.getName())); - boolean keepInventory = Game.getByDGroup(dGroup).getRules().getKeepInventoryOnEscape(); dPlayer.leave(); - if (keepInventory) { - dPlayer.applyRespawnInventory(); - } } cancel();