Module:Sandbox/GameTag

local p = {} local all = mw.text.jsonDecode(mw.getCurrentFrame:expandTemplate{ title = 'Module:Sandbox/GameTag/Data.json' } )

local i18n = { ['WrongID'] = "Unkown ID or it has no tag", ['WrongTag'] = "Unkown Tag", ['WrongType'] = "Unknown tag type", ['Different Group'] = "Wrong Category" }

function p.main(f) local args = f	if f == mw.getCurrentFrame then args = f:getParent.args end --'blocks','items','entity_types','fluids','game_events' local objtype if args[1] == 'block' or args[1] == 'blocks' then objtype='blocks' end if args[1] == 'item' or args[1] == 'items' then objtype='items' end if args[1] == 'entity_type' or args[1] == 'entity_types' or args[1] == 'entity'then objtype='entity_types' end if args[1] == 'fluid' or args[1] == 'fluids' then objtype='fluids' end if args[1] == 'game_event' or args[1] == 'game_events' then objtype='game_events' end if not all['tag_ori'][args[1]] and not objtype then return i18n['WrongType'] end local outtable = {} local sptable = {} local id = '' local diff = false local err = '' local id = string.gsub(string.lower(args[2] or ''),' ','_') if args['tagpage'] == '1' or args['tagpage'] == 'y' or args['tagpage'] == 'true' then if all['tag_ori'][objtype][id] then for i,v in ipairs(all['tag_ori'][objtype][id]) do				if string.find(v,'#') == 1 then table.insert(outtable,						--#flowers						table.concat({ '#',							string.sub(v,12),							'' })						)				else table.insert(outtable,string.sub(v,11)) end end else return i18n['WrongTag'] end return table.concat(outtable,', ') else if string.find(args[2],',') then sptable=mw.text.split(args[2],',') id = string.gsub(string.lower(mw.text.trim(sptable[1])),' ','_') for i,v in ipairs(sptable) do --all['ID'][objtype][id] v = string.gsub(string.lower(mw.text.trim(sptable[i])),' ','_') if all['ID'][objtype][id] and all['ID'][objtype][v] then for i1,v1 in ipairs(all['ID'][objtype][id]) do						if v1 ~= all['ID'][objtype][v][i1] then diff = diff or true err = v						end end else return i18n['WrongID']..""..id.."-"..v.."" end end if diff then return i18n['Different Group']..""..err.."" end end if all['ID'][objtype][id] then for i,v in ipairs(all['ID'][objtype][id]) do				table.insert(outtable,v) end return table.concat(outtable,',') else return i18n['WrongID']..""..id.."" end end end

return p