Advertisement
Guest User

Ich bin guuht v2

a guest
Oct 1st, 2014
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.72 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.Random;
  4.  
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.Location;
  7. import org.bukkit.Material;
  8. import org.bukkit.block.Block;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.block.Action;
  13. import org.bukkit.event.player.PlayerInteractEvent;
  14. import org.bukkit.inventory.Inventory;
  15. import org.bukkit.inventory.ItemStack;
  16.  
  17. import survivalgames.SurvivalGames;
  18. import static survivalgames.Util.*;
  19. import survivalgames.util.State;
  20.  
  21. public class Chests implements Listener{
  22.    
  23.     public static HashMap<Location, Inventory> chests = new HashMap<Location, Inventory>();
  24.     int diamant = 0;
  25.     int eisen = 0;
  26.    
  27.     SurvivalGames plugin;
  28.    
  29.     public Chests(SurvivalGames plugin){
  30.         this.plugin = plugin;
  31.         plugin.getServer().getPluginManager().registerEvents(this, plugin);
  32.         new Chests(plugin);
  33.     }
  34.    
  35.     @EventHandler
  36.     public void onClick(PlayerInteractEvent e){
  37.         if(getState() != State.INGAME) return;
  38.         Player p = e.getPlayer();
  39.         if(PlayerManager.isSpectator(p)) return;
  40.         if(e.getAction() == Action.RIGHT_CLICK_BLOCK){
  41.             Block b = e.getClickedBlock();
  42.             if (b.getType() == Material.CHEST) {
  43.                 p.closeInventory();
  44.                 e.setCancelled(true);
  45.                 Location loc = b.getLocation();
  46.                 this.openChest(p, loc, false);
  47.                 return;
  48.                
  49. //              if(b.getData() == (byte) 6){
  50. //                  //Tier 1
  51. //                  Location loc = b.getLocation();
  52. //                  this.openChest(p, loc, false);
  53. //                  return;
  54. //              }else if(b.getData() == (byte) 7){
  55. //                  //Tier 2
  56. //                  Location loc = b.getLocation();
  57. //                  this.openChest(p, loc, true);
  58. //                  return;
  59. //              }
  60.             }
  61.         }
  62.     }
  63.    
  64.     public void openChest(Player p, Location loc, boolean tier){
  65.            
  66.             if(!chests.containsKey(loc)){
  67.                 if(tier){
  68.                     Inventory inv = Bukkit.createInventory(null, 3*9, "§8SurvivalChest");
  69.                    
  70.                     int items = randomInteger(4, 6);
  71.                    
  72.                     int max = Items.highitemslist.size() - 1;
  73.                
  74.                     for(int i = 0; i < items; i++){
  75.                         int itemnumber = randomInteger(0, max);
  76.                         ItemStack item = Items.highitemslist.get(itemnumber);
  77.                         if(inv.contains(item.getType())){
  78.                             i++;
  79.                             break;
  80.                         }
  81.                         int slot = randomInteger(0, 26);
  82.                         inv.setItem(slot, item);
  83.                         p.openInventory(inv);
  84.                         Chests.chests.put(loc, inv);
  85. //                      SGStats.addChestOpened(p);
  86.                     }
  87.                 }else{
  88.                     Inventory inv = Bukkit.createInventory(null, 3*9, "§7SurvivalChest");
  89.                    
  90.                     int items = randomInteger(4, 6);
  91.                    
  92.                     int max = Items.itemslist.size() - 1;                      
  93.                    
  94.                     for (int i = 0; i < items; i++) {
  95.                         int itemnumber = randomInteger(0, max);
  96.                         ItemStack item = Items.itemslist.get(itemnumber);
  97.                         if(inv.contains(item.getType())){
  98.                             i--;
  99.                             break;
  100.                         }else if(item.getType() == Material.DIAMOND){
  101.                             diamant++;
  102.                         }else if(item.getType() == Material.IRON_INGOT){
  103.                             eisen++;
  104.                         }
  105.                         int slot = randomInteger(0, 26);
  106.                         inv.setItem(slot, item);
  107.                     }
  108.                     p.openInventory(inv);
  109.                     Chests.chests.put(loc, inv);
  110. //                  SGStats.addChestOpened(p);
  111.                 }
  112.             }else{
  113.                 p.openInventory(chests.get(loc));
  114.             }
  115.            
  116.     }
  117.    
  118.     public static class Items {
  119.  
  120.         public static final ArrayList<ItemStack> itemslist = new ArrayList<ItemStack>();
  121.         public static final ArrayList<ItemStack> highitemslist = new ArrayList<ItemStack>();
  122.        
  123.         /*
  124.          * WOOD_SWORD
  125.          * STONE_SWORD
  126.          * STONE_AXE
  127.          * WOOD_AXE
  128.          * IRON_AXE
  129.          * GOLD_SWORD
  130.          *
  131.          * WHEAT
  132.          * RAW_BEEF
  133.          * COOKED_BEEF
  134.          * RAW_CHICKEN
  135.          * COOKED_CHICKEN
  136.          * COOKED_SALOMON
  137.          *
  138.          * BOW
  139.          * ARROW
  140.          * DIAMOND
  141.          * IRON_INGOT
  142.          * GOLD_INGOT
  143.          *
  144.          * BAKED_POTATO
  145.          * POTATO
  146.          *
  147.          * EXP_BOTTLE
  148.          *
  149.          * APPLE
  150.          * RAW_FISH
  151.          * COOKED_FISH
  152.          *
  153.          * FISHING_ROD
  154.          * BONE
  155.          * FEATHER
  156.          */
  157.        
  158.         public Items() {
  159.            
  160.             //SPECIALS
  161.             addItem(Material.FLINT, 1);
  162.             addItem(Material.STICK, 2);
  163.             addItem(Material.FISHING_ROD, 1);
  164.             addItem(Material.BONE, 1);
  165.             addItem(Material.FEATHER, 1);
  166.             addHighItem(Material.EXP_BOTTLE, 2);
  167.             addHighItem(Material.EXP_BOTTLE, 2);
  168.             addItem(Material.EXP_BOTTLE, 1);
  169.             addHighItem(Material.IRON_INGOT, 1);
  170.             addItem(Material.GOLD_INGOT, 1);
  171.             addItem(Material.GOLD_INGOT, 2);
  172.             addHighItem(Material.DIAMOND, 1);
  173.            
  174.             //WAFFEN
  175.             addItem(Material.WOOD_SWORD, 1);
  176.             addItem(Material.WOOD_AXE, 1);
  177.             addItem(Material.STONE_SWORD, 1);
  178.             addItem(Material.STONE_AXE, 1);
  179.             addItem(Material.IRON_AXE, 1);
  180.             addItem(Material.BOW, 1);
  181.             addItem(Material.ARROW, 2);
  182.             addItem(Material.ARROW, 3);
  183.             addItem(Material.ARROW, 4);
  184.             addHighItem(Material.STONE_SWORD, 1);
  185.             addHighItem(Material.IRON_AXE, 1);
  186.             addHighItem(Material.BOW, 1);
  187.             addHighItem(Material.ARROW, 3);
  188.             addHighItem(Material.ARROW, 4);
  189.             addHighItem(Material.ARROW, 4);
  190.             addItem(Material.STICK, 2);
  191.             addItem(Material.STICK, 2);
  192.             addItem(Material.STICK, 2);
  193.             addItem(Material.STICK, 2);
  194.            
  195.             //ESSEN
  196.             addItem(Material.WHEAT, 2);
  197.             addItem(Material.WHEAT, 3);
  198.             addItem(Material.RAW_BEEF, 1);
  199.             addItem(Material.RAW_CHICKEN, 2);
  200.             addHighItem(Material.WHEAT, 2);
  201.             addHighItem(Material.WHEAT, 6);
  202.             addHighItem(Material.COOKED_BEEF, 1);
  203.            
  204.             addHighItem(Material.COOKED_CHICKEN, 1);
  205.             addItem(Material.POTATO_ITEM, 2);
  206.             addItem(Material.BAKED_POTATO, 1);
  207.             addItem(Material.RAW_FISH, 2, 1);
  208.             addItem(Material.RAW_FISH, 3, 1);
  209.             addHighItem(Material.POTATO_ITEM, 2);
  210.             addHighItem(Material.BAKED_POTATO, 1);
  211.             addHighItem(Material.RAW_FISH, 2, 1);
  212.             addHighItem(Material.RAW_FISH, 3, 1);
  213.             addHighItem(Material.COOKED_FISH, 2, 1);
  214.             addHighItem(Material.COOKED_FISH, 3, 1);
  215.             addItem(Material.APPLE, 2);
  216.             addItem(Material.APPLE, 3);
  217.             addHighItem(Material.APPLE, 2);
  218.             addHighItem(Material.APPLE, 3);
  219.             addHighItem(Material.GOLDEN_APPLE, 1);
  220.            
  221.             addItem(Material.WOOD_SWORD, 1);
  222.             addItem(Material.WOOD_AXE, 1);
  223.             addItem(Material.STONE_SWORD, 1);
  224.             addItem(Material.STONE_AXE, 1);
  225.             addItem(Material.IRON_AXE, 1);
  226.             addItem(Material.BOW, 1);
  227.            
  228.             //RÜSTUNG
  229.             itemslist.add(new ItemStack(Material.CHAINMAIL_BOOTS,1));
  230.             itemslist.add(new ItemStack(Material.CHAINMAIL_HELMET, 1));
  231.             itemslist.add(new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1));
  232.             itemslist.add(new ItemStack(Material.CHAINMAIL_LEGGINGS,1));
  233.             itemslist.add(new ItemStack(Material.LEATHER_BOOTS,1));
  234.             itemslist.add(new ItemStack(Material.LEATHER_CHESTPLATE,1));
  235.             itemslist.add(new ItemStack(Material.LEATHER_HELMET,1));
  236.             itemslist.add(new ItemStack(Material.LEATHER_LEGGINGS,1));
  237.             itemslist.add(new ItemStack(Material.GOLD_HELMET,1));
  238.             itemslist.add(new ItemStack(Material.GOLD_CHESTPLATE,1));
  239.             itemslist.add(new ItemStack(Material.GOLD_LEGGINGS,1));
  240.             itemslist.add(new ItemStack(Material.GOLD_BOOTS,1));
  241.             itemslist.add(new ItemStack(Material.GOLD_SWORD,1));
  242.             itemslist.add(new ItemStack(Material.GOLD_INGOT,1));
  243.             /*
  244.             itemslist.add(new ItemStack(Material.IRON_BOOTS,1));
  245.             itemslist.add(new ItemStack(Material.IRON_CHESTPLATE,1));
  246.             itemslist.add(new ItemStack(Material.IRON_LEGGINGS,1));
  247.             itemslist.add(new ItemStack(Material.IRON_HELMET,1));
  248.             */
  249.             addHighItem(Material.IRON_BOOTS, 1);
  250.             addHighItem(Material.IRON_LEGGINGS, 1);
  251.             addHighItem(Material.IRON_CHESTPLATE, 1);
  252.             addHighItem(Material.IRON_HELMET, 1);
  253.             addHighItem(Material.IRON_INGOT, 1);
  254.             addHighItem(Material.DIAMOND, 1);
  255.             addHighItem(Material.WOOD_SWORD, 1);
  256.             addHighItem(Material.STONE_SWORD, 1);
  257.            
  258.             addHighItem(Material.IRON_BOOTS, 1);
  259.             addHighItem(Material.IRON_LEGGINGS, 1);
  260.             addHighItem(Material.IRON_CHESTPLATE, 1);
  261.             addHighItem(Material.IRON_HELMET, 1);
  262.             addHighItem(Material.IRON_INGOT, 1);
  263.             addHighItem(Material.DIAMOND, 1);
  264.             addHighItem(Material.WOOD_SWORD, 1);
  265.             addHighItem(Material.STONE_SWORD, 1);
  266.            
  267.             //SCHLECHTE WAFFEN
  268.             addItem(Material.WOOD_SWORD, 1);
  269.             addItem(Material.WOOD_AXE, 1);
  270.             addItem(Material.STONE_SWORD, 1);
  271.             addItem(Material.STONE_AXE, 1);
  272.             addItem(Material.IRON_AXE, 1);
  273.             addItem(Material.BOW, 1);
  274.            
  275.         }
  276.        
  277.         public void addItem(Material mat, int amount){
  278.             itemslist.add(new ItemStack(mat, amount));
  279.         }
  280.        
  281.         public void addItem(Material mat, int amount, int subid){
  282.             itemslist.add(new ItemStack(mat, amount, (short) subid));
  283.         }
  284.        
  285.         public void addHighItem(Material mat, int amount){
  286.             highitemslist.add(new ItemStack(mat, amount));
  287.         }
  288.        
  289.         public void addHighItem(Material mat, int amount, int subid){
  290.             highitemslist.add(new ItemStack(mat, amount, (short) subid));
  291.         }
  292.        
  293.     }
  294.    
  295.     public static int randomInteger(int min, int max){
  296.         Random r = new Random();
  297.         return min + r.nextInt(Math.abs(max-min+1));
  298.     }
  299.    
  300. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement