Module:RobloxStaff: Difference between revisions
Jump to navigation
Jump to search
Pauljkl>Thundermaker300 m (Changed protection settings for "Module:RobloxStaff": Lowering protection per editor discussion ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only administrators] (indefinite))) |
m (1 revision imported: Pauljkl) |
(No difference)
|
Latest revision as of 06:12, 27 January 2023
Documentation for this module may be created at Module:RobloxStaff/doc
local p = {} local link = require('Module:Player link') local utils = require('Module:Utils') local player_list = require('Module:Player list') p.data = { Admin = require("Module:RobloxStaff/Admin"), Former_Admin = require("Module:RobloxStaff/Former_Admin"), Intern = { -- From intern group "0x_7777", "4444unahb", "Aitorisu", "Alpacalaca222", "CaptainSpaceCat7", "CatanLambFarmer", "ChairOnASquidward", "Chimunnies", "Clasifex", "DevUItra", "DevoidOfDebt", "Garnold", "GiltTurtle", "Goaliedude529", "GoatRBX", "LilKage141", "LoveHijabiGamer", "Mistemper", "MoEasy1998", "Parranoul", "PlanarTheorem", "PrimalImpulse", "RoBryIox", "RobloxHighChieftain", "ScriptOn", "Slaystarss", "THEMASTERMIND4", "Technival2", "TheRadOpal", "The_Collector99", "Valorum27", "Win", "YasiToThePeace", "aznjedi", "buzzonetwo", "crunchwrap_supr3me", "crystallineblade", "daweezy99", "deevvyb", "desertsky3", "docorangey", "doctororanges", "dougtoter", "el_henbot", "fauxmonalisa", "godoftheforce", "grant_xp", "hijabiIntern", "hydr0h0mie", "iSlaystar", "imundra", "internandrew", "jinkiesSc00b", "kvrisutina", "kwu00", "lycheeperson10", "marteeblox91", "mavidt", "mavidt_R", "misterchipotle", "misterpebblez", "mlpaulsen1", "pkrman", "raspgary", "riddlemasta", "roboman2194", "siceet", "sk9lar", "sno_bakes", "sonorousprophet", "stratyce", "tareyza", "thousandsofnematodes", "thunderstorm808080", "vamorafa", "wiggletsunami", "worklessplaymore", "wrentea", "x86_linuxkranz", "xiaw4n", "yogismashbear", "ztop2525", -- From official group of Roblox "99percent_human", "AMDLiquidify", "AdrInt09", "ArugulaBeluga", "AvatarAmberNS1", "AvatarAmberNS2", "AvatarAmberNS3", "BeNiceToday", "Big_TonkaT", "CrashInvestigatorAv", "FinishingTheHat", "IntegrationClientRCC", "JerryGarc1a", "ParachutesAreFun", "Parranoul", "Pumpkin_mba", "SalvoSword", "Shneeeps", "Sookeden", "Sunbeam_Sunflower", "TheLorekt", "WhiffleCat", "Yeeetdab7", "aceSenzation", "adequate_username", "ambgiovanni", "boT0Tod", "chickendashe", "discodorothy", "dzieg2000", "fierceandtender", "gener4lity", "hasijack", "its_jdot", "ktsai14", "namnams1756", "nandemoiize", "nightend16", "noodlelover9898", "notaidans", "ochiitsuki", "prodcont", "psychomantis_125", "rbxpotatoincs", "slimnotshady2021", "starhikerCI", "sunshine53737", "testav01", "thegreatvolare2", "themindinator", "thenutu98", "vdas96", "vdvprods1", "weeek53", "yaboyblue17", "yulipandas", }, Former_Intern = { "1297827", "AbstractAlex", "AlgyLacey", "Bonnicus", "BusyCityGuy", "Crykee", "DarthfuzzyX", "Felix_Phoenix", "FutureWebsiteOwner", "LateNightDiner", "Lunya", "Ramsey35612", "Sanclops", "Sharksie", "StarWars", "Tenal", "TheGamer101", "Tomarty", "TorchedPork", "Unclear", "Vydaar", "Xsitsu", "Zamphex", "afuuu557", "alexnewtron", "allergicpuppy", "boatbomber", "burgundyernie", "byron123t", "chiefsmoothie28", "cloakedyoshi", "jtbuilder1", "kalypso3", "kiwon0905", "maximum_adhd", "maxxz", "moded", "negoose", "ninatuck3r", "pa00", "polarpanda16", "riotmonkey91", "stunshocker", "triplexlink", "triyangle", "ubergoodoodoo", "zlib", }, Accelerator = { "BONNlEBUILDS", "BloodSpring", "CrimsonForce", "Daronion", "DeltaRager", "DeniedTriangles", "DrDarkMatter", "Girovv", "Grimmorath", "Guapled", "Jazzyx3", "Jplay5x5", "Lawll3r", "Monkepled", "MoraIins", "Musketfall", "Redridge", "Scribels", "Sekuriyo", "SixEightJakey", "bigbadbob234", "blutreefrog", "bryguy098", "len_ny", "lucoile", "nurokoi", "rakamoni", "ryfd121", "seario2020", "tomwars13", "wpled", }, Incubator = { "Dspav", "dyno_smore", }, Former_Accelerator = { "4slug", "AAA_RobloxDev", "AbiZinho", "Aesthetical", "Airennor", "AirplanePunch", "AlreadyPro", "Amber_pond", "Anthem80", "Antiboid", "Aragornx_swe", "ArcadeRockstar", "ArcticCitadel", "Arcwise", "AshCr4ft", "Asleum", "Atrazine", "Avlyssna", "Awes_3", "Axcerious", "AxisAngle", "AzireBlox", "AznDibs", "BIackoutDev", "B_rcode", "BarrelxHead", "Baumz", "BelowNatural", "Ben_Est", "Bethink", "Biostream", "Bladefinder", "Blueice506", "BreakfastBananas", "Brick_man", "BrokenBone", "Brv1n", "Buddyism", "Builder_Boy", "Calilies", "CardStealer1", "Castlers", "CavCrow", "ChadTheCreator", "Chaotic_Cody", "Chiefwaffles", "ChipioIndustries", "Chronomad", "Cindering", "CodeSleepRepeat", "CodingLogistics", "CoffeeNerdz", "ColdDeveloper", "ColonelGraff", "CorrivalRhyme", "Cosmoit", "CovenK", "Cracky4", "CreatyChameleon", "Credenzio", "CryptoCookie101", "Cypraith", "DanzLua", "Dapale", "DevAwesomely", "DevIrradiant", "DevSpec", "Dev_Anthony", "DurIock", "Eezby", "Elocore", "Erythia", "EverSoull", "EvilArtist", "Ezok", "Fabiox99", "Fangous", "FataIJaka", "Fishh3ad", "Fluffmiceter", "Fm_Trick", "ForyxeV", "FouledAnchors", "Fresh_Effect", "FriendlyBiscuit", "Fusion_Swarly", "GFink", "GGGGG14", "GeorgeOfAIITrades", "GhettoMilkMan", "Gibfoot", "GigsD4X", "GodzGalaxy", "GunsBullets", "Gusmanak", "HDFrisk", "HaroutYerets", "HenryDev", "HiddenBladed", "HorrorTM", "HyperBlue", "Im50FeetTall", "Imaginaerum", "InFamooseRebek", "InsanelyLuke", "Intrance", "Irunui", "IsaacThePooper", "JDFantasy", "JKVette", "James_Nuts", "JamienChee", "JohnDrinkin", "Kavelleri", "KelseyAnna", "Kinnis97", "KoachyMan", "KyleCreate", "L1611", "LMH_Hutch", "Lethal682", "LifeApollo", "LinxyDotLua", "LoganCreates", "LordJurrd", "LordSilverius", "M4RC", "Maelstronomer", "MagicHighway", "MahaIo", "MakkieMon", "MarioMan57169", "Mark901", "MasterDaniel", "MasterOfTheElements", "Modyfyed", "MonkrysGhost", "Mophyr", "MrThorRBX", "MrWindy", "Mr_Vgy", "Mullets_Gavin", "Myzta", "NO4HHHH", "Narroby", "Natalie_Clabo", "NeverTrustBob", "NewFissy", "Nexiuos", "NiceDrift", "Nightcaller", "Niktalin", "Nimblz", "NoAlias", "Noble_Draconian", "NowDoTheHarlemShake", "Nyonic", "ObscureEntity", "OliFlam", "OneLegitDev", "OttodotOfficial", "Ozzypig", "ParallelMayhem", "Parky43536", "Patricia1025", "Pavalineox", "Peaspod", "PezzoGuy", "PhilipJFryFry", "Plutonem", "PrimE_RBLX", "Profine", "ProgramadorMan", "Quenty", "Ragoozer", "Raildex", "Rauuru", "Razuatix", "Refactor", "Repotted", "RickyTheFishy", "Roball1", "Rocky28447", "Rolijok", "Roytt", "Ryferion1", "SamSwifthoof", "Schematics", "ScholarlyFox", "SeafoamWolfy", "Sethalonian", "Shift4D", "ShinyGriffin", "Simbuilder", "Simoon68", "SirDoomKnight", "Skeledonut", "Smellysuperfart", "SnakeWorl", "Sollestice", "Soybeen", "Sparklings", "Spartan_N85", "Spathi", "StarMarine614", "SteadyOn", "Sunnytamos", "TCtully", "TGSweden", "Tamara_X", "TattedZach", "TeamSwordphin", "Terabyl", "TheAmazeman", "TheGh0stRunner", "TheGuyWithAShortName", "TheKatorium", "Thernus", "TheyCallMeShmoo", "TigerCaptain", "Tohb", "TrainedDoorman", "TyberiusCorvus", "Ultraw", "UndoneBuilder", "ValWiggin", "Voile", "WhoseTrade", "Widgeon", "WindScourge", "Wishtap", "Wolfragon", "WooleyWool", "Wrathsong", "XandertjeKnal", "Xeldath", "XenoSynthesis", "Yozoh", "ZackLaFlame", "ZcambiKabob", "Zintenka", "ZolarKeth", "Zukozy", "Zyleak", "aaron_mccoy", "alertcoderf", "bethanytheanimator", "blazescus", "bloody1", "booghow", "cbmaximillian", "colbert2677", "coolbulls", "copuni", "demiannpi", "doneyes", "eric5283", "eutniz", "filiperamaz", "finwei", "goro7", "hahaboomman1234", "harule", "hiioh", "hipenguinflip", "hlelo_wolrd", "hoshpup", "iohgoodness", "ionic_code", "ivofrog", "jameS2_pond", "jameeish", "jandel", "jjjakey", "joy_pond", "kenami", "khorlybhongoly", "klga", "lineridermasterman", "litozinnamon", "loravocado", "madattak", "madebyyaya", "martxn", "maximillianayre", "mazistrien", "mightybaseplate", "mikelskipples", "misternicekai", "monkletpox", "morscore", "mutex_lock", "nicode_n", "opplo", "paul2448", "popstarpiranhas", "prisman", "rbzs", "redalex415", "rekoleon", "rolbloxguy1876", "ruddev_ethan", "rulkoll", "saywhoom", "schweepus", "se_yai", "shaylan007", "sidnad10", "sircfenner", "soulstyce", "souup145", "ssienna_pond", "steven4547466", "straykevin", "suzycreamcheeese", "ted_pond", "theasmileyriley", "theloudscream", "tkirax", "tyridge77", "unroot", "vasil12345", "vastqud", "wish_z", "woodall25", "worldcrasher", "xJennyBeanx", "x_o", "yh8", "ylden_frei", "zKevin", }, Former_Incubator = { "Beac_n", "Cetharis", "Defaultio", "DevFlonk", "Dracula2g", "EricThePianoGuy", "Frinigus", "KrixYaz", "Locard", "Polyhex", "Polymorphic", "Shawnyg", "SmoothBlockModel", "SoFlyyDinero", "TechSpectrum", "VordonZon", "Wsly", "berezaa", "bizbot19", "filiptibell", "korky5000", "michaelvanderfin", "mrfergie", "pollopollop", "serverOptimist", "sk3let0n", "streetrida", }, Community_Champion = { "24RightAngles", "Alvin_Blox", "Aotrou", "BlockFaceSteve", "Blockfacebob", "Captain_Rando", "CycloneUprising", "Dhammapada", "DreamingMind", "Ravenshield", "Seranok", "WestToTheBay", "Ysko", "buildthomas", "dashadevf", "mothmage", "new_storm", "sircfenner", "sleitnick", "younite", }, Top_Contributor = require("Module:RobloxStaff/Former_Top_Contributor"), Community_Sage = { "Kampfkarren", "PeZsmistic", "buildthomas", "byc14", "mothmage", }, Former_Moderator = { "Anaminus", "docstrange", "Gamer3D", "HolyMac", "Jacobxxduel", "Leeav", "Njay", "Rombom", "Sirloin", }, Video_Star = require("Module:RobloxStaff/Video_Star"), Former_Video_Star = require("Module:RobloxStaff/Former_Video_Star"), QA_Tester = require("Module:RobloxStaff/QA_Tester"), Event_Organizer = require("Module:RobloxStaff/Event_Organizer") } p.UGC_Creator = require("Module:RobloxStaff/UGC_Creator") p.customLabels = { -- Same as above except handled differently by functions. p.List and p.Len will not work for custom labels. Also allows for customized images for each. --{"Username","Title","ImageFileName.ext"}, -- UGC Creators {"hornsword","UGC Video Star Uploading Account","UGC Star.png"} } function p.getRole(name) -- Returns an array of titles this user has "Administrator", "Former Intern", etc local t = {} local pos = 1 for k,x in pairs(p.data) do for i,v in pairs(x) do if type(v) == "string" then if name:lower() == v:lower() then table.insert(t,pos,k) end elseif type(v) == "table" then if name:lower() == v[1]:lower() then table.insert(t,pos,k) end end end pos = pos + 1 end -- Custom Labels for i,v in pairs(p.customLabels) do if v[1]:lower() == name:lower() then table.insert(t,"Custom:"..v[2] ..(v[3] and ":"..v[3] or "")) end end -- UGC local UGC_Wave = p.UGC_Creator.GetWave(name:lower()) if UGC_Wave ~= -1 then table.insert(t, "Custom:Wave " .. UGC_Wave .. " UGC Creator:UGC Test.png") end -- UGC Testers for i,v in pairs(p.UGC_Creator.Waves.Testers) do if v:lower() == name:lower() then table.insert(t,"Custom:UGC Testing Account:UGC Test.png") end end -- UGC Early Access for i,v in pairs(p.UGC_Creator.Waves.EarlyAccess) do if v:lower() == name:lower() then table.insert(t,"Custom:Early Access UGC Creator:UGC Test.png") end end -- Ret if #t == {} then return nil else return t end end function p.getStaffPosition(name) -- Returns an array of positions this user has (eg. "Web Developer"), must have at least one array for them. local t = {} for k,x in pairs(p.data) do for i,v in pairs(x) do if type(v) == "table" then if name:lower() == v[1]:lower() then if #v == 2 then table.insert(t,v[2]) elseif #v > 2 then for i = 2,#v do table.insert(t,v[i]) end end end end end end if #t == {} then return nil else return t end end --function p.List(frame) -- Returns a bulleted list of all users in a specific group (eg. list of administrators) -- if not p.data[frame.args[1]] then return "Unknown" end -- local returnString = "" -- for i,v in pairs(p.data[frame.args[1]]) do -- if type(v) == "string" then -- returnString = returnString.."\n* {{Player link|"..v.."}}" -- elseif type(v) == "table" then -- returnString = returnString.."\n* {{Player link|"..v[1].."}} – "..v[2] -- end -- end -- return frame:preprocess(returnString) --end]] function p.List(frame) if not p.data[frame.args[1]] then return "Unknown" end local playerTable = {} for i, v in pairs(p.data[frame.args[1]]) do table.insert(playerTable, type(v) == 'string' and v or v[1]) end return player_list._player_list(playerTable, true) end function p.Len(frame) -- Same as p.List, but returns length rather than a bulleted list. if not p.data[frame.args[1]] then return "Invalid staff category" end local count = #p.data[frame.args[1]] return tostring(count) end return p