aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/com/MylesAndMore/tumble/EventListener.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/main/java/com/MylesAndMore/tumble/EventListener.java b/src/main/java/com/MylesAndMore/tumble/EventListener.java
index a5169c5..dd42ea2 100644
--- a/src/main/java/com/MylesAndMore/tumble/EventListener.java
+++ b/src/main/java/com/MylesAndMore/tumble/EventListener.java
@@ -14,6 +14,7 @@ import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.event.entity.ProjectileLaunchEvent;
import org.bukkit.event.player.*;
import org.bukkit.inventory.ItemStack;
+import org.bukkit.util.Vector;
public class EventListener implements Listener {
@EventHandler
@@ -145,12 +146,23 @@ public class EventListener implements Listener {
// then check if the projectile was a snowball,
if (event.getEntity() instanceof Snowball) {
// then check if a player threw it,
- if (event.getEntity().getShooter() instanceof Player player) {
- // then check if that block is within the game area,
- if (event.getHitBlock().getLocation().distanceSquared(
- Bukkit.getWorld(TumbleManager.getGameWorld()).getSpawnLocation()) < 402) {
+ if (event.getEntity().getShooter() instanceof Player shooterPlayer) {
+ // then check to see if it hit a player or a block
+ if (event.getHitBlock() != null) {
+ // if it was a block, check if that block is within the game area,
+ if (event.getHitBlock().getLocation().distanceSquared(Bukkit.getWorld(TumbleManager.getGameWorld()).getSpawnLocation()) < 402) {
// then remove that block.
event.getHitBlock().setType(Material.AIR);
+ }
+ }
+ else if (event.getHitEntity() != null) {
+ // if it was an entity, check if it hit a player,
+ if (event.getHitEntity() instanceof Player hitPlayer) {
+ // then cancel the knockback (has to be delayed by a tick for some reason)
+ Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(TumbleManager.getPlugin(), () -> {
+ hitPlayer.setVelocity(new Vector());
+ }, 1);
+ }
}
}
}