diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2022-07-21 13:02:20 -0400 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2022-07-21 13:02:20 -0400 |
commit | 72314cabf8634d5fcf1a8187bcb384683583d427 (patch) | |
tree | 496727f5d98fb90672a3bf0bf10af6789d6c9a4a /src/main/java/net/tylermurphy/hideAndSeek/game | |
parent | Merge pull request #68 from tylermurphy534/1.5.0 (diff) | |
download | kenshinshideandseek-72314cabf8634d5fcf1a8187bcb384683583d427.tar.gz kenshinshideandseek-72314cabf8634d5fcf1a8187bcb384683583d427.tar.bz2 kenshinshideandseek-72314cabf8634d5fcf1a8187bcb384683583d427.zip |
Save Inventorys on Leave
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game')
3 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java index 78c5e01..87fa4a2 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java @@ -33,6 +33,7 @@ import net.tylermurphy.hideAndSeek.world.WorldLoader; import org.bukkit.*; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; import java.io.File; import java.util.*; @@ -169,6 +170,10 @@ public class Game { public void join(Player player) { if (status != Status.STARTING && status != Status.PLAYING) { + if(saveInventory) { + ItemStack[] data = player.getInventory().getContents(); + Main.getInstance().getDatabase().getInventoryData().saveInventory(player.getUniqueId(), data); + } PlayerLoader.joinPlayer(player); board.addHider(player); board.createLobbyBoard(player); @@ -185,6 +190,10 @@ public class Game { public void leave(Player player) { PlayerLoader.unloadPlayer(player); + if(saveInventory) { + ItemStack[] data = Main.getInstance().getDatabase().getInventoryData().getInventory(player.getUniqueId()); + player.getInventory().setContents(data); + } if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(messagePrefix + message("GAME_LEAVE").addPlayer(player)); else broadcastMessage(messagePrefix + message("GAME_LEAVE").addPlayer(player)); if (board.isHider(player) && status != Status.ENDING && status != Status.STANDBY) { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java index af59c21..bd2a965 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java @@ -19,6 +19,7 @@ package net.tylermurphy.hideAndSeek.game; +import com.cryptomorin.xseries.XItemStack; import com.cryptomorin.xseries.messages.Titles; import net.md_5.bungee.api.ChatColor; import net.tylermurphy.hideAndSeek.Main; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/JoinLeaveHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/JoinLeaveHandler.java index 7ac4f85..5233d2e 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/JoinLeaveHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/JoinLeaveHandler.java @@ -2,6 +2,7 @@ package net.tylermurphy.hideAndSeek.game.listener; import net.tylermurphy.hideAndSeek.Main; import net.tylermurphy.hideAndSeek.configuration.Items; +import net.tylermurphy.hideAndSeek.game.PlayerLoader; import net.tylermurphy.hideAndSeek.game.util.Status; import org.bukkit.Bukkit; import org.bukkit.GameMode; @@ -59,16 +60,18 @@ public class JoinLeaveHandler implements Listener { } private void handleLeave(Player player) { + if(!Main.getInstance().getBoard().contains(player)) return; + PlayerLoader.unloadPlayer(player); Main.getInstance().getBoard().remove(player); + if(saveInventory) { + ItemStack[] data = Main.getInstance().getDatabase().getInventoryData().getInventory(player.getUniqueId()); + player.getInventory().setContents(data); + } if (Main.getInstance().getGame().getStatus() == Status.STANDBY) { Main.getInstance().getBoard().reloadLobbyBoards(); } else { Main.getInstance().getBoard().reloadGameBoards(); } - for(PotionEffect effect : player.getActivePotionEffects()) { - player.removePotionEffect(effect.getType()); - } - removeItems(player); } private void removeItems(Player player) { |