MC PY

# 02/05/18 17:05

#Copyright 2018 Vulcan Inc.
#Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
#The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

import telnetlib
LCMhTelnet = 0

def open():
    global LCMhTelnet
    LCMhTelnet = telnetlib.Telnet('mc.livingcomputers.org', 4711) # server and port
    return LCMhTelnet

def close():
    global LCMhTelnet
    LCMhTelnet.close
    return LCMhTelnet

def Point(x, y, z): # returns a string of x y z with commas between
    return str(x)+","+str(y)+","+str(z)

def Point5(x, y, z): # returns a string of x y z with commas between
    return str(x+.5)+","+str(y)+","+str(z+.5)

def Locate(Player_Name): # returns x, y, z of your position
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('player.getTile(' + Player_Name + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n') # this is a byte array in the form b'-1023,65,-543\n'
    if message == b'Fail\n':
        return -1, -1, -1
    else:
        vector=Parse(message)
        return vector[1], vector[2], vector[3]

def Cheat(message): # passes string to server, waits 2 seconds and returns result
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write((message + '\n').encode('ascii'))
    response=LCMhTelnet.read_until(b'\n',2)
    return response

def Parse(q):
    result = str(q)
    result = result.replace("b'",'') # get rid of leading junk
    result = result.replace("\\n'", '') # get rid of trailing junk
    result = result.split(',')
    vector = []
    vector.append(len(result))
    for i in range(len(result)):
        vector.append(int(result[i]))
    return vector

def Old_Parse(q):
    x=0
    y=0
    z=0
    while not y: # search for the two commas
        if q[z] == 44: # this is the code for comma
            if x:
                y=z # the second comma location goes into y
            else:
                x=z # the first comma location goes into x
        else:
            if z>16: # oops, something went terribly wrong!
                input(q)
                y=1
        z=z+1
    return [3,int(q[0:x]),int(q[x+1:y]),int(q[y+1:])]

def Transport(Player_Name, x, y, z):
    global LCMhTelnet
    LCMhTelnet.write(('player.setPos(' + Player_Name + ',' + Point5(x,y,z) + ')\n').encode('ascii'))
    return

def Looking(Player_Name): # return 0-9 to give looking direction
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('player.getRotation(' + Player_Name + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n') # 0 south 90 west 180/-179 north -90 east
    if message == b'Fail\n':
        rotation=0.0
    else:
        rotation=float(message)
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('player.getPitch(' + Player_Name + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n') # - is up
    if message == b'Fail\n':
        pitch=90.0
    else:
        pitch=float(message)
    while rotation < 0:
        rotation = rotation + 360.0
    while rotation > 360.0:
        rotation = rotation - 360.0
    if pitch > 75.0:
        q = '0' # Down
    elif pitch < -75.0:
        q = '5' # Up
    elif rotation > 22.5 and rotation <= 67.5:
        q = '1' # SW
    elif rotation > 67.5 and rotation <= 112.5:
        q = '4' # W
    elif rotation > 112.5 and rotation <= 157.5:
        q = '7' # NW
    elif rotation > 157.5 and rotation <= 202.5:
        q = '8' # N
    elif rotation > 202.5 and rotation <= 247.5:
        q = '9' # NE
    elif rotation > 247.5 and rotation <= 292.5:
        q = '6' # E
    elif rotation > 292.5 and rotation <= 337.5:
        q = '3' # SE
    else:
        q = '2' # S
    return q

def setBlock(x, y, z, block, attribute=None):
    global LCMhTelnet
    if attribute is None:
        blocks = str(block)
    else:
        blocks = str(block) + ',' + str(attribute)
    LCMhTelnet.write(('world.setBlock(' + Point(x,y,z) + ',' + blocks + ')\n').encode('ascii'))
    return

def setBlocks(x1, y1, z1,  x2, y2, z2, block, attribute=None):
    global LCMhTelnet
    if attribute is None:
        blocks = str(block)
    else:
        blocks = str(block) + ',' + str(attribute)
    LCMhTelnet.write(('world.setBlocks(' + Point(x1,y1,z1) + ','  + Point(x2,y2,z2) + ',' + blocks + ')\n').encode('ascii'))
    return

def setPos(Player_Name, x, y, z):
    global LCMhTelnet
    LCMhTelnet.write(('player.setPos(' + Player_Name + ',' + Point(x,y,z) + ')\n').encode('ascii'))
    return

def getBlock(x, y, z):
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('world.getBlock(' + Point(x,y,z) + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n') # this is a byte in the form b'43\n'
    return int(message)

def getBlockWithData(x, y, z):
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('world.getBlockWithData(' + Point(x,y,z) + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n') # this is a byte array in the form b'165,3\n'
    return message

def getBlocks(x1, y1, z1,  x2, y2, z2):
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('world.getBlocks(' + Point(x1,y1,z1) + ','  + Point(x2,y2,z2) + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n') # this is a byte array
    return message

def getHeight(x, z):
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('world.getHeight(' + str(x) + ','  + str(z) + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n')
    return int(message)

def getPlayerEntityIds():
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('world.getPlayerIds()\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n')
    return message

def postToChat(message):
    global LCMhTelnet
    LCMhTelnet.write(('chat.post(' + message + ')\n').encode('ascii'))
    return

def getRotation(Player_Name):
    global LCMhTelnet
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('player.getRotation(' + Player_Name + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n')
    if message == b'Fail\n':
        return 0.0
    else:
        return float(message)

def getDirection(Player_Name):
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('player.getPitch(' + Player_Name + ')\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n')
    if message == b'Fail\n':
        return 90.0
    else:
        return float(message)

def pollBlockHits(): # right-click with a sword (which may not move)
    LCMhTelnet.read_very_eager()
    LCMhTelnet.write(('events.block.hits()\n').encode('ascii'))
    message=LCMhTelnet.read_until(b'\n')
    return message

class BlockValueInt:
    air=0
    stone=1
    grass=2
    dirt=3
    cobblestone=4
    planks=5
    sapling=6
    bedrock=7
    flowing_water=8
    water=9
    flowing_lava=10
    lava=11
    sand=12
    gravel=13
    gold_ore=14
    iron_ore=15
    coal_ore=16
    log=17
    leaves=18
    sponge=19
    glass=20
    lapis_ore=21
    lapis_block=22
    dispenser=23
    sandstone=24
    noteblock=25
    bed=26
    golden_rail=27
    detector_rail=28
    sticky_piston=29
    web=30
    tallgrass=31
    deadbush=32
    piston=33
    piston_head=34
    wool=35
    yellow_flower=37
    red_flower=38
    brown_mushroom=39
    red_mushroom=40
    gold_block=41
    iron_block=42
    double_stone_slab=43
    stone_slab=44
    brick_block=45
    tnt=46
    bookshelf=47
    mossy_cobblestone=48
    obsidian=49
    torch=50
    fire=51
    mob_spawner=52
    oak_stairs=53
    chest=54
    redstone_wire=55
    diamond_ore=56
    diamond_block=57
    crafting_table=58
    wheat=59
    farmland=60
    furnace=61
    lit_furnace=62
    standing_sign=63
    wooden_door=64
    ladder=65
    rail=66
    stone_stairs=67
    wall_sign=68
    lever=69
    stone_pressure_plate=70
    iron_door=71
    wooden_pressure_plate=72
    redstone_ore=73
    lit_redstone_ore=74
    unlit_redstone_torch=75
    redstone_torch=76
    stone_button=77
    snow_layer=78
    ice=79
    snow=80
    cactus=81
    clay=82
    reeds=83
    jukebox=84
    fence=85
    pumpkin=86
    netherrack=87
    soul_sand=88
    glowstone=89
    portal=90
    lit_pumpkin=91
    cake=92
    unpowered_repeater=93
    powered_repeater=94
    stained_glass=95
    trapdoor=96
    monster_egg=97
    stonebrick=98
    brown_mushroom_block=99
    red_mushroom_block=100
    iron_bars=101
    glass_pane=102
    melon_block=103
    pumpkin_stem=104
    melon_stem=105
    vine=106
    fence_gate=107
    brick_stairs=108
    stone_brick_stairs=109
    mycelium=110
    waterlily=111
    nether_brick=112
    nether_brick_fence=113
    nether_brick_stairs=114
    nether_wart=115
    enchanting_table=116
    brewing_stand=117
    cauldron=118
    end_portal=119
    end_portal_frame=120
    end_stone=121
    dragon_egg=122
    redstone_lamp=123
    lit_redstone_lamp=124
    double_wooden_slab=125
    wooden_slab=126
    cocoa=127
    sandstone_stairs=128
    emerald_ore=129
    ender_chest=130
    tripwire_hook=131
    tripwire_hook=132
    emerald_block=133
    spruce_stairs=134
    birch_stairs=135
    jungle_stairs=136
    command_block=137
    beacon=138
    cobblestone_wall=139
    flower_pot=140
    carrots=141
    potatoes=142
    wooden_button=143
    skull=144
    anvil=145
    trapped_chest=146
    light_weighted_pressure_plate=147
    heavy_weighted_pressure_plate=148
    unpowered_comparator=149
    powered_comparator=150
    daylight_detector=151
    redstone_block=152
    quartz_ore=153
    hopper=154
    quartz_block=155
    quartz_stairs=156
    activator_rail=157
    dropper=158
    stained_hardened_clay=159
    stained_glass_pane=160
    leaves2=161
    log2=162
    acacia_stairs=163
    dark_oak_stairs=164
    slime=165
    barrier=166
    iron_trapdoor=167
    prismarine=168
    sea_lantern=169
    hay_block=170
    carpet=171
    hardened_clay=172
    coal_block=173
    packed_ice=174
    double_plant=175
    standing_banner=176
    wall_banner=177
    daylight_detector_inverted=178
    red_sandstone=179
    red_sandstone_stairs=180
    double_stone_slab2=181
    stone_slab2=182
    spruce_fence_gate=183
    birch_fence_gate=184
    jungle_fence_gate=185
    dark_oak_fence_gate=186
    acacia_fence_gate=187
    spruce_fence=188
    birch_fence=189
    jungle_fence=190
    dark_oak_fence=191
    acacia_fence=192
    spruce_door=193
    birch_door=194
    jungle_door=195
    acacia_door=196
    dark_oak_door=197
    end_rod=198
    chorus_plant=199
    chorus_flower=200
    purpur_block=201
    purpur_pillar=202
    purpur_stairs=203
    purpur_double_slab=204
    purpur_slab=205
    end_bricks=206
    beetroots=207
    grass_path=208
    end_gateway=209
    repeating_command_block=210
    chain_command_block=211
    frosted_ice=212
    magma=213
    nether_wart_block=214
    red_nether_brick=215
    bone_block=216
    structure_void=217
    observer=218
    white_shulker_box=219
    orange_shulker_box=220
    magenta_shulker_box=221
    light_blue_shulker_box=222
    yellow_shulker_box=223
    lime_shulker_box=224
    pink_shulker_box=225
    gray_shulker_box=226
    silver_shulker_box=227
    cyan_shulker_box=228
    purple_shulker_box=229
    blue_shulker_box=230
    brown_shulker_box=231
    green_shulker_box=232
    red_shulker_box=233
    black_shulker_box=234
    white_glazed_terracotta=235
    orange_glazed_terracotta=236
    magenta_glazed_terracotta=237
    light_blue_glazed_terracotta=238
    yellow_glazed_terracotta=239
    lime_glazed_terracotta=240
    pink_glazed_terracotta=241
    gray_glazed_terracotta=242
    light_gray_glazed_terracotta=243
    cyan_glazed_terracotta=244
    purple_glazed_terracotta=245
    blue_glazed_terracotta=246
    brown_glazed_terracotta=247
    green_glazed_terracotta=248
    red_glazed_terracotta=249
    black_glazed_terracotta=250
    concrete=251
    concrete_powder=252
    structure_block=255

class BlockValuePair:
    Granite=(1,1)
    Polished_Granite=(1,2)
    Diorite=(1,3)
    Polished_Diorite=(1,4)
    Andesite=(1,5)
    Polished_Andesite=(1,6)
    Coarse_Dirt=(3,1)
    Podzol=(3,2)
    Spruce_Wood_Plank=(5,1)
    Birch_Wood_Plank=(5,2)
    Jungle_Wood_Plank=(5,3)
    Acacia_Wood_Plank=(5,4)
    Dark_Oak_Wood_Plank=(5,5)
    Spruce_Sapling=(6,1)
    Birch_Sapling=(6,2)
    Jungle_Sapling=(6,3)
    Acacia_Sapling=(6,4)
    Dark_Oak_Sapling=(6,5)
    Red_Sand=(12,1)
    Spruce_Wood=(17,1)
    Birch_Wood=(17,2)
    Jungle_Wood=(17,3)
    Spruce_Leaves=(18,1)
    Birch_Leaves=(18,2)
    Jungle_Leaves=(18,3)
    Wet_Sponge=(19,1)
    Chiseled_Sandstone=(24,1)
    Smooth_Sandstone=(24,2)
    Grass=(31,1)
    Fern=(31,2)
    Orange_Wool=(35,1)
    Magenta_Wool=(35,2)
    Light_Blue_Wool=(35,3)
    Yellow_Wool=(35,4)
    Lime_Wool=(35,5)
    Pink_Wool=(35,6)
    Gray_Wool=(35,7)
    Light_Gray_Wool=(35,8)
    Cyan_Wool=(35,9)
    Purple_Wool=(35,10)
    Blue_Wool=(35,11)
    Brown_Wool=(35,12)
    Green_Wool=(35,13)
    Red_Wool=(35,14)
    Black_Wool=(35,15)
    Blue_Orchid=(38,1)
    Allium=(38,2)
    Azure_Bluet=(38,3)
    Red_Tulip=(38,4)
    Orange_Tulip=(38,5)
    White_Tulip=(38,6)
    Pink_Tulip=(38,7)
    Oxeye_Daisy=(38,8)
    Double_Sandstone_Slab=(43,1)
    Double_Wooden_Slab=(43,2)
    Double_Cobblestone_Slab=(43,3)
    Double_Brick_Slab=(43,4)
    Double_Stone_Brick_Slab=(43,5)
    Double_Nether_Brick_Slab=(43,6)
    Double_Quartz_Slab=(43,7)
    Sandstone_Slab=(44,1)
    Wooden_Slab=(44,2)
    Cobblestone_Slab=(44,3)
    Brick_Slab=(44,4)
    Stone_Brick_Slab=(44,5)
    Nether_Brick_Slab=(44,6)
    Quartz_Slab=(44,7)
    Orange_Stained_Glass=(95,1)
    Magenta_Stained_Glass=(95,2)
    Light_Blue_Stained_Glass=(95,3)
    Yellow_Stained_Glass=(95,4)
    Lime_Stained_Glass=(95,5)
    Pink_Stained_Glass=(95,6)
    Gray_Stained_Glass=(95,7)
    Light_Gray_Stained_Glass=(95,8)
    Cyan_Stained_Glass=(95,9)
    Purple_Stained_Glass=(95,10)
    Blue_Stained_Glass=(95,11)
    Brown_Stained_Glass=(95,12)
    Green_Stained_Glass=(95,13)
    Red_Stained_Glass=(95,14)
    Black_Stained_Glass=(95,15)
    Cobblestone_Monster_Egg=(97,1)
    Stone_Brick_Monster_Egg=(97,2)
    Mossy_Stone_Brick_Monster_Egg=(97,3)
    Cracked_Stone_Brick_Monster_Egg=(97,4)
    Chiseled_Stone_Brick_Monster_Egg=(97,5)
    Mossy_Stone_Bricks=(98,1)
    Cracked_Stone_Bricks=(98,2)
    Chiseled_Stone_Bricks=(98,3)
    Double_Spruce_Wood_Slab=(125,1)
    Double_Birch_Wood_Slab=(125,2)
    Double_Jungle_Wood_Slab=(125,3)
    Double_Acacia_Wood_Slab=(125,4)
    Double_Dark_Oak_Wood_Slab=(125,5)
    Spruce_Wood_Slab=(126,1)
    Birch_Wood_Slab=(126,2)
    Jungle_Wood_Slab=(126,3)
    Acacia_Wood_Slab=(126,4)
    Dark_Oak_Wood_Slab=(126,5)
    Mossy_Cobblestone_Wall=(139,1)
    Chiseled_Quartz_Block=(155,1)
    Pillar_Quartz_Block=(155,2)
    Orange_Hardened_Clay=(159,1)
    Magenta_Hardened_Clay=(159,2)
    Light_Blue_Hardened_Clay=(159,3)
    Yellow_Hardened_Clay=(159,4)
    Lime_Hardened_Clay=(159,5)
    Pink_Hardened_Clay=(159,6)
    Gray_Hardened_Clay=(159,7)
    Light_Gray_Hardened_Clay=(159,8)
    Cyan_Hardened_Clay=(159,9)
    Purple_Hardened_Clay=(159,10)
    Blue_Hardened_Clay=(159,11)
    Brown_Hardened_Clay=(159,12)
    Green_Hardened_Clay=(159,13)
    Red_Hardened_Clay=(159,14)
    Black_Hardened_Clay=(159,15)
    Orange_Stained_Glass_Pane=(160,1)
    Magenta_Stained_Glass_Pane=(160,2)
    Light_Blue_Stained_Glass_Pane=(160,3)
    Yellow_Stained_Glass_Pane=(160,4)
    Lime_Stained_Glass_Pane=(160,5)
    Pink_Stained_Glass_Pane=(160,6)
    Gray_Stained_Glass_Pane=(160,7)
    Light_Gray_Stained_Glass_Pane=(160,8)
    Cyan_Stained_Glass_Pane=(160,9)
    Purple_Stained_Glass_Pane=(160,10)
    Blue_Stained_Glass_Pane=(160,11)
    Brown_Stained_Glass_Pane=(160,12)
    Green_Stained_Glass_Pane=(160,13)
    Red_Stained_Glass_Pane=(160,14)
    Black_Stained_Glass_Pane=(160,15)
    Dark_Oak_Leaves=(161,1)
    Dark_Oak_Wood=(162,1)
    Prismarine_Bricks=(168,1)
    Dark_Prismarine=(168,2)
    Orange_Carpet=(171,1)
    Magenta_Carpet=(171,2)
    Light_Blue_Carpet=(171,3)
    Yellow_Carpet=(171,4)
    Lime_Carpet=(171,5)
    Pink_Carpet=(171,6)
    Gray_Carpet=(171,7)
    Light_Gray_Carpet=(171,8)
    Cyan_Carpet=(171,9)
    Purple_Carpet=(171,10)
    Blue_Carpet=(171,11)
    Brown_Carpet=(171,12)
    Green_Carpet=(171,13)
    Red_Carpet=(171,14)
    Black_Carpet=(171,15)
    Lilac=(175,1)
    Double_Tallgrass=(175,2)
    Large_Fern=(175,3)
    Rose_Bush=(175,4)
    Peony=(175,5)
    Chiseled_Red_Sandstone=(179,1)
    Smooth_Red_Sandstone=(179,2)
    Orange_Concrete=(251,1)
    Magenta_Concrete=(251,2)
    Light_Blue_Concrete=(251,3)
    Yellow_Concrete=(251,4)
    Lime_Concrete=(251,5)
    Pink_Concrete=(251,6)
    Gray_Concrete=(251,7)
    Light_Gray_Concrete=(251,8)
    Cyan_Concrete=(251,9)
    Purple_Concrete=(251,10)
    Blue_Concrete=(251,11)
    Brown_Concrete=(251,12)
    Green_Concrete=(251,13)
    Red_Concrete=(251,14)
    Black_Concrete=(251,15)
    Orange_Concrete_Powder=(252,1)
    Magenta_Concrete_Powder=(252,2)
    Light_Blue_Concrete_Powder=(252,3)
    Yellow_Concrete_Powder=(252,4)
    Lime_Concrete_Powder=(252,5)
    Pink_Concrete_Powder=(252,6)
    Gray_Concrete_Powder=(252,7)
    Light_Gray_Concrete_Powder=(252,8)
    Cyan_Concrete_Powder=(252,9)
    Purple_Concrete_Powder=(252,10)
    Blue_Concrete_Powder=(252,11)
    Brown_Concrete_Powder=(252,12)
    Green_Concrete_Powder=(252,13)
    Red_Concrete_Powder=(252,14)
    Black_Concrete_Powder=(252,15)

Block=[
['Air','','','','','','','','','','','','','','',''],
['Stone','Granite','Polished Granite','Diorite','Polished Diorite','Andesite','Polished Andesite','','','','','','','','',''],
['Grass','','','','','','','','','','','','','','',''],
['Dirt','Coarse Dirt','Podzol','','','','','','','','','','','','',''],
['Cobblestone','','','','','','','','','','','','','','',''],
['Oak Wood Plank','Spruce Wood Plank','Birch Wood Plank','Jungle Wood Plank','Acacia Wood Plank','Dark Oak Wood Plank','','','','','','','','','',''],
['Oak Sapling','Spruce Sapling','Birch Sapling','Jungle Sapling','Acacia Sapling','Dark Oak Sapling','','','','','','','','','',''],
['Bedrock','','','','','','','','','','','','','','',''],
['Flowing Water','','','','','','','','','','','','','','',''],
['Still Water','','','','','','','','','','','','','','',''],
['Flowing Lava','','','','','','','','','','','','','','',''],
['Still Lava','','','','','','','','','','','','','','',''],
['Sand','Red Sand','','','','','','','','','','','','','',''],
['Gravel','','','','','','','','','','','','','','',''],
['Gold Ore','','','','','','','','','','','','','','',''],
['Iron Ore','','','','','','','','','','','','','','',''],
['Coal Ore','','','','','','','','','','','','','','',''],
['Oak Wood','Spruce Wood','Birch Wood','Jungle Wood','','','','','','','','','','','',''],
['Oak Leaves','Spruce Leaves','Birch Leaves','Jungle Leaves','','','','','','','','','','','',''],
['Sponge','Wet Sponge','','','','','','','','','','','','','',''],
['Glass','','','','','','','','','','','','','','',''],
['Lapis Lazuli Ore','','','','','','','','','','','','','','',''],
['Lapis Lazuli Block','','','','','','','','','','','','','','',''],
['Dispenser','','','','','','','','','','','','','','',''],
['Sandstone','Chiseled Sandstone','Smooth Sandstone','','','','','','','','','','','','',''],
['Note Block','','','','','','','','','','','','','','',''],
['Bed','','','','','','','','','','','','','','',''],
['Powered Rail','','','','','','','','','','','','','','',''],
['Detector Rail','','','','','','','','','','','','','','',''],
['Sticky Piston','','','','','','','','','','','','','','',''],
['Cobweb','','','','','','','','','','','','','','',''],
['Dead Shrub','Grass','Fern','','','','','','','','','','','','',''],
['Dead Bush','','','','','','','','','','','','','','',''],
['Piston','','','','','','','','','','','','','','',''],
['Piston Head','','','','','','','','','','','','','','',''],
['White Wool','Orange Wool','Magenta Wool','Light Blue Wool','Yellow Wool','Lime Wool','Pink Wool','Gray Wool','Light Gray Wool','Cyan Wool','Purple Wool','Blue Wool','Brown Wool','Green Wool','Red Wool','Black Wool'],
['','','','','','','','','','','','','','','',''],
['Dandelion','','','','','','','','','','','','','','',''],
['Poppy','Blue Orchid','Allium','Azure Bluet','Red Tulip','Orange Tulip','White Tulip','Pink Tulip','Oxeye Daisy','','','','','','',''],
['Brown Mushroom','','','','','','','','','','','','','','',''],
['Red Mushroom','','','','','','','','','','','','','','',''],
['Gold Block','','','','','','','','','','','','','','',''],
['Iron Block','','','','','','','','','','','','','','',''],
['Double Stone Slab','Double Sandstone Slab','Double Wooden Slab','Double Cobblestone Slab','Double Brick Slab','Double Stone Brick Slab','Double Nether Brick Slab','Double Quartz Slab','','','','','','','',''],
['Stone Slab','Sandstone Slab','Wooden Slab','Cobblestone Slab','Brick Slab','Stone Brick Slab','Nether Brick Slab','Quartz Slab','','','','','','','',''],
['Bricks','','','','','','','','','','','','','','',''],
['TNT','','','','','','','','','','','','','','',''],
['Bookshelf','','','','','','','','','','','','','','',''],
['Moss Stone','','','','','','','','','','','','','','',''],
['Obsidian','','','','','','','','','','','','','','',''],
['Torch','','','','','','','','','','','','','','',''],
['Fire','','','','','','','','','','','','','','',''],
['Monster Spawner','','','','','','','','','','','','','','',''],
['Oak Wood Stairs','','','','','','','','','','','','','','',''],
['Chest','','','','','','','','','','','','','','',''],
['Redstone Wire','','','','','','','','','','','','','','',''],
['Diamond Ore','','','','','','','','','','','','','','',''],
['Diamond Block','','','','','','','','','','','','','','',''],
['Crafting Table','','','','','','','','','','','','','','',''],
['Wheat Crops','','','','','','','','','','','','','','',''],
['Farmland','','','','','','','','','','','','','','',''],
['Furnace','','','','','','','','','','','','','','',''],
['Burning Furnace','','','','','','','','','','','','','','',''],
['Standing Sign Block','','','','','','','','','','','','','','',''],
['Oak Door Block','','','','','','','','','','','','','','',''],
['Ladder','','','','','','','','','','','','','','',''],
['Rail','','','','','','','','','','','','','','',''],
['Cobblestone Stairs','','','','','','','','','','','','','','',''],
['Wall-mounted Sign Block','','','','','','','','','','','','','','',''],
['Lever','','','','','','','','','','','','','','',''],
['Stone Pressure Plate','','','','','','','','','','','','','','',''],
['Iron Door Block','','','','','','','','','','','','','','',''],
['Wooden Pressure Plate','','','','','','','','','','','','','','',''],
['Redstone Ore','','','','','','','','','','','','','','',''],
['Glowing Redstone Ore','','','','','','','','','','','','','','',''],
['Redstone Torch (off)','','','','','','','','','','','','','','',''],
['Redstone Torch (on)','','','','','','','','','','','','','','',''],
['Stone Button','','','','','','','','','','','','','','',''],
['Snow','','','','','','','','','','','','','','',''],
['Ice','','','','','','','','','','','','','','',''],
['Snow Block','','','','','','','','','','','','','','',''],
['Cactus','','','','','','','','','','','','','','',''],
['Clay','','','','','','','','','','','','','','',''],
['Sugar Canes','','','','','','','','','','','','','','',''],
['Jukebox','','','','','','','','','','','','','','',''],
['Oak Fence','','','','','','','','','','','','','','',''],
['Pumpkin','','','','','','','','','','','','','','',''],
['Netherrack','','','','','','','','','','','','','','',''],
['Soul Sand','','','','','','','','','','','','','','',''],
['Glowstone','','','','','','','','','','','','','','',''],
['Nether Portal','','','','','','','','','','','','','','',''],
['Jack o`Lantern','','','','','','','','','','','','','','',''],
['Cake Block','','','','','','','','','','','','','','',''],
['Redstone Repeater Block (off)','','','','','','','','','','','','','','',''],
['Redstone Repeater Block (on)','','','','','','','','','','','','','','',''],
['White Stained Glass','Orange Stained Glass','Magenta Stained Glass','Light Blue Stained Glass','Yellow Stained Glass','Lime Stained Glass','Pink Stained Glass','Gray Stained Glass','Light Gray Stained Glass','Cyan Stained Glass','Purple Stained Glass','Blue Stained Glass','Brown Stained Glass','Green Stained Glass','Red Stained Glass','Black Stained Glass'],
['Wooden Trapdoor','','','','','','','','','','','','','','',''],
['Stone Monster Egg','Cobblestone Monster Egg','Stone Brick Monster Egg','Mossy Stone Brick Monster Egg','Cracked Stone Brick Monster Egg','Chiseled Stone Brick Monster Egg','','','','','','','','','',''],
['Stone Bricks','Mossy Stone Bricks','Cracked Stone Bricks','Chiseled Stone Bricks','','','','','','','','','','','',''],
['Brown Mushroom Block','','','','','','','','','','','','','','',''],
['Red Mushroom Block','','','','','','','','','','','','','','',''],
['Iron Bars','','','','','','','','','','','','','','',''],
['Glass Pane','','','','','','','','','','','','','','',''],
['Melon Block','','','','','','','','','','','','','','',''],
['Pumpkin Stem','','','','','','','','','','','','','','',''],
['Melon Stem','','','','','','','','','','','','','','',''],
['Vines','','','','','','','','','','','','','','',''],
['Oak Fence Gate','','','','','','','','','','','','','','',''],
['Brick Stairs','','','','','','','','','','','','','','',''],
['Stone Brick Stairs','','','','','','','','','','','','','','',''],
['Mycelium','','','','','','','','','','','','','','',''],
['Lily Pad','','','','','','','','','','','','','','',''],
['Nether Brick','','','','','','','','','','','','','','',''],
['Nether Brick Fence','','','','','','','','','','','','','','',''],
['Nether Brick Stairs','','','','','','','','','','','','','','',''],
['Nether Wart','','','','','','','','','','','','','','',''],
['Enchantment Table','','','','','','','','','','','','','','',''],
['Brewing Stand','','','','','','','','','','','','','','',''],
['Cauldron','','','','','','','','','','','','','','',''],
['End Portal','','','','','','','','','','','','','','',''],
['End Portal Frame','','','','','','','','','','','','','','',''],
['End Stone','','','','','','','','','','','','','','',''],
['Dragon Egg','','','','','','','','','','','','','','',''],
['Redstone Lamp (inactive)','','','','','','','','','','','','','','',''],
['Redstone Lamp (active)','','','','','','','','','','','','','','',''],
['Double Oak Wood Slab','Double Spruce Wood Slab','Double Birch Wood Slab','Double Jungle Wood Slab','Double Acacia Wood Slab','Double Dark Oak Wood Slab','','','','','','','','','',''],
['Oak Wood Slab','Spruce Wood Slab','Birch Wood Slab','Jungle Wood Slab','Acacia Wood Slab','Dark Oak Wood Slab','','','','','','','','','',''],
['Cocoa','','','','','','','','','','','','','','',''],
['Sandstone Stairs','','','','','','','','','','','','','','',''],
['Emerald Ore','','','','','','','','','','','','','','',''],
['Ender Chest','','','','','','','','','','','','','','',''],
['Tripwire Hook','','','','','','','','','','','','','','',''],
['Tripwire','','','','','','','','','','','','','','',''],
['Emerald Block','','','','','','','','','','','','','','',''],
['Spruce Wood Stairs','','','','','','','','','','','','','','',''],
['Birch Wood Stairs','','','','','','','','','','','','','','',''],
['Jungle Wood Stairs','','','','','','','','','','','','','','',''],
['Command Block','','','','','','','','','','','','','','',''],
['Beacon','','','','','','','','','','','','','','',''],
['Cobblestone Wall','Mossy Cobblestone Wall','','','','','','','','','','','','','',''],
['Flower Pot','','','','','','','','','','','','','','',''],
['Carrots','','','','','','','','','','','','','','',''],
['Potatoes','','','','','','','','','','','','','','',''],
['Wooden Button','','','','','','','','','','','','','','',''],
['Mob Head','','','','','','','','','','','','','','',''],
['Anvil','','','','','','','','','','','','','','',''],
['Trapped Chest','','','','','','','','','','','','','','',''],
['Weighted Pressure Plate (light)','','','','','','','','','','','','','','',''],
['Weighted Pressure Plate (heavy)','','','','','','','','','','','','','','',''],
['Redstone Comparator (inactive)','','','','','','','','','','','','','','',''],
['Redstone Comparator (active)','','','','','','','','','','','','','','',''],
['Daylight Sensor','','','','','','','','','','','','','','',''],
['Redstone Block','','','','','','','','','','','','','','',''],
['Nether Quartz Ore','','','','','','','','','','','','','','',''],
['Hopper','','','','','','','','','','','','','','',''],
['Quartz Block','Chiseled Quartz Block','Pillar Quartz Block','','','','','','','','','','','','',''],
['Quartz Stairs','','','','','','','','','','','','','','',''],
['Activator Rail','','','','','','','','','','','','','','',''],
['Dropper','','','','','','','','','','','','','','',''],
['White Hardened Clay','Orange Hardened Clay','Magenta Hardened Clay','Light Blue Hardened Clay','Yellow Hardened Clay','Lime Hardened Clay','Pink Hardened Clay','Gray Hardened Clay','Light Gray Hardened Clay','Cyan Hardened Clay','Purple Hardened Clay','Blue Hardened Clay','Brown Hardened Clay','Green Hardened Clay','Red Hardened Clay','Black Hardened Clay'],
['White Stained Glass Pane','Orange Stained Glass Pane','Magenta Stained Glass Pane','Light Blue Stained Glass Pane','Yellow Stained Glass Pane','Lime Stained Glass Pane','Pink Stained Glass Pane','Gray Stained Glass Pane','Light Gray Stained Glass Pane','Cyan Stained Glass Pane','Purple Stained Glass Pane','Blue Stained Glass Pane','Brown Stained Glass Pane','Green Stained Glass Pane','Red Stained Glass Pane','Black Stained Glass Pane'],
['Acacia Leaves','Dark Oak Leaves','','','','','','','','','','','','','',''],
['Acacia Wood','Dark Oak Wood','','','','','','','','','','','','','',''],
['Acacia Wood Stairs','','','','','','','','','','','','','','',''],
['Dark Oak Wood Stairs','','','','','','','','','','','','','','',''],
['Slime Block','','','','','','','','','','','','','','',''],
['Barrier','','','','','','','','','','','','','','',''],
['Iron Trapdoor','','','','','','','','','','','','','','',''],
['Prismarine','Prismarine Bricks','Dark Prismarine','','','','','','','','','','','','',''],
['Sea Lantern','','','','','','','','','','','','','','',''],
['Hay Bale','','','','','','','','','','','','','','',''],
['White Carpet','Orange Carpet','Magenta Carpet','Light Blue Carpet','Yellow Carpet','Lime Carpet','Pink Carpet','Gray Carpet','Light Gray Carpet','Cyan Carpet','Purple Carpet','Blue Carpet','Brown Carpet','Green Carpet','Red Carpet','Black Carpet'],
['Hardened Clay','','','','','','','','','','','','','','',''],
['Block of Coal','','','','','','','','','','','','','','',''],
['Packed Ice','','','','','','','','','','','','','','',''],
['Sunflower','Lilac','Double Tallgrass','Large Fern','Rose Bush','Peony','','','','','','','','','',''],
['Free-standing Banner','','','','','','','','','','','','','','',''],
['Wall-mounted Banner','','','','','','','','','','','','','','',''],
['Inverted Daylight Sensor','','','','','','','','','','','','','','',''],
['Red Sandstone','Chiseled Red Sandstone','Smooth Red Sandstone','','','','','','','','','','','','',''],
['Red Sandstone Stairs','','','','','','','','','','','','','','',''],
['Double Red Sandstone Slab','','','','','','','','','','','','','','',''],
['Red Sandstone Slab','','','','','','','','','','','','','','',''],
['Spruce Fence Gate','','','','','','','','','','','','','','',''],
['Birch Fence Gate','','','','','','','','','','','','','','',''],
['Jungle Fence Gate','','','','','','','','','','','','','','',''],
['Dark Oak Fence Gate','','','','','','','','','','','','','','',''],
['Acacia Fence Gate','','','','','','','','','','','','','','',''],
['Spruce Fence','','','','','','','','','','','','','','',''],
['Birch Fence','','','','','','','','','','','','','','',''],
['Jungle Fence','','','','','','','','','','','','','','',''],
['Dark Oak Fence','','','','','','','','','','','','','','',''],
['Acacia Fence','','','','','','','','','','','','','','',''],
['Spruce Door Block','','','','','','','','','','','','','','',''],
['Birch Door Block','','','','','','','','','','','','','','',''],
['Jungle Door Block','','','','','','','','','','','','','','',''],
['Acacia Door Block','','','','','','','','','','','','','','',''],
['Dark Oak Door Block','','','','','','','','','','','','','','',''],
['End Rod','','','','','','','','','','','','','','',''],
['Chorus Plant','','','','','','','','','','','','','','',''],
['Chorus Flower','','','','','','','','','','','','','','',''],
['Purpur Block','','','','','','','','','','','','','','',''],
['Purpur Pillar','','','','','','','','','','','','','','',''],
['Purpur Stairs','','','','','','','','','','','','','','',''],
['Purpur Double Slab','','','','','','','','','','','','','','',''],
['Purpur Slab','','','','','','','','','','','','','','',''],
['End Stone Bricks','','','','','','','','','','','','','','',''],
['Beetroot Block','','','','','','','','','','','','','','',''],
['Grass Path','','','','','','','','','','','','','','',''],
['End Gateway','','','','','','','','','','','','','','',''],
['Repeating Command Block','','','','','','','','','','','','','','',''],
['Chain Command Block','','','','','','','','','','','','','','',''],
['Frosted Ice','','','','','','','','','','','','','','',''],
['Magma Block','','','','','','','','','','','','','','',''],
['Nether Wart Block','','','','','','','','','','','','','','',''],
['Red Nether Brick','','','','','','','','','','','','','','',''],
['Bone Block','','','','','','','','','','','','','','',''],
['Structure Void','','','','','','','','','','','','','','',''],
['Observer','','','','','','','','','','','','','','',''],
['White Shulker Box','','','','','','','','','','','','','','',''],
['Orange Shulker Box','','','','','','','','','','','','','','',''],
['Magenta Shulker Box','','','','','','','','','','','','','','',''],
['Light Blue Shulker Box','','','','','','','','','','','','','','',''],
['Yellow Shulker Box','','','','','','','','','','','','','','',''],
['Lime Shulker Box','','','','','','','','','','','','','','',''],
['Pink Shulker Box','','','','','','','','','','','','','','',''],
['Gray Shulker Box','','','','','','','','','','','','','','',''],
['Light Gray Shulker Box','','','','','','','','','','','','','','',''],
['Cyan Shulker Box','','','','','','','','','','','','','','',''],
['Purple Shulker Box','','','','','','','','','','','','','','',''],
['Blue Shulker Box','','','','','','','','','','','','','','',''],
['Brown Shulker Box','','','','','','','','','','','','','','',''],
['Green Shulker Box','','','','','','','','','','','','','','',''],
['Red Shulker Box','','','','','','','','','','','','','','',''],
['Black Shulker Box','','','','','','','','','','','','','','',''],
['White Glazed Terracotta','','','','','','','','','','','','','','',''],
['Orange Glazed Terracotta','','','','','','','','','','','','','','',''],
['Magenta Glazed Terracotta','','','','','','','','','','','','','','',''],
['Light Blue Glazed Terracotta','','','','','','','','','','','','','','',''],
['Yellow Glazed Terracotta','','','','','','','','','','','','','','',''],
['Lime Glazed Terracotta','','','','','','','','','','','','','','',''],
['Pink Glazed Terracotta','','','','','','','','','','','','','','',''],
['Gray Glazed Terracotta','','','','','','','','','','','','','','',''],
['Light Gray Glazed Terracotta','','','','','','','','','','','','','','',''],
['Cyan Glazed Terracotta','','','','','','','','','','','','','','',''],
['Purple Glazed Terracotta','','','','','','','','','','','','','','',''],
['Blue Glazed Terracotta','','','','','','','','','','','','','','',''],
['Brown Glazed Terracotta','','','','','','','','','','','','','','',''],
['Green Glazed Terracotta','','','','','','','','','','','','','','',''],
['Red Glazed Terracotta','','','','','','','','','','','','','','',''],
['Black Glazed Terracotta','','','','','','','','','','','','','','',''],
['White Concrete','Orange Concrete','Magenta Concrete','Light Blue Concrete','Yellow Concrete','Lime Concrete','Pink Concrete','Gray Concrete','Light Gray Concrete','Cyan Concrete','Purple Concrete','Blue Concrete','Brown Concrete','Green Concrete','Red Concrete','Black Concrete'],
['White Concrete Powder','Orange Concrete Powder','Magenta Concrete Powder','Light Blue Concrete Powder','Yellow Concrete Powder','Lime Concrete Powder','Pink Concrete Powder','Gray Concrete Powder','Light Gray Concrete Powder','Cyan Concrete Powder','Purple Concrete Powder','Blue Concrete Powder','Brown Concrete Powder','Green Concrete Powder','Red Concrete Powder','Black Concrete Powder'],
['','','','','','','','','','','','','','','',''],
['','','','','','','','','','','','','','','',''],
['Structure Block','','','','','','','','','','','','','','','']
]