Advertisement
Guest User

paste

a guest
May 12th, 2014
20
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.04 KB | None | 0 0
  1. package me.gianlucapmc.guns;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.Material;
  7. import org.bukkit.entity.Fireball;
  8. import org.bukkit.entity.Player;
  9. import org.bukkit.event.EventHandler;
  10. import org.bukkit.event.Listener;
  11. import org.bukkit.event.entity.EntityDamageByEntityEvent;
  12. import org.bukkit.event.player.PlayerInteractEvent;
  13. import org.bukkit.inventory.ItemStack;
  14. import org.bukkit.plugin.java.JavaPlugin;
  15.  
  16. public class Guns extends JavaPlugin implements Listener {
  17.    
  18.     /* This part is tricky: I've made multiple ArrayLists to allow each gun to have different damage */
  19.     private ArrayList<Fireball> normalGun = new ArrayList<Fireball>();
  20.     private ArrayList<Fireball> stoneGun = new ArrayList<Fireball>();
  21.     private ArrayList<Fireball> ironGun = new ArrayList<Fireball>();
  22.     private ArrayList<Fireball> goldGun = new ArrayList<Fireball>();
  23.     private ArrayList<Fireball> diamondGun = new ArrayList<Fireball>();
  24.  
  25.     public void onEnable() {
  26.         /* Has to register the events from the class (this) and the plugin (which is also this) */
  27.         Bukkit.getServer().getPluginManager().registerEvents(this, this);
  28.     }
  29.  
  30.     @EventHandler
  31.     public void onPlayerInteract(PlayerInteractEvent e) {
  32.         if(e.getPlayer().getItemInHand() != null) {
  33.             /* In your old code, you forgot to check if they contain the specific item (blaze powder, clay ball etc.) */
  34.             if(e.getPlayer().getInventory().contains(Material.FLINT)) {
  35.                 if (e.getPlayer().getItemInHand() != null && e.getPlayer().getItemInHand().getType().equals(Material.WOOD_HOE)) {
  36.                     Fireball f = e.getPlayer().launchProjectile(Fireball.class);
  37.                     f.setYield(0);
  38.                     normalGun.add(f);
  39.                     removeItem(e.getPlayer(), Material.FLINT);
  40.                 }
  41.             } else if(e.getPlayer().getInventory().contains(Material.COAL)) {
  42.                 if (e.getPlayer().getItemInHand() != null && e.getPlayer().getItemInHand().getType().equals(Material.STONE_HOE)) {
  43.                     Fireball f = e.getPlayer().launchProjectile(Fireball.class);
  44.                     f.setYield(0);
  45.                     stoneGun.add(f);
  46.                     removeItem(e.getPlayer(), Material.COAL);
  47.                 }
  48.             } else if(e.getPlayer().getInventory().contains(Material.BLAZE_POWDER)) {
  49.                 if (e.getPlayer().getItemInHand() != null && e.getPlayer().getItemInHand().getType().equals(Material.IRON_HOE)) {
  50.                     Fireball f = e.getPlayer().launchProjectile(Fireball.class);
  51.                     f.setYield(0);
  52.                     ironGun.add(f);
  53.                     removeItem(e.getPlayer(), Material.BLAZE_POWDER);
  54.                 }
  55.             } else if(e.getPlayer().getInventory().contains(Material.CLAY_BALL)) {
  56.                 if (e.getPlayer().getItemInHand() != null && e.getPlayer().getItemInHand().getType().equals(Material.GOLD_HOE)) {
  57.                     Fireball f = e.getPlayer().launchProjectile(Fireball.class);
  58.                     f.setYield(0);
  59.                     goldGun.add(f);
  60.                     removeItem(e.getPlayer(), Material.CLAY_BALL);
  61.                 }
  62.             } else if(e.getPlayer().getInventory().contains(Material.REDSTONE)) {
  63.                 if (e.getPlayer().getItemInHand() != null && e.getPlayer().getItemInHand().getType().equals(Material.DIAMOND_HOE)) {
  64.                     Fireball f = e.getPlayer().launchProjectile(Fireball.class);
  65.                     f.setYield(0);
  66.                     diamondGun.add(f);
  67.                     removeItem(e.getPlayer(), Material.REDSTONE);
  68.                 }
  69.             }
  70.         }
  71.        
  72.     }
  73.  
  74.     @EventHandler
  75.     public void onEntityDamage(EntityDamageByEntityEvent e) {
  76.         if (e.getDamager() instanceof Fireball) {
  77.             Fireball f = (Fireball) e.getDamager();
  78.             if (normalGun.contains(f)) {
  79.                 e.setDamage(10);
  80.                 return;
  81.             } else if(stoneGun.contains(f)) {
  82.                 e.setDamage(20);
  83.                 return;
  84.             } else if(ironGun.contains(f)) {
  85.                 e.setDamage(35);
  86.                 return;
  87.             } else if(goldGun.contains(f)) {
  88.                 e.setDamage(25);
  89.                 return;
  90.             } else if(diamondGun.contains(f)) {
  91.                 e.setDamage(50);
  92.                 return;
  93.             }
  94.         }
  95.         return;
  96.     }
  97.    
  98.     /* I'm putting this here for simplicity */
  99.     private void removeItem(Player p, Material material) {
  100.         int slot = p.getInventory().first(material);
  101.         ItemStack is = p.getInventory().getItem(slot);
  102.         if (is.getAmount() <= 1) {
  103.             p.getInventory().setItem(slot, null);
  104.             return;
  105.         } else {
  106.             is.setAmount(is.getAmount() - 1);
  107.             return;
  108.         }
  109.     }
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement