Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.Set;
- import java.io.File;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.Collections;
- import java.util.List;
- import java.util.Random;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.Sound;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.scheduler.BukkitRunnable;
- public class CrateSystem {
- private FileBuilder f;
- private String name;
- public CrateSystem(String name) {
- this.f = new FileBuilder("plugins//SkyPvP//Crates//", name + ".yml");
- this.name = name;
- }
- public static List<CrateSystem> getCrates() {
- List<CrateSystem> temp = new ArrayList<>();
- File dir = new File("plugins//SkyPvP//Crates//");
- for(File f : dir.listFiles()) {
- if(f.isFile()) {
- temp.add(new CrateSystem(f.getName().replaceAll(".yml", "")));
- }
- }
- return temp;
- }
- public String getName() {
- return this.name;
- }
- public CrateSystem create() {
- f.setValue("material", Material.CHEST.toString());
- f.setValue("description", Arrays.asList("Ändere diese Beschreibung!"));
- f.save();
- return this;
- }
- public List<String> getDescription() {
- return f.getStringList("description");
- }
- public CrateSystem delete() {
- f.delete();
- return this;
- }
- public CrateSystem setDisplayMaterial(Material m) {
- f.setValue("material", m.toString());
- return this;
- }
- public org.bukkit.Material getDisplayMaterial() {
- return org.bukkit.Material.valueOf(f.getString("material"));
- }
- public CrateSystem setItems(Inventory inv) {
- f.setValue("items", inv.getContents());
- f.save();
- return this;
- }
- public List<ItemStack> getItems() {
- List<ItemStack> temp = new ArrayList<>();
- @SuppressWarnings("unchecked")
- ItemStack[] contents = ((List<ItemStack>)f.getObject("items")).toArray(new ItemStack[0]);
- for(int i = 0; i < contents.length; i++) {
- if(contents[i] != null) {
- temp.add(contents[i]);
- }
- }
- return temp;
- }
- public static Inventory getCrateSelectionInventory() {
- Inventory inv = Bukkit.createInventory(null, 9*3, "§6§lCase Opening");
- for(CrateSystem c : CrateSystem.getCrates()) {
- inv.addItem(new ItemBuilder(c.getDisplayMaterial(), 1).setName(c.getName()).build());
- }
- return inv;
- }
- public void startAnimation(Player p) {
- List<ItemStack> temp = getItems();
- Collections.shuffle(temp);
- Inventory inv = Bukkit.createInventory(null, 9*3, "§6§lCase Opening");
- for(int i = 0; i < inv.getSize(); i++) {
- inv.setItem(0, new ItemBuilder(Material.STAINED_GLASS_PANE, 1, (short) 15).setName("§6").build());
- }
- inv.setItem(4, new ItemBuilder(Material.HOPPER, 1).setName("§a§lGewinn").build());
- p.openInventory(inv);
- new BukkitRunnable() {
- private final Player curr = p;
- private long sleep = 0;
- private long turns = 40;
- @Override
- public void run() {
- if(curr == null) {
- this.cancel();
- int id = 0;
- for(int i = 9; i<17; i++) {
- inv.setItem(i, temp.get(id));
- }
- id++;
- }
- p.playSound(p.getLocation(), Sound.NOTE_PLING, 1F, 1F);
- temp.add(temp.get(0));
- temp.remove(0);
- if(p.getOpenInventory() == null) {
- this.cancel();
- p.getInventory().addItem(temp.get(new Random().nextInt(temp.size() - 1)));
- }
- turns--;
- if(turns <= 10) {
- sleep = sleep+100;
- try {
- Thread.sleep(sleep);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
- if(sleep == 1000) {
- this.cancel();
- p.getInventory().addItem(inv.getItem(13));
- p.sendMessage("§7Du hast §e"+ inv.getItem(13).getType().name().toString()+" §a§lGewonnen");
- }
- }
- }.runTaskTimer(Main.getInstance(), 0, 5);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement