Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Random;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.block.Block;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import survivalgames.SurvivalGames;
- import static survivalgames.Util.*;
- import survivalgames.util.State;
- public class Chests implements Listener{
- public static HashMap<Location, Inventory> chests = new HashMap<Location, Inventory>();
- int diamant = 0;
- int eisen = 0;
- SurvivalGames plugin;
- public Chests(SurvivalGames plugin){
- this.plugin = plugin;
- plugin.getServer().getPluginManager().registerEvents(this, plugin);
- new Chests(plugin);
- }
- @EventHandler
- public void onClick(PlayerInteractEvent e){
- if(getState() != State.INGAME) return;
- Player p = e.getPlayer();
- if(PlayerManager.isSpectator(p)) return;
- if(e.getAction() == Action.RIGHT_CLICK_BLOCK){
- Block b = e.getClickedBlock();
- if (b.getType() == Material.CHEST) {
- p.closeInventory();
- e.setCancelled(true);
- Location loc = b.getLocation();
- this.openChest(p, loc, false);
- return;
- // if(b.getData() == (byte) 6){
- // //Tier 1
- // Location loc = b.getLocation();
- // this.openChest(p, loc, false);
- // return;
- // }else if(b.getData() == (byte) 7){
- // //Tier 2
- // Location loc = b.getLocation();
- // this.openChest(p, loc, true);
- // return;
- // }
- }
- }
- }
- public void openChest(Player p, Location loc, boolean tier){
- if(!chests.containsKey(loc)){
- if(tier){
- Inventory inv = Bukkit.createInventory(null, 3*9, "§8SurvivalChest");
- int items = randomInteger(4, 6);
- int max = Items.highitemslist.size() - 1;
- for(int i = 0; i < items; i++){
- int itemnumber = randomInteger(0, max);
- ItemStack item = Items.highitemslist.get(itemnumber);
- if(inv.contains(item.getType())){
- i++;
- break;
- }
- int slot = randomInteger(0, 26);
- inv.setItem(slot, item);
- p.openInventory(inv);
- Chests.chests.put(loc, inv);
- // SGStats.addChestOpened(p);
- }
- }else{
- Inventory inv = Bukkit.createInventory(null, 3*9, "§7SurvivalChest");
- int items = randomInteger(4, 6);
- int max = Items.itemslist.size() - 1;
- for (int i = 0; i < items; i++) {
- int itemnumber = randomInteger(0, max);
- ItemStack item = Items.itemslist.get(itemnumber);
- if(inv.contains(item.getType())){
- i--;
- break;
- }else if(item.getType() == Material.DIAMOND){
- diamant++;
- }else if(item.getType() == Material.IRON_INGOT){
- eisen++;
- }
- int slot = randomInteger(0, 26);
- inv.setItem(slot, item);
- }
- p.openInventory(inv);
- Chests.chests.put(loc, inv);
- // SGStats.addChestOpened(p);
- }
- }else{
- p.openInventory(chests.get(loc));
- }
- }
- public static class Items {
- public static final ArrayList<ItemStack> itemslist = new ArrayList<ItemStack>();
- public static final ArrayList<ItemStack> highitemslist = new ArrayList<ItemStack>();
- /*
- * WOOD_SWORD
- * STONE_SWORD
- * STONE_AXE
- * WOOD_AXE
- * IRON_AXE
- * GOLD_SWORD
- *
- * WHEAT
- * RAW_BEEF
- * COOKED_BEEF
- * RAW_CHICKEN
- * COOKED_CHICKEN
- * COOKED_SALOMON
- *
- * BOW
- * ARROW
- * DIAMOND
- * IRON_INGOT
- * GOLD_INGOT
- *
- * BAKED_POTATO
- * POTATO
- *
- * EXP_BOTTLE
- *
- * APPLE
- * RAW_FISH
- * COOKED_FISH
- *
- * FISHING_ROD
- * BONE
- * FEATHER
- */
- public Items() {
- //SPECIALS
- addItem(Material.FLINT, 1);
- addItem(Material.STICK, 2);
- addItem(Material.FISHING_ROD, 1);
- addItem(Material.BONE, 1);
- addItem(Material.FEATHER, 1);
- addHighItem(Material.EXP_BOTTLE, 2);
- addHighItem(Material.EXP_BOTTLE, 2);
- addItem(Material.EXP_BOTTLE, 1);
- addHighItem(Material.IRON_INGOT, 1);
- addItem(Material.GOLD_INGOT, 1);
- addItem(Material.GOLD_INGOT, 2);
- addHighItem(Material.DIAMOND, 1);
- //WAFFEN
- addItem(Material.WOOD_SWORD, 1);
- addItem(Material.WOOD_AXE, 1);
- addItem(Material.STONE_SWORD, 1);
- addItem(Material.STONE_AXE, 1);
- addItem(Material.IRON_AXE, 1);
- addItem(Material.BOW, 1);
- addItem(Material.ARROW, 2);
- addItem(Material.ARROW, 3);
- addItem(Material.ARROW, 4);
- addHighItem(Material.STONE_SWORD, 1);
- addHighItem(Material.IRON_AXE, 1);
- addHighItem(Material.BOW, 1);
- addHighItem(Material.ARROW, 3);
- addHighItem(Material.ARROW, 4);
- addHighItem(Material.ARROW, 4);
- addItem(Material.STICK, 2);
- addItem(Material.STICK, 2);
- addItem(Material.STICK, 2);
- addItem(Material.STICK, 2);
- //ESSEN
- addItem(Material.WHEAT, 2);
- addItem(Material.WHEAT, 3);
- addItem(Material.RAW_BEEF, 1);
- addItem(Material.RAW_CHICKEN, 2);
- addHighItem(Material.WHEAT, 2);
- addHighItem(Material.WHEAT, 6);
- addHighItem(Material.COOKED_BEEF, 1);
- addHighItem(Material.COOKED_CHICKEN, 1);
- addItem(Material.POTATO_ITEM, 2);
- addItem(Material.BAKED_POTATO, 1);
- addItem(Material.RAW_FISH, 2, 1);
- addItem(Material.RAW_FISH, 3, 1);
- addHighItem(Material.POTATO_ITEM, 2);
- addHighItem(Material.BAKED_POTATO, 1);
- addHighItem(Material.RAW_FISH, 2, 1);
- addHighItem(Material.RAW_FISH, 3, 1);
- addHighItem(Material.COOKED_FISH, 2, 1);
- addHighItem(Material.COOKED_FISH, 3, 1);
- addItem(Material.APPLE, 2);
- addItem(Material.APPLE, 3);
- addHighItem(Material.APPLE, 2);
- addHighItem(Material.APPLE, 3);
- addHighItem(Material.GOLDEN_APPLE, 1);
- addItem(Material.WOOD_SWORD, 1);
- addItem(Material.WOOD_AXE, 1);
- addItem(Material.STONE_SWORD, 1);
- addItem(Material.STONE_AXE, 1);
- addItem(Material.IRON_AXE, 1);
- addItem(Material.BOW, 1);
- //RÜSTUNG
- itemslist.add(new ItemStack(Material.CHAINMAIL_BOOTS,1));
- itemslist.add(new ItemStack(Material.CHAINMAIL_HELMET, 1));
- itemslist.add(new ItemStack(Material.CHAINMAIL_CHESTPLATE, 1));
- itemslist.add(new ItemStack(Material.CHAINMAIL_LEGGINGS,1));
- itemslist.add(new ItemStack(Material.LEATHER_BOOTS,1));
- itemslist.add(new ItemStack(Material.LEATHER_CHESTPLATE,1));
- itemslist.add(new ItemStack(Material.LEATHER_HELMET,1));
- itemslist.add(new ItemStack(Material.LEATHER_LEGGINGS,1));
- itemslist.add(new ItemStack(Material.GOLD_HELMET,1));
- itemslist.add(new ItemStack(Material.GOLD_CHESTPLATE,1));
- itemslist.add(new ItemStack(Material.GOLD_LEGGINGS,1));
- itemslist.add(new ItemStack(Material.GOLD_BOOTS,1));
- itemslist.add(new ItemStack(Material.GOLD_SWORD,1));
- itemslist.add(new ItemStack(Material.GOLD_INGOT,1));
- /*
- itemslist.add(new ItemStack(Material.IRON_BOOTS,1));
- itemslist.add(new ItemStack(Material.IRON_CHESTPLATE,1));
- itemslist.add(new ItemStack(Material.IRON_LEGGINGS,1));
- itemslist.add(new ItemStack(Material.IRON_HELMET,1));
- */
- addHighItem(Material.IRON_BOOTS, 1);
- addHighItem(Material.IRON_LEGGINGS, 1);
- addHighItem(Material.IRON_CHESTPLATE, 1);
- addHighItem(Material.IRON_HELMET, 1);
- addHighItem(Material.IRON_INGOT, 1);
- addHighItem(Material.DIAMOND, 1);
- addHighItem(Material.WOOD_SWORD, 1);
- addHighItem(Material.STONE_SWORD, 1);
- addHighItem(Material.IRON_BOOTS, 1);
- addHighItem(Material.IRON_LEGGINGS, 1);
- addHighItem(Material.IRON_CHESTPLATE, 1);
- addHighItem(Material.IRON_HELMET, 1);
- addHighItem(Material.IRON_INGOT, 1);
- addHighItem(Material.DIAMOND, 1);
- addHighItem(Material.WOOD_SWORD, 1);
- addHighItem(Material.STONE_SWORD, 1);
- //SCHLECHTE WAFFEN
- addItem(Material.WOOD_SWORD, 1);
- addItem(Material.WOOD_AXE, 1);
- addItem(Material.STONE_SWORD, 1);
- addItem(Material.STONE_AXE, 1);
- addItem(Material.IRON_AXE, 1);
- addItem(Material.BOW, 1);
- }
- public void addItem(Material mat, int amount){
- itemslist.add(new ItemStack(mat, amount));
- }
- public void addItem(Material mat, int amount, int subid){
- itemslist.add(new ItemStack(mat, amount, (short) subid));
- }
- public void addHighItem(Material mat, int amount){
- highitemslist.add(new ItemStack(mat, amount));
- }
- public void addHighItem(Material mat, int amount, int subid){
- highitemslist.add(new ItemStack(mat, amount, (short) subid));
- }
- }
- public static int randomInteger(int min, int max){
- Random r = new Random();
- return min + r.nextInt(Math.abs(max-min+1));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement