More blockplacemods
Trying to make it place an item (in this case 1 piece of redstone dust) in a furnace. I know that it creates the ItemStack correctly, I know that in this case .getInventory() returns an instance of FurnaceInventory and I know that .update() is returning True meaning it updated the blockstate successfully. However, the item is not appearing in the furnace. Any idea why?
This commit is contained in:
@@ -1,6 +1,9 @@
|
|||||||
from helpers import *
|
from helpers import *
|
||||||
from basecommands import simplecommand
|
from basecommands import simplecommand
|
||||||
import org.bukkit.event.block.BlockBreakEvent as BlockBreakEvent
|
import org.bukkit.event.block.BlockBreakEvent as BlockBreakEvent
|
||||||
|
import org.bukkit.block.Furnace as Furnace
|
||||||
|
import org.bukkit.inventory.ItemStack as ItemStack
|
||||||
|
import org.bukkit.Material as Material
|
||||||
|
|
||||||
denyslabcorrection = open_json_file("denyslabcorrection", []) #Players that don't want slabs corrected
|
denyslabcorrection = open_json_file("denyslabcorrection", []) #Players that don't want slabs corrected
|
||||||
denyautofill = open_json_file("denyautocauldronfill", [])
|
denyautofill = open_json_file("denyautocauldronfill", [])
|
||||||
@@ -94,11 +97,15 @@ def on_block_place(event):
|
|||||||
return
|
return
|
||||||
uuid = uid(player)
|
uuid = uid(player)
|
||||||
block = event.getBlockPlaced()
|
block = event.getBlockPlaced()
|
||||||
if uuid not in denyslabcorrection and str(block.getType()) in ("WOOD_STEP", "STEP") and block.getData() < 8:
|
material = str(block.getType())
|
||||||
|
if uuid not in denyslabcorrection and material in ("WOOD_STEP", "STEP") and block.getData() < 8:
|
||||||
block.setData(block.getData() + 8) # Flip upside down
|
block.setData(block.getData() + 8) # Flip upside down
|
||||||
elif uuid not in denyautofill and str(block.getType()) == "CAULDRON":
|
elif uuid not in denyautofill and material == "CAULDRON":
|
||||||
block.setData(3) #3 layers of water, 3 signal strength
|
block.setData(3) #3 layers of water, 3 signal strength
|
||||||
|
elif material == "FURNACE":
|
||||||
|
state = block.getState()
|
||||||
|
state.getInventory().setSmelting(ItemStack(Material.REDSTONE))
|
||||||
|
state.update()
|
||||||
|
|
||||||
@hook.event("player.PlayerInteractEvent", "monitor")
|
@hook.event("player.PlayerInteractEvent", "monitor")
|
||||||
def on_interact(event):
|
def on_interact(event):
|
||||||
@@ -114,7 +121,4 @@ def on_interact(event):
|
|||||||
server.getPluginManager().callEvent(event2)
|
server.getPluginManager().callEvent(event2)
|
||||||
data = block.getData()
|
data = block.getData()
|
||||||
if not event2.isCancelled() and str(block.getType()) == "CAULDRON":
|
if not event2.isCancelled() and str(block.getType()) == "CAULDRON":
|
||||||
if data > 0:
|
block.setData(data - 1 if data > 0 else 3)
|
||||||
block.setData(data - 1) #Lower water level by one
|
|
||||||
else:
|
|
||||||
block.setData(3) #Set water level back to 3
|
|
||||||
|
|||||||
Reference in New Issue
Block a user