/
VoiceChatUtils.lua
52 lines (39 loc) · 1.09 KB
/
VoiceChatUtils.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
--[=[
@class VoiceChatUtils
]=]
local require = require(script.Parent.loader).load(script)
local VoiceChatService = game:GetService("VoiceChatService")
local Promise = require("Promise")
local VoiceChatUtils = {}
--[=[
Reports whether voice chat is enabled
@param player Player
@return Promise<boolean>
]=]
function VoiceChatUtils.promiseIsVoiceEnabledForPlayer(player)
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
return VoiceChatUtils.promiseIsVoiceEnabledForUserId(player.UserId)
end
--[=[
Wraps whether voice chat is enabled
@param userId number
@return Promise<boolean>
]=]
function VoiceChatUtils.promiseIsVoiceEnabledForUserId(userId)
assert(type(userId) == "number", "Bad userId")
return Promise.spawn(function(resolve, reject)
local result
local ok, err = pcall(function()
result = VoiceChatService:IsVoiceEnabledForUserIdAsync(userId)
end)
if not ok then
warn(err)
return reject(err)
end
if type(result) ~= "boolean" then
return reject("Result was not a boolean")
end
return resolve(result)
end)
end
return VoiceChatUtils