diff --git a/pom.xml b/pom.xml index f8b8ed3..a973742 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ com.destroystokyo.paper paper-api - 1.13.2-R0.1-SNAPSHOT + 1.15.2-R0.1-SNAPSHOT diff --git a/src/main/java/pw/kaboom/icontrolu/ControlPlayer.java b/src/main/java/pw/kaboom/icontrolu/ControlPlayer.java index bac3474..e17a136 100644 --- a/src/main/java/pw/kaboom/icontrolu/ControlPlayer.java +++ b/src/main/java/pw/kaboom/icontrolu/ControlPlayer.java @@ -5,14 +5,17 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.AsyncPlayerChatEvent; +import org.bukkit.event.player.PlayerAnimationEvent; import org.bukkit.event.player.PlayerCommandPreprocessEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerRespawnEvent; +import org.bukkit.inventory.EquipmentSlot; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; @@ -107,7 +110,13 @@ class ControlPlayer implements Listener { if (PlayerList.getTarget(player.getUniqueId()) != null) { final Player target = PlayerList.getTarget(player.getUniqueId()); - target.chat(event.getMessage()); + new BukkitRunnable() { + @Override + public void run() { + target.chat(event.getMessage()); + } + }.runTask(JavaPlugin.getPlugin(Main.class)); + event.setCancelled(true); } } @@ -121,6 +130,15 @@ class ControlPlayer implements Listener { } } + @EventHandler + private void onPlayerAnimation(final PlayerAnimationEvent event) { + final Player player = event.getPlayer(); + + if (PlayerList.getController(player.getUniqueId()) != null) { + event.setCancelled(true); + } + } + @EventHandler private void onPlayerCommandPreprocess(final PlayerCommandPreprocessEvent event) { final Player player = event.getPlayer(); @@ -146,6 +164,18 @@ class ControlPlayer implements Listener { if (PlayerList.getController(player.getUniqueId()) != null) { event.setCancelled(true); } + + if ((event.getAction() == Action.LEFT_CLICK_AIR + || event.getAction() == Action.LEFT_CLICK_BLOCK) + && PlayerList.getTarget(player.getUniqueId()) != null) { + final Player target = PlayerList.getTarget(player.getUniqueId()); + + if (event.getHand() == EquipmentSlot.HAND) { + target.swingMainHand(); + } else if (event.getHand() == EquipmentSlot.OFF_HAND) { + target.swingOffHand(); + } + } } @EventHandler diff --git a/src/main/java/pw/kaboom/icontrolu/commands/CommandIcu.java b/src/main/java/pw/kaboom/icontrolu/commands/CommandIcu.java index dc74a8c..ae634e3 100644 --- a/src/main/java/pw/kaboom/icontrolu/commands/CommandIcu.java +++ b/src/main/java/pw/kaboom/icontrolu/commands/CommandIcu.java @@ -60,6 +60,7 @@ public final class CommandIcu implements CommandExecutor { final int tickDelay = 200; new BukkitRunnable() { + @Override public void run() { for (Player player: Bukkit.getOnlinePlayers()) { player.showPlayer(JavaPlugin.getPlugin(Main.class), controller); @@ -84,6 +85,7 @@ public final class CommandIcu implements CommandExecutor { } } + @Override public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { if (sender instanceof ConsoleCommandSender) { sender.sendMessage("Command has to be run by a player");