diff --git a/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java b/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java index a18acea..2087cd7 100644 --- a/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java +++ b/src/main/java/de/fanta/challengesjoinentities/ChallengesJoinEntities.java @@ -5,6 +5,7 @@ import de.fanta.challengesjoinentities.commands.RemoveEntityCommand; import de.fanta.challengesjoinentities.listeners.ChallengesEventListener; import de.fanta.challengesjoinentities.listeners.EntityListener; +import de.fanta.challengesjoinentities.listeners.PlayerListener; import de.iani.cubesideutils.bukkit.commands.CommandRouter; import net.md_5.bungee.api.ChatColor; import org.bukkit.Bukkit; @@ -47,6 +48,7 @@ router.addCommandMapping(new RemoveEntityCommand(this), "remove"); } Bukkit.getPluginManager().registerEvents(new EntityListener(this), this); + Bukkit.getPluginManager().registerEvents(new PlayerListener(this), this); Bukkit.getPluginManager().registerEvents(globalDataHelper, this); } @@ -180,12 +182,8 @@ piglin.getHandle().u(false); } } - } - // TODO bounce player back when too close to piglin - - public Config getPluginConfig() { return config; } diff --git a/src/main/java/de/fanta/challengesjoinentities/listeners/PlayerListener.java b/src/main/java/de/fanta/challengesjoinentities/listeners/PlayerListener.java new file mode 100644 index 0000000..c3ac83b --- /dev/null +++ b/src/main/java/de/fanta/challengesjoinentities/listeners/PlayerListener.java @@ -0,0 +1,33 @@ +package de.fanta.challengesjoinentities.listeners; + +import de.fanta.challengesjoinentities.ChallengesJoinEntities; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.util.Vector; + +import java.util.Collection; + +public class PlayerListener implements Listener { + + private final ChallengesJoinEntities plugin; + + public PlayerListener(ChallengesJoinEntities plugin) { + this.plugin = plugin; + } + + @EventHandler + public void onPlayerMove(PlayerMoveEvent event) { + Player player = event.getPlayer(); + + Collection nearbyEntities = player.getLocation().getNearbyEntities(1.0, 1.0, 1.0); + for (Entity entity : nearbyEntities) { + if (plugin.isJoinEntity(entity)) { + Vector direction = player.getLocation().getDirection(); + player.setVelocity(direction.multiply(-0.75).setY(0.5)); + } + } + } +}