-- Compiled with roblox-ts v1.2.7 local ZirconBindingType do local _inverse = {} ZirconBindingType = setmetatable({}, { __index = _inverse, }) ZirconBindingType.Creator = 1 _inverse[1] = "Creator" ZirconBindingType.Group = 2 _inverse[2] = "Group" ZirconBindingType.UserIds = 4 _inverse[4] = "UserIds" ZirconBindingType.Everyone = 1073741824 _inverse[1073741824] = "Everyone" end local ZirconGroupBuilder do ZirconGroupBuilder = setmetatable({}, { __tostring = function() return "ZirconGroupBuilder" end, }) ZirconGroupBuilder.__index = ZirconGroupBuilder function ZirconGroupBuilder.new(...) local self = setmetatable({}, ZirconGroupBuilder) return self:constructor(...) or self end function ZirconGroupBuilder:constructor(parent, rank, id) self.parent = parent self.rank = rank self.id = id self.permissions = { CanAccessConsole = true, CanAccessFullZirconEditor = false, CanExecuteZirconiumScripts = false, CanViewLogMetadata = false, CanRecieveServerLogMessages = false, } self.groupLink = {} self.userIds = {} self.bindType = 0 end function ZirconGroupBuilder:SetPermission(key, value) self.permissions[key] = value return self end function ZirconGroupBuilder:SetPermissions(permissions) local _object = {} local _left = "CanAccessConsole" local _condition = permissions.CanAccessConsole if _condition == nil then _condition = self.permissions.CanAccessConsole end _object[_left] = _condition local _left_1 = "CanRecieveServerLogMessages" local _condition_1 = permissions.CanRecieveServerLogMessages if _condition_1 == nil then _condition_1 = self.permissions.CanRecieveServerLogMessages end _object[_left_1] = _condition_1 local _left_2 = "CanAccessFullZirconEditor" local _condition_2 = permissions.CanAccessFullZirconEditor if _condition_2 == nil then _condition_2 = self.permissions.CanAccessFullZirconEditor end _object[_left_2] = _condition_2 local _left_3 = "CanExecuteZirconiumScripts" local _condition_3 = permissions.CanExecuteZirconiumScripts if _condition_3 == nil then _condition_3 = self.permissions.CanExecuteZirconiumScripts end _object[_left_3] = _condition_3 local _left_4 = "CanViewLogMetadata" local _condition_4 = permissions.CanViewLogMetadata if _condition_4 == nil then _condition_4 = permissions.CanRecieveServerLogMessages if _condition_4 == nil then _condition_4 = self.permissions.CanViewLogMetadata end end _object[_left_4] = _condition_4 self.permissions = _object return self end function ZirconGroupBuilder:BindToGroupRole(groupId, groupRole) local _groupLink = self.groupLink local _arg0 = { GroupId = groupId, GroupRoleOrRank = groupRole, } -- ▼ Array.push ▼ _groupLink[#_groupLink + 1] = _arg0 -- ▲ Array.push ▲ return self end function ZirconGroupBuilder:BindToUserIds(userIds) self.bindType = bit32.bor(self.bindType, ZirconBindingType.UserIds) for _, userId in ipairs(userIds) do local _userIds = self.userIds -- ▼ Array.push ▼ _userIds[#_userIds + 1] = userId -- ▲ Array.push ▲ end return self end function ZirconGroupBuilder:BindToEveryone() self.bindType = bit32.bor(self.bindType, ZirconBindingType.Everyone) return self end function ZirconGroupBuilder:BindToCreator() self.bindType = bit32.bor(self.bindType, ZirconBindingType.Creator) return self end function ZirconGroupBuilder:BindToGroupRank(groupId, groupRank) self.bindType = bit32.bor(self.bindType, ZirconBindingType.Group) local _groupLink = self.groupLink local _arg0 = { GroupId = groupId, GroupRoleOrRank = groupRank, } -- ▼ Array.push ▼ _groupLink[#_groupLink + 1] = _arg0 -- ▲ Array.push ▲ return self end function ZirconGroupBuilder:Add() local _binding = self.parent local configuration = _binding.configuration local _array = {} local _length = #_array local _array_1 = configuration.Groups local _Length = #_array_1 table.move(_array_1, 1, _Length, _length + 1, _array) _length += _Length _array[_length + 1] = { Id = self.id, Rank = self.rank, UserIds = self.userIds, BindType = self.bindType, Permissions = self.permissions, Groups = self.groupLink, } configuration.Groups = _array return self.parent end end return { ZirconBindingType = ZirconBindingType, ZirconGroupBuilder = ZirconGroupBuilder, }