Skip to content

Commit 80baa2e

Browse files
committed
make_slot_check() now also takes names and Item instances
1 parent 373514e commit 80baa2e

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

spockbot/mcdata/windows.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from minecraft_data.v1_8 import windows_list
66

77
from spockbot.mcdata import constants, get_item_or_block
8+
from spockbot.mcdata.blocks import Block
89
from spockbot.mcdata.items import Item
910
from spockbot.mcdata.utils import camel_case, snake_case
1011

@@ -23,10 +24,17 @@ def make_slot_check(wanted):
2324
if isinstance(wanted, int):
2425
item, meta = wanted, None
2526
elif isinstance(wanted, Slot):
26-
item, meta = wanted.item_id, wanted.damage
27-
# TODO compare NBT
28-
else: # wanted is list of (id, meta)
29-
item, meta = wanted
27+
item, meta = wanted.item_id, wanted.damage # TODO compare NBT
28+
elif isinstance(wanted, (Item, Block)):
29+
item, meta = wanted.id, wanted.metadata
30+
elif isinstance(wanted, str):
31+
item_or_block = get_item_or_block(wanted, init=True)
32+
item, meta = item_or_block.id, item_or_block.metadata
33+
else: # wanted is (id, meta)
34+
try:
35+
item, meta = wanted
36+
except TypeError:
37+
raise ValueError('Illegal args for make_slot_check(): %s' % wanted)
3038

3139
return lambda slot: item == slot.item_id and meta in (None, slot.damage)
3240

0 commit comments

Comments
 (0)