package nl.sbdeveloper.themeparkplus.api; import de.tr7zw.changeme.nbtapi.NBTItem; import me.paradoxpixel.themepark.api.attraction.Attraction; import nl.sbdeveloper.themeparkplus.ThemeParkPlus; import nl.sbdeveloper.themeparkplus.api.objects.Gate; import nl.sbdeveloper.themeparkplus.util.ConfigUtil; import nl.sbdeveloper.themeparkplus.util.XMaterial; import org.bukkit.Location; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Collections; import java.util.HashMap; import java.util.List; public class PlusAPI { private static HashMap gates = new HashMap<>(); /** * Add a gate * * @param gate The gate */ public static void addGate(Gate gate) { gates.put(gate.getLoc(), gate); } /** * Remove a gate * * @param gate The gate */ public static void removeGate(@NotNull Gate gate) { gates.remove(gate.getLoc()); } /** * Check if a location is a gate * * @param loc The location * @return true/false */ public static boolean isGate(Location loc) { return gates.containsKey(loc); } /** * Get a gate by the location * * @param loc The location * @return The gate */ public static Gate getGate(Location loc) { return gates.get(loc); } /** * Get all the gates * * @return Map with location and gate */ public static HashMap getGates() { return gates; } /** * Get the ticket itemstack * * @param att The attraction * * @return The ticket as ItemStack */ @Nullable public static ItemStack getFastpassTicket(Attraction att) { String ticketName = ConfigUtil.makecolored(ThemeParkPlus.getSConfig().getFile().getString("Fastpass.Item.DisplayName")); ItemStack ticket = XMaterial.PAPER.parseItem(); if (ticket == null) return null; ItemMeta meta = ticket.getItemMeta(); if (meta == null) return null; meta.setDisplayName(ticketName); List ticketLores = ConfigUtil.getLore("Fastpass.Item.Lore", Collections.singletonMap("%ridename%", att.getName())); meta.setLore(ticketLores); ticket.setItemMeta(meta); NBTItem item = new NBTItem(ticket); item.setString("RideID", att.getId()); ticket = item.getItem(); return ticket; } }