Module:ProfileInfoboxUpdater
Documentation for this module may be created at Module:ProfileInfoboxUpdater/doc
--local rank = {} --externalData = mw.ext.externalData --local uuid = {} local p = {} --[ Thecow275's Profile Infobox Updater Module V1 ] local function preprocessArg(s) if not s then return nil end s = s:match('^%s*(.-)%s*$') --trim whitespace if s == '' then return nil else return s end end function p.main(frame) local args = frame.args local username = preprocessArg(args[1]) local datatype = preprocessArg(args[2]) -- currently unused will be used whenever I implement more datatypes if not username then -- check for blank username return 'USERNAME NOT VALID OR API ERROR' end if username then local data = mw.ext.externalData.getExternalData({ url = "https://api.ashcon.app/mojang/v2/user/" .. username, format = 'json' }) local uuid = data.uuid if not uuid then --check for blank uuid (if this happens hell has broken lose) return 'NO VALID UUID FOUND' end if uuid then local userdata = mw.ext.externalData.getExternalData({ url = "https://statistics.johnymuffin.com/api/v1/getUser?serverID=0&uuid=" .. data.uuid, data = {deaths='playerDeaths',pkilled='playersKilled',joins='joinCount',traveled='metersTraveled',blocksplaced='blocksPlaced',itemsdropped='itemsDropped',trustlevel='trustLevel',blocksdestroyed='blocksDestroyed',groups = 'Groups', creatureskilled = 'creaturesKilled', balance='money'}, format = 'json' }) if userdata then -- if this doesn't trigger something has gone terribly wrong local trust = userdata.trustlevel -- Trust Level local blocksbroken = userdata.blocksdestroyed -- Blocks Broken local traveled = userdata.traveled -- Meters Traveled local blocksplaced = userdata.blocksplaced -- Blocks Placed local itemsdropped = userdata.itemsdropped -- Items Dropped local groups = userdata.groups -- Groups as in Ranks local deaths = userdata.deaths -- Player Deaths local pkilled = userdata.pkilled -- Players Killed local mkilled = userdata.creatureskilled -- Mob Kills local balance = userdata.balance -- Player's Money local joins = userdata.joins -- Join count if datatype == 'debug' then return uuid .. ' | ' .. trust .. ' | ' .. blocksbroken .. ' | ' .. groups .. ' | ' .. deaths .. ' | ' .. pkilled .. ' | ' .. joins .. ' | ' .. itemsdropped .. ' | ' .. blocksplaced .. ' | ' .. traveled .. ' | ' .. mkilled .. ' | ' .. balance .. ' | ' .. "{{MCColor|&4|WARNING: DEBUG MODE ENABLED}}" end if datatype == 'uuid' then return uuid end if datatype == 'trust' then return trust end if datatype == 'broken' then return blocksbroken end if datatype == 'rank' then if groups then -- RANKLIST START -- if string.find(groups, "admin") then --ADMIN return 'Admin' end if string.find(groups, "trial") then -- Trial Helper return 'Trial Helper' end if string.find(groups, "moderator") then -- Moderator return 'Moderator' end if string.find(groups, "helper") then -- Helper return 'Helper' end if string.find(groups, "developer") then -- Developer return 'Developer' end if string.find(groups, "diamondcitizen") then -- Diamond Citizen return 'Diamond Citizen' end if string.find(groups, "citizen") then -- Citizen return 'Citizen' end if string.find(groups, "trusted") then -- Gold Citizen return 'Gold Citizen' end if string.find(groups, "hero") then -- Hero return 'Hero' end if string.find(groups, "legend") then -- Legend return 'Legend' end if string.find(groups, "mystic") then -- Mystic return 'Mystic' end if string.find(groups, "donator") then -- Donator return 'Donator' end if string.find(groups, "donatorplus") then -- Donator+ return 'Donator+' end if string.find(groups, "donatorplusplus") then -- Donator++ return 'Donator++' end if string.find(groups, "trooper") then -- Trooper return 'Trooper' end if string.find(groups, "infrastructure") then -- Infrastructure (not used) return 'Infrastructure' end -- RANKLIST END -- else return 'NO USERDATA OF SPECIFIED TYPE FOUND' end end end end end end return p