Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.Captain_Dory.Wands;
- import java.util.HashMap;
- import org.bukkit.Effect;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer;
- import org.bukkit.craftbukkit.v1_6_R3.entity.CraftSnowball;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.Player;
- import org.bukkit.entity.Snowball;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.entity.EntityDamageByEntityEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.util.BlockIterator;
- public class Main extends JavaPlugin{
- public void onEnable() {
- getLogger().info("wow much enable :^]");
- }
- public void onDisable() {
- getLogger().info("wow many disable doge sad :c");
- }
- @EventHandler
- public void eva (PlayerInteractEvent e) {
- Location location = player.getEyeLocation();
- BlockIterator blocksToAdd = new BlockIterator(location, 0D, 15);
- Location blockToAdd;
- while(blocksToAdd.hasNext()) {
- if (blockToAdd.getBlock().getType() != Material.AIR ||!shotprojectiledata.containsKey(projectile)) {
- break;
- }
- blockToAdd = blocksToAdd.next().getLocation();
- player.getWorld().playEffect(blockToAdd, Effect.STEP_SOUND, Material.FIRE);
- }
- Snowball projectile = player.launchProjectile(Snowball.class);
- EntityData data = new EntityData(projectile.getLocation(), 15, 5D);
- shotprojectiledata.put(projectile, data);
- for (Player p : Bukkit.getOnlinePlayers()) {
- ((CraftPlayer)p).getHandle().playerConnection.sendPacket(new PacketPlayOutEntityDestroy(((CraftSnowball) projectile).getHandle().getId()));
- public class EntityData {
- private Location firedfrom;
- private Integer range;
- private Double damage;
- public EntityData(Location loc, Integer range, Double damage) {
- this.firedfrom = loc;
- this.range = range;
- this.damage = damage;
- }
- public Location getFiredFrom() {
- return firedfrom;
- }
- public Integer getRange() {
- return range;
- }
- public Double getDamage() {
- return damage;
- }
- }
- //put where ever you want again
- public final static HashMap<Entity, EntityData> shotprojectiledata = new HashMap<Entity, EntityData>();
- @EventHandler
- public void onHit(EntityDamageByEntityEvent event) {
- if (event.getDamager() instanceof Snowball) {
- if (shotprojectiledata.containsKey(event.getDamager())) {
- EntityData eventdata = shotprojectiledata.get(event.getDamager());
- if (event.getEntity().getLocation().distance(eventdata.getFiredFrom())<=eventdata.getRange()) {
- event.setDamage(eventdata.getDamage());
- shotprojectiledata.remove(event.getDamager());
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement