summaryrefslogtreewikicommitdiff
path: root/src
diff options
context:
space:
mode:
authorTyler Murphy <tylermurphy534@gmail.com>2022-08-09 13:43:20 -0400
committerTyler Murphy <tylermurphy534@gmail.com>2022-08-09 13:43:20 -0400
commitd64dce4a26b69d202f9d2943da8da0d3bc9ddad2 (patch)
tree23cef1d812fa41c2185e8ce86b9d176cd950de0b /src
parentMerge pull request #72 from tylermurphy534/1.6.0 (diff)
downloadkenshinshideandseek-d64dce4a26b69d202f9d2943da8da0d3bc9ddad2.tar.gz
kenshinshideandseek-d64dce4a26b69d202f9d2943da8da0d3bc9ddad2.tar.bz2
kenshinshideandseek-d64dce4a26b69d202f9d2943da8da0d3bc9ddad2.zip
block solidify time, seeker lobby
Diffstat (limited to 'src')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/About.java2
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java4
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSeekerLobbyLocation.java31
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java3
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java14
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/Game.java1
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java5
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/game/listener/DisguiseHandler.java94
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java2
-rw-r--r--src/main/resources/config.yml10
-rw-r--r--src/main/resources/lang/localization_de-DE.yml1
-rw-r--r--src/main/resources/lang/localization_en-US.yml1
-rw-r--r--src/main/resources/plugin.yml6
13 files changed, 75 insertions, 99 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java
index a4eca9f..7c39be2 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/About.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/About.java
@@ -26,7 +26,7 @@ public class About implements ICommand {
public void execute(Player sender, String[] args) {
sender.sendMessage(
- String.format("%s%sHide and Seek %s(%s1.6.0%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) +
+ String.format("%s%sHide and Seek %s(%s1.6.1%s)\n", ChatColor.AQUA, ChatColor.BOLD, ChatColor.GRAY,ChatColor.WHITE,ChatColor.GRAY) +
String.format("%sAuthor: %s[KenshinEto]\n", ChatColor.GRAY, ChatColor.WHITE) +
String.format("%sHelp Command: %s/hs %shelp", ChatColor.GRAY, ChatColor.AQUA, ChatColor.WHITE)
);
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java
index 7b29f79..e961188 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java
@@ -42,6 +42,10 @@ public class Setup implements ICommand {
msg = msg + "\n" + message("SETUP_LOBBY");
count++;
}
+ if (seekerLobbyPosition.getBlockX() == 0 && seekerLobbyPosition.getBlockY() == 0 && seekerLobbyPosition.getBlockZ() == 0) {
+ msg = msg + "\n" + message("SETUP_SEEKER_LOBBY");
+ count++;
+ }
if (exitPosition.getBlockX() == 0 && exitPosition.getBlockY() == 0 && exitPosition.getBlockZ() == 0) {
msg = msg + "\n" + message("SETUP_EXIT");
count++;
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSeekerLobbyLocation.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSeekerLobbyLocation.java
new file mode 100644
index 0000000..c6c3ccb
--- /dev/null
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/SetSeekerLobbyLocation.java
@@ -0,0 +1,31 @@
+package net.tylermurphy.hideAndSeek.command.location;
+
+import net.tylermurphy.hideAndSeek.command.ICommand;
+import net.tylermurphy.hideAndSeek.command.location.util.LocationUtils;
+import net.tylermurphy.hideAndSeek.command.location.util.Locations;
+import org.bukkit.entity.Player;
+
+import static net.tylermurphy.hideAndSeek.configuration.Config.*;
+
+public class SetSeekerLobbyLocation implements ICommand {
+
+ public void execute(Player sender, String[] args) {
+ LocationUtils.setLocation(sender, Locations.SEEKER, vector -> {
+ seekerLobbyWorld = sender.getLocation().getWorld().getName();
+ seekerLobbyPosition = vector;
+ });
+ }
+
+ public String getLabel() {
+ return "setseekerlobby";
+ }
+
+ public String getUsage() {
+ return "";
+ }
+
+ public String getDescription() {
+ return "Sets hide and seeks seeker lobby location to current position";
+ }
+
+}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java b/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java
index 137bc69..35f74ea 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/command/location/util/Locations.java
@@ -7,7 +7,8 @@ public enum Locations {
GAME("spawns.game"),
LOBBY("spawns.lobby"),
- EXIT("spawns.exit");
+ EXIT("spawns.exit"),
+ SEEKER("spawns.seeker");
private final String path;
Locations(String path) {
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
index 4130ec7..853b6a2 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/configuration/Config.java
@@ -50,6 +50,7 @@ public class Config {
gameOverPrefix,
warningPrefix,
spawnWorld,
+ seekerLobbyWorld,
exitWorld,
lobbyWorld,
locale,
@@ -67,6 +68,7 @@ public class Config {
spawnPosition,
lobbyPosition,
exitPosition,
+ seekerLobbyPosition,
worldBorderPosition;
public static boolean
@@ -116,7 +118,8 @@ public class Config {
lobbyItemLeavePosition,
lobbyItemStartPosition,
flightToggleItemPosition,
- teleportItemPosition;
+ teleportItemPosition,
+ solidifyTime;
public static float
seekerPingLeadingVolume,
@@ -184,6 +187,14 @@ public class Config {
);
lobbyWorld = config.getString("spawns.lobby.world");
+ ///Seeker Lobby
+ seekerLobbyPosition = new Vector(
+ config.getDouble("spawns.seeker.x"),
+ Math.max(Main.getInstance().supports(18) ? -64 : 0, Math.min(255, config.getDouble("spawns.seeker.y"))),
+ config.getDouble("spawns.seeker.z")
+ );
+ seekerLobbyWorld = config.getString("spawns.seeker.world");
+
announceMessagesToNonPlayers = config.getBoolean("announceMessagesToNonPlayers");
exitPosition = new Vector(
@@ -304,6 +315,7 @@ public class Config {
}
}
}
+ solidifyTime = Math.max(20,config.getInt("blockhunt.solidifyTime"));
//Leaderboard
LOBBY_TITLE = leaderboard.getString("lobby.title");
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java
index b3fd457..ac210a3 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java
@@ -333,6 +333,7 @@ public class Game {
if (spawnPosition.getBlockX() == 0 && spawnPosition.getBlockY() == 0 && spawnPosition.getBlockZ() == 0) return true;
if (lobbyPosition.getBlockX() == 0 && lobbyPosition.getBlockY() == 0 && lobbyPosition.getBlockZ() == 0) return true;
if (exitPosition.getBlockX() == 0 && exitPosition.getBlockY() == 0 && exitPosition.getBlockZ() == 0) return true;
+ if (seekerLobbyPosition.getBlockX() == 0 && seekerLobbyPosition.getBlockY() == 0 && seekerLobbyPosition.getBlockZ() == 0) return true;
if (mapSaveEnabled) {
File destination = new File(Main.getInstance().getWorldContainer() + File.separator + getGameWorld());
if (!destination.exists()) return true;
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java
index bd35ab5..eedfabe 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/PlayerLoader.java
@@ -52,11 +52,8 @@ public class PlayerLoader {
}
public static void loadSeeker(Player player, String gameWorld){
- player.teleport(new Location(Bukkit.getWorld(gameWorld), spawnPosition.getX(),spawnPosition.getY(),spawnPosition.getZ()));
+ player.teleport(new Location(Bukkit.getWorld(gameWorld), seekerLobbyPosition.getX(),seekerLobbyPosition.getY(),seekerLobbyPosition.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());
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DisguiseHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DisguiseHandler.java
index 10db324..cb8ad04 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DisguiseHandler.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/DisguiseHandler.java
@@ -1,21 +1,19 @@
package net.tylermurphy.hideAndSeek.game.listener;
import static com.comphenix.protocol.PacketType.Play.Client.*;
+import static net.tylermurphy.hideAndSeek.configuration.Config.solidifyTime;
import com.comphenix.protocol.ProtocolLibrary;
import com.comphenix.protocol.ProtocolManager;
import com.comphenix.protocol.events.PacketAdapter;
import com.comphenix.protocol.events.PacketContainer;
import com.comphenix.protocol.events.PacketEvent;
-import com.cryptomorin.xseries.XMaterial;
import net.tylermurphy.hideAndSeek.Main;
import net.tylermurphy.hideAndSeek.game.util.Disguise;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
-import org.bukkit.Material;
import org.bukkit.attribute.Attribute;
-import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -23,15 +21,9 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.player.PlayerMoveEvent;
-import org.bukkit.inventory.Inventory;
-import org.bukkit.inventory.ItemStack;
-import org.bukkit.potion.PotionEffect;
-import org.bukkit.potion.PotionEffectType;
-
import java.util.ArrayList;
import java.util.List;
-@SuppressWarnings("deprecation")
public class DisguiseHandler implements Listener {
private static final ProtocolManager protocolManager = ProtocolLibrary.getProtocolManager();
@@ -50,18 +42,11 @@ public class DisguiseHandler implements Listener {
if(lastLocation.getWorld() != currentLocation.getWorld()) return;
double distance = lastLocation.distance(currentLocation);
disguise.setSolidify(distance < .1);
- }, 40L);
+ }, solidifyTime);
if(event.getFrom().distance(event.getTo()) > .1)
disguise.setSolidify(false);
}
-// @EventHandler(priority = EventPriority.MONITOR)
-// public void onInteract(PlayerInteractEvent event) {
-// Action action = event.getAction();
-// Player player = event.getPlayer();
-// Block block = event.
-// }
-
private PacketAdapter createProtocol(){
return new PacketAdapter(Main.getInstance(), USE_ENTITY) {
@@ -69,7 +54,6 @@ public class DisguiseHandler implements Listener {
public void onPacketReceiving(PacketEvent event){
PacketContainer packet = event.getPacket();
Player player = event.getPlayer();
-// if(!Main.getInstance().getBoard().isSeeker(player)) return;
int id = packet.getIntegers().read(0);
Disguise disguise = Main.getInstance().getDisguiser().getByEntityID(id);
if(disguise == null) disguise = Main.getInstance().getDisguiser().getByHitBoxID(id);
@@ -91,7 +75,7 @@ public class DisguiseHandler implements Listener {
if(Main.getInstance().supports(9)) {
amount = seeker.getAttribute(Attribute.GENERIC_ATTACK_DAMAGE).getValue();
} else {
- amount = getItemDamageValue(seeker.getItemInHand(), disguise.getPlayer(), seeker);
+ return; //1.8 is not supported in Blockhunt yet!!!
}
disguise.setSolidify(false);
@@ -112,76 +96,4 @@ public class DisguiseHandler implements Listener {
Bukkit.getScheduler().scheduleSyncDelayedTask(Main.getInstance(), () -> debounce.remove(disguise.getPlayer()), 10);
}
- private int getItemDamageValue(ItemStack is, Player damaged, Player attacker) {
- double damageValue = 0;
- if (is != null) {
- if (is.getType() == XMaterial.WOODEN_SWORD.parseMaterial()) {
- damageValue = 5;
- } else if (is.getType() == Material.STONE_SWORD) {
- damageValue = 6;
- } else if (is.getType() == Material.IRON_SWORD) {
- damageValue = 7;
- } else if (is.getType() == Material.DIAMOND_SWORD) {
- damageValue = 8;
- } else {
- damageValue = 1;
- }
- damageValue += is.getEnchantmentLevel(Enchantment.DAMAGE_ALL);
- }
-
- if (damaged != null) {
- Inventory i = damaged.getInventory();
- Material helmet = i.getItem(39).getType();
- Material chestplate = i.getItem(40).getType();
- Material leggings = i.getItem(41).getType();
- Material boots = i.getItem(42).getType();
- if (helmet == Material.LEATHER_HELMET)
- damageValue -= (0.5 / 1.5);
- // value shown at bar above the health bar / 1.5
- else if (helmet == Material.CHAINMAIL_HELMET
- || helmet == Material.IRON_HELMET
- || helmet == Material.DIAMOND_HELMET
- || helmet == XMaterial.GOLDEN_HELMET.parseMaterial())
- damageValue -= (1 / 1.5);
-
- if (chestplate == Material.LEATHER_CHESTPLATE)
- damageValue -= (1.0);
- else if (chestplate == Material.CHAINMAIL_CHESTPLATE
- || chestplate == XMaterial.GOLDEN_CHESTPLATE.parseMaterial())
- damageValue -= (2.5 / 1.5);
- else if (chestplate == Material.IRON_CHESTPLATE)
- damageValue -= (3 / 1.5);
- else if (chestplate == Material.DIAMOND_CHESTPLATE)
- damageValue -= (4 / 1.5);
-
- if (leggings == Material.LEATHER_LEGGINGS)
- damageValue -= (1 / 1.5);
- else if (leggings == XMaterial.GOLDEN_LEGGINGS.parseMaterial())
- damageValue -= (1.0);
- else if (leggings == Material.CHAINMAIL_LEGGINGS)
- damageValue -= (2 / 1.5);
- else if (leggings == Material.IRON_LEGGINGS)
- damageValue -= (2.5 / 1.5);
- else if (leggings == Material.DIAMOND_LEGGINGS)
- damageValue -= (3 / 1.5);
-
- if (boots == Material.LEATHER_BOOTS
- || boots == XMaterial.GOLDEN_BOOTS.parseMaterial()
- || boots == Material.CHAINMAIL_BOOTS)
- damageValue -= (0.5 / 1.5);
- else if (boots == Material.IRON_BOOTS)
- damageValue -= (1 / 1.5);
- else if (boots == Material.DIAMOND_BOOTS)
- damageValue -= (1.0);
- }
-
- for (PotionEffect effect : attacker.getActivePotionEffects()){
- if (effect.getType() == PotionEffectType.HARM) {
- damageValue += effect.getAmplifier()*1.5;
- }
- }
-
- return (int) Math.round(Math.max(damageValue, 0.0));
- }
-
}
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java
index 1f0c8a3..2dda402 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java
@@ -22,6 +22,7 @@ package net.tylermurphy.hideAndSeek.util;
import net.tylermurphy.hideAndSeek.command.*;
import net.tylermurphy.hideAndSeek.command.location.SetExitLocation;
import net.tylermurphy.hideAndSeek.command.location.SetLobbyLocation;
+import net.tylermurphy.hideAndSeek.command.location.SetSeekerLobbyLocation;
import net.tylermurphy.hideAndSeek.command.location.SetSpawnLocation;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -53,6 +54,7 @@ public class CommandHandler {
registerCommand(new Stop());
registerCommand(new SetSpawnLocation());
registerCommand(new SetLobbyLocation());
+ registerCommand(new SetSeekerLobbyLocation());
registerCommand(new SetExitLocation());
registerCommand(new SetBorder());
registerCommand(new Reload());
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 9500859..b648c8b 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -128,8 +128,11 @@ databaseName: hideandseek
# You want block hunt? We have block hunt! Just enable it below, and set the
# available blocks to pick from, and you're all set! It's that easy!
# Items are displayed in the order that they are listed below.
+# The solidifyTime is the time in server ticks that it takes players to solidify.
+# Every 20 ticks is a second. Minimum solidifyTime is 20 ticks.
blockhunt:
enabled: false
+ solidifyTime: 60
blocks: [CRAFTING_TABLE, GRASS_BLOCK, DIRT, BEACON, BOOKSHELF]
worldBorder:
@@ -306,6 +309,13 @@ spawns:
y: 0
z: 0
world: world
+ # Location where seekers wait during the hiding grace period
+ seeker:
+ x: 0
+ y: 0
+ z: 0
+ # Currently is not used, seekers are teleported to spawns.game.world
+ world: world
# Location where players are teleported when they exit (/hs leave)
exit:
x: 0
diff --git a/src/main/resources/lang/localization_de-DE.yml b/src/main/resources/lang/localization_de-DE.yml
index a1a6eea..4e6e74e 100644
--- a/src/main/resources/lang/localization_de-DE.yml
+++ b/src/main/resources/lang/localization_de-DE.yml
@@ -46,6 +46,7 @@ Localization:
SETUP: "&f&lFühre die folgenden Schritte zur Einrichtung aus:"
SETUP_GAME: "&c&l- &fTeleport-Position für den Spielbeginn festlegen mit /hs setspawn"
SETUP_LOBBY: "&c&l- &fTeleport-Position für die Lobby festlegen mit /hs setlobby"
+ SETUP_SEEKER_LOBBY: "&c&l- &fTeleport-Position für die Lobby Seekern festlegen mit /hs setseekerlobby"
SETUP_EXIT: "&c&l- &fTeleport-Position für das Spielende festlegen mit /hs setexit"
SETUP_SAVEMAP: "&c&l- &fHide and Seek Weltkarte speichern mit /hs savemap (nach /hs setspawn)"
SETUP_COMPLETE: "Alles eingerichtet! Hide and Seek ist spielbereit."
diff --git a/src/main/resources/lang/localization_en-US.yml b/src/main/resources/lang/localization_en-US.yml
index 96ccf7a..32dd5f8 100644
--- a/src/main/resources/lang/localization_en-US.yml
+++ b/src/main/resources/lang/localization_en-US.yml
@@ -47,6 +47,7 @@ Localization:
SETUP: "&f&lThe following is needed for setup..."
SETUP_GAME: "&c&l- &fGame spawn isn't set, /hs setspawn"
SETUP_LOBBY: "&c&l- &fLobby spawn isn't set, /hs setlobby"
+ SET_SEEKER_LOBBY: "&c&l- &fSeeker Lobby spawn isn't set, /hs setseekerlobby"
SETUP_EXIT: "&c&l- &fQuit/exit teleport location isn't set, /hs setexit"
SETUP_SAVEMAP: "&c&l- &fHide and seek map isn't saved, /hs savemap (after /hs setspawn)"
SETUP_BOUNDS: "&c&l- &fPlease set game bounds in 2 opposite corners of the game map, /hs setbounds"
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index eab74ad..1f61282 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,6 +1,6 @@
name: KenshinsHideAndSeek
main: net.tylermurphy.hideAndSeek.Main
-version: 1.6.0
+version: 1.6.1
author: KenshinEto
load: STARTUP
api-version: 1.13
@@ -21,6 +21,7 @@ permissions:
hideandseek.setborder: true
hideandseek.setspawn: true
hideandseek.setlobby: true
+ hideandseek.setseekerlobby: true
hideandseek.setexit: true
hideadnseek.setbounds: true
hideandseek.setup: true
@@ -51,6 +52,9 @@ permissions:
hideandseek.setlobby:
description: Allows you to set the game lobby point
default: op
+ hideandseek.setseekerlobby:
+ description: Allows you to set the game seeker lobby point
+ default: op
hideandseek.setexit:
description: Allows you to set the game exit point
default: op