close #2 mods, Luanti, search
This commit is contained in:
Executable
+387
@@ -0,0 +1,387 @@
|
|||||||
|
#!/usr/bin/env luajit
|
||||||
|
|
||||||
|
-- this list was manually assembled from my notes
|
||||||
|
local mods = {
|
||||||
|
"plutoniumships",
|
||||||
|
"stnodes",
|
||||||
|
"too_many_tnt",
|
||||||
|
"mesecons_carts",
|
||||||
|
"coloredstrings",
|
||||||
|
"grass_string",
|
||||||
|
"renewable_desert_stone",
|
||||||
|
"basic_materials",
|
||||||
|
"farming",
|
||||||
|
"x_farming",
|
||||||
|
"unifieddyes",
|
||||||
|
"xcompat",
|
||||||
|
"worldedit",
|
||||||
|
"home_workshop_modpack",
|
||||||
|
"plasticbox",
|
||||||
|
"steel",
|
||||||
|
"xdecor",
|
||||||
|
"technic",
|
||||||
|
"technic_recycle",
|
||||||
|
"plastic_bucket",
|
||||||
|
"uraniumstuff",
|
||||||
|
"anvil",
|
||||||
|
"hammers_redo",
|
||||||
|
"desertores",
|
||||||
|
"livingcaves",
|
||||||
|
"livingcavesmobs",
|
||||||
|
"roads",
|
||||||
|
"digilines",
|
||||||
|
"mesecons",
|
||||||
|
"moreblocks",
|
||||||
|
"digistuff",
|
||||||
|
"eye_spy",
|
||||||
|
"edit_skin",
|
||||||
|
"fishing_boat",
|
||||||
|
"whitelist",
|
||||||
|
"lib_chatcmdbuilder",
|
||||||
|
"carpets",
|
||||||
|
"digiterms",
|
||||||
|
"display_modpack",
|
||||||
|
"biofuel",
|
||||||
|
"automobiles_pck",
|
||||||
|
"nutrional",
|
||||||
|
"denseores",
|
||||||
|
"airtanks",
|
||||||
|
"handholds_redo",
|
||||||
|
"bike",
|
||||||
|
"pixelfurniture",
|
||||||
|
"airutils",
|
||||||
|
"ju52",
|
||||||
|
"ju52_hydro",
|
||||||
|
"supercub",
|
||||||
|
"hidroplane",
|
||||||
|
"heli",
|
||||||
|
"trike",
|
||||||
|
"pa28",
|
||||||
|
"spacecannon",
|
||||||
|
"accountmgr",
|
||||||
|
"farmtools",
|
||||||
|
"imese",
|
||||||
|
"scifi_nodes",
|
||||||
|
"beacons",
|
||||||
|
"dfcaverns",
|
||||||
|
"tunnelmaker",
|
||||||
|
"railbuilder",
|
||||||
|
"advtrains",
|
||||||
|
"advtrains_moreslopes",
|
||||||
|
"advtrains_platform",
|
||||||
|
"advtrains_horntrack",
|
||||||
|
"dlxtrains",
|
||||||
|
"classic_coaches",
|
||||||
|
"tfl_s7_stock_modpack",
|
||||||
|
"advtrains_train_rocket",
|
||||||
|
"advtrains_subway_ny",
|
||||||
|
"advtrains_train_orient_express",
|
||||||
|
"advtrains_train_jpntlr600",
|
||||||
|
"advtrains_transib",
|
||||||
|
"advtrains_freight_train",
|
||||||
|
"advtrains_bboe_1080",
|
||||||
|
"advtrains_db_160",
|
||||||
|
"advtrains_train_zugspitzbahn",
|
||||||
|
"ethereal",
|
||||||
|
"wihelminessound",
|
||||||
|
"datacard",
|
||||||
|
"x_enchanting",
|
||||||
|
"bucket_wooden",
|
||||||
|
"motorboat",
|
||||||
|
"mobkit",
|
||||||
|
"digicontrol",
|
||||||
|
"colorful_beds",
|
||||||
|
"discovery_maps",
|
||||||
|
"computertest",
|
||||||
|
"more_ladders",
|
||||||
|
"colored_chests",
|
||||||
|
"bonemeal",
|
||||||
|
"livingdesert",
|
||||||
|
"livingjungle",
|
||||||
|
"naturalbiomes",
|
||||||
|
"ambience",
|
||||||
|
"marinara",
|
||||||
|
"people",
|
||||||
|
"marinaramobs",
|
||||||
|
"nativevillages",
|
||||||
|
"winuserleafdecay",
|
||||||
|
"everness",
|
||||||
|
"cottages",
|
||||||
|
"towercrane",
|
||||||
|
"homedecor_modpack",
|
||||||
|
"pipeworks",
|
||||||
|
"lwcomponents",
|
||||||
|
"moretubes",
|
||||||
|
"omnidriver",
|
||||||
|
"plantlife_modpack",
|
||||||
|
"ebiomes",
|
||||||
|
"biome_lib",
|
||||||
|
"mobs",
|
||||||
|
"yl_api_nodestages",
|
||||||
|
"yl_canned_food",
|
||||||
|
"yl_canned_food_mtg",
|
||||||
|
"mobs_water",
|
||||||
|
"mobs_animal",
|
||||||
|
"glooptest",
|
||||||
|
"mobs_horse",
|
||||||
|
"mobs_mese_monster_classic",
|
||||||
|
"dmobs",
|
||||||
|
"travelnet",
|
||||||
|
"hangglider",
|
||||||
|
"fakelib",
|
||||||
|
"3d_armor",
|
||||||
|
"illumination",
|
||||||
|
"hazmat_suit",
|
||||||
|
"headlamp",
|
||||||
|
"technic_armor",
|
||||||
|
"unified_inventory",
|
||||||
|
"unified_inventory_plus",
|
||||||
|
"vizlib",
|
||||||
|
"cool_trees",
|
||||||
|
"powerbanks",
|
||||||
|
"mobs_monster",
|
||||||
|
"treecapitator",
|
||||||
|
"moretrees",
|
||||||
|
"moreores",
|
||||||
|
"toolranks",
|
||||||
|
"toolranks_extras",
|
||||||
|
"charcoal",
|
||||||
|
"awards",
|
||||||
|
"moreawards",
|
||||||
|
"ancient_bones",
|
||||||
|
"bakedclay",
|
||||||
|
"orienteering",
|
||||||
|
"ccompass",
|
||||||
|
"spacesuit",
|
||||||
|
"ropes",
|
||||||
|
"obsidianstuff",
|
||||||
|
"more_chests",
|
||||||
|
"multitools",
|
||||||
|
"luanti_utils",
|
||||||
|
"vines",
|
||||||
|
"morebricks",
|
||||||
|
"place_rotated",
|
||||||
|
"digtron",
|
||||||
|
"drawers",
|
||||||
|
"elevator",
|
||||||
|
"stamina",
|
||||||
|
"lavastuff",
|
||||||
|
"wetmud",
|
||||||
|
"geocache",
|
||||||
|
"locator",
|
||||||
|
"jumpdrive",
|
||||||
|
"loot",
|
||||||
|
"maple",
|
||||||
|
}
|
||||||
|
|
||||||
|
-- this list was obtained from running ls -1 in the worldmods directory
|
||||||
|
local current_mods = {
|
||||||
|
"3d_armor",
|
||||||
|
"accountmgr",
|
||||||
|
"advtrains",
|
||||||
|
"advtrains_bboe_1080",
|
||||||
|
"advtrains_db_160",
|
||||||
|
"advtrains_freight_train",
|
||||||
|
"advtrains_horntrack",
|
||||||
|
"advtrains_moreslopes",
|
||||||
|
"advtrains_platform",
|
||||||
|
"advtrains_subway_ny",
|
||||||
|
"advtrains_train_jpntlr600",
|
||||||
|
"advtrains_train_orient_express",
|
||||||
|
"advtrains_train_rocket",
|
||||||
|
"advtrains_train_zugspitzbahn",
|
||||||
|
"advtrains_transib",
|
||||||
|
"airtanks",
|
||||||
|
"airutils",
|
||||||
|
"ambience",
|
||||||
|
"ancient_bones",
|
||||||
|
"anvil",
|
||||||
|
"automobiles_pck",
|
||||||
|
"awards",
|
||||||
|
"bakedclay",
|
||||||
|
"basic_materials",
|
||||||
|
"beacons",
|
||||||
|
"bike",
|
||||||
|
"biofuel",
|
||||||
|
"biome_lib",
|
||||||
|
"bucket_wooden",
|
||||||
|
"carpets",
|
||||||
|
"ccompass",
|
||||||
|
"charcoal",
|
||||||
|
"classic_coaches",
|
||||||
|
"colored_chests",
|
||||||
|
"coloredstrings",
|
||||||
|
"colorful_beds",
|
||||||
|
"computertest",
|
||||||
|
"cool_trees",
|
||||||
|
"cottages",
|
||||||
|
"datacard",
|
||||||
|
"denseores",
|
||||||
|
"desertores",
|
||||||
|
"dfcaverns",
|
||||||
|
"digicontrol",
|
||||||
|
"digilines",
|
||||||
|
"digistuff",
|
||||||
|
"digiterms",
|
||||||
|
"digtron",
|
||||||
|
"discovery_maps",
|
||||||
|
"display_modpack",
|
||||||
|
"dlxtrains",
|
||||||
|
"dmobs",
|
||||||
|
"drawers",
|
||||||
|
"ebiomes",
|
||||||
|
"edit_skin",
|
||||||
|
"elevator",
|
||||||
|
"everness",
|
||||||
|
"eye_spy",
|
||||||
|
"fakelib",
|
||||||
|
"farming",
|
||||||
|
"farmtools",
|
||||||
|
"fishing_boat",
|
||||||
|
"geocache",
|
||||||
|
"grass_string",
|
||||||
|
"hammersredo",
|
||||||
|
"handholds_redo",
|
||||||
|
"hangglider",
|
||||||
|
"hazmat_suit",
|
||||||
|
"headlamp",
|
||||||
|
"heli",
|
||||||
|
"hidroplane",
|
||||||
|
"home_workshop_modpack",
|
||||||
|
"homedecor_modpack",
|
||||||
|
"illumination",
|
||||||
|
"ju52",
|
||||||
|
"ju52_hydro",
|
||||||
|
"jumpdrive",
|
||||||
|
"lavastuff",
|
||||||
|
"lib_chatcmdbuilder",
|
||||||
|
"livingcaves",
|
||||||
|
"livingcavesmobs",
|
||||||
|
"livingdesert",
|
||||||
|
"livingjungle",
|
||||||
|
"locator",
|
||||||
|
"lwcomponents",
|
||||||
|
"marinara",
|
||||||
|
"marinaramobs",
|
||||||
|
"mesecons",
|
||||||
|
"mesecons_carts",
|
||||||
|
"mob_horse",
|
||||||
|
"mob_mese_monster_classic",
|
||||||
|
"mobkit",
|
||||||
|
"mobs",
|
||||||
|
"mobs_animal",
|
||||||
|
"mobs_monster",
|
||||||
|
"mobs_water",
|
||||||
|
"more_chests",
|
||||||
|
"more_ladders",
|
||||||
|
"moreawards",
|
||||||
|
"moreblocks",
|
||||||
|
"morebricks",
|
||||||
|
"moreores",
|
||||||
|
"moretrees",
|
||||||
|
"moretubes",
|
||||||
|
"motorboat",
|
||||||
|
"multitools",
|
||||||
|
"nativevillages",
|
||||||
|
"naturalbiomes",
|
||||||
|
"nutritional",
|
||||||
|
"obsidianstuff",
|
||||||
|
"omnidriver",
|
||||||
|
"orienteering",
|
||||||
|
"pa28",
|
||||||
|
"people",
|
||||||
|
"pipeworks",
|
||||||
|
"pixelfurniture",
|
||||||
|
"place_rotated",
|
||||||
|
"plantlife_modpack",
|
||||||
|
"plastic_bucket",
|
||||||
|
"plasticbox",
|
||||||
|
"plutoniumships",
|
||||||
|
"powerbanks",
|
||||||
|
"railbuilder",
|
||||||
|
"renewable_desert_stone",
|
||||||
|
"roads",
|
||||||
|
"ropes",
|
||||||
|
"scifi_nodes",
|
||||||
|
"spacecannon",
|
||||||
|
"spacesuit",
|
||||||
|
"stamina",
|
||||||
|
"steel",
|
||||||
|
"stnodes",
|
||||||
|
"supercub",
|
||||||
|
"technic_armor",
|
||||||
|
"technic_plus",
|
||||||
|
"tfl_s7_stock_modpack",
|
||||||
|
"too_many_tnt",
|
||||||
|
"toolranks",
|
||||||
|
"toolranks_extras",
|
||||||
|
"towercrane",
|
||||||
|
"travelnet",
|
||||||
|
"treecapitator",
|
||||||
|
"trike",
|
||||||
|
"tunnelmaker",
|
||||||
|
"unified_inventory",
|
||||||
|
"unified_inventory_plus",
|
||||||
|
"unifieddyes",
|
||||||
|
"uraniumstuff",
|
||||||
|
"vizlib",
|
||||||
|
"wetmud",
|
||||||
|
"whitelist",
|
||||||
|
"wilhelminessounds",
|
||||||
|
"winuserleafdecay",
|
||||||
|
"worldedit",
|
||||||
|
"x_enchanting",
|
||||||
|
"x_farming",
|
||||||
|
"xcompat",
|
||||||
|
"xdecor",
|
||||||
|
"yl_api_nodestages",
|
||||||
|
"yl_canned_food",
|
||||||
|
"yl_canned_food_mtg",
|
||||||
|
}
|
||||||
|
|
||||||
|
local function uniqify_mods(mod_list)
|
||||||
|
print(#mod_list .. " mods listed.")
|
||||||
|
|
||||||
|
local unique = {}
|
||||||
|
for _, name in ipairs(mod_list) do unique[name] = true end
|
||||||
|
|
||||||
|
mod_list = {}
|
||||||
|
for name in pairs(unique) do mod_list[#mod_list + 1] = name end
|
||||||
|
|
||||||
|
print(#mod_list .. " unique.")
|
||||||
|
table.sort(mod_list)
|
||||||
|
|
||||||
|
return mod_list
|
||||||
|
end
|
||||||
|
|
||||||
|
local function open_mods_search(mod_list)
|
||||||
|
for i, name in ipairs(mod_list) do
|
||||||
|
print("Opening search for " .. name)
|
||||||
|
os.execute("open \"https://content.luanti.org/packages/?q=" .. name .. "\"")
|
||||||
|
os.execute("sleep 1") -- open creates race conditions with itself, so these are not opened in order, despite being called in order
|
||||||
|
if i % 9 == 0 then
|
||||||
|
print("Press enter to continue.")
|
||||||
|
io.read("*line")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function detect_inconsistencies()
|
||||||
|
local mods_unique = {}
|
||||||
|
for _, name in ipairs(mods) do mods_unique[name] = true end
|
||||||
|
local current_mods_hashtable = {}
|
||||||
|
for _, name in ipairs(current_mods) do current_mods_hashtable[name] = true end
|
||||||
|
|
||||||
|
-- local missing_mods, overstated_mods = {}, {} -- I don't need to make the lists because they're so small.. I hope
|
||||||
|
for name in pairs(current_mods_hashtable) do
|
||||||
|
if not mods_unique[name] then print(name .. " missing from manual list.") end
|
||||||
|
end
|
||||||
|
print()
|
||||||
|
for name in pairs(mods_unique) do -- this list SHOULD exist, but already fixed in my markdown note
|
||||||
|
if not current_mods_hashtable[name] then print(name .. " listed, but was rejected.") end
|
||||||
|
end
|
||||||
|
print()
|
||||||
|
end
|
||||||
|
detect_inconsistencies()
|
||||||
|
|
||||||
|
open_mods_search(uniqify_mods(mods))
|
||||||
Reference in New Issue
Block a user