Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.lisenochek.mcrust.objects.blockMechanic;
- import com.google.common.collect.Lists;
- import org.bukkit.Bukkit;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import ru.lisenochek.mcrust.objects.misc.CustomBlock;
- import ru.lisenochek.mcrust.sql.SQLManager;
- import ru.lisenochek.mcrust.utils.Cuboid;
- import ru.lisenochek.mcrust.utils.ISBuilder;
- import ru.lisenochek.mcrust.utils.Utils;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.UUID;
- public class Cupboard {
- private static HashMap<Location, Cupboard> cupboardsMap = new HashMap<>();
- private static HashMap<Location, Cupboard> locationsMap = new HashMap<>();
- private Location cupboardLocation;
- private Cuboid cuboid;
- private List<UUID> ownersList;
- public Cupboard(Location cupboardLocation, UUID... uuiids) {
- this.cupboardLocation = cupboardLocation;
- this.ownersList = Lists.newArrayList(uuiids);
- this.cuboid = new Cuboid(cupboardLocation, 20);
- for (Location location : cuboid.getBlocksList()) locationsMap.put(location, this);
- cupboardsMap.put(cupboardLocation, this);
- }
- public static Cupboard create(Location cupboardLocation, UUID... uuiids) {
- return new Cupboard(cupboardLocation, uuiids);
- }
- public static int getCupboardsSize() {
- return cupboardsMap.size();
- }
- public static Cupboard fromCupboard(Location location) {
- return cupboardsMap.get(location);
- }
- public static Cupboard fromLocation(Location location) {
- return locationsMap.get(location);
- }
- public static boolean checkBreak(Player player, Location location) {
- Cupboard cupboard = Cupboard.locationsMap.get(location);
- if (cupboard == null) return true;
- if (CustomBlock.getBlock(location.getBlock()).getType().isIgnoreBreakCupboard()) return true;
- return player.hasPermission("mcrust.admin") || cupboard.getOwnersList().contains(player.getUniqueId());
- }
- public static boolean checkPlace(Player player, Location location) {
- Cupboard cupboard = Cupboard.locationsMap.get(location);
- if (cupboard == null) return true;
- if (CustomBlock.getBlock(location.getBlock()).getType().isIgnoreBuildCupboard()) return true;
- return player.hasPermission("mcrust.admin") || cupboard.getOwnersList().contains(player.getUniqueId());
- }
- public Location getCupboardLocation() {
- return cupboardLocation;
- }
- public Cuboid getCuboid() {
- return cuboid;
- }
- public List<UUID> getOwnersList() {
- return ownersList;
- }
- public void remove() {
- for (Location location : cuboid.getBlocksList()) Cupboard.locationsMap.remove(location);
- Cupboard.cupboardsMap.remove(cupboardLocation);
- SQLManager.getManager().deleteCupboardData(this);
- }
- public void openGUI(Player player) {
- Inventory inventory = Bukkit.createInventory(null, 9, Utils.stripColor("&2&lШкаф"));
- StringBuilder builder = new StringBuilder();
- inventory.setItem(3, !ownersList.contains(player.getUniqueId())
- ?
- ISBuilder.getBuilder(Material.BOOK, 0, 1, "&a&l» &e&lАвторизоваться в шкафу",
- "",
- "&aАвторизуйтесь &7в шкафу, чтобы", "&aстроить &7на территории"
- ).getStack()
- :
- ISBuilder.getBuilder(Material.BOOK, 0, 1, "&a&l» &e&lВыписаться из шкафа",
- "",
- "&aВыпишитесь &7из шкафа, если вы ",
- "&7не хотите строить на территории"
- ).getStack()
- );
- inventory.setItem(4, ISBuilder.getBuilder(Material.BOOK, 0, 1, "&a&l» &e&lВыписать всех из шкафа",
- "",
- "&aВыписать &7всех выживших из шкафа"
- ).getStack());
- for (int slot = 0; slot < inventory.getSize(); slot++) {
- ItemStack stack = inventory.getItem(slot);
- if (stack != null) inventory.setItem(slot, ISBuilder.getBuilder(stack).setTag("location", Utils.serialiseLocation(cupboardLocation)).getStack());
- }
- for (Iterator<UUID> i = ownersList.iterator(); i.hasNext(); ) {
- UUID uuid = i.next();
- builder.append(Bukkit.getPlayer(uuid) == null ? "&c" + Bukkit.getOfflinePlayer(uuid).getName() : "&a" + Bukkit.getPlayer(uuid).getName()).append("&7").append(i.hasNext() ? ", " : "");
- }
- inventory.setItem(5, ISBuilder.getBuilder(Material.BOOK, 0, 1, "&a&l» &e&lАвторизированные выжившие:", "", ownersList.size() == 0 ? "&cНету &7авторизированных выживших" : builder.toString()).getStack());
- for (int emptySlot = 0; emptySlot < inventory.getSize(); emptySlot++) if (inventory.getItem(emptySlot) == null) inventory.setItem(emptySlot, ISBuilder.getBuilder(Material.STAINED_GLASS_PANE, 0, 1, " ").getStack());
- player.openInventory(inventory);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement