Changes

Return a bare bones ShipData instead when module require fails.
Line 15: Line 15:  
model = ""
 
model = ""
 
end
 
end
 +
--check if we already have it
 
if ships[name] and ships[name][model] then
 
if ships[name] and ships[name][model] then
 
return ships[name][model]
 
return ships[name][model]
 
else
 
else
local ship_table = require(mw.ustring.format('Module:%s', name))
+
--Catch a failed require
local ship = ShipData(ship_table[model])
+
local success, ship_table = pcall(function () return require(mw.ustring.format('Module:%s', name)) end)
 +
--require succeeded
 +
if success then
 +
ship_table = ship_table[model]
 +
if not ship_table then
 +
--create a ShipData with what we have
 +
ship_table = {_name = name, _suffix = model}
 +
end
 +
--require failed
 +
else
 +
--create a ShipData with what we have
 +
ship_table = {_name = name, _suffix = model}
 +
end
 +
local ship = ShipData(ship_table)
 
if not ships[name] then
 
if not ships[name] then
 
ships[name] = {}
 
ships[name] = {}
Anonymous user