Advertisement
Guest User

Untitled

a guest
Feb 24th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.90 KB | None | 0 0
  1. package de.Set;
  2.  
  3. import java.io.File;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.Collections;
  7. import java.util.List;
  8. import java.util.Random;
  9.  
  10. import org.bukkit.Bukkit;
  11. import org.bukkit.Material;
  12. import org.bukkit.Sound;
  13. import org.bukkit.entity.Player;
  14. import org.bukkit.inventory.Inventory;
  15. import org.bukkit.inventory.ItemStack;
  16. import org.bukkit.scheduler.BukkitRunnable;
  17.  
  18.  
  19. public class CrateSystem {
  20.  
  21. private FileBuilder f;
  22. private String name;
  23.  
  24. public CrateSystem(String name) {
  25. this.f = new FileBuilder("plugins//SkyPvP//Crates//", name + ".yml");
  26. this.name = name;
  27. }
  28.  
  29. public static List<CrateSystem> getCrates() {
  30. List<CrateSystem> temp = new ArrayList<>();
  31. File dir = new File("plugins//SkyPvP//Crates//");
  32.  
  33. for(File f : dir.listFiles()) {
  34. if(f.isFile()) {
  35. temp.add(new CrateSystem(f.getName().replaceAll(".yml", "")));
  36. }
  37. }
  38.  
  39. return temp;
  40. }
  41.  
  42. public String getName() {
  43. return this.name;
  44. }
  45.  
  46. public CrateSystem create() {
  47. f.setValue("material", Material.CHEST.toString());
  48. f.setValue("description", Arrays.asList("Ändere diese Beschreibung!"));
  49.  
  50. f.save();
  51. return this;
  52. }
  53.  
  54. public List<String> getDescription() {
  55. return f.getStringList("description");
  56. }
  57.  
  58. public CrateSystem delete() {
  59. f.delete();
  60.  
  61. return this;
  62. }
  63.  
  64. public CrateSystem setDisplayMaterial(Material m) {
  65. f.setValue("material", m.toString());
  66. return this;
  67. }
  68. public org.bukkit.Material getDisplayMaterial() {
  69. return org.bukkit.Material.valueOf(f.getString("material"));
  70. }
  71.  
  72. public CrateSystem setItems(Inventory inv) {
  73. f.setValue("items", inv.getContents());
  74. f.save();
  75. return this;
  76. }
  77.  
  78. public List<ItemStack> getItems() {
  79. List<ItemStack> temp = new ArrayList<>();
  80. @SuppressWarnings("unchecked")
  81. ItemStack[] contents = ((List<ItemStack>)f.getObject("items")).toArray(new ItemStack[0]);
  82.  
  83. for(int i = 0; i < contents.length; i++) {
  84. if(contents[i] != null) {
  85. temp.add(contents[i]);
  86. }
  87. }
  88.  
  89. return temp;
  90. }
  91.  
  92. public static Inventory getCrateSelectionInventory() {
  93.  
  94. Inventory inv = Bukkit.createInventory(null, 9*3, "§6§lCase Opening");
  95.  
  96. for(CrateSystem c : CrateSystem.getCrates()) {
  97. inv.addItem(new ItemBuilder(c.getDisplayMaterial(), 1).setName(c.getName()).build());
  98. }
  99.  
  100. return inv;
  101.  
  102. }
  103.  
  104. public void startAnimation(Player p) {
  105.  
  106. List<ItemStack> temp = getItems();
  107.  
  108. Collections.shuffle(temp);
  109. Inventory inv = Bukkit.createInventory(null, 9*3, "§6§lCase Opening");
  110.  
  111. for(int i = 0; i < inv.getSize(); i++) {
  112. inv.setItem(0, new ItemBuilder(Material.STAINED_GLASS_PANE, 1, (short) 15).setName("§6").build());
  113. }
  114. inv.setItem(4, new ItemBuilder(Material.HOPPER, 1).setName("§a§lGewinn").build());
  115.  
  116. p.openInventory(inv);
  117.  
  118. new BukkitRunnable() {
  119.  
  120. private final Player curr = p;
  121. private long sleep = 0;
  122. private long turns = 40;
  123. @Override
  124. public void run() {
  125.  
  126. if(curr == null) {
  127. this.cancel();
  128. int id = 0;
  129.  
  130. for(int i = 9; i<17; i++) {
  131. inv.setItem(i, temp.get(id));
  132. }
  133. id++;
  134. }
  135.  
  136. p.playSound(p.getLocation(), Sound.NOTE_PLING, 1F, 1F);
  137. temp.add(temp.get(0));
  138. temp.remove(0);
  139.  
  140.  
  141. if(p.getOpenInventory() == null) {
  142. this.cancel();
  143. p.getInventory().addItem(temp.get(new Random().nextInt(temp.size() - 1)));
  144. }
  145.  
  146. turns--;
  147.  
  148.  
  149. if(turns <= 10) {
  150. sleep = sleep+100;
  151. try {
  152. Thread.sleep(sleep);
  153.  
  154. } catch (InterruptedException e) {
  155.  
  156. e.printStackTrace();
  157. }
  158. }
  159.  
  160. if(sleep == 1000) {
  161. this.cancel();
  162. p.getInventory().addItem(inv.getItem(13));
  163. p.sendMessage("§7Du hast §e"+ inv.getItem(13).getType().name().toString()+" §a§lGewonnen");
  164. }
  165.  
  166. }
  167. }.runTaskTimer(Main.getInstance(), 0, 5);
  168. }
  169.  
  170. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement