fancyholograms-v3: Update hologram data loading to use subdirectory structure

This commit is contained in:
Oliver
2025-05-17 18:40:01 +02:00
parent 271c94a3a0
commit 9454f4995c
4 changed files with 7 additions and 13 deletions

View File

@@ -49,7 +49,7 @@ public final class FancyHologramsCMD extends Command {
this.plugin.getRegistry().clear();
for (World world : Bukkit.getWorlds()) {
Collection<HologramData> hologramData = this.plugin.getStorage().loadAll(world.getName());
Collection<HologramData> hologramData = this.plugin.getStorage().loadAll("worlds/"+world.getName());
for (HologramData data : hologramData) {
Hologram hologram = this.plugin.getHologramFactory().apply(data);
this.plugin.getRegistry().register(hologram);

View File

@@ -18,7 +18,7 @@ public class WorldListener implements Listener {
FancyHologramsPlugin.get().getHologramThread().submit(() -> {
FancyHologramsPlugin.get().getFancyLogger().info("Loading holograms for world " + event.getWorld().getName());
Collection<HologramData> data = FancyHologramsPlugin.get().getStorage().loadAll(event.getWorld().getName());
Collection<HologramData> data = FancyHologramsPlugin.get().getStorage().loadAll("worlds/"+event.getWorld().getName());
for (HologramData d : data) {
Hologram hologram = FancyHologramsPlugin.get().getHologramFactory().apply(d);
FancyHologramsPlugin.get().getRegistry().register(hologram);

View File

@@ -194,7 +194,7 @@ public final class FancyHologramsPlugin extends JavaPlugin implements FancyHolog
new StorageMigrator().migrate();
for (World world : Bukkit.getWorlds()) {
Collection<HologramData> data = storage.loadAll(world.getName());
Collection<HologramData> data = storage.loadAll("worlds/"+world.getName());
for (HologramData d : data) {
Hologram hologram = hologramFactory.apply(d);
registry.register(hologram);

View File

@@ -51,20 +51,14 @@ public class JsonStorage implements HologramStorage {
}
@Override
public Collection<HologramData> loadAll(String world) {
public Collection<HologramData> loadAll(String subdir) {
List<HologramData> holograms = new ArrayList<>();
try {
List<JsonDataUnion> allTextUnions = jdb.getAll("worlds/" + world + "/text", JsonDataUnion.class);
List<JsonDataUnion> allTextUnions = jdb.getAll(subdir, JsonDataUnion.class);
allTextUnions.forEach(u -> holograms.add(JsonAdapter.fromJson(u)));
List<JsonDataUnion> allItemUnions = jdb.getAll("worlds/" + world + "/item", JsonDataUnion.class);
allItemUnions.forEach(u -> holograms.add(JsonAdapter.fromJson(u)));
List<JsonDataUnion> allBlockUnions = jdb.getAll("worlds/" + world + "/block", JsonDataUnion.class);
allBlockUnions.forEach(u -> holograms.add(JsonAdapter.fromJson(u)));
} catch (IOException e) {
FancyHolograms.get().getFancyLogger().error("Failed to load all holograms from world " + world);
FancyHolograms.get().getFancyLogger().error("Failed to load all holograms from " + subdir);
FancyHolograms.get().getFancyLogger().error(e);
}
@@ -72,6 +66,6 @@ public class JsonStorage implements HologramStorage {
}
public String getKey(HologramData data) {
return "worlds/" + data.getLocation().getWorld().getName() + "/" + data.getType().toString().toLowerCase() + "/" + data.getName();
return "worlds/" + data.getLocation().getWorld().getName() + "/" + data.getName();
}
}