Advertisement
Guest User

Untitled

a guest
Dec 19th, 2013
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1.  
  2.     private ArrayList<String> rainedOn = new ArrayList<String>();
  3.     private HashMap<String, Integer> tids = new HashMap<String, Integer>();
  4.  
  5.     public void itemRain(final Player player, Material material)
  6.     {
  7.         //they are already being rained on
  8.         if(rainedOn.contains(player.getName()))
  9.         {
  10.             return;
  11.         }
  12.  
  13.         //get their world
  14.         final World world = player.getWorld();
  15.  
  16.         //create the itemstack
  17.         final ItemStack is = new ItemStack(material, 1);
  18.  
  19.         //create the location, one/two blocks above player
  20.         final Location location = player.getLocation().add(0,3,0);
  21.  
  22.         rainedOn.add(player.getName());
  23.  
  24.         tids.put(player.getName(),
  25.                 plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable()
  26.                 {
  27.  
  28.                     public void run()
  29.                     {
  30.                         //cancel them if they are no longer being rained on
  31.                         if (!rainedOn.contains(player.getName()))
  32.                         {
  33.                             plugin.getServer().getScheduler().cancelTask(tids.get(player.getName()));
  34.                             tids.remove(player.getName());
  35.                         }
  36.  
  37.                         final Item i = world.dropItemNaturally(location, is);
  38.                         i.setPickupDelay(Integer.MAX_VALUE);
  39.  
  40.                         plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable()
  41.                         {
  42.                             @Override
  43.                             public void run()
  44.                             {
  45.                                 i.remove();
  46.                             }
  47.  
  48.                         }, 20L);
  49.                     }
  50.  
  51.                 }, 0L, 10L));
  52.  
  53.     }
  54.  
  55.     public void stopItemRain(Player player)
  56.     {
  57.         rainedOn.remove(player.getName());
  58.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement