Some commands such as getrolepowers
or createrole
either return a CSV
list of powers or need a CSV
list of powers to be supplied. Corrade uses libomv
's representation of group powers:
Name | Description |
---|---|
None | No powers. |
Invite | Can send invitations to groups default role. |
Eject | Can eject members from group. |
ChangeOptions | Can toggle 'Open Enrollment' and change 'Signup fee'. |
MemberVisible | Member is visible in the public member list. |
CreateRole | Can create new roles. |
DeleteRole | Can delete existing roles. |
RoleProperties | Can change Role names, titles and descriptions. |
AssignMemberLimited | Can assign other members to assigners role. |
AssignMember | Can assign other members to any role. |
RemoveMember | Can remove members from roles. |
ChangeActions | Can assign and remove abilities in roles. |
ChangeIdentity | Can change group Charter, Insignia, 'Publish on the web' and which members are publicly visible in group member listings. |
LandDeed | Can buy land or deed land to group. |
LandRelease | Can abandon group owned land to Governor Linden on mainland, or Estate owner for private estates. |
LandSetSale | Can set land for-sale information on group owned parcels. |
LandDivideJoin | Can subdivide and join parcels. |
JoinChat | Can join group chat sessions. |
AllowVoiceChat | Can use voice chat in Group Chat sessions. |
ModerateChat | Can moderate group chat sessions. |
FindPlaces | Can toggle "Show in Find Places" and set search category. |
LandChangeIdentity | Can change parcel name, description, and 'Publish on web' settings. |
SetLandingPoint | Can set the landing point and teleport routing on group land. |
ChangeMedia | Can change music and media settings. |
LandEdit | Can toggle 'Edit Terrain' option in Land settings. |
LandOptions | Can toggle various About Land > Options settings. |
AllowEditLand | Can always terraform land, even if parcel settings have it turned off. |
AllowFly | Can always fly while over group owned land. |
AllowRez | Can always rez objects on group owned land. |
AllowLandmark | Can always create landmarks for group owned parcels. |
AllowSetHome | Can set home location on any group owned parcel. |
LandManageAllowed | Can modify public access settings for group owned parcels. |
LandManageBanned | Can manager parcel ban lists on group owned land. |
LandManagePasses | Can manage pass list sales information. |
LandEjectAndFreeze | Can eject and freeze other avatars on group owned land. |
ReturnGroupSet | Can return objects set to group. |
ReturnNonGroup | Can return non-group owned/set objects. |
ReturnGroupOwned | Can return group owned objects. |
LandGardening | Can landscape using Linden plants. |
DeedObject | Can deed objects to group. |
ObjectManipulate | Can move group owned objects. |
ObjectSetForSale | Can set group owned objects for-sale. |
Accountable | Pay group liabilities and receive group dividends. |
SendNotices | Can send group notices. |
ReceiveNotices | Can receive group notices. |
StartProposal | Can create group proposals. |
VoteOnProposal | Can vote on group proposals. |
This is very simple to use. Suppose for example that you wanted to create a role called Test
that has the ability to change the parcel media (ChangeMedia
) and able to join the group chat (JoinChat
). In which case, a suitable command would be:
llInstantMessage(CORRADE, wasKeyValueEncode( [ "command", "createrole", "group", GROUP, "role", "Test", "title", "Chatters", "password", PASSWORD, "powers", wasListToCSV( [ "ChangeMedia", "JoinChat" ] ) ] ) );
where powers
is supplied a comma-separated list of powers from the table above. Corrade will equally answer with a comma-separated list of powers once a group is polled for powers. When Corrade is polled to check the role powers of the group Everyone
via:
llInstantMessage(CORRADE, wasKeyValueEncode( [ "command", "getrolepowers", "group", GROUP, "role", "Everyone", "password", PASSWORD, "callback", URL ] ) );
amongst the other data, Corrade will answer:
data=JoinChat,AllowVoiceChat,AllowSetHome,ReceiveNotices
which represent the role powers for the role Everyone
in the specified group.
This is very convenient due to the fact that one can use the key-value data API to extract data
and the use wasCSVToList
in order to obtain a list of powers:
list powers = wasCSVToList( wasKeyValueGet( "data", answer ) );