Skip to content

Commit

Permalink
fix permission issues on arm processors
Browse files Browse the repository at this point in the history
works around a bug in luajit that seems to happen when passing a
number to `bit.bor` that is larger than 2^31-1

Additionally adds a few missing enumerations so that enableAll and
disableAll work as expected.

Fixes SinisterRectus#384
  • Loading branch information
truemedian committed May 11, 2023
1 parent 899a8d4 commit ac0b8c6
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 40 deletions.
8 changes: 6 additions & 2 deletions libs/client/Resolver.lua
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ function Resolver.permissions(obj)
if isInstance(obj, classes.Permissions) then
return obj.value
end
return tonumber(obj)
return int(obj)
end

function Resolver.permission(obj)
Expand All @@ -159,7 +159,11 @@ function Resolver.permission(obj)
if t == 'string' then
n = permission[obj]
elseif t == 'number' then
n = permission(obj) and obj
n = permission(uint64_t(obj))
elseif t == 'cdata' then
if istype(int64_t, obj) or istype(uint64_t, obj) then
n = permission(uint64_t(obj))
end
end
return n
end
Expand Down
86 changes: 48 additions & 38 deletions libs/enums.lua
Original file line number Diff line number Diff line change
Expand Up @@ -155,47 +155,57 @@ enums.premiumTier = enum {
}

local function flag(n)
return 2^n
return 2ULL^n
end

enums.permission = enum {
createInstantInvite = flag(0),
kickMembers = flag(1),
banMembers = flag(2),
administrator = flag(3),
manageChannels = flag(4),
manageGuild = flag(5),
addReactions = flag(6),
viewAuditLog = flag(7),
prioritySpeaker = flag(8),
stream = flag(9),
readMessages = flag(10),
sendMessages = flag(11),
sendTextToSpeech = flag(12),
manageMessages = flag(13),
embedLinks = flag(14),
attachFiles = flag(15),
readMessageHistory = flag(16),
mentionEveryone = flag(17),
useExternalEmojis = flag(18),
viewGuildInsights = flag(19),
connect = flag(20),
speak = flag(21),
muteMembers = flag(22),
deafenMembers = flag(23),
moveMembers = flag(24),
useVoiceActivity = flag(25),
changeNickname = flag(26),
manageNicknames = flag(27),
manageRoles = flag(28),
manageWebhooks = flag(29),
manageEmojis = flag(30),
useSlashCommands = flag(31),
requestToSpeak = flag(32),
manageEvents = flag(33),
manageThreads = flag(34),
usePublicThreads = flag(35),
usePrivateThreads = flag(36),
createInstantInvite = flag(0),
kickMembers = flag(1),
banMembers = flag(2),
administrator = flag(3),
manageChannels = flag(4),
manageGuild = flag(5),
addReactions = flag(6),
viewAuditLog = flag(7),
prioritySpeaker = flag(8),
stream = flag(9),
readMessages = flag(10),
sendMessages = flag(11),
sendTextToSpeech = flag(12),
manageMessages = flag(13),
embedLinks = flag(14),
attachFiles = flag(15),
readMessageHistory = flag(16),
mentionEveryone = flag(17),
useExternalEmojis = flag(18),
viewGuildInsights = flag(19),
connect = flag(20),
speak = flag(21),
muteMembers = flag(22),
deafenMembers = flag(23),
moveMembers = flag(24),
useVoiceActivity = flag(25),
changeNickname = flag(26),
manageNicknames = flag(27),
manageRoles = flag(28),
manageWebhooks = flag(29),
manageEmojis = flag(30),
useSlashCommands = flag(31),
requestToSpeak = flag(32),
manageEvents = flag(33),
manageThreads = flag(34),
usePublicThreads = flag(35),
usePrivateThreads = flag(36),
useExternalStickers = flag(37),
sendMessagesThreads = flag(38),
useVoiceActivities = flag(39),
moderateMembers = flag(40),
viewCreatorAnalytics = flag(41),
useSoundboard = flag(42),
-- unused = flag(43),
-- unused = flag(44),
-- unused = flag(45),
sendVoiceMessages = flag(46),
}

enums.messageFlag = enum {
Expand Down

0 comments on commit ac0b8c6

Please sign in to comment.