Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.73 KB | None | 0 0
  1. package be.arcaniax.crossbow;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.logging.Logger;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.Material;
  10. import org.bukkit.Server;
  11. import org.bukkit.Sound;
  12. import org.bukkit.entity.Arrow;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.event.EventHandler;
  15. import org.bukkit.event.EventPriority;
  16. import org.bukkit.event.Listener;
  17. import org.bukkit.event.block.Action;
  18. import org.bukkit.event.player.PlayerInteractEvent;
  19. import org.bukkit.inventory.ItemStack;
  20. import org.bukkit.inventory.ShapedRecipe;
  21. import org.bukkit.inventory.meta.ItemMeta;
  22. import org.bukkit.plugin.PluginDescriptionFile;
  23. import org.bukkit.plugin.java.JavaPlugin;
  24. import org.bukkit.potion.PotionEffect;
  25. import org.bukkit.potion.PotionEffectType;
  26.  
  27. public class Main extends JavaPlugin implements Listener {
  28.       public final Logger logger = Logger.getLogger("Minecraft");
  29.       Server server = Bukkit.getServer();
  30.       public static Main plugin;
  31.  
  32.       public void onDisable()
  33.       {
  34.         PluginDescriptionFile pdfFile = getDescription();
  35.         this.logger.info("Unloaded " + pdfFile.getName());
  36.       }
  37.  
  38.       public void onEnable() {
  39.           server.getPluginManager().registerEvents(this, this);
  40.           PluginDescriptionFile pdfFile = getDescription();
  41.           this.logger.info("Loaded up " + pdfFile.getName() + " v. " + pdfFile.getVersion());
  42.           this.AddRecipe();
  43.           this.saveDefaultConfig();
  44.           this.logger.info("Added Crossbow recipe!");
  45.       }
  46.      
  47.       private void AddRecipe() {
  48.           ItemStack is = new ItemStack(Material.IRON_PICKAXE, 1);
  49.           ItemMeta im = is.getItemMeta();
  50.           List<String> CraftLore = new ArrayList<String>();
  51.           CraftLore.add(ChatColor.AQUA + "Left Click to load" + ChatColor.GOLD + " | " + ChatColor.AQUA + "Right Click to shoot");
  52.           CraftLore.add(ChatColor.RESET + "");
  53.           im.setLore(CraftLore);
  54.           im.setDisplayName(ChatColor.GRAY + "Crossbow");
  55.           is.setItemMeta(im);
  56.           ShapedRecipe rec = new ShapedRecipe(is);
  57.           rec.shape("ICI",
  58.                     "ABA",
  59.                     "ASA");
  60.           rec.setIngredient('C', Material.IRON_BLOCK);
  61.           rec.setIngredient('I', Material.IRON_PLATE);
  62.           rec.setIngredient('B', Material.BOW);
  63.           rec.setIngredient('S', Material.STICK);
  64.           this.getServer().addRecipe(rec);
  65.     }
  66.  
  67.    
  68.     @EventHandler(priority=EventPriority.HIGH)
  69.       private void onPlayerUse(final PlayerInteractEvent event){
  70.         final Player p = event.getPlayer();
  71.         if(p.getItemInHand().getType() == Material.IRON_PICKAXE && p.getItemInHand().hasItemMeta() && p.getItemInHand().getItemMeta().hasDisplayName() && p.getItemInHand().getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Crossbow")){
  72.             event.setCancelled(true);
  73.             if(event.getAction().equals(Action.RIGHT_CLICK_AIR) || event.getAction().equals(Action.RIGHT_CLICK_BLOCK)){
  74.                
  75.                 List<String> loreList = new ArrayList<String>();
  76.                 loreList.add(ChatColor.AQUA + "Left Click to load" + ChatColor.GOLD + " | " + ChatColor.AQUA + "Right Click to shoot");
  77.                 loreList.add(ChatColor.GOLD + "Loaded");
  78.                 if(p.getItemInHand().getItemMeta().hasLore() && p.getItemInHand().getItemMeta().getLore().equals(loreList)){
  79.                         p.playSound(p.getLocation(), Sound.SHOOT_ARROW, 10, (float) 0.8);
  80.                         Arrow arrow = p.launchProjectile(Arrow.class);
  81.                         arrow.setVelocity(p.getEyeLocation().getDirection().multiply(4.5));
  82.                         ItemStack is2 = p.getItemInHand();
  83.                         ItemMeta im2 = is2.getItemMeta();
  84.                         List<String> loreList1 = new ArrayList<String>();
  85.                         loreList1.add(ChatColor.AQUA + "Left Click to load" + ChatColor.GOLD + " | " + ChatColor.AQUA + "Right Click to shoot");
  86.                         loreList1.add(ChatColor.RESET + "");
  87.                         im2.setLore(loreList1);
  88.                         is2.setItemMeta(im2);
  89.                         p.updateInventory();
  90.                 }  
  91.              }
  92.             else if(event.getAction().equals(Action.LEFT_CLICK_AIR) || event.getAction().equals(Action.LEFT_CLICK_BLOCK)){
  93.                 List<String> loreList1 = new ArrayList<String>();
  94.                 loreList1.add(ChatColor.AQUA + "Left Click to load" + ChatColor.GOLD + " | " + ChatColor.AQUA + "Right Click to shoot");
  95.                 loreList1.add(ChatColor.GOLD + "Loaded");
  96.                 if(!(p.getItemInHand().getItemMeta().hasLore() && p.getItemInHand().getItemMeta().getLore().equals(loreList1))){
  97.                     ItemStack item = new ItemStack(Material.ARROW);
  98.                     ItemStack removeitem = new ItemStack(Material.ARROW, 1);
  99.                     if(p.getInventory().containsAtLeast(item, 1)){
  100.                         p.getInventory().removeItem(removeitem);
  101.                         p.updateInventory();
  102.                         p.addPotionEffect(new PotionEffect(PotionEffectType.SLOW_DIGGING, 40, 10));
  103.                         final int TimesLoop = getConfig().getInt("LoadTime") * 2 + 1;
  104.                         p.sendMessage("Starting Loop");
  105.                         for(int Loop = 1; Loop < TimesLoop; Loop++){
  106.                             p.sendMessage("Inside Loop");
  107.                             if(Loop == TimesLoop) {
  108.                                 int Wait = Loop * 10;
  109.                                 p.sendMessage("Limit");
  110.                                 Bukkit.getScheduler().runTaskLater(plugin, new Runnable(){
  111.                                     public void run() {
  112.                                         Player p5 = event.getPlayer();
  113.                                         if(!(p5.getItemInHand().getType() == Material.IRON_PICKAXE && p5.getItemInHand().hasItemMeta() && p5.getItemInHand().getItemMeta().hasDisplayName() && p5.getItemInHand().getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Crossbow"))){
  114.                                             p5.getInventory().addItem(new ItemStack(Material.ARROW, 1));
  115.                                             p5.playSound(p5.getLocation(), Sound.STEP_STONE, 2, (float) 0.8);
  116.                                         }
  117.                                         else {
  118.                                         ItemStack is1 = p5.getItemInHand();
  119.                                         List<String> loreList2 = new ArrayList<String>();
  120.                                         loreList2.add(ChatColor.AQUA + "Left Click to load" + ChatColor.GOLD + " | " + ChatColor.AQUA + "Right Click to shoot");
  121.                                         loreList2.add(ChatColor.GOLD + "Loaded");
  122.                                         ItemMeta im1 = is1.getItemMeta();
  123.                                         im1.setLore(loreList2);
  124.                                         is1.setItemMeta(im1);
  125.                                         p5.updateInventory();
  126.                                         p5.playSound(p5.getLocation(), Sound.CLICK, 2, (float) 0.8);
  127.                                              }
  128.                                         }
  129.                                 }, Wait);
  130.                             }
  131.                             else {
  132.                                 int Wait = Loop * 10;
  133.                                 p.sendMessage("looping...");
  134.                                 Bukkit.getScheduler().runTaskLater(plugin, new Runnable(){
  135.                                     public void run() {
  136.                                         Player p2 = event.getPlayer();
  137.                                         if(!(p2.getItemInHand().getType() == Material.IRON_PICKAXE && p2.getItemInHand().hasItemMeta() && p2.getItemInHand().getItemMeta().hasDisplayName() && p2.getItemInHand().getItemMeta().getDisplayName().equals(ChatColor.GRAY + "Crossbow"))){
  138.                                             p2.getInventory().addItem(new ItemStack(Material.ARROW, 1));
  139.                                             p2.playSound(p2.getLocation(), Sound.STEP_STONE, 2, (float) 0.8);
  140.                                         }
  141.                                         else {
  142.                                             p2.playSound(p2.getLocation(), Sound.CLICK, 2, (float) 1.5);   
  143.                                             }
  144.                                         }
  145.                             }, Wait);}
  146.                         }      
  147.                         }
  148.                         }
  149.                     }}  }  
  150.  
  151.             }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement