Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.pommeskiwi.command;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- import java.util.concurrent.ThreadLocalRandom;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.scheduler.BukkitRunnable;
- import me.pommeskiwi.main.Main;
- public class Gamble implements CommandExecutor, Listener{
- @SuppressWarnings("unused")
- private Main main;
- @SuppressWarnings("unused")
- private Main plugin;
- public List<Inventory> invs = new ArrayList<Inventory>();
- public ItemStack[] contents;
- public int itemIndex = 0;
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
- if(label.equalsIgnoreCase("spin")) {
- if(!(sender instanceof Player)){
- sender.sendMessage("Kein Glücksspiel für die Konsole :(");
- }
- Player player = (Player) sender;
- ItemStack fee = new ItemStack(Material.DIAMOND);
- fee.setAmount(10);
- if (player.getInventory().getItemInMainHand().getType().equals(Material.DIAMOND) && player.getInventory().getItemInMainHand().getAmount() >= 3){
- player.getInventory().removeItem(fee);
- //dreh die GUI !!
- spin(player);
- return true;
- }
- player.sendMessage("§7Du benötigst §l§910 Diamanten§7, um zu spielen");
- return true;
- }
- return false;
- }
- public void shuffle(Inventory inv){
- if(contents == null){
- ItemStack[] items = new ItemStack[32];
- //Normal Gewinn
- items[0] = new ItemStack(Material.DIRT, 32);
- items[1] = new ItemStack(Material.EGG, 16);
- items[2] = new ItemStack(Material.APPLE, 64);
- items[3] = new ItemStack(Material.GLASS, 32);
- items[4] = new ItemStack(Material.JUNGLE_WOOD, 25);
- items[5] = new ItemStack(Material.CACTUS, 3);
- items[6] = new ItemStack(Material.HONEY_BOTTLE, 2);
- items[7] = new ItemStack(Material.ARROW, 12);
- items[8] = new ItemStack(Material.IRON_NUGGET, 30);
- items[9] = new ItemStack(Material.CAKE, 2);
- items[10] = new ItemStack(Material.STICK, 34);
- items[11] = new ItemStack(Material.SUNFLOWER, 11);
- items[12] = new ItemStack(Material.BREAD, 45);
- items[13] = new ItemStack(Material.SEAGRASS, 32);
- items[14] = new ItemStack(Material.RED_TULIP, 64);
- items[15] = new ItemStack(Material.YELLOW_STAINED_GLASS,23);
- //Selten Gewinn
- items[16] = new ItemStack(Material.ICE, 2);
- items[17] = new ItemStack(Material.WET_SPONGE, 5);
- items[18] = new ItemStack(Material.BEE_SPAWN_EGG, 2);
- items[19] = new ItemStack(Material.BEE_NEST, 2);
- items[20] = new ItemStack(Material.DISPENSER, 1);
- items[21] = new ItemStack(Material.BLUE_SHULKER_BOX, 1);
- //EPIC Gewinn
- items[22] = new ItemStack(Material.DIAMOND, 10);
- items[23] = new ItemStack(Material.COW_SPAWN_EGG, 4);
- items[24] = new ItemStack(Material.SHEEP_SPAWN_EGG, 4);
- items[25] = new ItemStack(Material.PIG_SPAWN_EGG, 4);
- items[26] = new ItemStack(Material.SPAWNER, 1);
- //Extream Gewinn
- items[27] = new ItemStack(Material.ELYTRA, 1);
- items[28] = new ItemStack(Material.GOLDEN_APPLE, 4);
- items[29] = new ItemStack(Material.NETHER_STAR, 2);
- items[30] = new ItemStack(Material.EXPERIENCE_BOTTLE, 10);
- items[31] = new ItemStack(Material.NOTE_BLOCK, 1);
- contents = items;
- }
- int startingIndex = ThreadLocalRandom.current().nextInt(contents.length);
- for (int index = 0; index < startingIndex; index++){
- for(int itemstacks = 9; itemstacks < 18; itemstacks++){
- inv.setItem(itemstacks, contents[(itemstacks + itemIndex)% contents.length]);
- }
- itemIndex++;
- }
- //Customsize
- ItemStack item = new ItemStack(Material.HOPPER);
- ItemMeta meta = item.getItemMeta();
- meta.setDisplayName("§7§l|");
- item.setItemMeta(meta);
- inv.setItem(4, item);
- ItemStack randItem = new ItemStack(Material.GRAY_STAINED_GLASS_PANE);
- ItemMeta randMeta = randItem.getItemMeta();
- randMeta.setDisplayName("§7 ");
- randItem.setItemMeta(randMeta);
- inv.setItem(0, randItem);
- inv.setItem(1, randItem);
- inv.setItem(2, randItem);
- inv.setItem(3, randItem);
- inv.setItem(5, randItem);
- inv.setItem(6, randItem);
- inv.setItem(7, randItem);
- inv.setItem(8, randItem);
- inv.setItem(18, randItem);
- inv.setItem(19, randItem);
- inv.setItem(20, randItem);
- inv.setItem(21, randItem);
- inv.setItem(22, randItem);
- inv.setItem(23, randItem);
- inv.setItem(24, randItem);
- inv.setItem(25, randItem);
- inv.setItem(26, randItem);
- }
- public void spin(final Player player){
- Inventory inv = Bukkit.createInventory(null, 27, "§e§lViel Glück!");
- shuffle(inv);
- invs.add(inv);
- player.openInventory(inv);
- Random r = new Random();
- double seconds = 7.0 + (12.0 - 7.0) * r.nextDouble();
- new BukkitRunnable(){
- double delay = 0;
- int ticks = 0;
- boolean done = false;
- public void run(){
- if(done)
- return;
- ticks++;
- delay += 1 / (20 *seconds);
- if(ticks > delay *10){
- ticks = 0;
- for(int itemstacks = 9; itemstacks < 18; itemstacks++)
- inv.setItem(itemstacks,contents[(itemstacks + itemIndex)% contents.length]);
- itemIndex++;
- if(delay >= .5){
- done = true;
- new BukkitRunnable(){
- public void run(){
- ItemStack item = inv.getItem(13);
- player.getInventory().addItem(item);
- player.updateInventory();
- player.closeInventory();
- cancel();
- }
- }.runTaskLater(Main.getPlugin(Main.class), 50);
- cancel();
- }
- }
- }
- }.runTaskTimer(Main.getPlugin(Main.class), 0, 1);
- }
- @EventHandler
- public void onClick(InventoryClickEvent event){
- if(!invs.contains(event.getInventory()))
- return;
- event.setCancelled(true);
- return;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement