From 3250566949381f92a24d90ad3560a0ff23aa52fb Mon Sep 17 00:00:00 2001 From: CocoTheOwner Date: Sun, 28 Feb 2021 15:34:26 +0100 Subject: [PATCH] First step towards finding objects --- .../command/CommandIrisStudioGoto.java | 55 ++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/volmit/iris/manager/command/CommandIrisStudioGoto.java b/src/main/java/com/volmit/iris/manager/command/CommandIrisStudioGoto.java index f906b7ecd..bdd440152 100644 --- a/src/main/java/com/volmit/iris/manager/command/CommandIrisStudioGoto.java +++ b/src/main/java/com/volmit/iris/manager/command/CommandIrisStudioGoto.java @@ -3,6 +3,7 @@ package com.volmit.iris.manager.command; import com.volmit.iris.Iris; import com.volmit.iris.manager.IrisDataManager; import com.volmit.iris.object.IrisBiome; +import com.volmit.iris.object.IrisObject; import com.volmit.iris.object.IrisRegion; import com.volmit.iris.scaffold.IrisWorlds; import com.volmit.iris.scaffold.engine.IrisAccess; @@ -11,6 +12,10 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + public class CommandIrisStudioGoto extends MortarCommand { public CommandIrisStudioGoto() @@ -25,8 +30,14 @@ public class CommandIrisStudioGoto extends MortarCommand public void addTabOptions(MortarSender sender, String[] args, KList list) { if(args.length == 0 && sender.isPlayer() && IrisWorlds.isIrisWorld(sender.player().getWorld())) { - list.add(IrisWorlds.access(sender.player().getWorld()).getData().getBiomeLoader().getPossibleKeys()); - list.add(IrisWorlds.access(sender.player().getWorld()).getData().getRegionLoader().getPossibleKeys()); + IrisDataManager data = IrisWorlds.access(sender.player().getWorld()).getData(); + if (data == null){ + sender.sendMessage("Issue when loading tab completions. No data found (?)"); + } else { + list.add(data.getBiomeLoader().getPossibleKeys()); + list.add(data.getRegionLoader().getPossibleKeys()); + list.add(data.getObjectLoader().getPossibleKeys()); + } } } @@ -55,6 +66,7 @@ public class CommandIrisStudioGoto extends MortarCommand IrisAccess g = IrisWorlds.access(world); IrisBiome b = IrisDataManager.loadAnyBiome(args[0]); IrisRegion r = IrisDataManager.loadAnyRegion(args[0]); + IrisObject o = IrisDataManager.loadAnyObject(args[0]); if(b != null) { @@ -91,6 +103,28 @@ public class CommandIrisStudioGoto extends MortarCommand } }); } + /* TODO: Fix this shit + else if (o != null) + { + // Get all object names + for (File f : listf( Iris.instance.getDataFolders + "/objects")){ + + } + J.a(() -> { + Location l = g.lookForObject(o, 60000, (v) -> sender.sendMessage(C.BOLD +""+ C.WHITE + o.getName() + C.RESET + C.GRAY + ": Checked " + Form.f(v) + " Places")); + + if(l == null) + { + sender.sendMessage("Couldn't find " + o.getName() + "."); + } + + else + { + sender.sendMessage("Found " + o.getName() + "!"); + J.s(() -> sender.player().teleport(l)); + } + }); + }*/ else { @@ -121,4 +155,21 @@ public class CommandIrisStudioGoto extends MortarCommand { return "[biome/region]"; } + + private List listf(String directoryName) { + File directory = new File(directoryName); + List files = new ArrayList<>(); + + // Get all files from a directory. + File[] fList = directory.listFiles(); + if(fList != null) + for (File file : fList) { + if (file.isFile()) { + files.add(file); + } else if (file.isDirectory()) { + files.addAll(listf(file.getAbsolutePath())); + } + } + return files; + } }