Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package games.coob.v1_19;
- import games.coob.nmsinterface.NMSHologramI;
- import lombok.Getter;
- import lombok.NonNull;
- import org.bukkit.Location;
- import org.mineacademy.fo.settings.ConfigItems;
- import org.mineacademy.fo.settings.YamlConfig;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Set;
- public abstract class HologramRegistry_v1_19 extends YamlConfig {
- private static final String FOLDER = "holograms";
- private static final ConfigItems<HologramRegistry_v1_19> loadedFiles = ConfigItems.fromFolder(FOLDER, HologramRegistry_v1_19.class);
- @Getter
- private NMSHologramI hologram;
- protected HologramRegistry_v1_19(final String id) {
- this(id, null);
- }
- protected HologramRegistry_v1_19(final String id, final NMSHologram_v1_19 hologram) {
- System.out.println("Hologram constructor: " + hologram);
- if (hologram != null)
- this.hologram = hologram;
- this.loadConfiguration(NO_DEFAULT, FOLDER + "/" + id + ".yml");
- }
- @Override
- protected void onLoad() {
- if (this.hologram == null)
- this.hologram = this.get("Hologram", NMSHologram_v1_19.class); // todo find out why this is causing issues
- System.out.println("hologram: " + this.hologram);
- this.save();
- }
- @Override
- protected void onSave() {
- System.out.println("saved hologram: " + this.hologram);
- this.set("Hologram", this.hologram);
- }
- // -----------------------------------------------------------------
- // Static
- // -----------------------------------------------------------------
- public static void createHologram(@NonNull final String id, @NonNull final NMSHologram_v1_19 hologram) {
- loadedFiles.loadOrCreateItem(id, () -> new HologramRegistry_v1_19(id, hologram) {
- });
- }
- public static List<Location> getHologramLocations() {
- final List<Location> locations = new ArrayList<>();
- for (final HologramRegistry_v1_19 registry : getHolograms())
- locations.add(((NMSHologramI) registry.getHologram()).getLocation());
- return locations;
- }
- /**
- * @return
- * @see ConfigItems#getItems()
- */
- public static List<? extends HologramRegistry_v1_19> getHolograms() {
- return loadedFiles.getItems();
- }
- /**
- * @return
- * @see ConfigItems#getItemNames()
- */
- public static Set<String> getHologramIDs() {
- return loadedFiles.getItemNames();
- }
- //System.out.println("create holo param: " + hologram);
- //System.out.println("createmethod");
- /**
- * @see ConfigItems#loadItems()
- */
- public static void loadHolograms() {
- loadedFiles.loadItems();
- }
- public static void removeHologram(final String id) {
- loadedFiles.removeItemByName(id);
- }
- public static void removeHologram(final NMSHologramI hologram) {
- for (final HologramRegistry_v1_19 registry : getHolograms())
- if (registry.getHologram().equals(hologram))
- loadedFiles.removeItem(registry);
- }
- /**
- * @see ConfigItems#isItemLoaded(String)
- */
- public static boolean isHologramLoaded(final String id) {
- return loadedFiles.isItemLoaded(id);
- }
- /**
- * @return
- * @see ConfigItems#findItem(String)
- */
- public static HologramRegistry_v1_19 findById(@NonNull final String id) {
- return loadedFiles.findItem(id);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement