summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Essentials/src/com/earth2me/essentials/Util.java19
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java11
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandtree.java9
3 files changed, 24 insertions, 15 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Util.java b/Essentials/src/com/earth2me/essentials/Util.java
index c1b0ed7bf..067c8115f 100644
--- a/Essentials/src/com/earth2me/essentials/Util.java
+++ b/Essentials/src/com/earth2me/essentials/Util.java
@@ -28,6 +28,8 @@ import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
+import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Player;
public class Util
@@ -221,6 +223,7 @@ public class Util
// The player can stand inside these materials
private static final Set<Integer> AIR_MATERIALS = new HashSet<Integer>();
+ private static final HashSet<Byte> AIR_MATERIALS_TARGET = new HashSet<Byte>();
static {
AIR_MATERIALS.add(Material.AIR.getId());
@@ -256,7 +259,21 @@ public class Util
AIR_MATERIALS.add(Material.MELON_STEM.getId());
AIR_MATERIALS.add(Material.VINE.getId());
//TODO: Add 1.9 materials
-
+
+ for (Integer integer : AIR_MATERIALS)
+ {
+ AIR_MATERIALS_TARGET.add(integer.byteValue());
+ }
+ AIR_MATERIALS_TARGET.add((byte)Material.WATER.getId());
+ AIR_MATERIALS_TARGET.add((byte)Material.STATIONARY_WATER.getId());
+ }
+
+ public static Location getTarget(final LivingEntity entity) throws Exception {
+ final Block block = entity.getTargetBlock(AIR_MATERIALS_TARGET, 300);
+ if (block == null) {
+ throw new Exception("Not targeting a block");
+ }
+ return block.getLocation();
}
public static Location getSafeDestination(final Location loc) throws Exception
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java b/Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java
index ded3ffdaf..c6cf83df4 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandbigtree.java
@@ -1,6 +1,5 @@
package com.earth2me.essentials.commands;
-import com.earth2me.essentials.TargetBlock;
import org.bukkit.Server;
import org.bukkit.TreeType;
import com.earth2me.essentials.User;
@@ -31,14 +30,10 @@ public class Commandbigtree extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
-
- final int[] ignore =
- {
- 8, 9
- };
- final Location loc = (new TargetBlock(user, 300, 0.2, ignore)).getTargetBlock().getLocation();
+
+ final Location loc = Util.getTarget(user);
final Location safeLocation = Util.getSafeDestination(loc);
- final boolean success = user.getWorld().generateTree(safeLocation, (TreeType)tree);
+ final boolean success = user.getWorld().generateTree(safeLocation, tree);
if (success)
{
user.sendMessage(Util.i18n("bigTreeSuccess"));
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandtree.java b/Essentials/src/com/earth2me/essentials/commands/Commandtree.java
index 8013453ab..26bc9a8ee 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandtree.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandtree.java
@@ -1,13 +1,10 @@
package com.earth2me.essentials.commands;
-import com.earth2me.essentials.TargetBlock;
import org.bukkit.Location;
import org.bukkit.Server;
import org.bukkit.TreeType;
import com.earth2me.essentials.User;
import com.earth2me.essentials.Util;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
public class Commandtree extends EssentialsCommand
@@ -20,7 +17,7 @@ public class Commandtree extends EssentialsCommand
@Override
public void run(Server server, User user, String commandLabel, String[] args) throws Exception
{
- Object tree = new Object();
+ TreeType tree;
if (args.length < 1)
{
throw new NotEnoughArgumentsException();
@@ -46,9 +43,9 @@ public class Commandtree extends EssentialsCommand
{
8, 9
};
- final Location loc = (new TargetBlock(user, 300, 0.2, ignore)).getTargetBlock().getLocation();
+ final Location loc = Util.getTarget(user);
final Location safeLocation = Util.getSafeDestination(loc);
- final boolean success = user.getWorld().generateTree(safeLocation, (TreeType)tree);
+ final boolean success = user.getWorld().generateTree(safeLocation, tree);
if (success)
{
user.sendMessage(Util.i18n("treeSpawned"));