diff --git a/src/main/java/systems/joey/manhunt/Manhunt.java b/src/main/java/systems/joey/manhunt/Manhunt.java index e5e8995..d259b57 100644 --- a/src/main/java/systems/joey/manhunt/Manhunt.java +++ b/src/main/java/systems/joey/manhunt/Manhunt.java @@ -2,6 +2,7 @@ import org.bukkit.plugin.java.JavaPlugin; import systems.joey.manhunt.commands.ManhuntCommand; +import systems.joey.manhunt.commands.TestCommand; import systems.joey.manhunt.listeners.CompassListeners; import systems.joey.manhunt.listeners.RespawnListeners; @@ -10,6 +11,7 @@ public final class Manhunt extends JavaPlugin { @Override public void onEnable() { getCommand("manhunt").setExecutor(new ManhuntCommand(this)); + getCommand("test").setExecutor(new TestCommand()); getServer().getPluginManager().registerEvents(new CompassListeners(), this); getServer().getPluginManager().registerEvents(new RespawnListeners(), this); } diff --git a/src/main/java/systems/joey/manhunt/commands/ManhuntCommand.java b/src/main/java/systems/joey/manhunt/commands/ManhuntCommand.java index 92ffd4b..b3f17e9 100644 --- a/src/main/java/systems/joey/manhunt/commands/ManhuntCommand.java +++ b/src/main/java/systems/joey/manhunt/commands/ManhuntCommand.java @@ -1,41 +1,39 @@ package systems.joey.manhunt.commands; import org.bukkit.ChatColor; -import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Item; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; import systems.joey.manhunt.Manhunt; - +import systems.joey.manhunt.listeners.RespawnListeners; public class ManhuntCommand implements CommandExecutor { private final Manhunt plugin; + public ManhuntCommand(Manhunt plugin) { this.plugin = plugin; } + @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (args.length == 0) { - sender.sendMessage(ChatColor.RED + "Please specify a player to start the manhunt"); + if (args.length <= 0) { + sender.sendMessage(ChatColor.RED + "Please specify a player to target to be able to start the manhunt"); + return true; } if (sender instanceof Player player) { - if (args.length == 1) { - Player target = plugin.getServer().getPlayer(args[0]); - if (target == null) { - sender.sendMessage(ChatColor.RED + "Player not found"); - return true; - } - plugin.setRunner(args[0]); - player.sendMessage(ChatColor.GREEN + "Manhunt Started with target " + args[0]); - for (Player onlinePlayer : plugin.getServer().getOnlinePlayers()) { - if (onlinePlayer != target) { - onlinePlayer.getInventory().addItem(new ItemStack(Material.COMPASS)); - } + Player target = plugin.getServer().getPlayer(args[0]); + if (target == null) { + sender.sendMessage(ChatColor.RED + "Player not found"); + return true; + } + plugin.setRunner(args[0]); + player.sendMessage(ChatColor.GREEN + "Manhunt Started with target " + args[0]); + for (Player onlinePlayer : plugin.getServer().getOnlinePlayers()) { + if (onlinePlayer != target) { + RespawnListeners.givePlayerCompass(onlinePlayer, target); } - } else return false; + } } return true; } -} \ No newline at end of file +} diff --git a/src/main/java/systems/joey/manhunt/commands/TestCommand.java b/src/main/java/systems/joey/manhunt/commands/TestCommand.java new file mode 100644 index 0000000..5c8abbb --- /dev/null +++ b/src/main/java/systems/joey/manhunt/commands/TestCommand.java @@ -0,0 +1,20 @@ +package systems.joey.manhunt.commands; + + +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import net.md_5.bungee.api.ChatMessageType; + +public class TestCommand implements CommandExecutor { + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if (sender instanceof Player player) { + player.setHealth(0); +// player.sendTitle("Test", "Test", 10, 10, 10); +// player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText("aaa")); + } + return true; + } +} diff --git a/src/main/java/systems/joey/manhunt/listeners/CompassListeners.java b/src/main/java/systems/joey/manhunt/listeners/CompassListeners.java index e35d6b7..4ca3d1f 100644 --- a/src/main/java/systems/joey/manhunt/listeners/CompassListeners.java +++ b/src/main/java/systems/joey/manhunt/listeners/CompassListeners.java @@ -1,6 +1,7 @@ package systems.joey.manhunt.listeners; -import net.kyori.adventure.text.format.TextColor; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.World; @@ -10,7 +11,6 @@ import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; -import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.inventory.meta.CompassMeta; import systems.joey.manhunt.Manhunt; @@ -23,12 +23,12 @@ public void PlayerInteractEvent(PlayerInteractEvent event) { if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) { if (event.getItem() != null && event.getItem().getType() == Material.COMPASS) { String playerTrack = Manhunt.getTracked(); - if (playerTrack == null || playerTrack.equals(event.getPlayer().getName())) return; + if (playerTrack == null && playerTrack.equals(event.getPlayer().getName())) return; Player player = event.getPlayer(); Player target = getPlayer(Manhunt.getTracked()); - if (target != null || target.getWorld() != player.getWorld()) { + if (target != null && target.getWorld().getName().equals(player.getWorld().getName()) && !target.getName().equals(player.getName())) { World world = player.getWorld(); CompassMeta meta = (CompassMeta) event.getItem().getItemMeta(); switch (player.getWorld().getEnvironment()) { @@ -41,13 +41,14 @@ public void PlayerInteractEvent(PlayerInteractEvent event) { case NETHER, THE_END -> { meta.setLodestone(target.getLocation()); meta.setLodestoneTracked(false); - meta.setDisplayName(ChatColor.WHITE + "Compass"); + meta.setDisplayName(ChatColor.RESET + "Compass"); event.getItem().setItemMeta(meta); } } - player.sendMessage(ChatColor.GREEN + "Compass is now pointing to " + target.getName() + "."); + //player.sendMessage(ChatColor.GREEN + "Compass is now pointing to " + target.getName() + "."); + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.GREEN + "Compass is now pointing to " + target.getName() + ".")); } else { - player.sendMessage(ChatColor.RED + "There are no players to track."); + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.RED + "There are no players to track.")); } } } diff --git a/src/main/java/systems/joey/manhunt/listeners/RespawnListeners.java b/src/main/java/systems/joey/manhunt/listeners/RespawnListeners.java index 652c503..f3eada3 100644 --- a/src/main/java/systems/joey/manhunt/listeners/RespawnListeners.java +++ b/src/main/java/systems/joey/manhunt/listeners/RespawnListeners.java @@ -1,5 +1,9 @@ package systems.joey.manhunt.listeners; +import it.unimi.dsi.fastutil.chars.CharAVLTreeSet; +import net.md_5.bungee.api.ChatMessageType; +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.ChatColor; import org.bukkit.inventory.ItemStack; import org.bukkit.Material; import org.bukkit.entity.Player; @@ -8,11 +12,19 @@ import org.bukkit.event.player.PlayerRespawnEvent; import systems.joey.manhunt.Manhunt; + public class RespawnListeners implements Listener { @EventHandler public void onPlayerRespawnEvent(PlayerRespawnEvent e) { Player player = e.getPlayer(); + givePlayerCompass(player, null); + } + public static void givePlayerCompass(Player player, Player target) { + if (player.getName().equals(Manhunt.getTracked())) return; if (Manhunt.getTracked() == null) return; - if (!player.getName().equals(Manhunt.getTracked())) player.getInventory().addItem(new ItemStack(Material.COMPASS)); + if (target != null) { + player.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(ChatColor.BOLD + "" + ChatColor.GREEN + "Manhunt begins. You have been given a compass tracking " + target.getName())); + } + player.getInventory().addItem(new ItemStack(Material.COMPASS)); } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a80ab11..d1009d3 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -7,4 +7,6 @@ commands: manhunt: description: Start the manhunt with a specified player to be tracked usage: /manhunt - \ No newline at end of file + test: + description: Test command + usage: /test \ No newline at end of file