From 30144a15d1847bd62afb0ab41d1b5a1b40aefce6 Mon Sep 17 00:00:00 2001 From: Taylor Kelly Date: Wed, 26 Jan 2011 14:27:43 -0500 Subject: EntityTargetEvent --- src/main/java/org/bukkit/event/Event.java | 7 ++ .../org/bukkit/event/entity/EntityListener.java | 3 + .../org/bukkit/event/entity/EntityTargetEvent.java | 99 ++++++++++++++++++++++ .../org/bukkit/plugin/java/JavaPluginLoader.java | 4 + 4 files changed, 113 insertions(+) create mode 100644 src/main/java/org/bukkit/event/entity/EntityTargetEvent.java (limited to 'src') diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java index 548ef0f0..1fb0966f 100644 --- a/src/main/java/org/bukkit/event/Event.java +++ b/src/main/java/org/bukkit/event/Event.java @@ -453,6 +453,13 @@ public abstract class Event { */ ENTITY_EXPLODE (Category.LIVING_ENTITY), + /** + * Called when an entity targets another entity + * + * @see org.bukkit.event.entity.EntityTargetEvent + */ + ENTITY_TARGET (Category.LIVING_ENTITY), + /** * VEHICLE EVENTS */ diff --git a/src/main/java/org/bukkit/event/entity/EntityListener.java b/src/main/java/org/bukkit/event/entity/EntityListener.java index 143beb05..10ceda1f 100644 --- a/src/main/java/org/bukkit/event/entity/EntityListener.java +++ b/src/main/java/org/bukkit/event/entity/EntityListener.java @@ -26,4 +26,7 @@ public class EntityListener implements Listener { public void onEntityExplode(EntityExplodeEvent event) { } + + public void onEntityTarget(EntityTargetEvent event) { + } } diff --git a/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java b/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java new file mode 100644 index 00000000..d291b337 --- /dev/null +++ b/src/main/java/org/bukkit/event/entity/EntityTargetEvent.java @@ -0,0 +1,99 @@ +package org.bukkit.event.entity; + +import org.bukkit.entity.Entity; +import org.bukkit.event.Cancellable; + +/** + * This event is fired when a mob (or any creature) targets another entity + * @author tkelly + */ +public class EntityTargetEvent extends EntityEvent implements Cancellable { + private boolean cancel; + private Entity target; + private TargetReason reason; + + public EntityTargetEvent(Entity entity, Entity target, TargetReason reason) { + super(Type.ENTITY_TARGET, entity); + this.target = target; + this.cancel = false; + this.reason = reason; + } + + public boolean isCancelled() { + return cancel; + } + + /** + * Cancel the change in target. The entity will remain with their original + * target, whether that is nothing or another entity. + * @param cancel + */ + public void setCancelled(boolean cancel) { + this.cancel = cancel; + } + + /** + * Returns the reason for the targeting + */ + public TargetReason getReason() { + return reason; + } + + /** + * Get the entity that this is target. + * This is possible to be null in the case that the event is called when + * the mob forgets its target. + */ + public Entity getTarget() { + return target; + } + + /** + * Set the entity that you want the mob to target instead. + * It is possible to be null, null will cause the entity to be + * target-less. + * + * This is different from cancelling the event. Cancelling the event + * will cause the entity to keep an original target, while setting to be + * null will cause the entity to be reset + * + * @param target The entity to target + */ + public void setTarget(Entity target) { + this.target = target; + } + + /** + * An enum to specify the reason for the targeting + */ + public enum TargetReason + { + /** + * When the entity's target has died, and so it no longer targets it + */ + TARGET_DIED, + /** + * When the entity doesn't have a target, so it attacks the nearest + * player + */ + CLOSEST_PLAYER, + /** + * When the target attacks the entity, so entity targets it + */ + TARGET_ATTACKED_ENTITY, + /** + * When the target attacks a fellow pig zombie, so the whole group + * will target him with this reason. + */ + PIG_ZOMBIE_TARGET, + /** + * When the target is forgotten for whatever reason. + * Currently only occurs in with spiders when there is a high brightness + */ + FORGOT_TARGET, + /** + * For custom calls to the event + */ + CUSTOM + } +} diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index 3886027a..34e66cf7 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -23,6 +23,7 @@ import org.bukkit.event.entity.EntityDamageByProjectileEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityListener; +import org.bukkit.event.entity.EntityTargetEvent; import org.bukkit.event.player.*; import org.bukkit.event.server.PluginEvent; import org.bukkit.event.server.ServerListener; @@ -238,6 +239,9 @@ public final class JavaPluginLoader implements PluginLoader { case ENTITY_EXPLODE: trueListener.onEntityExplode((EntityExplodeEvent)event); break; + case ENTITY_TARGET: + trueListener.onEntityTarget((EntityTargetEvent)event); + break; } } else if (listener instanceof VehicleListener) { VehicleListener trueListener = (VehicleListener)listener; -- cgit v1.2.3 From 8e927a84bb3af7931fc5a6d6f41260fc9aa1fe6e Mon Sep 17 00:00:00 2001 From: sk89q Date: Wed, 26 Jan 2011 12:03:21 -0800 Subject: Added methods to get a list of entities to World. --- src/main/java/org/bukkit/World.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src') diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java index 7c35bcc6..046e884d 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1,10 +1,13 @@ package org.bukkit; +import java.util.List; import org.bukkit.block.Block; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; +import org.bukkit.entity.Entity; import org.bukkit.entity.ItemDrop; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.PoweredMinecart; import org.bukkit.entity.Minecart; import org.bukkit.entity.StorageMinecart; @@ -155,6 +158,20 @@ public interface World { * @return */ public Boat spawnBoat(Location loc); + + /** + * Get a list of all entities. + * + * @return + */ + public List getEntities(); + + /** + * Get a list of all living entities. + * + * @return + */ + public List getLivingEntities(); /** * Gets the name of this world. This is not guaranteed to be unique. @@ -171,6 +188,7 @@ public interface World { * @return Id of this world */ public long getId(); + /** * Gets the default spawn location. */ -- cgit v1.2.3 From b2efe281229378967d9c0633b82f0303b7b621f4 Mon Sep 17 00:00:00 2001 From: Taylor Kelly Date: Wed, 26 Jan 2011 16:13:04 -0500 Subject: BlockBurnEvent --- src/main/java/org/bukkit/event/Event.java | 7 +++++ .../org/bukkit/event/block/BlockBurnEvent.java | 31 ++++++++++++++++++++++ .../java/org/bukkit/event/block/BlockListener.java | 8 ++++++ .../org/bukkit/plugin/java/JavaPluginLoader.java | 3 +++ 4 files changed, 49 insertions(+) create mode 100644 src/main/java/org/bukkit/event/block/BlockBurnEvent.java (limited to 'src') diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java index 1fb0966f..ac998d39 100644 --- a/src/main/java/org/bukkit/event/Event.java +++ b/src/main/java/org/bukkit/event/Event.java @@ -275,6 +275,13 @@ public abstract class Event { */ BLOCK_INTERACT (Category.BLOCK), + /** + * Called when a block is destroyed from being burnt by fire + * + * @see org.bukkit.event.block.BlockBurnEvent + */ + BLOCK_BURN (Category.BLOCK), + /** * Called when leaves are decaying naturally * diff --git a/src/main/java/org/bukkit/event/block/BlockBurnEvent.java b/src/main/java/org/bukkit/event/block/BlockBurnEvent.java new file mode 100644 index 00000000..ba8b64ff --- /dev/null +++ b/src/main/java/org/bukkit/event/block/BlockBurnEvent.java @@ -0,0 +1,31 @@ + + +package org.bukkit.event.block; + +import org.bukkit.block.Block; +import org.bukkit.event.Cancellable; + +/** + * Called when a block is destroyed because of being burnt by fire + * @author tkelly + */ +public class BlockBurnEvent extends BlockEvent implements Cancellable { + private boolean cancelled; + + public BlockBurnEvent(Block block) { + super(Type.BLOCK_BURN, block); + this.cancelled = false; + } + + public boolean isCancelled() { + return cancelled; + } + + /** + * Allow for the block to be stopped from being destroyed + * @param cancel + */ + public void setCancelled(boolean cancel) { + this.cancelled = cancel; + } +} diff --git a/src/main/java/org/bukkit/event/block/BlockListener.java b/src/main/java/org/bukkit/event/block/BlockListener.java index e2c44f8f..5d70acf4 100644 --- a/src/main/java/org/bukkit/event/block/BlockListener.java +++ b/src/main/java/org/bukkit/event/block/BlockListener.java @@ -94,4 +94,12 @@ public class BlockListener implements Listener { public void onLeavesDecay(LeavesDecayEvent event) { } + /** + * Called when a block is destroyed from burning + * + * @param event Relevant event details + */ + public void onBlockBurn(BlockBurnEvent event) { + } + } diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index 34e66cf7..f0844258 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -191,6 +191,9 @@ public final class JavaPluginLoader implements PluginLoader { case REDSTONE_CHANGE: trueListener.onBlockRedstoneChange((BlockFromToEvent)event); break; + case BLOCK_BURN: + trueListener.onBlockBurn((BlockBurnEvent)event); + break; } } else if(listener instanceof ServerListener) { ServerListener trueListener = (ServerListener)listener; -- cgit v1.2.3 From 6c4698c313991c134ed80661e40750b837ec4b8d Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Thu, 27 Jan 2011 13:25:20 +0000 Subject: ENTITY_DEATH --- .../org/bukkit/event/entity/EntityDeathEvent.java | 36 ++++++++++++++++++++++ .../org/bukkit/event/entity/EntityListener.java | 3 ++ .../org/bukkit/plugin/java/JavaPluginLoader.java | 3 +- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/bukkit/event/entity/EntityDeathEvent.java (limited to 'src') diff --git a/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java b/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java new file mode 100644 index 00000000..a18d93e5 --- /dev/null +++ b/src/main/java/org/bukkit/event/entity/EntityDeathEvent.java @@ -0,0 +1,36 @@ + +package org.bukkit.event.entity; + +import java.util.List; +import org.bukkit.entity.Entity; +import org.bukkit.inventory.ItemStack; + +/** + * Thrown whenever a LivingEntity dies + */ +public class EntityDeathEvent extends EntityEvent { + private List drops; + + public EntityDeathEvent(final Type type, final Entity what, final List drops) { + super(type, what); + this.drops = drops; + } + + /** + * Sets what items will be dropped when this entity dies + * + * @param drops Items to drop when the entity dies + */ + public void setDrops(final List drops) { + this.drops = drops; + } + + /** + * Gets all the items which will drop when the entity dies + * + * @return Items to drop when the entity dies + */ + public List getDrops() { + return drops; + } +} diff --git a/src/main/java/org/bukkit/event/entity/EntityListener.java b/src/main/java/org/bukkit/event/entity/EntityListener.java index 10ceda1f..41ecad9a 100644 --- a/src/main/java/org/bukkit/event/entity/EntityListener.java +++ b/src/main/java/org/bukkit/event/entity/EntityListener.java @@ -29,4 +29,7 @@ public class EntityListener implements Listener { public void onEntityTarget(EntityTargetEvent event) { } + + public void onEntityDeath(EntityDeathEvent event) { + } } diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index f0844258..7f8594cd 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -21,6 +21,7 @@ import org.bukkit.event.entity.EntityDamageByBlockEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageByProjectileEvent; import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.entity.EntityListener; import org.bukkit.event.entity.EntityTargetEvent; @@ -234,7 +235,7 @@ public final class JavaPluginLoader implements PluginLoader { trueListener.onEntityDamage((EntityDamageEvent)event); break; case ENTITY_DEATH: - // TODO: ENTITY_DEATH hook + trueListener.onEntityDeath((EntityDeathEvent)event); break; case ENTITY_COMBUST: trueListener.onEntityCombust((EntityCombustEvent)event); -- cgit v1.2.3 From 54059e34bbba4c35206952f9afb584bf9498e50a Mon Sep 17 00:00:00 2001 From: Taylor Kelly Date: Thu, 27 Jan 2011 16:15:24 -0500 Subject: onDisable on stop - stephank --- src/main/java/org/bukkit/plugin/PluginManager.java | 5 +++++ src/main/java/org/bukkit/plugin/SimplePluginManager.java | 6 ++++++ 2 files changed, 11 insertions(+) (limited to 'src') diff --git a/src/main/java/org/bukkit/plugin/PluginManager.java b/src/main/java/org/bukkit/plugin/PluginManager.java index b42da9eb..01656a45 100644 --- a/src/main/java/org/bukkit/plugin/PluginManager.java +++ b/src/main/java/org/bukkit/plugin/PluginManager.java @@ -75,6 +75,11 @@ public interface PluginManager { */ public Plugin[] loadPlugins(File directory); + /** + * Disables all the loaded plugins + */ + public void disablePlugins(); + /** * Calls a player related event with the given details * diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java index a3899f56..91d2b3ba 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -176,6 +176,12 @@ public final class SimplePluginManager implements PluginManager { } } + public void disablePlugins() { + for(Plugin plugin: getPlugins()) { + disablePlugin(plugin); + } + } + public void disablePlugin(final Plugin plugin) { if (plugin.isEnabled()) { plugin.getPluginLoader().disablePlugin(plugin); -- cgit v1.2.3 From fb5ab3b5d60bfa607e3a5fb1bbcb45cddb14c169 Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Fri, 28 Jan 2011 09:15:43 +0000 Subject: Added player.performCommand(String) --- src/main/java/org/bukkit/entity/Player.java | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src') diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index 3baaa0d6..d917b55f 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -69,4 +69,12 @@ public interface Player extends HumanEntity { * @return */ public void kickPlayer(String message); + + /** + * Makes the player perform the given command + * + * @param command Command to perform + * @return true if the command was successful, otherwise false + */ + public boolean performCommand(String command); } -- cgit v1.2.3 From 99549ef8cc1a0259f7bab605f722233dad0aeea8 Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Fri, 28 Jan 2011 14:18:24 +0000 Subject: clearPlugins() and clearCommands() for PluginManager and CommandMap respectively --- src/main/java/org/bukkit/command/CommandMap.java | 4 ++++ src/main/java/org/bukkit/command/SimpleCommandMap.java | 6 ++++++ src/main/java/org/bukkit/plugin/PluginManager.java | 5 +++++ src/main/java/org/bukkit/plugin/SimplePluginManager.java | 9 +++++++++ src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java | 11 +++++++++++ src/main/java/org/bukkit/plugin/java/PluginClassLoader.java | 5 +++++ 6 files changed, 40 insertions(+) (limited to 'src') diff --git a/src/main/java/org/bukkit/command/CommandMap.java b/src/main/java/org/bukkit/command/CommandMap.java index a60ebd17..e40a0221 100644 --- a/src/main/java/org/bukkit/command/CommandMap.java +++ b/src/main/java/org/bukkit/command/CommandMap.java @@ -26,4 +26,8 @@ public interface CommandMap { */ public boolean dispatch(Player sender, String cmdLine); + /** + * Clears all registered commands. + */ + public void clearCommands(); } diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java index 9415e7ff..79fe285b 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -86,6 +86,12 @@ public final class SimpleCommandMap implements CommandMap { return isRegisteredCommand; } + public void clearCommands() { + synchronized (this) { + knownCommands.clear(); + } + } + private static class VersionCommand extends Command { private final Server server; diff --git a/src/main/java/org/bukkit/plugin/PluginManager.java b/src/main/java/org/bukkit/plugin/PluginManager.java index 01656a45..99f0c2f3 100644 --- a/src/main/java/org/bukkit/plugin/PluginManager.java +++ b/src/main/java/org/bukkit/plugin/PluginManager.java @@ -80,6 +80,11 @@ public interface PluginManager { */ public void disablePlugins(); + /** + * Disables and removes all plugins + */ + public void clearPlugins(); + /** * Calls a player related event with the given details * diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java index 91d2b3ba..0193a8d4 100644 --- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java +++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java @@ -188,6 +188,15 @@ public final class SimplePluginManager implements PluginManager { } } + public void clearPlugins() { + synchronized (this) { + disablePlugins(); + plugins.clear(); + lookupNames.clear(); + listeners.clear(); + } + } + /** * Calls a player related event with the given details * diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index 7f8594cd..9e638ff8 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -8,6 +8,7 @@ import java.lang.reflect.Constructor; import java.net.URL; import java.util.HashMap; import java.util.Map; +import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.regex.Pattern; @@ -301,10 +302,20 @@ public final class JavaPluginLoader implements PluginLoader { if (plugin.isEnabled()) { JavaPlugin jPlugin = (JavaPlugin)plugin; + ClassLoader cloader = jPlugin.getClassLoader(); server.getPluginManager().callEvent(new PluginEvent(Event.Type.PLUGIN_DISABLE, plugin)); jPlugin.setEnabled(false); + + if (cloader instanceof PluginClassLoader) { + PluginClassLoader loader = (PluginClassLoader)cloader; + Set names = loader.getClasses(); + + for (String name : names) { + classes.remove(name); + } + } } } } diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java index 0dbaf4eb..d17e0f4f 100644 --- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java +++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java @@ -4,6 +4,7 @@ import java.net.URL; import java.net.URLClassLoader; import java.util.HashMap; import java.util.Map; +import java.util.Set; /** * A ClassLoader for plugins, to allow shared classes across multiple plugins @@ -38,4 +39,8 @@ public class PluginClassLoader extends URLClassLoader { return result; } + + public Set getClasses() { + return classes.keySet(); + } } -- cgit v1.2.3 From c565b51d2026ffc44a1f8b0fd4440a83d7f181fd Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Fri, 28 Jan 2011 14:24:54 +0000 Subject: Fixed only being able to use /reload once --- .../java/org/bukkit/command/SimpleCommandMap.java | 47 +++++++++++++++------- 1 file changed, 32 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java index 79fe285b..729c32a0 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -14,24 +14,16 @@ import org.bukkit.plugin.PluginDescriptionFile; public final class SimpleCommandMap implements CommandMap { private final Map knownCommands = new HashMap(); + private final Server server; public SimpleCommandMap(final Server server) { - register("bukkit", new VersionCommand("version", server)); - - register("reload", "bukkit", new Command("reload") { - @Override - public boolean execute(Player player, String currentAlias, String[] args) { - if (player.isOp()) { - server.reload(); - player.sendMessage(ChatColor.GREEN + "Reload complete."); - } else { - player.sendMessage(ChatColor.RED + "You do not have sufficient access" - + " to reload this server."); - } + this.server = server; + setDefaultCommands(server); + } - return true; - } - }); + private void setDefaultCommands(final Server server) { + register("bukkit", new VersionCommand("version", server)); + register("bukkit", new ReloadCommand("reload", server)); } /** @@ -89,6 +81,7 @@ public final class SimpleCommandMap implements CommandMap { public void clearCommands() { synchronized (this) { knownCommands.clear(); + setDefaultCommands(server); } } @@ -189,4 +182,28 @@ public final class SimpleCommandMap implements CommandMap { return result.toString(); } } + + private static class ReloadCommand extends Command { + + private final Server server; + + public ReloadCommand(String name, Server server) { + super(name); + this.server = server; + this.tooltip = "Reloads the server configuration and plugins"; + this.usageMessage = "/reload"; + this.setAliases(Arrays.asList("rl")); + } + + @Override + public boolean execute(Player player, String currentAlias, String[] args) { + if (player.isOp()) { + server.reload(); + player.sendMessage(ChatColor.GREEN + "Reload complete."); + } else { + player.sendMessage(ChatColor.RED + "You do not have sufficient access" + " to reload this server."); + } + return true; + } + } } \ No newline at end of file -- cgit v1.2.3 From 85827e3614b845e7a77d6a191b8bba7d01c4ff8c Mon Sep 17 00:00:00 2001 From: sk89q Date: Fri, 28 Jan 2011 10:24:34 -0800 Subject: Added Block.isBlockPowered(), block.isBlockIndirectlyPowered(). --- src/main/java/org/bukkit/block/Block.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src') diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java index cb4ba7dc..457530c6 100644 --- a/src/main/java/org/bukkit/block/Block.java +++ b/src/main/java/org/bukkit/block/Block.java @@ -187,4 +187,18 @@ public interface Block { * @return Biome type containing this block */ Biome getBiome(); + + /** + * Returns true if the block is being powered by Redstone. + * + * @return + */ + boolean isBlockPowered(); + + /** + * Returns true if the block is being indirectly powered by Redstone. + * + * @return + */ + boolean isBlockIndirectlyPowered(); } -- cgit v1.2.3