diff --git a/src/main/java/org/KaiFlo/SolarCell/ExampleCommand.java b/src/main/java/org/KaiFlo/SolarCell/ExampleCommand.java index 704ef98..084334b 100644 --- a/src/main/java/org/KaiFlo/SolarCell/ExampleCommand.java +++ b/src/main/java/org/KaiFlo/SolarCell/ExampleCommand.java @@ -1,17 +1,25 @@ package org.KaiFlo.SolarCell; +import com.hypixel.hytale.component.Archetype; +import com.hypixel.hytale.logger.HytaleLogger; import com.hypixel.hytale.protocol.GameMode; import com.hypixel.hytale.server.core.Message; import com.hypixel.hytale.server.core.command.system.CommandContext; import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase; +import com.hypixel.hytale.server.core.universe.Universe; +import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; +import it.unimi.dsi.fastutil.longs.LongSet; import javax.annotation.Nonnull; +import java.util.Objects; +import java.util.stream.Collectors; /** * This is an example command that will simply print the name of the plugin in chat when used. */ public class ExampleCommand extends CommandBase { + private static final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass(); private final String pluginName; private final String pluginVersion; @@ -25,5 +33,23 @@ public class ExampleCommand extends CommandBase { @Override protected void executeSync(@Nonnull CommandContext ctx) { ctx.sendMessage(Message.raw("Hello from the " + pluginName + " v" + pluginVersion + " plugin!")); + var chunkStore = Objects.requireNonNull(Universe.get().getDefaultWorld()).getChunkStore(); + LongSet chunkIndexes = chunkStore.getChunkIndexes(); + chunkIndexes.forEach(chunkIndex -> { + var ref = chunkStore.getChunkReference(chunkIndex); + if (ref == null) return; + Universe.get().getDefaultWorld().execute(() -> { + LOGGER.atInfo().log("Chunk Ref: "+ref); + Archetype archetype = Universe.get().getDefaultWorld().getChunkStore().getStore().getArchetype(ref); + for (int i = 0; i < archetype.length(); i++) { + var a = archetype.get(i); + if (a == null) continue; + + LOGGER.atInfo().log(a.getTypeClass().getName()); + } + }); + + }); + LOGGER.atInfo().log(chunkIndexes.longStream().mapToObj(Long::toString).collect(Collectors.joining(", "))); } } \ No newline at end of file