diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java b/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java index ef324fd53d..f84b257f7a 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/ScriptEventRegistry.java @@ -13,8 +13,6 @@ import com.denizenscript.denizen.events.vehicle.*; import com.denizenscript.denizen.events.world.*; import com.denizenscript.denizen.utilities.depends.Depends; -import com.denizenscript.denizen.nms.NMSHandler; -import com.denizenscript.denizen.nms.NMSVersion; import com.denizenscript.denizencore.events.ScriptEvent; import com.denizenscript.denizencore.events.ScriptEventCouldMatcher; @@ -50,6 +48,7 @@ public static void registerMainEvents() { // Block events ScriptEvent.registerScriptEvent(BlockBuiltScriptEvent.class); ScriptEvent.registerScriptEvent(BlockBurnsScriptEvent.class); + ScriptEvent.registerScriptEvent(BlockCooksSmeltsItemScriptEvent.class); ScriptEvent.registerScriptEvent(BlockDestroyedByExplosionEvent.class); ScriptEvent.registerScriptEvent(BlockDispensesScriptEvent.class); ScriptEvent.registerScriptEvent(BlockExplodesScriptEvent.class); @@ -64,7 +63,6 @@ public static void registerMainEvents() { ScriptEvent.registerScriptEvent(BrewsScriptEvent.class); ScriptEvent.registerScriptEvent(CauldronLevelChangeScriptEvent.class); ScriptEvent.registerScriptEvent(FurnaceBurnsItemScriptEvent.class); - ScriptEvent.registerScriptEvent(FurnaceSmeltsItemScriptEvent.class); ScriptEvent.registerScriptEvent(LeafDecaysScriptEvent.class); ScriptEvent.registerScriptEvent(LiquidLevelChangeScriptEvent.class); ScriptEvent.registerScriptEvent(LiquidSpreadScriptEvent.class); diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/block/FurnaceSmeltsItemScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockCooksSmeltsItemScriptEvent.java similarity index 65% rename from plugin/src/main/java/com/denizenscript/denizen/events/block/FurnaceSmeltsItemScriptEvent.java rename to plugin/src/main/java/com/denizenscript/denizen/events/block/BlockCooksSmeltsItemScriptEvent.java index e76e57e482..98a1252f8a 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/block/FurnaceSmeltsItemScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/block/BlockCooksSmeltsItemScriptEvent.java @@ -4,15 +4,16 @@ import com.denizenscript.denizen.objects.LocationTag; import com.denizenscript.denizen.events.BukkitScriptEvent; import com.denizenscript.denizencore.objects.ObjectTag; +import org.bukkit.block.Block; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; -import org.bukkit.event.inventory.FurnaceSmeltEvent; +import org.bukkit.event.block.BlockCookEvent; -public class FurnaceSmeltsItemScriptEvent extends BukkitScriptEvent implements Listener { +public class BlockCooksSmeltsItemScriptEvent extends BukkitScriptEvent implements Listener { // <--[event] // @Events - // furnace smelts (into ) + // cooks|smelts (into ) // // @Cancellable true // @@ -20,41 +21,43 @@ public class FurnaceSmeltsItemScriptEvent extends BukkitScriptEvent implements L // // @Location true // - // @Triggers when a furnace smelts an item. + // @Triggers when an item is smelted/cooked by a block. // // @Context - // returns the LocationTag of the furnace. - // returns the ItemTag that is being smelted. - // returns the ItemTag that is the result of the smelting. + // returns the LocationTag of the block smelting/cooking. + // returns the ItemTag that is being smelted/cooked. + // returns the ItemTag that is the result of the smelting/cooking. // // @Determine - // ItemTag to set the item that is the result of the smelting. + // ItemTag to set the item that is the result of the smelting/cooking. // // --> - public FurnaceSmeltsItemScriptEvent() { + public BlockCooksSmeltsItemScriptEvent() { instance = this; - registerCouldMatcher("furnace smelts (into )"); + registerCouldMatcher(" cooks|smelts (into )"); } - public static FurnaceSmeltsItemScriptEvent instance; + public static BlockCooksSmeltsItemScriptEvent instance; public ItemTag source_item; public ItemTag result_item; - public LocationTag location; - public FurnaceSmeltEvent event; + public Block block; + public BlockCookEvent event; @Override public boolean matches(ScriptPath path) { + if (!tryMaterial(block.getType(), path.eventArgLowerAt(0))) { + return false; + } if (!tryItem(source_item, path.eventArgLowerAt(2))) { return false; } - if (path.eventArgLowerAt(3).equals("into")) { if (!tryItem(result_item, path.eventArgLowerAt(4))) { return false; } } - if (!runInCheck(path, location)) { + if (!runInCheck(path, block.getLocation())) { return false; } return super.matches(path); @@ -62,7 +65,7 @@ public boolean matches(ScriptPath path) { @Override public String getName() { - return "FurnaceSmelts"; + return "BlockCooksSmelts"; } @Override @@ -78,7 +81,7 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) { @Override public ObjectTag getContext(String name) { switch (name) { - case "location": return location; + case "location": return new LocationTag(block.getLocation()); case "source_item": return source_item; case "result_item": return result_item; } @@ -86,8 +89,8 @@ public ObjectTag getContext(String name) { } @EventHandler - public void onFurnaceSmelts(FurnaceSmeltEvent event) { - location = new LocationTag(event.getBlock().getLocation()); + public void onBlockCooks(BlockCookEvent event) { + block = event.getBlock(); source_item = new ItemTag(event.getSource()); result_item = new ItemTag(event.getResult()); this.event = event;