VOOZH about

URL: https://minecraft.wiki/w/Module:Group_rights

⇱ Module:Group rights – Minecraft Wiki


Module:Group rights

From Minecraft Wiki
Jump to navigation Jump to search
Documentation[view] [edit] [history] [purge]Jump to code ↴

This module implements {{Group rights}}, {{Right entry}}, see their respective documentation pages for usages.

Data of rights belongs to each groups are stored in Module:Group rights/data.json, which are from the API.

[view] [edit] [history] [purge]The above documentation is transcluded from Module:Group rights/doc.
localp={}
localdataPath='Module:Group rights/data.json'
localfunctionlistToText(tbl,langCode)-- Ref: MediaWiki 1.43, MediaWiki\Language\Language::listToText()
ifnottblortype(tbl)~='table'or(#tbl<1)then
returnnil
end
langCode=langCodeormw.message.getDefaultLanguage()
localwordAnd=mw.message.new('and'):inLanguage(langCode):plain()
localwordSpace=mw.message.new('word-separator'):inLanguage(langCode):plain()
localwordComma=mw.message.new('comma-separator'):inLanguage(langCode):plain()
returnmw.text.listToText(tbl,wordComma,wordAnd..wordSpace)
end
localfunctiongroupLink(groupName,langCode)
ifnotgroupNamethen
returnnil
end
langCode=langCodeormw.message.getDefaultLanguage()
localgroupPageMessageObject=mw.message.new('grouppage-'..groupName):inLanguage(mw.language.getContentLanguage())
localgroupNameMessageObject=mw.message.new('group-'..groupName):inLanguage(langCode)
ifgroupPageMessageObject:exists()then
returnmw.ustring.format('[[%s|%s]]',groupPageMessageObject:plain(),groupNameMessageObject:exists()andgroupNameMessageObject:plain()orgroupName)
else
returnmw.ustring.format('%s',groupNameMessageObject:exists()andgroupNameMessageObject:plain()orgroupName)
end
end
localfunctionparseData(path,targetName)
ifnotpathornottargetNamethen
returnnil
end
localuserGroups=mw.loadJsonData(path).query.usergroups
localresults={}
for_,userGroupinipairs(userGroups)do
localuserGroupName=userGroup.name
ifuserGroup.name==targetNamethen
returnuserGroup
end
end
returnnil
end
functionp.displayRight(rightName,langCode)
ifnotrightNamethen
returnnil
end
langCode=langCodeormw.message.getDefaultLanguage()
localrightMessageObject=mw.message.new('right-'..rightName):inLanguage(langCode)
returnmw.message.new('listgrouprights-right-display'):inLanguage(langCode):params{rightMessageObject:exists()andrightMessageObject:plain()orrightName,rightName}:plain()
end
localfunctiondisplayRights(rightNames,langCode)
ifnotrightNamesortype(rightNames)~='table'then
returnnil
end
localresults={}
for_,vinipairs(rightNames)do
table.insert(results,p.displayRight(v,langCode))
end
return'* '..table.concat(results,'\n* ')
end
localfunctiondisplayGroupChanges(typeName,groupList,langCode)
ifnottypeNameortype(typeName)~='string'ornotgroupListortype(groupList)~='table'then
returnnil
end
localmessageNames={
['add']='listgrouprights-addgroup',
['remove']='listgrouprights-removegroup',
['add-self']='listgrouprights-addgroup-self',
['remove-self']='listgrouprights-removegroup-self',
}
localmessageName=messageNames[typeName]
ifnotmessageNamethen
returnnil
end
langCode=langCodeormw.message.getDefaultLanguage()
localgroupLinks={}
for_,groupinipairs(groupList)do
table.insert(groupLinks,groupLink(group,langCode))
end
return'* '..mw.message.new(messageName):inLanguage(langCode):params{listToText(groupLinks,langCode),#groupLinks}:plain()
end
functionp.call(groupName,langCode)
ifnotgroupNamethen
returnnil
end
localdata=parseData(dataPath,groupName)
ifnotdatathen
returnnil
end
localsections={}
ifdata['rights']then
table.insert(sections,displayRights(data['rights'],langCode))
end
for_,changeAspectinipairs{'add','remove','add-self','remove-self'}do
ifdata[changeAspect]then
table.insert(sections,displayGroupChanges(changeAspect,data[changeAspect],langCode))
end
end
returnmw.getCurrentFrame():preprocess(table.concat(sections,'\n'))
end
functionp.main(f)
localargs=f
localframe=mw.getCurrentFrame()
iff==framethen
args=require('Module:ProcessArgs').merge(true)
end
ifnotargs[1]then
return''
end
returnp.call(args[1],args[2])or''
end
functionp.right(f)
localargs=f
localframe=mw.getCurrentFrame()
iff==framethen
args=require('Module:ProcessArgs').merge(true)
end
ifnotargs[1]then
return''
end
returnp.displayRight(args[1],args[2])or''
end
returnp
Retrieved from "https://minecraft.wiki/w/Module:Group_rights?oldid=3224601"

Navigation menu