nlist: add autdump infra
[waspsaliva.git] / clientmods / nlist / init.lua
blob5d1213e1b4d4a81cb56b21448439c6a490570ede
1 nlist = {}
2 ws.on_connect(function()
3 ws.lp=minetest.localplayer
4 end)
5 local storage=minetest.get_mod_storage()
6 local sl="default"
7 local mode=1 --1:add, 2:remove
8 local nled_hud
9 local edmode_wason=false
10 nlist.selected=sl
11 nlist.dumppos={}
13 local modname = minetest.get_current_modname()
14 local modpath = minetest.get_modpath(modname)
15 dofile(modpath .. "/forms.lua")
16 minetest.register_cheat('Lists','nList',function()ws.display_list_formspec("NodeLists",nlist.get_lists(),{}) end)
18 ws.rg('NlEdMode','nList','nlist_edmode', function()nlist.show_list(sl,true) end,function() end,function()nlist.hide() end)
23 minetest.register_on_punchnode(function(p, n)
24 if not minetest.settings:get_bool('nlist_edmode') then return end
25 if mode == 1 then
26 nlist.add(sl,n.name)
27 elseif mode ==2 then
28 nlist.remove(sl,n.name)
29 end
31 end)
34 function nlist.add(list,node)
35 if node == "" then mode=1 return end
36 local tb=nlist.get(list)
37 local str=''
38 for k,v in pairs(tb) do
39 str=str..','..v
40 if v == node then return end
41 end
42 str=str..','..node
43 storage:set_string(list,str)
44 ws.dcm('added '..str..' to list '..list)
45 end
47 function nlist.remove(list,node)
48 if node == "" then mode=2 return end
49 local tb=nlist.get(list)
50 local rstr=''
51 for k,v in pairs(tb) do
52 if v ~= node then rstr = rstr .. ',' .. v end
53 end
54 storage:set_string(list, rstr)
55 end
57 function nlist.get(list)
58 local arr=storage:get_string(list):split(',')
59 if not arr then arr={} end
60 return arr
61 end
63 function nlist.get_dumppos()
64 local arr=minetest.deserialize(storage:get_string("dumppos"))
65 if not arr then arr={} end
66 nlist.dumppos=arr
67 return arr
68 end
69 function nlist.set_dumppos(list,pos)
70 nlist.dumppos=nlist.get_dumppos()
71 nlist.dumppos[list]=pos
72 storage:set_string('dumppos',minetest.serialize(nlist.dumppos))
73 end
77 function nlist.get_lists()
78 local ret={}
79 for name, _ in pairs(storage:to_table().fields) do
80 table.insert(ret, name)
81 end
82 table.sort(ret)
83 return ret
84 end
86 function nlist.rename(oldname, newname)
87 oldname, newname = tostring(oldname), tostring(newname)
88 local list = storage:get_string(oldname)
89 if not list or not storage:set_string(newname,list)then return end
90 if oldname ~= newname then
91 storage:set_string(list,'')
92 end
93 return true
94 end
96 function nlist.clear(list)
97 storage:set_string(list,'')
98 end
101 function nlist.getd()
102 return nlist.get_string(minetest.get_current_modname())
105 function nlist.show_list(list,hlp)
106 if not list then return end
107 local act="add"
108 if mode == 2 then act="remove" end
109 local txt=list .. "\n --\n" .. table.concat(nlist.get(list),"\n")
110 local htxt="Nodelist edit mode\n .nla/.nlr to switch\n punch node to ".. act .. "\n.nlc to clear\n"
111 if hlp then txt=htxt .. txt end
112 set_nled_hud(txt)
115 function nlist.hide()
116 if nled_hud then minetest.localplayer:hud_remove(nled_hud) nled_hud=nil end
119 function nlist.random(list)
120 local str=storage:get(list)
121 local tb=str:split(',')
122 local kk = {}
123 for k in pairs(tb) do
124 table.insert(kk, k)
126 return tb[kk[math.random(#kk)]]
130 function set_nled_hud(ttext)
131 if not minetest.localplayer then return end
132 if type(ttext) ~= "string" then return end
135 local dtext ="List: ".. ttext
137 if nled_hud then
138 minetest.localplayer:hud_change(nled_hud,'text',dtext)
139 else
140 nled_hud = minetest.localplayer:hud_add({
141 hud_elem_type = 'text',
142 name = "Nodelist",
143 text = dtext,
144 number = 0x00ff00,
145 direction = 0,
146 position = {x=0.8,y=0.40},
147 alignment ={x=1,y=1},
148 offset = {x=0, y=0}
151 return true
154 local function todflist(list)
155 --if not minetest.settings:get(list) then return end
156 minetest.settings:set(list,table.concat(nlist.get(nlist.selected),","))
159 minetest.register_chatcommand('nls',{func=function(list) sl=list nlist.selected=list end})
160 minetest.register_chatcommand('nlshow',{func=function() nlist.show_list(sl) end})
161 minetest.register_chatcommand('nla',{func=function(el) nlist.add(sl,el) end})
162 minetest.register_chatcommand('nlr',{func=function(el) nlist.remove(sl,el) end})
163 minetest.register_chatcommand('nlc',{func=function(el) nlist.clear(sl) end})
165 minetest.register_chatcommand('nlawi',{func=function() nlist.add(sl,minetest.localplayer:get_wielded_item():get_name()) end})
166 minetest.register_chatcommand('nlrwi',{func=function() nlist.remove(sl,minetest.localplayer:get_wielded_item():get_name()) end})
168 minetest.register_chatcommand('nltodf',{func=function(p) todflist(tostring(p)) end})
171 minetest.register_cheat("NlToDfXray",'nList',function()
172 todflist('xray_nodes')
173 end)
174 minetest.register_cheat("NlToDfSearch",'nList',function()
175 todflist('search_nodes')
176 end)
177 minetest.register_cheat("NlToDfEject",'nList',function()
178 todflist('eject_nodes')
179 end)
181 function nlist.get_mtnodes()
182 local arr= {
183 "default:3dtorch",
184 "default:acacia_bush",
185 "default:acacia_bush_leaves",
186 "default:acacia_bush_sapling",
187 "default:acacia_bush_stem",
188 "default:acacia_leaves",
189 "default:acacia_log",
190 "default:acacia_sapling",
191 "default:acacia_tree",
192 "default:acacia_wood",
193 "default:apple",
194 "default:apple_log",
195 "default:apple_mark",
196 "default:apple_tree",
197 "default:aspen_leaves",
198 "default:aspen_log",
199 "default:aspen_sapling",
200 "default:aspen_tree",
201 "default:aspen_wood",
202 "default:axe_",
203 "default:axe_bronze",
204 "default:axe_diamond",
205 "default:axe_mese",
206 "default:axe_steel",
207 "default:axe_stone",
208 "default:axe_wood",
209 "default:blueberries",
210 "default:blueberry_bush",
211 "default:blueberry_bush_leaves",
212 "default:blueberry_bush_leaves_with_berries",
213 "default:blueberry_bush_sapling",
214 "default:book",
215 "default:bookshelf",
216 "default:book_written",
217 "default:brick",
218 "default:bronzeblock",
219 "default:bronze_ingot",
220 "default:bush",
221 "default:bush_leaves",
222 "default:bush_sapling",
223 "default:bush_stem",
224 "default:cactus",
225 "default:cave_ice",
226 "default:chest",
227 "default:chest_locked",
228 "default:clay",
229 "default:clay_brick",
230 "default:clay_lump",
231 "default:cloud",
232 "default:coalblock",
233 "default:coal_lump",
234 "default:cobble",
235 "default:cobble]",
236 "default:convert_saplings_to_node_timer",
237 "default:copperblock",
238 "default:copper_ingot",
239 "default:copper_lump",
240 "default:coral_brown",
241 "default:coral_cyan",
242 "default:coral_green",
243 "default:coral_orange",
244 "default:coral_pink",
245 "default:corals",
246 "default:coral_skeleton",
247 "default:desert_cobble",
248 "default:desert_sand",
249 "default:desert_sandstone",
250 "default:desert_sandstone_block",
251 "default:desert_sandstone_brick",
252 "default:desert_stone",
253 "default:desert_stone_block",
254 "default:desert_stonebrick",
255 "default:diamond",
256 "default:diamondblock",
257 "default:dirt",
258 "default:dirt_with_coniferous_litter",
259 "default:dirt_with_dry_grass",
260 "default:dirt_with_grass",
261 "default:dirt_with_grass_footsteps",
262 "default:dirt_with_rainforest_litter",
263 "default:dirt_with_snow",
264 "default:dry_dirt",
265 "default:dry_dirt_with_dry_grass",
266 "default:dry_grass_",
267 "default:dry_grass_1",
268 "default:dry_shrub",
269 "default:emergent_jungle_sapling",
270 "default:emergent_jungle_tree",
271 "default:fence_acacia_wood",
272 "default:fence_aspen_wood",
273 "default:fence_junglewood",
274 "default:fence_pine_wood",
275 "default:fence_rail_acacia_wood",
276 "default:fence_rail_aspen_wood",
277 "default:fence_rail_junglewood",
278 "default:fence_rail_pine_wood",
279 "default:fence_rail_wood",
280 "default:fence_wood",
281 "default:fern_",
282 "default:fern_1",
283 "default:flint",
284 "default:furnace",
285 "default:furnace_active",
286 "default:glass",
287 "default:goldblock",
288 "default:gold_ingot",
289 "default:gold_lump",
290 "default:grass_",
291 "default:grass_1",
292 "default:gravel",
293 "default:ice",
294 "default:iron_lump",
295 "default:junglegrass",
296 "default:jungleleaves",
297 "default:jungle_log",
298 "default:junglesapling",
299 "default:jungle_tree",
300 "default:jungletree",
301 "default:jungle_tree(swamp)",
302 "default:junglewood",
303 "default:kelp",
304 "default:key",
305 "default:ladder",
306 "default:ladder_steel",
307 "default:ladder_wood",
308 "default:large_cactus",
309 "default:large_cactus_seedling",
310 "default:lava_flowing",
311 "default:lava_source",
312 "default:leaves",
313 "default:marram_grass",
314 "default:marram_grass_",
315 "default:marram_grass_1",
316 "default:marram_grass_2",
317 "default:marram_grass_3",
318 "default:mese",
319 "default:mese_block",
320 "default:mese_crystal",
321 "default:mese_crystal_fragment",
322 "default:meselamp",
323 "default:mese_post_light",
324 "default:mese_post_light_acacia",
325 "default:mese_post_light_aspen_wood",
326 "default:mese_post_light_junglewood",
327 "default:mese_post_light_pine_wood",
328 "default:mossycobble",
329 "default:obsidian",
330 "default:obsidian_block",
331 "default:obsidianbrick",
332 "default:obsidian_glass",
333 "default:obsidian_shard",
334 "default:paper",
335 "default:papyrus",
336 "default:papyrus_on_dirt",
337 "default:papyrus_on_dry_dirt",
338 "default:permafrost",
339 "default:permafrost_with_moss",
340 "default:permafrost_with_stones",
341 "default:pick_",
342 "default:pick_bronze",
343 "default:pick_diamond",
344 "default:pick_mese",
345 "default:pick_steel",
346 "default:pick_stone",
347 "default:pick_wood",
348 "default:pine_bush",
349 "default:pine_bush_needles",
350 "default:pine_bush_sapling",
351 "default:pine_bush_stem",
352 "default:pine_log",
353 "default:pine_needles",
354 "default:pine_sapling",
355 "default:pine_tree",
356 "default:pinetree",
357 "default:pine_wood",
358 "default:pinewood",
359 "default:rail",
360 "default:river_water_flowing",
361 "default:river_water_source",
362 "default:sand",
363 "default:sandstone",
364 "default:sandstone_block",
365 "default:sandstonebrick",
366 "default:sand_with_kelp",
367 "default:sapling",
368 "default:shovel_",
369 "default:shovel_bronze",
370 "default:shovel_diamond",
371 "default:shovel_mese",
372 "default:shovel_steel",
373 "default:shovel_stone",
374 "default:shovel_wood",
375 "default:sign_wall",
376 "default:sign_wall_",
377 "default:sign_wall_steel",
378 "default:sign_wall_wood",
379 "default:silver_sand",
380 "default:silver_sandstone",
381 "default:silver_sandstone_block",
382 "default:silver_sandstone_brick",
383 "default:skeleton_key",
384 "default:small_pine_tree",
385 "default:snow",
386 "default:snowblock",
387 "default:steelblock",
388 "default:steel_ingot",
389 "default:stick",
390 "default:stone",
391 "default:stone_block",
392 "default:stonebrick",
393 "default:stone_with_coal",
394 "default:stone_with_copper",
395 "default:stone_with_diamond",
396 "default:stone_with_gold",
397 "default:stone_with_iron",
398 "default:stone_with_mese",
399 "default:stone_with_tin",
400 "default:sword_",
401 "default:sword_bronze",
402 "default:sword_diamond",
403 "default:sword_mese",
404 "default:sword_steel",
405 "default:sword_stone",
406 "default:sword_wood",
407 "default:tinblock",
408 "default:tin_ingot",
409 "default:tin_lump",
410 "default:torch",
411 "default:torch_ceiling",
412 "default:torch_wall",
413 "default:tree",
414 "default:upgrade_",
415 "default:water_flowing",
416 "default:waterlily",
417 "default:water_source",
418 "default:wood"
420 return arr
423 function nlist.get_mclnodes()
424 local arr={
425 "mcl_anvils:anvil",
426 'mcl_anvils:anvil',
427 'mcl_anvils:anvil_damage_1',
428 'mcl_anvils:anvil_damage_2',
429 'mcl_anvils:update_formspec_0_60_0',
430 'mcl_armor:boots_',
431 'mcl_armor:boots_chain',
432 'mcl_armor:boots_diamond',
433 'mcl_armor:boots_gold',
434 'mcl_armor:boots_iron',
435 'mcl_armor:boots_leather',
436 'mcl_armor:chestplate_',
437 'mcl_armor:chestplate_chain',
438 'mcl_armor:chestplate_diamond',
439 'mcl_armor:chestplate_gold',
440 'mcl_armor:chestplate_iron',
441 'mcl_armor:chestplate_leather',
442 'mcl_armor:helmet_',
443 'mcl_armor:helmet_chain',
444 'mcl_armor:helmet_diamond',
445 'mcl_armor:helmet_gold',
446 'mcl_armor:helmet_iron',
447 'mcl_armor:helmet_leather',
448 'mcl_armor:leggings_',
449 'mcl_armor:leggings_chain',
450 'mcl_armor:leggings_diamond',
451 'mcl_armor:leggings_gold',
452 'mcl_armor:leggings_iron',
453 'mcl_armor:leggings_leather',
454 'mcl_banners:banner_item_',
455 'mcl_banners:banner_item_white',
456 'mcl_banners:hanging_banner',
457 'mcl_banners:respawn_entities',
458 'mcl_banners:standing_banner',
459 'mcl_beds:bed_',
460 'mcl_beds:bed_red_bottom',
461 'mcl_beds:bed_red_top',
462 'mcl_beds:bed_white_bottom',
463 'mcl_beds:sleeping',
464 'mcl_beds:spawn',
465 'mcl_biomes:chorus_plant',
466 'mcl_boats:boat',
467 'mcl_books:book',
468 'mcl_books:bookshelf',
469 'mcl_books:signing',
470 'mcl_books:writable_book',
471 'mcl_books:written_book',
472 'mcl_bows:arrow',
473 'mcl_bows:arrow_box',
474 'mcl_bows:arrow_entity',
475 'mcl_bows:bow',
476 'mcl_bows:bow_',
477 'mcl_bows:bow_0',
478 'mcl_bows:bow_1',
479 'mcl_bows:bow_2',
480 'mcl_bows:use_bow',
481 'mcl_brewing:stand',
482 'mcl_brewing:stand_',
483 'mcl_brewing:stand_000',
484 'mcl_brewing:stand_001',
485 'mcl_brewing:stand_010',
486 'mcl_brewing:stand_011',
487 'mcl_brewing:stand_100',
488 'mcl_brewing:stand_101',
489 'mcl_brewing:stand_110',
490 'mcl_brewing:stand_111',
491 'mcl_buckets:bucket_empty',
492 'mcl_buckets:bucket_lava',
493 'mcl_buckets:bucket_river_water',
494 'mcl_buckets:bucket_water',
495 'mcl_cake:cake',
496 'mcl_cake:cake_',
497 'mcl_cake:cake_1',
498 'mcl_cake:cake_6',
499 'mcl_cauldrons:cauldron',
500 'mcl_cauldrons:cauldron_',
501 'mcl_cauldrons:cauldron_1',
502 'mcl_cauldrons:cauldron_1r',
503 'mcl_cauldrons:cauldron_2',
504 'mcl_cauldrons:cauldron_2r',
505 'mcl_cauldrons:cauldron_3',
506 'mcl_cauldrons:cauldron_3r',
507 'mcl_chests:chest',
508 'mcl_chests:ender_chest',
509 'mcl_chests:reset_trapped_chests',
510 'mcl_chests:trapped_chest',
511 'mcl_chests:trapped_chest_',
512 'mcl_chests:trapped_chest_left',
513 'mcl_chests:trapped_chest_on',
514 'mcl_chests:trapped_chest_on_left',
515 'mcl_chests:trapped_chest_on_right',
516 'mcl_chests:trapped_chest_right',
517 'mcl_chests:update_ender_chest_formspecs_0_60_0',
518 'mcl_chests:update_formspecs_0_51_0',
519 'mcl_chests:update_shulker_box_formspecs_0_60_0',
520 'mcl_chests:violet_shulker_box',
521 'mcl_clock:clock',
522 'mcl_clock:clock_',
523 'mcl_cocoas:cocoa_1',
524 'mcl_cocoas:cocoa_2',
525 'mcl_cocoas:cocoa_3',
526 'mcl_colorblocks:concrete_',
527 'mcl_colorblocks:concrete_powder_',
528 'mcl_colorblocks:glazed_terracotta_',
529 'mcl_colorblocks:glazed_terracotta_black',
530 'mcl_colorblocks:glazed_terracotta_blue',
531 'mcl_colorblocks:glazed_terracotta_brown',
532 'mcl_colorblocks:glazed_terracotta_cyan',
533 'mcl_colorblocks:glazed_terracotta_green',
534 'mcl_colorblocks:glazed_terracotta_grey',
535 'mcl_colorblocks:glazed_terracotta_light_blue',
536 'mcl_colorblocks:glazed_terracotta_lime',
537 'mcl_colorblocks:glazed_terracotta_magenta',
538 'mcl_colorblocks:glazed_terracotta_orange',
539 'mcl_colorblocks:glazed_terracotta_pink',
540 'mcl_colorblocks:glazed_terracotta_purple',
541 'mcl_colorblocks:glazed_terracotta_red',
542 'mcl_colorblocks:glazed_terracotta_silver',
543 'mcl_colorblocks:glazed_terracotta_white',
544 'mcl_colorblocks:glazed_terracotta_yellow',
545 'mcl_colorblocks:hardened_clay',
546 'mcl_colorblocks:hardened_clay_',
547 'mcl_colorblocks:hardened_clay_orange',
548 'mcl_comparators:comparator_',
549 'mcl_comparators:comparator_off_',
550 'mcl_comparators:comparator_off_comp',
551 'mcl_comparators:comparator_off_sub',
552 'mcl_comparators:comparator_on_',
553 'mcl_comparators:comparator_on_comp',
554 'mcl_comparators:comparator_on_sub',
555 'mcl_compass:compass',
556 'mcl_core:acacialeaves',
557 'mcl_core:acaciasapling',
558 'mcl_core:acaciatree',
559 'mcl_core:acaciawood',
560 'mcl_core:andesite',
561 'mcl_core:andesite_smooth',
562 'mcl_core:apple',
563 'mcl_core:apple_gold',
564 'mcl_core:axe_diamond',
565 'mcl_core:axe_gold',
566 'mcl_core:axe_iron',
567 'mcl_core:axe_stone',
568 'mcl_core:axe_wood',
569 'mcl_core:barrier',
570 'mcl_core:bedrock',
571 'mcl_core:birchsapling',
572 'mcl_core:birchtree',
573 'mcl_core:birchwood',
574 'mcl_core:bone_block',
575 'mcl_core:bowl',
576 'mcl_core:brick',
577 'mcl_core:brick_block',
578 'mcl_core:cactus',
579 'mcl_core:charcoal_lump',
580 'mcl_core:clay',
581 'mcl_core:clay_lump',
582 'mcl_core:coalblock',
583 'mcl_core:coal_lump',
584 'mcl_core:coarse_dirt',
585 'mcl_core:cobble',
586 'mcl_core:cobblestone',
587 'mcl_core:cobweb',
588 'mcl_core:darksapling',
589 'mcl_core:darktree',
590 'mcl_core:darkwood',
591 'mcl_core:deadbush',
592 'mcl_core:diamond',
593 'mcl_core:diamondblock',
594 'mcl_core:diorite',
595 'mcl_core:diorite_smooth',
596 'mcl_core:dirt',
597 'mcl_core:dirt_with_dry_grass',
598 'mcl_core:dirt_with_dry_grass_snow',
599 'mcl_core:dirt_with_grass',
600 'mcl_core:dirt_with_grass_snow',
601 'mcl_core:emerald',
602 'mcl_core:emeraldblock',
603 'mcl_core:flint',
604 'mcl_core:frosted_ice_',
605 'mcl_core:frosted_ice_0',
606 'mcl_core:glass',
607 'mcl_core:glass_',
608 'mcl_core:glass_black',
609 'mcl_core:glass_blue',
610 'mcl_core:glass_brown',
611 'mcl_core:glass_cyan',
612 'mcl_core:glass_gray',
613 'mcl_core:glass_green',
614 'mcl_core:glass_light_blue',
615 'mcl_core:glass_lime',
616 'mcl_core:glass_magenta',
617 'mcl_core:glass_orange',
618 'mcl_core:glass_pink',
619 'mcl_core:glass_purple',
620 'mcl_core:glass_red',
621 'mcl_core:glass_silver',
622 'mcl_core:glass_white',
623 'mcl_core:glass_yellow',
624 'mcl_core:goldblock',
625 'mcl_core:gold_ingot',
626 'mcl_core:gold_nugget',
627 'mcl_core:granite',
628 'mcl_core:granite_smooth',
629 'mcl_core:grass_path',
630 'mcl_core:gravel',
631 'mcl_core:ice',
632 'mcl_core:ironblock',
633 'mcl_core:iron_ingot',
634 'mcl_core:iron_nugget',
635 'mcl_core:jungleleaves',
636 'mcl_core:junglesapling',
637 'mcl_core:jungletree',
638 'mcl_core:junglewood',
639 'mcl_core:ladder',
640 'mcl_core:lapisblock',
641 'mcl_core:lava_flowing',
642 'mcl_core:lava_source',
643 'mcl_core:leaves',
644 'mcl_core:mat',
645 'mcl_core:mossycobble',
646 'mcl_core:mycelium',
647 'mcl_core:mycelium_snow',
648 'mcl_core:obsidian',
649 'mcl_core:packed_ice',
650 'mcl_core:paper',
651 'mcl_core:pick_diamond',
652 'mcl_core:pick_gold',
653 'mcl_core:pick_iron',
654 'mcl_core:pick_stone',
655 'mcl_core:pick_wood',
656 'mcl_core:podzol',
657 'mcl_core:podzol_snow',
658 'mcl_core:realm_barrier',
659 'mcl_core:redsand',
660 'mcl_core:redsandstone',
661 'mcl_core:redsandstonecarved',
662 'mcl_core:redsandstonesmooth',
663 'mcl_core:redsandstonesmooth2',
664 'mcl_core:reeds',
665 'mcl_core:replace_legacy_dry_grass_0_65_0',
666 'mcl_core:sand',
667 'mcl_core:sandstone',
668 'mcl_core:sandstonecarved',
669 'mcl_core:sandstonesmooth',
670 'mcl_core:sandstonesmooth2',
671 'mcl_core:sapling',
672 'mcl_core:shears',
673 'mcl_core:shovel_diamond',
674 'mcl_core:shovel_gold',
675 'mcl_core:shovel_iron',
676 'mcl_core:shovel_stone',
677 'mcl_core:shovel_wood',
678 'mcl_core:slimeblock',
679 'mcl_core:snow',
680 'mcl_core:snow_',
681 'mcl_core:snowblock',
682 'mcl_core:spruceleaves',
683 'mcl_core:sprucesapling',
684 'mcl_core:sprucetree',
685 'mcl_core:sprucewood',
686 'mcl_core:stick',
687 'mcl_core:stone',
688 'mcl_core:stonebrick',
689 'mcl_core:stonebrickcarved',
690 'mcl_core:stonebrickcracked',
691 'mcl_core:stonebrickmossy',
692 'mcl_core:stone_smooth',
693 'mcl_core:stone_with_coal',
694 'mcl_core:stone_with_diamond',
695 'mcl_core:stone_with_emerald',
696 'mcl_core:stone_with_gold',
697 'mcl_core:stone_with_iron',
698 'mcl_core:stone_with_lapis',
699 'mcl_core:stone_with_redstone',
700 'mcl_core:stone_with_redstone_lit',
701 'mcl_core:sugar',
702 'mcl_core:sword_diamond',
703 'mcl_core:sword_gold',
704 'mcl_core:sword_iron',
705 'mcl_core:sword_stone',
706 'mcl_core:sword_wood',
707 'mcl_core:tallgrass',
708 'mcl_core:torch',
709 'mcl_core:tree',
710 'mcl_core:vine',
711 'mcl_core:void',
712 'mcl_core:water_flowing',
713 'mcl_core:water_source',
714 'mcl_core:wood',
715 'mcl_dispenser:dispenser_down',
716 'mcl_dispenser:dispenser_up',
717 'mcl_dispensers:dispenser',
718 'mcl_dispensers:dispenser_down',
719 'mcl_dispensers:dispenser_up',
720 'mcl_dispensers:update_formspecs_0_60_0',
721 'mcl_doors:acacia_door',
722 'mcl_doors:birch_door',
723 'mcl_doors:dark_oak_door',
724 'mcl_doors:iron_door',
725 'mcl_doors:iron_trapdoor',
726 'mcl_doors:iron_trapdoor_open',
727 'mcl_doors:jungle_door',
728 'mcl_doors:register_door',
729 'mcl_doors:register_trapdoor',
730 'mcl_doors:spruce_door',
731 'mcl_doors:trapdoor',
732 'mcl_doors:trapdoor_open',
733 'mcl_doors:wooden_door',
734 'mcl_droppers:dropper',
735 'mcl_droppers:dropper_down',
736 'mcl_droppers:dropper_up',
737 'mcl_droppers:update_formspecs_0_51_0',
738 'mcl_droppers:update_formspecs_0_60_0',
739 'mcl_dye:black',
740 'mcl_dye:blue',
741 'mcl_dye:brown',
742 'mcl_dye:cyan',
743 'mcl_dye:dark_green',
744 'mcl_dye:dark_grey',
745 'mcl_dye:green',
746 'mcl_dye:grey',
747 'mcl_dye:lightblue',
748 'mcl_dye:magenta',
749 'mcl_dye:orange',
750 'mcl_dye:pink',
751 'mcl_dye:red',
752 'mcl_dye:violet',
753 'mcl_dye:white',
754 'mcl_dye:yellow',
755 'mcl_end:chorus_flower',
756 'mcl_end:chorus_flower_dead',
757 'mcl_end:chorus_fruit',
758 'mcl_end:chorus_fruit_popped',
759 'mcl_end:chorus_plant',
760 'mcl_end:dragon_egg',
761 'mcl_end:end_bricks',
762 'mcl_end:ender_eye',
763 'mcl_end:end_rod',
764 'mcl_end:end_stone',
765 'mcl_end:purpur_block',
766 'mcl_end:purpur_pillar',
767 'mcl_farming:add_gourd',
768 'mcl_farming:add_plant',
769 'mcl_farming:beetroot',
770 'mcl_farming:beetroot_',
771 'mcl_farming:beetroot_0',
772 'mcl_farming:beetroot_1',
773 'mcl_farming:beetroot_2',
774 'mcl_farming:beetroot_item',
775 'mcl_farming:beetroot_seeds',
776 'mcl_farming:beetroot_soup',
777 'mcl_farming:bread',
778 'mcl_farming:carrot',
779 'mcl_farming:carrot_',
780 'mcl_farming:carrot_1',
781 'mcl_farming:carrot_2',
782 'mcl_farming:carrot_3',
783 'mcl_farming:carrot_4',
784 'mcl_farming:carrot_5',
785 'mcl_farming:carrot_6',
786 'mcl_farming:carrot_7',
787 'mcl_farming:carrot_item',
788 'mcl_farming:carrot_item_gold',
789 'mcl_farming:cookie',
790 'mcl_farming:grow_plant',
791 'mcl_farming:growth',
792 'mcl_farming:hay_block',
793 'mcl_farming:hoe_diamond',
794 'mcl_farming:hoe_gold',
795 'mcl_farming:hoe_iron',
796 'mcl_farming:hoe_stone',
797 'mcl_farming:hoe_wood',
798 'mcl_farming:melon',
799 'mcl_farming:melon_item',
800 'mcl_farming:melon_seeds',
801 'mcl_farming:melontige_',
802 'mcl_farming:melontige_1',
803 'mcl_farming:melontige_2',
804 'mcl_farming:melontige_3',
805 'mcl_farming:melontige_4',
806 'mcl_farming:melontige_5',
807 'mcl_farming:melontige_6',
808 'mcl_farming:melontige_7',
809 'mcl_farming:melontige_linked',
810 'mcl_farming:melontige_unconnect',
811 'mcl_farming:mushroom_brown',
812 'mcl_farming:mushroom_red',
813 'mcl_farming:place_seed',
814 'mcl_farming:potato',
815 'mcl_farming:potato_',
816 'mcl_farming:potato_1',
817 'mcl_farming:potato_2',
818 'mcl_farming:potato_3',
819 'mcl_farming:potato_4',
820 'mcl_farming:potato_5',
821 'mcl_farming:potato_6',
822 'mcl_farming:potato_7',
823 'mcl_farming:potato_item',
824 'mcl_farming:potato_item_baked',
825 'mcl_farming:potato_item_poison',
826 'mcl_farming:pumkin_seeds',
827 'mcl_farming:pumpkin',
828 'mcl_farming:pumpkin_',
829 'mcl_farming:pumpkin_1',
830 'mcl_farming:pumpkin_2',
831 'mcl_farming:pumpkin_3',
832 'mcl_farming:pumpkin_4',
833 'mcl_farming:pumpkin_5',
834 'mcl_farming:pumpkin_6',
835 'mcl_farming:pumpkin_7',
836 'mcl_farming:pumpkin_face',
837 'mcl_farming:pumpkin_face_light',
838 'mcl_farming:pumpkin_pie',
839 'mcl_farming:pumpkin_seeds',
840 'mcl_farming:pumpkintige_linked',
841 'mcl_farming:pumpkintige_unconnect',
842 'mcl_farming:soil',
843 'mcl_farming:soil_wet',
844 'mcl_farming:stem_color',
845 'mcl_farming:wheat',
846 'mcl_farming:wheat_',
847 'mcl_farming:wheat_1',
848 'mcl_farming:wheat_2',
849 'mcl_farming:wheat_3',
850 'mcl_farming:wheat_4',
851 'mcl_farming:wheat_5',
852 'mcl_farming:wheat_6',
853 'mcl_farming:wheat_7',
854 'mcl_farming:wheat_item',
855 'mcl_farming:wheat_seeds',
856 'mcl_fences:dark_oak_fence',
857 'mcl_fences:fence',
858 'mcl_fences:nether_brick_fence',
859 'mcl_fire:basic_flame',
860 'mcl_fire:eternal_fire',
861 'mcl_fire:fire',
862 'mcl_fire:fire_charge',
863 'mcl_fire:flint_and_steel',
864 'mcl_fire:smoke',
865 'mcl_fishing:bobber',
866 'mcl_fishing:bobber_entity',
867 'mcl_fishing:clownfish_raw',
868 'mcl_fishing:fish_cooked',
869 'mcl_fishing:fishing_rod',
870 'mcl_fishing:fish_raw',
871 'mcl_fishing:pufferfish_raw',
872 'mcl_fishing:salmon_cooked',
873 'mcl_fishing:salmon_raw',
874 'mcl_flowerpots:flower_pot',
875 'mcl_flowerpots:flower_pot_',
876 'mcl_flowers:allium',
877 'mcl_flowers:azure_bluet',
878 'mcl_flowers:blue_orchid',
879 'mcl_flowers:dandelion',
880 'mcl_flowers:double_fern',
881 'mcl_flowers:double_fern_top',
882 'mcl_flowers:double_grass',
883 'mcl_flowers:double_grass_top',
884 'mcl_flowers:fern',
885 'mcl_flowers:lilac',
886 'mcl_flowers:lilac_top',
887 'mcl_flowers:oxeye_daisy',
888 'mcl_flowers:peony',
889 'mcl_flowers:peony_top',
890 'mcl_flowers:poppy',
891 'mcl_flowers:rose_bush',
892 'mcl_flowers:rose_bush_top',
893 'mcl_flowers:sunflower',
894 'mcl_flowers:sunflower_top',
895 'mcl_flowers:tallgrass',
896 'mcl_flowers:tulip_orange',
897 'mcl_flowers:tulip_pink',
898 'mcl_flowers:tulip_red',
899 'mcl_flowers:tulip_white',
900 'mcl_flowers:waterlily',
901 'mcl_furnaces:flames',
902 'mcl_furnaces:furnace',
903 'mcl_furnaces:furnace_active',
904 'mcl_furnaces:update_formspecs_0_60_0',
905 'mcl_heads:creeper',
906 'mcl_heads:skeleton',
907 'mcl_heads:wither_skeleton',
908 'mcl_heads:zombie',
909 'mcl_hoppers:hopper',
910 'mcl_hoppers:hopper_disabled',
911 'mcl_hoppers:hopper_item',
912 'mcl_hoppers:hopper_side',
913 'mcl_hoppers:hopper_side_disabled',
914 'mcl_hoppers:update_formspec_0_60_0',
915 'mcl_hunger:exhaustion',
916 'mcl_hunger:hunger',
917 'mcl_hunger:saturation',
918 'mcl_inventory:workbench',
919 'mcl_itemframes:item',
920 'mcl_itemframes:item_frame',
921 'mcl_itemframes:respawn_entities',
922 'mcl_itemframes:update_legacy_item_frames',
923 'mcl_jukebox:jukebox',
924 'mcl_jukebox:record_',
925 'mcl_jukebox:record_1',
926 'mcl_jukebox:record_2',
927 'mcl_jukebox:record_3',
928 'mcl_jukebox:record_4',
929 'mcl_jukebox:record_5',
930 'mcl_jukebox:record_6',
931 'mcl_jukebox:record_7',
932 'mcl_jukebox:record_8',
933 'mcl_jukebox:record_9',
934 'mcl_maps:empty_map',
935 'mcl_maps:filled_map',
936 'mcl_meshhand:hand',
937 'mcl_minecarts:activator_rail',
938 'mcl_minecarts:activator_rail_on',
939 'mcl_minecarts:check_front_up_down',
940 'mcl_minecarts:chest_minecart',
941 'mcl_minecarts:command_block_minecart',
942 'mcl_minecarts:detector_rail',
943 'mcl_minecarts:detector_rail_on',
944 'mcl_minecarts:furnace_minecart',
945 'mcl_minecarts:get_rail_direction',
946 'mcl_minecarts:get_sign',
947 'mcl_minecarts:golden_rail',
948 'mcl_minecarts:golden_rail_on',
949 'mcl_minecarts:hopper_minecart',
950 'mcl_minecarts:is_rail',
951 'mcl_minecarts:minecart',
952 'mcl_minecarts:rail',
953 'mcl_minecarts:tnt_minecart',
954 'mcl_minecarts:velocity_to_dir',
955 'mcl_mobitems:beef',
956 'mcl_mobitems:blaze_powder',
957 'mcl_mobitems:blaze_rod',
958 'mcl_mobitems:bone',
959 'mcl_mobitems:carrot_on_a_stick',
960 'mcl_mobitems:chicken',
961 'mcl_mobitems:cooked_beef',
962 'mcl_mobitems:cooked_chicken',
963 'mcl_mobitems:cooked_mutton',
964 'mcl_mobitems:cooked_porkchop',
965 'mcl_mobitems:cooked_rabbit',
966 'mcl_mobitems:ender_eye',
967 'mcl_mobitems:feather',
968 'mcl_mobitems:ghast_tear',
969 'mcl_mobitems:gunpowder',
970 'mcl_mobitems:leather',
971 'mcl_mobitems:magma_cream',
972 'mcl_mobitems:milk_bucket',
973 'mcl_mobitems:mutton',
974 'mcl_mobitems:nether_star',
975 'mcl_mobitems:porkchop',
976 'mcl_mobitems:rabbit',
977 'mcl_mobitems:rabbit_foot',
978 'mcl_mobitems:rabbit_hide',
979 'mcl_mobitems:rabbit_stew',
980 'mcl_mobitems:rotten_flesh',
981 'mcl_mobitems:saddle',
982 'mcl_mobitems:shulker_shell',
983 'mcl_mobitems:slimeball',
984 'mcl_mobitems:spider_eye',
985 'mcl_mobitems:string',
986 'mcl_mobs:nametag',
987 'mcl_mobspawners:doll',
988 'mcl_mobspawners:respawn_entities',
989 'mcl_mobspawners:spawner',
990 'mcl_mushrooms:brown_mushroom_block_cap_corner',
991 'mcl_mushrooms:brown_mushroom_block_cap_side',
992 'mcl_mushrooms:mushroom_brown',
993 'mcl_mushrooms:mushroom_red',
994 'mcl_mushrooms:mushroom_stew',
995 'mcl_mushrooms:red_mushroom_block_cap_corner',
996 'mcl_mushrooms:red_mushroom_block_cap_side',
997 'mcl_mushrooms:replace_legacy_mushroom_caps',
998 'mcl_nether:glowstone',
999 'mcl_nether:glowstone_dust',
1000 'mcl_nether:magma',
1001 'mcl_nether:nether_brick',
1002 'mcl_observers:observer_down',
1003 'mcl_observers:observer_down_off',
1004 'mcl_observers:observer_down_on',
1005 'mcl_observers:observer_off',
1006 'mcl_observers:observer_on',
1007 'mcl_observers:observer_up',
1008 'mcl_observers:observer_up_off',
1009 'mcl_observers:observer_up_on',
1010 'mcl_ocean:dead_',
1011 'mcl_ocean:dead_brain_coral_block',
1012 'mcl_ocean:dried_kelp',
1013 'mcl_ocean:dried_kelp_block',
1014 'mcl_ocean:kelp',
1015 'mcl_ocean:kelp_',
1016 'mcl_ocean:kelp_dirt',
1017 'mcl_ocean:kelp_gravel',
1018 'mcl_ocean:kelp_redsand',
1019 'mcl_ocean:kelp_sand',
1020 'mcl_ocean:prismarine',
1021 'mcl_ocean:prismarine_brick',
1022 'mcl_ocean:prismarine_crystals',
1023 'mcl_ocean:prismarine_dark',
1024 'mcl_ocean:prismarine_shard',
1025 'mcl_ocean:seagrass',
1026 'mcl_ocean:seagrass_',
1027 'mcl_ocean:seagrass_dirt',
1028 'mcl_ocean:seagrass_gravel',
1029 'mcl_ocean:seagrass_redsand',
1030 'mcl_ocean:seagrass_sand',
1031 'mcl_ocean:sea_lantern',
1032 'mcl_ocean:sea_pickle_',
1033 'mcl_ocean:sea_pickle_1_',
1034 'mcl_ocean:sea_pickle_1_dead_brain_coral_block',
1035 'mcl_ocean:sea_pickle_1_off_',
1036 'mcl_ocean:sea_pickle_1_off_dead_brain_coral_block',
1037 'mcl_paintings:painting',
1038 'mcl_playerplus:surface',
1039 'mcl_player:preview',
1040 'mcl_portals:end_portal_frame',
1041 'mcl_portals:end_portal_frame_eye',
1042 'mcl_portals:portal',
1043 'mcl_portals:portal_end',
1044 'mcl_potions:awkward',
1045 'mcl_potions:dragon_breath',
1046 'mcl_potions:fermented_spider_eye',
1047 'mcl_potions:fire_resistance',
1048 'mcl_potions:glass_bottle',
1049 'mcl_potions:harming',
1050 'mcl_potions:harming_2',
1051 'mcl_potions:harming_2_splash',
1052 'mcl_potions:harming_splash',
1053 'mcl_potions:healing',
1054 'mcl_potions:healing_2',
1055 'mcl_potions:healing_2_splash',
1056 'mcl_potions:healing_splash',
1057 'mcl_potions:invisibility',
1058 'mcl_potions:invisibility_plus',
1059 'mcl_potions:invisibility_plus_splash',
1060 'mcl_potions:invisibility_splash',
1061 'mcl_potions:leaping',
1062 'mcl_potions:leaping_plus',
1063 'mcl_potions:leaping_plus_splash',
1064 'mcl_potions:leaping_splash',
1065 'mcl_potions:mundane',
1066 'mcl_potions:night_vision',
1067 'mcl_potions:night_vision_arrow',
1068 'mcl_potions:night_vision_lingering',
1069 'mcl_potions:night_vision_plus',
1070 'mcl_potions:night_vision_plus_arrow',
1071 'mcl_potions:night_vision_plus_lingering',
1072 'mcl_potions:night_vision_plus_splash',
1073 'mcl_potions:night_vision_splash',
1074 'mcl_potions:poison',
1075 'mcl_potions:poison_2',
1076 'mcl_potions:poison_2_splash',
1077 'mcl_potions:poison_splash',
1078 'mcl_potions:regeneration',
1079 'mcl_potions:river_water',
1080 'mcl_potions:slowness',
1081 'mcl_potions:slowness_plus',
1082 'mcl_potions:slowness_plus_splash',
1083 'mcl_potions:slowness_splash',
1084 'mcl_potions:speckled_melon',
1085 'mcl_potions:strength',
1086 'mcl_potions:strength_2',
1087 'mcl_potions:strength_2_lingering',
1088 'mcl_potions:strength_2_splash',
1089 'mcl_potions:strength_lingering',
1090 'mcl_potions:strength_plus',
1091 'mcl_potions:strength_plus_lingering',
1092 'mcl_potions:strength_plus_splash',
1093 'mcl_potions:strength_splash',
1094 'mcl_potions:swiftness',
1095 'mcl_potions:swiftness_plus',
1096 'mcl_potions:swiftness_plus_splash',
1097 'mcl_potions:swiftness_splash',
1098 'mcl_potions:thick',
1099 'mcl_potions:water',
1100 'mcl_potions:water_breathing',
1101 'mcl_potions:water_splash',
1102 'mcl_potions:weakness',
1103 'mcl_potions:weakness_lingering',
1104 'mcl_potions:weakness_plus',
1105 'mcl_potions:weakness_plus_lingering',
1106 'mcl_potions:weakness_plus_splash',
1107 'mcl_potions:weakness_splash',
1108 'mcl_signs:respawn_entities',
1109 'mcl_signs:set_text_',
1110 'mcl_signs:standing_sign',
1111 'mcl_signs:standing_sign22_5',
1112 'mcl_signs:standing_sign45',
1113 'mcl_signs:standing_sign67_5',
1114 'mcl_signs:text',
1115 'mcl_signs:wall_sign',
1116 'mcl_skins:skin_id',
1117 'mcl_skins:skin_select',
1118 'mcl_sponges:sponge',
1119 'mcl_sponges:sponge_wet',
1120 'mcl_sponges:sponge_wet_river_water',
1121 'mcl_sprint:sprint',
1122 'mcl_stairs:slab_',
1123 'mcl_stairs:slab_concrete_',
1124 'mcl_stairs:slab_purpur_block',
1125 'mcl_stairs:slab_quartzblock',
1126 'mcl_stairs:slab_redsandstone',
1127 'mcl_stairs:slab_sandstone',
1128 'mcl_stairs:slab_stone',
1129 'mcl_stairs:slab_stonebrick',
1130 'mcl_stairs:slab_stone_double',
1131 'mcl_stairs:slab_wood',
1132 'mcl_stairs:stair_',
1133 'mcl_stairs:stair_cobble',
1134 'mcl_stairs:stair_concrete_',
1135 'mcl_stairs:stair_sandstone',
1136 'mcl_stairs:stair_stonebrick',
1137 'mcl_stairs:stair_stonebrickcracked',
1138 'mcl_stairs:stair_stonebrickcracked_inner',
1139 'mcl_stairs:stair_stonebrickcracked_outer',
1140 'mcl_stairs:stair_stonebrick_inner',
1141 'mcl_stairs:stair_stonebrickmossy',
1142 'mcl_stairs:stair_stonebrickmossy_inner',
1143 'mcl_stairs:stair_stonebrickmossy_outer',
1144 'mcl_stairs:stair_stonebrick_outer',
1145 'mcl_stairs:stairs_wood',
1146 'mcl_supplemental:nether_brick_fence_gate',
1147 'mcl_supplemental:nether_brick_fence_gate_open',
1148 'mcl_supplemental:red_nether_brick_fence',
1149 'mcl_supplemental:red_nether_brick_fence_gate',
1150 'mcl_supplemental:red_nether_brick_fence_gate_open',
1151 'mcl_throwing:arrow',
1152 'mcl_throwing:bow',
1153 'mcl_throwing:egg',
1154 'mcl_throwing:egg_entity',
1155 'mcl_throwing:ender_pearl',
1156 'mcl_throwing:ender_pearl_entity',
1157 'mcl_throwing:flying_bobber',
1158 'mcl_throwing:flying_bobber_entity',
1159 'mcl_throwing:snowball',
1160 'mcl_throwing:snowball_entity',
1161 'mcl_tnt:tnt',
1162 'mcl_tools:axe_diamond',
1163 'mcl_tools:axe_gold',
1164 'mcl_tools:axe_iron',
1165 'mcl_tools:axe_stone',
1166 'mcl_tools:axe_wood',
1167 'mcl_tools:pick_diamond',
1168 'mcl_tools:pick_gold',
1169 'mcl_tools:pick_iron',
1170 'mcl_tools:pick_stone',
1171 'mcl_tools:pick_wood',
1172 'mcl_tools:shears',
1173 'mcl_tools:shovel_diamond',
1174 'mcl_tools:shovel_gold',
1175 'mcl_tools:shovel_iron',
1176 'mcl_tools:shovel_stone',
1177 'mcl_tools:shovel_wood',
1178 'mcl_tools:sword_diamond',
1179 'mcl_tools:sword_gold',
1180 'mcl_tools:sword_iron',
1181 'mcl_tools:sword_stone',
1182 'mcl_tools:sword_wood',
1183 'mcl_torches:flames',
1184 'mcl_torches:torch',
1185 'mcl_torches:torch_wall',
1186 'mcl_walls:andesite',
1187 'mcl_walls:brick',
1188 'mcl_walls:cobble',
1189 'mcl_walls:diorite',
1190 'mcl_walls:endbricks',
1191 'mcl_walls:granite',
1192 'mcl_walls:mossycobble',
1193 'mcl_walls:netherbrick',
1194 'mcl_walls:prismarine',
1195 'mcl_walls:rednetherbrick',
1196 'mcl_walls:redsandstone',
1197 'mcl_walls:sandstone',
1198 'mcl_walls:stonebrick',
1199 'mcl_walls:stonebrickmossy',
1200 'mcl_wool:black',
1201 'mcl_wool:black_carpet',
1202 'mcl_wool:blue',
1203 'mcl_wool:blue_carpet',
1204 'mcl_wool:brown',
1205 'mcl_wool:brown_carpet',
1206 'mcl_wool:cyan',
1207 'mcl_wool:cyan_carpet',
1208 'mcl_wool:dark_blue',
1209 'mcl_wool:gold',
1210 'mcl_wool:green',
1211 'mcl_wool:green_carpet',
1212 'mcl_wool:grey',
1213 'mcl_wool:grey_carpet',
1214 'mcl_wool:light_blue',
1215 'mcl_wool:light_blue_carpet',
1216 'mcl_wool:lime',
1217 'mcl_wool:lime_carpet',
1218 'mcl_wool:magenta',
1219 'mcl_wool:magenta_carpet',
1220 'mcl_wool:orange',
1221 'mcl_wool:orange_carpet',
1222 'mcl_wool:pink',
1223 'mcl_wool:pink_carpet',
1224 'mcl_wool:purple',
1225 'mcl_wool:purple_carpet',
1226 'mcl_wool:red',
1227 'mcl_wool:red_carpet',
1228 'mcl_wool:silver',
1229 'mcl_wool:silver_carpet',
1230 'mcl_wool:white',
1231 'mcl_wool:white_carpet',
1232 'mcl_wool:yellow',
1233 'mcl_wool:yellow_carpet'
1235 return arr