Advertisement
Lonely_Wanderer

InfinityBucket

Aug 20th, 2017
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.13 KB | None | 0 0
  1. package IB;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4.  
  5. import org.bukkit.Location;
  6. import org.bukkit.Material;
  7. import org.bukkit.block.Block;
  8. import org.bukkit.block.BlockFace;
  9. import org.bukkit.command.Command;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.configuration.file.FileConfiguration;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.block.Action;
  16. import org.bukkit.event.player.PlayerBucketEmptyEvent;
  17. import org.bukkit.event.player.PlayerBucketFillEvent;
  18. import org.bukkit.event.player.PlayerInteractEvent;
  19. import org.bukkit.inventory.ItemStack;
  20. import org.bukkit.inventory.meta.ItemMeta;
  21. import org.bukkit.plugin.java.JavaPlugin;
  22.  
  23. public class InfinityBucket extends JavaPlugin implements Listener{
  24.     FileConfiguration conf = getConfig();
  25.     public ItemStack shit;
  26.     Player p;
  27.     public void onEnable() {
  28.         getServer().getPluginManager().registerEvents(this, this);
  29.     }
  30.    
  31.     public void onDisable() {
  32.         super.onDisable();
  33.     }
  34.     @EventHandler
  35.     public void useIB(PlayerInteractEvent e){
  36.         Player p=e.getPlayer();
  37.         if(e.getItem().getItemMeta().getDisplayName().equalsIgnoreCase("IB")
  38.                 && (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)
  39.                         || e.getAction().equals(Action.RIGHT_CLICK_AIR) )){
  40.             shit = e.getItem();
  41.         }  
  42.         if(e.getItem().getItemMeta().getDisplayName().equalsIgnoreCase("IB") && p.isSneaking() && e.getAction().equals(Action.LEFT_CLICK_AIR)){
  43.             switchMode(p);
  44.         }
  45.     }
  46.    
  47.     @EventHandler
  48.     public void outBucket(PlayerBucketEmptyEvent e){
  49.         p = e.getPlayer();
  50.         if(p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals("IB")){
  51.             Block bl=magic(e.getBlockClicked(), e.getBlockFace());
  52.             ItemMeta meta = shit.getItemMeta();
  53.             e.setCancelled(true);
  54.             List<String> lore = meta.getLore();
  55.             if(Integer.parseInt(lore.get(3))!=0 || Integer.parseInt(lore.get(1))!=0){
  56.                 if(e.getBucket().equals(Material.LAVA_BUCKET) && Integer.parseInt(lore.get(3))!=0){
  57.                     lore.set(3,""+( Integer.parseInt(lore.get(3))-1));
  58.                     bl.setType(Material.LAVA);
  59.                 }else if(e.getBucket().equals(Material.WATER_BUCKET) && Integer.parseInt(lore.get(1))!=0 && !p.getWorld().getName().equals(conf.get("Nether"))){
  60.                     lore.set(1,""+( Integer.parseInt(lore.get(1))-1));
  61.                     bl.setType(Material.WATER);
  62.                 }
  63.                 meta.setLore(lore);
  64.                 shit.setItemMeta(meta);
  65.                 p.getInventory().setItemInMainHand(shit);
  66.             }
  67.         }
  68.     }
  69.    
  70.    
  71.     @EventHandler
  72.     public void fillBucket(PlayerBucketFillEvent e){
  73.         p = e.getPlayer();
  74.         if(p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals("IB")){
  75.             Block bl=magic(e.getBlockClicked(), e.getBlockFace());
  76.             ItemMeta meta = shit.getItemMeta();
  77.             e.setCancelled(true);
  78.             List<String> lore = meta.getLore();
  79.             if(bl.getType().equals(Material.STATIONARY_LAVA) || bl.getType().equals(Material.LAVA)){
  80.                 lore.set(3,""+( Integer.parseInt(lore.get(3))+1));
  81.             }else if(bl.getType().equals(Material.STATIONARY_WATER) || bl.getType().equals(Material.WATER)){
  82.                 lore.set(1,""+( Integer.parseInt(lore.get(1))+1));
  83.             }
  84.             bl.setType(Material.AIR);
  85.             meta.setLore(lore);
  86.             shit.setItemMeta(meta);
  87.             p.getInventory().setItemInMainHand(shit);
  88.         }
  89.     }
  90.     @Override
  91.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  92.         if(!(sender instanceof Player)) return false;
  93.         p=(Player) sender;
  94.         if(!p.isOp()) return false;
  95.         switch(command.getName()){
  96.             case "ib":  p.getInventory().addItem(MyBucket.giveBucket()); break;
  97.             case "ibNETHER": conf.set("Nether", p.getWorld().getName()); saveConfig(); break;
  98.         }
  99.         return true;
  100.     }
  101.    
  102.     public Block magic(Block b, BlockFace bf){
  103.         Location loc=b.getLocation();
  104.         switch(bf){
  105.             case UP:    loc.setY(loc.getY()+1); break;
  106.             case DOWN:  loc.setY(loc.getY()-1); break;
  107.            
  108.             case NORTH: loc.setZ(loc.getZ()-1); break;
  109.             case SOUTH: loc.setZ(loc.getZ()+1); break;
  110.            
  111.             case WEST:  loc.setX(loc.getX()-1); break;
  112.             case EAST:  loc.setX(loc.getX()+1); break;
  113.             default: break;
  114.         }
  115.         return loc.getBlock();
  116.     }
  117.     public void switchMode(Player p){
  118.         ItemStack item = p.getInventory().getItemInMainHand();
  119.         ItemMeta meta = item.getItemMeta();
  120.         List<String> lore = meta.getLore();
  121.         switch(lore.get(5)){
  122.             case "insert":
  123.             lore.set(5, "lava");
  124.             item.setType(Material.LAVA_BUCKET);
  125.             break;
  126.             case "lava":
  127.                 lore.set(5, "water");
  128.                 item.setType(Material.WATER_BUCKET);
  129.             break;
  130.             case "water":
  131.                 lore.set(5, "insert");
  132.                 item.setType(Material.BUCKET);
  133.             break;
  134.         }
  135.        
  136.         meta.setLore(lore);
  137.         item.setItemMeta(meta);
  138.         p.getInventory().setItemInMainHand(item);
  139.     }
  140. }
  141.  
  142. class MyBucket extends ItemStack{
  143.     ItemStack bucket = new ItemStack(Material.BUCKET);
  144.     ItemMeta meta = bucket.getItemMeta();
  145.     List<String> lore = new ArrayList<String>();
  146.     public MyBucket(){
  147.         lore.add("Water: ");
  148.         lore.add(""+0);
  149.         lore.add("Lava: ");
  150.         lore.add(""+0);
  151.         lore.add("Mode:");
  152.         lore.add("insert");
  153.         meta.setLore(lore);
  154.         meta.setDisplayName("IB");
  155.         bucket.setItemMeta(meta);
  156.     }
  157.    
  158.     public static ItemStack giveBucket(){
  159.         return new MyBucket().bucket;
  160.     }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement