Skip to content

Commit b615cbd

Browse files
authored
Merge pull request #603 from Quenty/users/quenty/secrets
feat: Support Roblox secrets in secrets service
2 parents d396d6f + a565916 commit b615cbd

File tree

5 files changed

+39
-3
lines changed

5 files changed

+39
-3
lines changed

src/coreguienabler/src/Client/CoreGuiEnabler.lua

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,9 @@ function CoreGuiEnabler.new(): CoreGuiEnabler
9797
UserInputService.ModalEnabled = not isEnabled
9898
end)
9999

100+
local wasEnabled = StarterPlayer.EnableMouseLockOption
100101
self:AddState("EnableMouseLockOption", function(isEnabled)
101-
StarterPlayer.EnableMouseLockOption = isEnabled
102+
StarterPlayer.EnableMouseLockOption = wasEnabled and isEnabled
102103
end)
103104

104105
self:AddState("MouseIconEnabled", function(isEnabled)

src/playerutils/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
},
3030
"dependencies": {
3131
"@quenty/brio": "file:../brio",
32+
"@quenty/characterutils": "file:../characterutils",
3233
"@quenty/instanceutils": "file:../instanceutils",
3334
"@quenty/loader": "file:../loader",
3435
"@quenty/maid": "file:../maid",

src/playerutils/src/Shared/RxPlayerUtils.lua

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ local Brio = require("Brio")
1212
local Maid = require("Maid")
1313
local Observable = require("Observable")
1414
local Rx = require("Rx")
15+
local RxBrioUtils = require("RxBrioUtils")
16+
local RxCharacterUtils = require("RxCharacterUtils")
1517
local RxInstanceUtils = require("RxInstanceUtils")
1618

1719
local RxPlayerUtils = {}
@@ -52,6 +54,28 @@ function RxPlayerUtils.observePlayersBrio(predicate: Rx.Predicate<Player>?): Obs
5254
end) :: any
5355
end
5456

57+
--[=[
58+
Observes the character model for the player
59+
]=]
60+
function RxPlayerUtils.observeCharactersBrio(): Observable.Observable<Brio.Brio<Model>>
61+
return RxPlayerUtils.observePlayersBrio():Pipe({
62+
RxBrioUtils.flatMapBrio(function(player)
63+
return RxCharacterUtils.observeLastCharacterBrio(player)
64+
end) :: any,
65+
}) :: any
66+
end
67+
68+
--[=[
69+
Observes the character model for the player
70+
]=]
71+
function RxPlayerUtils.observeHumanoidsBrio(): Observable.Observable<Brio.Brio<Humanoid>>
72+
return RxPlayerUtils.observePlayersBrio():Pipe({
73+
RxBrioUtils.flatMapBrio(function(player)
74+
return RxCharacterUtils.observeLastHumanoidBrio(player)
75+
end) :: any,
76+
}) :: any
77+
end
78+
5579
--[=[
5680
Observes the current local player
5781

src/secrets/src/Server/Cmdr/SecretsCommandService.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ function SecretsCommandService:_registerCommands()
103103
local secret = self._secretsService:PromiseSecret(secretKey):Wait()
104104

105105
if secret then
106-
return secret
106+
return tostring(secret)
107107
else
108108
return "<no value>"
109109
end

src/secrets/src/Server/SecretsService.lua

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
local require = require(script.Parent.loader).load(script)
66

7+
local HttpService = game:GetService("HttpService")
8+
79
local EllipticCurveCryptography = require("EllipticCurveCryptography")
810
local GetRemoteFunction = require("GetRemoteFunction")
911
local Maid = require("Maid")
@@ -65,9 +67,17 @@ end
6567
@param secretKey string
6668
@return Promise<string>
6769
]=]
68-
function SecretsService:PromiseSecret(secretKey: string): Promise.Promise<string>
70+
function SecretsService:PromiseSecret(secretKey: string): Promise.Promise<string | Secret>
6971
assert(type(secretKey) == "string", "Bad secretKey")
7072

73+
local found
74+
local loadOk, _err = pcall(function()
75+
found = HttpService:GetSecret(secretKey)
76+
end)
77+
if loadOk and found then
78+
return Promise.resolved(found)
79+
end
80+
7181
return self:_promiseSubstore():Then(function(substore)
7282
return self._maid:GivePromise(substore:Load(secretKey)):Then(function(data)
7383
if type(data) ~= "table" then

0 commit comments

Comments
 (0)