From 0039582f28342d4825b97b6d0d36b8e1d0c28f3a Mon Sep 17 00:00:00 2001 From: Daniel Mills Date: Mon, 19 Oct 2020 06:09:28 -0400 Subject: [PATCH] Summon command --- .../iris/command/CommandIrisStudio.java | 3 + .../iris/command/CommandIrisStudioSummon.java | 79 +++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 src/main/java/com/volmit/iris/command/CommandIrisStudioSummon.java diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudio.java b/src/main/java/com/volmit/iris/command/CommandIrisStudio.java index c7d26c84d..63243605b 100644 --- a/src/main/java/com/volmit/iris/command/CommandIrisStudio.java +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudio.java @@ -14,6 +14,9 @@ public class CommandIrisStudio extends MortarCommand @Command private CommandIrisStudioOpen open; + @Command + private CommandIrisStudioSummon summon; + @Command private CommandIrisStudioClose close; diff --git a/src/main/java/com/volmit/iris/command/CommandIrisStudioSummon.java b/src/main/java/com/volmit/iris/command/CommandIrisStudioSummon.java new file mode 100644 index 000000000..12b59fcf7 --- /dev/null +++ b/src/main/java/com/volmit/iris/command/CommandIrisStudioSummon.java @@ -0,0 +1,79 @@ +package com.volmit.iris.command; + +import org.bukkit.World; +import org.bukkit.entity.Player; + +import com.volmit.iris.Iris; +import com.volmit.iris.IrisSettings; +import com.volmit.iris.gen.IrisTerrainProvider; +import com.volmit.iris.gen.provisions.ProvisionBukkit; +import com.volmit.iris.object.IrisEntity; +import com.volmit.iris.util.MortarCommand; +import com.volmit.iris.util.MortarSender; + +public class CommandIrisStudioSummon extends MortarCommand +{ + public CommandIrisStudioSummon() + { + super("summon", "spawnmob"); + setDescription("Spawn an Iris entity"); + requiresPermission(Iris.perm.studio); + setCategory("Summon"); + } + + @Override + public boolean handle(MortarSender sender, String[] args) + { + if(!IrisSettings.get().isStudio()) + { + sender.sendMessage("To use Iris Studio, please enable studio in Iris/settings.json"); + return true; + } + + if(sender.isPlayer()) + { + Player p = sender.player(); + World world = p.getWorld(); + if(!(world.getGenerator() instanceof ProvisionBukkit)) + { + sender.sendMessage("You must be in an iris world."); + return true; + } + + IrisTerrainProvider g = (IrisTerrainProvider) ((ProvisionBukkit) world.getGenerator()).getProvider(); + if(args.length == 0) + { + for(String i : g.getData().getEntityLoader().getPossibleKeys()) + { + sender.sendMessage("- " + i); + } + } + + else + { + IrisEntity e = g.getData().getEntityLoader().load(args[0]); + + if(e == null) + { + sender.sendMessage("Couldnt find entity " + args[0] + ". Use '/iris std summon' to see a list of iris entities."); + return true; + } + + e.spawn(g, sender.player().getLocation().clone().add(0, 3, 0)); + } + } + + else + { + sender.sendMessage("Players only."); + } + + return true; + } + + @Override + protected String getArgsUsage() + { + return ""; + } +}