Plugins/Builtin/Public/Get-Group.ps1
function Get-Group { <# .SYNOPSIS Show details about bot groups. .PARAMETER Name The name of the group to get. .EXAMPLE !get-group Get a list of all groups. .EXAMPLE !get-group --name admin Get details about the [Admin] group. #> [PoshBot.BotCommand( Aliases = ('gg', 'getgroup'), Permissions = 'view-group' )] [cmdletbinding()] param( [parameter(Mandatory)] $Bot, [parameter(Position = 0)] [string]$Name ) if ($PSBoundParameters.ContainsKey('Name')) { $g = $Bot.RoleManager.GetGroup($Name) if (-not $g) { New-PoshBotCardResponse -Type Error -Text "Group [$Name] not found :(" -Title 'Rut row' -ThumbnailUrl $thumb.rutrow } else { $membership = [pscustomobject]@{ Users = $g.Users.Keys | foreach-object { $Bot.RoleManager.ResolveUserIdToUserName($_) } Roles = $g.Roles.Keys } $msg = [string]::Empty $msg += "`nDescription: $($g.Description)" $msg += "`nMembers:`n$($membership | Format-Table | Out-String)" New-PoshBotCardResponse -Type Normal -Title "Details for group [$Name]" -Text $msg } } else { $groups = foreach ($key in ($Bot.RoleManager.Groups.Keys | Sort-Object)) { [pscustomobject][ordered]@{ Name = $key Description = $Bot.RoleManager.Groups[$key].Description Users = $Bot.RoleManager.Groups[$key].Users.Keys | foreach-object { $Bot.RoleManager.ResolveUserIdToUserName($_) } Roles = $Bot.RoleManager.Groups[$key].Roles.Keys } } New-PoshBotCardResponse -Type Normal -Text ($groups | Format-List | Out-String) } } |