Guest User

Untitled

a guest
Dec 3rd, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.76 KB | None | 0 0
  1. package ru.lisenochek.realistic.objects;
  2.  
  3. import com.google.common.collect.Lists;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.Location;
  6. import org.bukkit.Material;
  7. import org.bukkit.entity.Player;
  8. import org.bukkit.inventory.Inventory;
  9. import org.bukkit.inventory.ItemStack;
  10. import ru.lisenochek.realistic.utils.Utils;
  11.  
  12. import java.util.*;
  13. import java.util.concurrent.CopyOnWriteArrayList;
  14.  
  15. public class WorkbenchClass {
  16.  
  17. public static HashMap<Location, WorkbenchClass> wbMap = new HashMap<>();
  18.  
  19. private Location workBenchLocation;
  20. private List<Location> cuboid;
  21. private CopyOnWriteArrayList<String> ownersList;
  22.  
  23. private WorkbenchClass(Location workBenchLocation, String... owners) {
  24. this.workBenchLocation = workBenchLocation;
  25. ownersList = Lists.newCopyOnWriteArrayList(Arrays.asList(owners));
  26. cuboid = new ArrayList<>();
  27.  
  28. for (int x = -10; x < 11; x++) {
  29. for (int y = -4; y < 10; y++) {
  30. for (int z = -10; z < 11; z++) {
  31.  
  32. Location location = new Location(workBenchLocation.getWorld(), workBenchLocation.getBlockX() + x, workBenchLocation.getBlockY() + y, workBenchLocation.getBlockZ() + z);
  33. cuboid.add(location);
  34. wbMap.put(location, this);
  35. }
  36. }
  37. }
  38. }
  39.  
  40. public static WorkbenchClass createRegion(Location workBenchLocation, String... owners) {
  41. return new WorkbenchClass(workBenchLocation, owners);
  42. }
  43.  
  44. public List<Location> getCuboid() {
  45. return cuboid;
  46. }
  47.  
  48. public Location getWorkBenchLocation() {
  49. return workBenchLocation;
  50. }
  51.  
  52. public List<String> getOwnersList() {
  53. return ownersList;
  54. }
  55.  
  56. public void addOwner(String playerName) {
  57. if (!isOwner(playerName)) ownersList.add(playerName);
  58. }
  59.  
  60. public void removeOwner(String playerName) {
  61. if (isOwner(playerName)) ownersList.remove(playerName);
  62. }
  63.  
  64. public boolean isOwner(String playerName) {
  65. return ownersList.contains(playerName);
  66. }
  67.  
  68. public void openInventory(Player player) {
  69.  
  70. Inventory inventory = Bukkit.createInventory(null, 9, Utils.stripColor("&2&lШкаф."));
  71.  
  72. inventory.setItem(3, !isOwner(player.getName()) ? Utils.setItemMeta(new ItemStack(Material.BOOK), "&a&l» &e&lАвторизоваться в шкафу.", false, "", "&7Авторизуйтесь в шкафу, чтобы", "&7строить на территории.") : Utils.setItemMeta(new ItemStack(Material.BOOK), "&a&l» &e&lВыписаться из шкафа.", false, "", "&7Выпишитесь из шкафа, если вы ", "&7не хотите строить на территории."));
  73. inventory.setItem(4, Utils.setItemMeta(new ItemStack(Material.BOOK), "&a&l» &e&lВыписать всех из шкафа.", false, "", "&7Выписать всех выживших из шкафа"));
  74.  
  75. StringBuilder builder = new StringBuilder();
  76. Iterator<String> i = ownersList.iterator();
  77.  
  78. while (i.hasNext()) {
  79. String ownerName = i.next();
  80. builder.append("&a").append(ownerName).append(i.hasNext() ? "&7, " : "&7.");
  81. }
  82.  
  83. inventory.setItem(5, Utils.setItemMeta(new ItemStack(Material.BOOK), "&a&l» &e&lАвторизированные выжившие:", false, "", ownersList.size() == 0 ? "&cНету &7авторизированных выживших." : builder.toString()));
  84.  
  85. for (int emptySlot = 0; emptySlot < inventory.getSize(); emptySlot++) if (inventory.getItem(emptySlot) == null) inventory.setItem(emptySlot, Utils.setItemMeta(new ItemStack(Material.STAINED_GLASS_PANE), " ", false));
  86. player.openInventory(inventory);
  87. }
  88. }
Add Comment
Please, Sign In to add comment