Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package assossa.plugins.itemchuck;
- import java.util.ArrayList;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.Item;
- import org.bukkit.entity.LivingEntity;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerDropItemEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- public class Main extends JavaPlugin implements Listener {
- private ArrayList<Item> items;
- @Override
- public void onEnable() {
- Bukkit.getPluginManager().registerEvents(this, this);
- items = new ArrayList<Item>();
- Bukkit.getScheduler().runTaskTimer(this, () -> {
- ArrayList<Item> remove = new ArrayList<Item>();
- for (Item i : items) {
- if (i.getVelocity().length() <= 0.1) {
- remove.add(i);
- continue;
- }
- List<Entity> nbe = i.getNearbyEntities(0.5, 0.5, 0.5);
- if (nbe.isEmpty())
- continue;
- LivingEntity close_e = null;
- double close_d = 100;
- for (Entity e : nbe)
- if (i.getLocation().distance(e.getLocation()) < close_d && e instanceof LivingEntity) {
- close_e = (LivingEntity) e;
- close_d = i.getLocation().distance(e.getLocation());
- }
- if (close_e != null) {
- close_e.damage(1);
- close_e.setVelocity(i.getVelocity());
- remove.add(i);
- }
- }
- for (Item i2 : remove)
- items.remove(i2);
- } , 0, 1);
- }
- @EventHandler
- public void onItemThrown(PlayerDropItemEvent e) {
- Bukkit.getScheduler().runTaskLater(this, () -> items.add(e.getItemDrop()), 5);
- e.getItemDrop().setVelocity(e.getPlayer().getEyeLocation().getDirection());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement