diff options
Diffstat (limited to 'Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java')
-rw-r--r-- | Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java b/Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java new file mode 100644 index 000000000..a7546bb35 --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java @@ -0,0 +1,56 @@ +package com.earth2me.essentials.commands; + +import org.bukkit.Server; +import org.bukkit.TreeType; +import com.earth2me.essentials.Essentials; +import com.earth2me.essentials.User; +import org.bukkit.Location; + + +public class Commandbigtree extends EssentialsCommand +{ + public Commandbigtree() + { + super("bigtree"); + } + + @Override + public void run(Server server, Essentials parent, User user, String commandLabel, String[] args) throws Exception + { + Object tree = new Object(); + if (args.length > 0 && args[0].equalsIgnoreCase("redwood")) + { + tree = TreeType.TALL_REDWOOD; + } + else if (args.length > 0 && args[0].equalsIgnoreCase("tree")) + { + tree = TreeType.BIG_TREE; + } + else + { + user.sendMessage("§cUsage: /" + commandLabel + " [tree|redwood]"); + return; + } + + double x = user.getLocation().getX(); + double y = user.getLocation().getY(); + double z = user.getLocation().getZ(); + + // offset tree in direction player is facing + int r = (int)user.getCorrectedYaw(); + if (r < 68 || r > 292) x -= 3.0D; // north + else if (r > 112 && r < 248) x += 3.0D; // south + if (r > 22 && r < 158) z -= 3.0D; // east + else if (r > 202 && r < 338) z += 3.0D; // west + + Location safeLocation = user.getSafeDestination(new Location(user.getWorld(), x, y, z)); + boolean success = user.getWorld().generateTree(safeLocation, (TreeType)tree); + if (success) + { + user.charge(this); + user.sendMessage("Big tree spawned."); + } + else + user.sendMessage("§cBig tree generation failure. Try again on grass or dirt."); + } +} |