summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/game
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-07-21 13:02:20 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2022-07-21 13:02:20 -0400
commit72314cabf8634d5fcf1a8187bcb384683583d427 (patch)
tree496727f5d98fb90672a3bf0bf10af6789d6c9a4a /src/main/java/net/tylermurphy/hideAndSeek/game
parentMerge pull request #68 from tylermurphy534/1.5.0 (diff)
downloadkenshinshideandseek-72314cabf8634d5fcf1a8187bcb384683583d427.tar.gz
kenshinshideandseek-72314cabf8634d5fcf1a8187bcb384683583d427.tar.bz2
kenshinshideandseek-72314cabf8634d5fcf1a8187bcb384683583d427.zip
Save Inventorys on Leave
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/Game.java9
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java1
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/listener/JoinLeaveHandler.java11
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) {