Advertisement
Guest User

Gamble

a guest
Sep 7th, 2020
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.24 KB | None | 0 0
  1. package me.pommeskiwi.command;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Random;
  6. import java.util.concurrent.ThreadLocalRandom;
  7.  
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.Material;
  10. import org.bukkit.command.Command;
  11. import org.bukkit.command.CommandExecutor;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.event.EventHandler;
  15. import org.bukkit.event.Listener;
  16. import org.bukkit.event.inventory.InventoryClickEvent;
  17. import org.bukkit.inventory.Inventory;
  18. import org.bukkit.inventory.ItemStack;
  19. import org.bukkit.inventory.meta.ItemMeta;
  20. import org.bukkit.scheduler.BukkitRunnable;
  21.  
  22. import me.pommeskiwi.main.Main;
  23.  
  24. public class Gamble implements CommandExecutor, Listener{
  25.  
  26. @SuppressWarnings("unused")
  27. private Main main;
  28.  
  29. @SuppressWarnings("unused")
  30. private Main plugin;
  31.  
  32.  
  33. public List<Inventory> invs = new ArrayList<Inventory>();
  34. public ItemStack[] contents;
  35. public int itemIndex = 0;
  36.  
  37. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
  38. if(label.equalsIgnoreCase("spin")) {
  39. if(!(sender instanceof Player)){
  40. sender.sendMessage("Kein Glücksspiel für die Konsole :(");
  41.  
  42. }
  43. Player player = (Player) sender;
  44. ItemStack fee = new ItemStack(Material.DIAMOND);
  45. fee.setAmount(10);
  46. if (player.getInventory().getItemInMainHand().getType().equals(Material.DIAMOND) && player.getInventory().getItemInMainHand().getAmount() >= 3){
  47. player.getInventory().removeItem(fee);
  48. //dreh die GUI !!
  49. spin(player);
  50. return true;
  51. }
  52. player.sendMessage("§7Du benötigst §l§910 Diamanten§7, um zu spielen");
  53. return true;
  54.  
  55.  
  56.  
  57.  
  58.  
  59. }
  60.  
  61. return false;
  62.  
  63. }
  64. public void shuffle(Inventory inv){
  65. if(contents == null){
  66. ItemStack[] items = new ItemStack[32];
  67. //Normal Gewinn
  68. items[0] = new ItemStack(Material.DIRT, 32);
  69. items[1] = new ItemStack(Material.EGG, 16);
  70. items[2] = new ItemStack(Material.APPLE, 64);
  71. items[3] = new ItemStack(Material.GLASS, 32);
  72. items[4] = new ItemStack(Material.JUNGLE_WOOD, 25);
  73. items[5] = new ItemStack(Material.CACTUS, 3);
  74. items[6] = new ItemStack(Material.HONEY_BOTTLE, 2);
  75. items[7] = new ItemStack(Material.ARROW, 12);
  76. items[8] = new ItemStack(Material.IRON_NUGGET, 30);
  77. items[9] = new ItemStack(Material.CAKE, 2);
  78. items[10] = new ItemStack(Material.STICK, 34);
  79. items[11] = new ItemStack(Material.SUNFLOWER, 11);
  80. items[12] = new ItemStack(Material.BREAD, 45);
  81. items[13] = new ItemStack(Material.SEAGRASS, 32);
  82. items[14] = new ItemStack(Material.RED_TULIP, 64);
  83. items[15] = new ItemStack(Material.YELLOW_STAINED_GLASS,23);
  84. //Selten Gewinn
  85. items[16] = new ItemStack(Material.ICE, 2);
  86. items[17] = new ItemStack(Material.WET_SPONGE, 5);
  87. items[18] = new ItemStack(Material.BEE_SPAWN_EGG, 2);
  88. items[19] = new ItemStack(Material.BEE_NEST, 2);
  89. items[20] = new ItemStack(Material.DISPENSER, 1);
  90. items[21] = new ItemStack(Material.BLUE_SHULKER_BOX, 1);
  91. //EPIC Gewinn
  92. items[22] = new ItemStack(Material.DIAMOND, 10);
  93. items[23] = new ItemStack(Material.COW_SPAWN_EGG, 4);
  94. items[24] = new ItemStack(Material.SHEEP_SPAWN_EGG, 4);
  95. items[25] = new ItemStack(Material.PIG_SPAWN_EGG, 4);
  96. items[26] = new ItemStack(Material.SPAWNER, 1);
  97. //Extream Gewinn
  98. items[27] = new ItemStack(Material.ELYTRA, 1);
  99. items[28] = new ItemStack(Material.GOLDEN_APPLE, 4);
  100. items[29] = new ItemStack(Material.NETHER_STAR, 2);
  101. items[30] = new ItemStack(Material.EXPERIENCE_BOTTLE, 10);
  102. items[31] = new ItemStack(Material.NOTE_BLOCK, 1);
  103.  
  104.  
  105. contents = items;
  106. }
  107. int startingIndex = ThreadLocalRandom.current().nextInt(contents.length);
  108.  
  109. for (int index = 0; index < startingIndex; index++){
  110. for(int itemstacks = 9; itemstacks < 18; itemstacks++){
  111. inv.setItem(itemstacks, contents[(itemstacks + itemIndex)% contents.length]);
  112. }
  113. itemIndex++;
  114. }
  115. //Customsize
  116. ItemStack item = new ItemStack(Material.HOPPER);
  117. ItemMeta meta = item.getItemMeta();
  118. meta.setDisplayName("§7§l|");
  119. item.setItemMeta(meta);
  120. inv.setItem(4, item);
  121.  
  122. ItemStack randItem = new ItemStack(Material.GRAY_STAINED_GLASS_PANE);
  123. ItemMeta randMeta = randItem.getItemMeta();
  124. randMeta.setDisplayName("§7 ");
  125. randItem.setItemMeta(randMeta);
  126. inv.setItem(0, randItem);
  127. inv.setItem(1, randItem);
  128. inv.setItem(2, randItem);
  129. inv.setItem(3, randItem);
  130. inv.setItem(5, randItem);
  131. inv.setItem(6, randItem);
  132. inv.setItem(7, randItem);
  133. inv.setItem(8, randItem);
  134. inv.setItem(18, randItem);
  135. inv.setItem(19, randItem);
  136. inv.setItem(20, randItem);
  137. inv.setItem(21, randItem);
  138. inv.setItem(22, randItem);
  139. inv.setItem(23, randItem);
  140. inv.setItem(24, randItem);
  141. inv.setItem(25, randItem);
  142. inv.setItem(26, randItem);
  143.  
  144.  
  145.  
  146.  
  147.  
  148. }
  149.  
  150.  
  151. public void spin(final Player player){
  152. Inventory inv = Bukkit.createInventory(null, 27, "§e§lViel Glück!");
  153. shuffle(inv);
  154. invs.add(inv);
  155. player.openInventory(inv);
  156.  
  157. Random r = new Random();
  158. double seconds = 7.0 + (12.0 - 7.0) * r.nextDouble();
  159.  
  160. new BukkitRunnable(){
  161. double delay = 0;
  162. int ticks = 0;
  163. boolean done = false;
  164.  
  165. public void run(){
  166. if(done)
  167. return;
  168. ticks++;
  169. delay += 1 / (20 *seconds);
  170. if(ticks > delay *10){
  171. ticks = 0;
  172.  
  173. for(int itemstacks = 9; itemstacks < 18; itemstacks++)
  174. inv.setItem(itemstacks,contents[(itemstacks + itemIndex)% contents.length]);
  175.  
  176. itemIndex++;
  177.  
  178. if(delay >= .5){
  179. done = true;
  180. new BukkitRunnable(){
  181. public void run(){
  182. ItemStack item = inv.getItem(13);
  183. player.getInventory().addItem(item);
  184. player.updateInventory();
  185. player.closeInventory();
  186. cancel();
  187.  
  188.  
  189. }
  190. }.runTaskLater(Main.getPlugin(Main.class), 50);
  191. cancel();
  192. }
  193. }
  194. }
  195. }.runTaskTimer(Main.getPlugin(Main.class), 0, 1);
  196. }
  197.  
  198. @EventHandler
  199. public void onClick(InventoryClickEvent event){
  200. if(!invs.contains(event.getInventory()))
  201. return;
  202.  
  203. event.setCancelled(true);
  204. return;
  205.  
  206. }
  207.  
  208.  
  209. }
  210.  
  211.  
  212.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement