From 416e459af261994ad702462812c29d55da8cb2d5 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Mon, 16 May 2022 13:56:52 -0400 Subject: refactor: Jump Event, InventoryHandler, Relocate One function Utility Classes, Config Manager Getters Use Contains() --- .../tylermurphy/hideAndSeek/game/PlayerLoader.java | 140 +++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java new file mode 100644 index 0000000..0ce7ac7 --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java @@ -0,0 +1,140 @@ +/* + * This file is part of Kenshins Hide and Seek + * + * Copyright (c) 2022 Tyler Murphy. + * + * Kenshins Hide and Seek free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * he Free Software Foundation version 3. + * + * Kenshins Hide and Seek is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + */ + +package net.tylermurphy.hideAndSeek.game; + +import com.cryptomorin.xseries.messages.Titles; +import net.md_5.bungee.api.ChatColor; +import net.tylermurphy.hideAndSeek.Main; +import net.tylermurphy.hideAndSeek.configuration.Items; +import org.bukkit.Bukkit; +import org.bukkit.GameMode; +import org.bukkit.Location; +import org.bukkit.attribute.Attribute; +import org.bukkit.attribute.AttributeInstance; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; + +import static net.tylermurphy.hideAndSeek.configuration.Config.*; +import static net.tylermurphy.hideAndSeek.configuration.Config.lobbyPosition; +import static net.tylermurphy.hideAndSeek.configuration.Localization.message; + +public class PlayerLoader { + + public static void loadHider(Player player, String gameWorld){ + player.teleport(new Location(Bukkit.getWorld(gameWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ())); + loadPlayer(player); + player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,1000000,5,false,false)); + Titles.sendTitle(player, 10, 70, 20, ChatColor.WHITE + "" + message("HIDER_TEAM_NAME"), ChatColor.WHITE + message("HIDERS_SUBTITLE").toString()); + } + + public static void loadSeeker(Player player, String gameWorld){ + player.teleport(new Location(Bukkit.getWorld(gameWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ())); + loadPlayer(player); + player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS,1000000,127,false,false)); + player.addPotionEffect(new PotionEffect(PotionEffectType.SLOW,1000000,127,false,false)); + player.addPotionEffect(new PotionEffect(PotionEffectType.JUMP,1000000,128,false,false)); + Titles.sendTitle(player, 10, 70, 20, ChatColor.WHITE + "" + message("SEEKER_TEAM_NAME"), ChatColor.WHITE + message("SEEKERS_SUBTITLE").toString()); + } + + public static void loadSpectator(Player player, String gameWorld){ + player.teleport(new Location(Bukkit.getWorld(gameWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ())); + loadPlayer(player); + player.setAllowFlight(true); + player.setFlying(true); + player.setFallDistance(0.0F); + player.getInventory().setItem(flightToggleItemPosition, flightToggleItem); + player.getInventory().setItem(teleportItemPosition, teleportItem); + Main.getInstance().getBoard().getPlayers().forEach(otherPlayer -> { + otherPlayer.hidePlayer(player); + }); + Titles.sendTitle(player, 10, 70, 20, ChatColor.GRAY + "" + ChatColor.BOLD + "SPECTATING", ChatColor.WHITE + message("SPECTATOR_SUBTITLE").toString()); + } + + public static void resetPlayer(Player player, Board board){ + loadPlayer(player); + if (board.isSeeker(player)) { + if (pvpEnabled) + for(ItemStack item : Items.SEEKER_ITEMS) + player.getInventory().addItem(item); + for(PotionEffect effect : Items.SEEKER_EFFECTS) + player.addPotionEffect(effect); + } else if (board.isHider(player)) { + if (pvpEnabled) + for(ItemStack item : Items.HIDER_ITEMS) + player.getInventory().addItem(item); + for(PotionEffect effect : Items.HIDER_EFFECTS) + player.addPotionEffect(effect); + if (glowEnabled) { + player.getInventory().addItem(glowPowerupItem); + } + } + } + + public static void unloadPlayer(Player player){ + player.setGameMode(GameMode.ADVENTURE); + player.getInventory().clear(); + for(PotionEffect effect : player.getActivePotionEffects()) { + player.removePotionEffect(effect.getType()); + } + if (Main.getInstance().supports(9)) { + AttributeInstance attribute = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); + if (attribute != null) player.setHealth(attribute.getValue()); + for(Player temp : Main.getInstance().getBoard().getPlayers()) { + Main.getInstance().getGame().getGlow().setGlow(player, temp, false); + } + } else { + player.setHealth(player.getMaxHealth()); + } + Main.getInstance().getBoard().getPlayers().forEach(temp -> { + player.showPlayer(temp); + temp.showPlayer(player); + }); + player.setAllowFlight(false); + player.setFlying(false); + player.setFallDistance(0.0F); + } + + public static void joinPlayer(Player player){ + player.teleport(new Location(Bukkit.getWorld(lobbyWorld), lobbyPosition.getX(),lobbyPosition.getY(),lobbyPosition.getZ())); + loadPlayer(player); + if (lobbyStartItem != null && (!lobbyItemStartAdmin || player.hasPermission("hideandseek.start"))) + player.getInventory().setItem(lobbyItemStartPosition, lobbyStartItem); + if (lobbyLeaveItem != null) + player.getInventory().setItem(lobbyItemLeavePosition, lobbyLeaveItem); + } + + private static void loadPlayer(Player player){ + player.setGameMode(GameMode.ADVENTURE); + player.getInventory().clear(); + for(PotionEffect effect : player.getActivePotionEffects()) { + player.removePotionEffect(effect.getType()); + } + player.setFoodLevel(20); + if (Main.getInstance().supports(9)) { + AttributeInstance attribute = player.getAttribute(Attribute.GENERIC_MAX_HEALTH); + if (attribute != null) player.setHealth(attribute.getValue()); + } else { + player.setHealth(player.getMaxHealth()); + } + } + +} -- cgit v1.2.3-freya From 0bcb3dee0e820a36b30be4c4c0b47e5fdda57160 Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Tue, 17 May 2022 19:48:24 -0400 Subject: 1.4.3 Release Canidate 1 --- src/main/java/net/tylermurphy/hideAndSeek/Main.java | 15 +++++++++++---- .../java/net/tylermurphy/hideAndSeek/command/Debug.java | 6 ++++-- .../net/tylermurphy/hideAndSeek/game/PlayerLoader.java | 2 ++ 3 files changed, 17 insertions(+), 6 deletions(-) (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/Main.java b/src/main/java/net/tylermurphy/hideAndSeek/Main.java index f60659d..7bd86cb 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/Main.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/Main.java @@ -57,13 +57,24 @@ public class Main extends JavaPlugin implements Listener { public Main() { super(); instance = this; + + Config.loadConfig(); + Localization.loadLocalization(); + Items.loadItems(); + board = new Board(); database = new Database(); } protected Main(JavaPluginLoader loader, PluginDescriptionFile description, File dataFolder, File file) { super(loader, description, dataFolder, file); + instance = this; + + Config.loadConfig(); + Localization.loadLocalization(); + Items.loadItems(); + board = new Board(); database = new Database(); } @@ -72,10 +83,6 @@ public class Main extends JavaPlugin implements Listener { this.registerListeners(); - Config.loadConfig(); - Localization.loadLocalization(); - Items.loadItems(); - CommandHandler.registerCommands(); game = new Game(board); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java index c1cec56..1275ceb 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Debug.java @@ -38,7 +38,8 @@ public class Debug implements ICommand { } Main.getInstance().getBoard().addHider(player); PlayerLoader.loadHider(player, Main.getInstance().getGame().getGameWorld()); - PlayerLoader.resetPlayer(player, Main.getInstance().getBoard()); + if(Main.getInstance().getGame().getStatus() != Status.STARTING) + PlayerLoader.resetPlayer(player, Main.getInstance().getBoard()); })); debugMenu.setItem(1, createOption(1, XMaterial.GOLDEN_CHESTPLATE.parseMaterial(), "&cBecome a &lSeeker", 1, player -> { if(mapSaveEnabled) { @@ -46,7 +47,8 @@ public class Debug implements ICommand { } Main.getInstance().getBoard().addSeeker(player); PlayerLoader.loadSeeker(player, Main.getInstance().getGame().getGameWorld()); - PlayerLoader.resetPlayer(player, Main.getInstance().getBoard()); + if(Main.getInstance().getGame().getStatus() != Status.STARTING) + PlayerLoader.resetPlayer(player, Main.getInstance().getBoard()); })); debugMenu.setItem(2, createOption(2, XMaterial.IRON_CHESTPLATE.parseMaterial(), "&8Become a &lSpectator", 1, player -> { if(mapSaveEnabled) { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java index 0ce7ac7..19a48f4 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java @@ -123,6 +123,8 @@ public class PlayerLoader { } private static void loadPlayer(Player player){ + player.setFlying(false); + player.setAllowFlight(false); player.setGameMode(GameMode.ADVENTURE); player.getInventory().clear(); for(PotionEffect effect : player.getActivePotionEffects()) { -- cgit v1.2.3-freya From 2169712940956f3cd9ada7e84608a4a3592b293a Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Tue, 24 May 2022 09:03:44 -0400 Subject: 1.5.0 Release Candidate 4 --- src/main/java/net/tylermurphy/hideAndSeek/game/Board.java | 3 +-- src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java | 1 + src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java index bb1984e..c6aaaf5 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Board.java @@ -239,7 +239,6 @@ public class Board { board.updateTeams(); } - int timeLeft = Main.getInstance().getGame().getTimeLeft(); Status status = Main.getInstance().getGame().getStatus(); @@ -279,7 +278,7 @@ public class Board { board.setLine(String.valueOf(i), line.replace("{TAUNT}", TAUNT_ACTIVE)); } } else if (line.contains("{GLOW}")) { - if (!glowEnabled) return; + if (!glowEnabled) continue; if (glow == null || status == Status.STARTING || !glow.isRunning()) { board.setLine(String.valueOf(i), line.replace("{GLOW}", GLOW_INACTIVE)); } else { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java index 19a48f4..211a425 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java @@ -70,6 +70,7 @@ public class PlayerLoader { } public static void resetPlayer(Player player, Board board){ + if(board.isSeeker(player)) return; loadPlayer(player); if (board.isSeeker(player)) { if (pvpEnabled) diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java b/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java index f1a1ce1..678b46f 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/util/PAPIExpansion.java @@ -40,9 +40,9 @@ public class PAPIExpansion extends PlaceholderExpansion { String[] args = params.split("_"); if (args.length < 1) return null; if (args[0].equals("stats") && (args.length == 2 || args.length == 3)) { - PlayerInfo info = null; + PlayerInfo info; if(args.length == 2) { - database.getGameData().getInfo(player.getUniqueId()); + info = database.getGameData().getInfo(player.getUniqueId()); } else { UUID uuid; try { uuid = Main.getInstance().getDatabase().getNameData().getUUID(args[2]); } catch (Exception e) { return placeholderError; } @@ -64,9 +64,9 @@ public class PAPIExpansion extends PlaceholderExpansion { } } else if (args[0].equals("rank-place") && (args.length == 2 || args.length == 3)) { if (getRanking(args[1]) == null) { return placeholderError; } - PlayerInfo info = null; + PlayerInfo info; if(args.length == 2){ - database.getGameData().getInfo(player.getUniqueId()); + info = database.getGameData().getInfo(player.getUniqueId()); } else { UUID uuid; try { uuid = Main.getInstance().getDatabase().getNameData().getUUID(args[2]); } catch (Exception e) { return placeholderError; } -- cgit v1.2.3-freya From a05ba6d1494f1ba0944c1e66a12a72405a2c9a7f Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Wed, 25 May 2022 19:39:54 -0400 Subject: 1.5.0 Release Candidate 4.1 --- src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java index 211a425..af59c21 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java @@ -70,7 +70,7 @@ public class PlayerLoader { } public static void resetPlayer(Player player, Board board){ - if(board.isSeeker(player)) return; + if(board.isSpectator(player)) return; loadPlayer(player); if (board.isSeeker(player)) { if (pvpEnabled) -- cgit v1.2.3-freya