@quenty/settings 11.23.0 → 11.23.2-canary.547.11ae689.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/LICENSE.md +1 -1
- package/package.json +31 -31
- package/src/Client/Player/PlayerSettingsClient.lua +1 -1
- package/src/Client/SettingsServiceClient.lua +6 -5
- package/src/Server/Cmdr/SettingsCmdrService.lua +4 -3
- package/src/Server/Player/PlayerHasSettings.lua +2 -2
- package/src/Server/Player/PlayerSettings.lua +1 -1
- package/src/Server/SettingsService.lua +3 -2
- package/src/Shared/Cmdr/SettingsCmdrUtils.lua +10 -10
- package/src/Shared/Setting/SettingDefinition.lua +10 -9
- package/src/Shared/Setting/SettingDefinitionProvider.lua +6 -5
- package/src/Shared/SettingsDataService.lua +2 -1
- package/test/scripts/Server/ServerMain.server.lua +5 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,29 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [11.23.2-canary.547.11ae689.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.23.0...@quenty/settings@11.23.2-canary.547.11ae689.0) (2025-04-07)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Add types to packages ([2374fb2](https://github.com/Quenty/NevermoreEngine/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
|
|
12
|
+
* Bump package versions for republishing ([ba47c62](https://github.com/Quenty/NevermoreEngine/commit/ba47c62e32170bf74377b0c658c60b84306dc294))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
## [11.23.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.23.0...@quenty/settings@11.23.1) (2025-04-07)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Bug Fixes
|
|
22
|
+
|
|
23
|
+
* Add types to packages ([2374fb2](https://github.com/Quenty/NevermoreEngine/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
6
29
|
# [11.23.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.22.5...@quenty/settings@11.23.0) (2025-04-02)
|
|
7
30
|
|
|
8
31
|
**Note:** Version bump only for package @quenty/settings
|
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2014-
|
|
3
|
+
Copyright (c) 2014-2025 James Onnen (Quenty)
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/settings",
|
|
3
|
-
"version": "11.23.0",
|
|
3
|
+
"version": "11.23.2-canary.547.11ae689.0",
|
|
4
4
|
"description": "Centralized player settings service",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -25,38 +25,38 @@
|
|
|
25
25
|
"Quenty"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@quenty/attributeutils": "
|
|
29
|
-
"@quenty/baseobject": "
|
|
30
|
-
"@quenty/binder": "
|
|
31
|
-
"@quenty/brio": "
|
|
32
|
-
"@quenty/cmdrservice": "
|
|
33
|
-
"@quenty/datastore": "
|
|
34
|
-
"@quenty/ducktype": "
|
|
35
|
-
"@quenty/enumutils": "
|
|
36
|
-
"@quenty/instanceutils": "
|
|
37
|
-
"@quenty/jsonutils": "
|
|
38
|
-
"@quenty/loader": "
|
|
39
|
-
"@quenty/maid": "
|
|
40
|
-
"@quenty/observablecollection": "
|
|
41
|
-
"@quenty/playerbinder": "
|
|
42
|
-
"@quenty/playerutils": "
|
|
43
|
-
"@quenty/remotefunctionutils": "
|
|
44
|
-
"@quenty/remoting": "
|
|
45
|
-
"@quenty/rx": "
|
|
46
|
-
"@quenty/rxbinderutils": "
|
|
47
|
-
"@quenty/rxsignal": "
|
|
48
|
-
"@quenty/servicebag": "
|
|
49
|
-
"@quenty/signal": "
|
|
50
|
-
"@quenty/statestack": "
|
|
51
|
-
"@quenty/string": "
|
|
52
|
-
"@quenty/symbol": "
|
|
53
|
-
"@quenty/table": "
|
|
54
|
-
"@quenty/throttle": "
|
|
55
|
-
"@quenty/tie": "
|
|
56
|
-
"@quenty/valueobject": "
|
|
28
|
+
"@quenty/attributeutils": "14.17.2-canary.547.11ae689.0",
|
|
29
|
+
"@quenty/baseobject": "10.8.2-canary.547.11ae689.0",
|
|
30
|
+
"@quenty/binder": "14.19.2-canary.547.11ae689.0",
|
|
31
|
+
"@quenty/brio": "14.17.2-canary.547.11ae689.0",
|
|
32
|
+
"@quenty/cmdrservice": "13.22.2-canary.547.11ae689.0",
|
|
33
|
+
"@quenty/datastore": "13.20.2-canary.547.11ae689.0",
|
|
34
|
+
"@quenty/ducktype": "5.8.3-canary.547.11ae689.0",
|
|
35
|
+
"@quenty/enumutils": "3.4.2-canary.547.11ae689.0",
|
|
36
|
+
"@quenty/instanceutils": "13.17.2-canary.547.11ae689.0",
|
|
37
|
+
"@quenty/jsonutils": "10.10.3-canary.547.11ae689.0",
|
|
38
|
+
"@quenty/loader": "10.8.2-canary.547.11ae689.0",
|
|
39
|
+
"@quenty/maid": "3.4.2-canary.547.11ae689.0",
|
|
40
|
+
"@quenty/observablecollection": "12.20.2-canary.547.11ae689.0",
|
|
41
|
+
"@quenty/playerbinder": "14.19.2-canary.547.11ae689.0",
|
|
42
|
+
"@quenty/playerutils": "8.17.2-canary.547.11ae689.0",
|
|
43
|
+
"@quenty/remotefunctionutils": "10.10.3-canary.547.11ae689.0",
|
|
44
|
+
"@quenty/remoting": "12.18.2-canary.547.11ae689.0",
|
|
45
|
+
"@quenty/rx": "13.17.2-canary.547.11ae689.0",
|
|
46
|
+
"@quenty/rxbinderutils": "14.19.2-canary.547.11ae689.0",
|
|
47
|
+
"@quenty/rxsignal": "7.17.2-canary.547.11ae689.0",
|
|
48
|
+
"@quenty/servicebag": "11.11.3-canary.547.11ae689.0",
|
|
49
|
+
"@quenty/signal": "7.10.2-canary.547.11ae689.0",
|
|
50
|
+
"@quenty/statestack": "14.18.2-canary.547.11ae689.0",
|
|
51
|
+
"@quenty/string": "3.3.3-canary.547.11ae689.0",
|
|
52
|
+
"@quenty/symbol": "3.4.2-canary.547.11ae689.0",
|
|
53
|
+
"@quenty/table": "3.7.3-canary.547.11ae689.0",
|
|
54
|
+
"@quenty/throttle": "10.9.2-canary.547.11ae689.0",
|
|
55
|
+
"@quenty/tie": "10.20.2-canary.547.11ae689.0",
|
|
56
|
+
"@quenty/valueobject": "13.17.2-canary.547.11ae689.0"
|
|
57
57
|
},
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"access": "public"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "11ae6894c9c40c596e521dc1d2a71977af63752f"
|
|
62
62
|
}
|
|
@@ -184,7 +184,7 @@ function PlayerSettingsClient:SetValue(settingName, value)
|
|
|
184
184
|
self._toReplicate[settingName] = PlayerSettingsUtils.encodeForNetwork(value)
|
|
185
185
|
|
|
186
186
|
if self._toReplicateCallbacks[settingName] then
|
|
187
|
-
for callback, _ in
|
|
187
|
+
for callback, _ in self._toReplicateCallbacks[settingName] do
|
|
188
188
|
task.spawn(callback)
|
|
189
189
|
end
|
|
190
190
|
end
|
|
@@ -12,6 +12,7 @@ local Players = game:GetService("Players")
|
|
|
12
12
|
|
|
13
13
|
local Maid = require("Maid")
|
|
14
14
|
local SettingsCmdrUtils = require("SettingsCmdrUtils")
|
|
15
|
+
local _ServiceBag = require("ServiceBag")
|
|
15
16
|
|
|
16
17
|
local SettingsServiceClient = {}
|
|
17
18
|
|
|
@@ -20,7 +21,7 @@ local SettingsServiceClient = {}
|
|
|
20
21
|
|
|
21
22
|
@param serviceBag ServiceBag
|
|
22
23
|
]=]
|
|
23
|
-
function SettingsServiceClient:Init(serviceBag)
|
|
24
|
+
function SettingsServiceClient:Init(serviceBag: _ServiceBag.ServiceBag)
|
|
24
25
|
assert(not self._serviceBag, "Already initialized")
|
|
25
26
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
26
27
|
self._maid = Maid.new()
|
|
@@ -81,7 +82,7 @@ end
|
|
|
81
82
|
@param player Player
|
|
82
83
|
@return Observable<PlayerSettingsClient | nil>
|
|
83
84
|
]=]
|
|
84
|
-
function SettingsServiceClient:ObservePlayerSettings(player)
|
|
85
|
+
function SettingsServiceClient:ObservePlayerSettings(player: Player)
|
|
85
86
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
86
87
|
|
|
87
88
|
return self._settingsDataService:ObservePlayerSettings(player)
|
|
@@ -93,7 +94,7 @@ end
|
|
|
93
94
|
@param player Player
|
|
94
95
|
@return Observable<Brio<PlayerSettingsClient>>
|
|
95
96
|
]=]
|
|
96
|
-
function SettingsServiceClient:ObservePlayerSettingsBrio(player)
|
|
97
|
+
function SettingsServiceClient:ObservePlayerSettingsBrio(player: Player)
|
|
97
98
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
98
99
|
|
|
99
100
|
return self._settingsDataService:ObservePlayerSettingsBrio(player)
|
|
@@ -105,7 +106,7 @@ end
|
|
|
105
106
|
@param player Player
|
|
106
107
|
@return PlayerSettingsClient | nil
|
|
107
108
|
]=]
|
|
108
|
-
function SettingsServiceClient:GetPlayerSettings(player)
|
|
109
|
+
function SettingsServiceClient:GetPlayerSettings(player: Player)
|
|
109
110
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
110
111
|
|
|
111
112
|
return self._settingsDataService:GetPlayerSettings(player)
|
|
@@ -118,7 +119,7 @@ end
|
|
|
118
119
|
@param cancelToken CancellationToken
|
|
119
120
|
@return Promise<PlayerSettingsClient>
|
|
120
121
|
]=]
|
|
121
|
-
function SettingsServiceClient:PromisePlayerSettings(player, cancelToken)
|
|
122
|
+
function SettingsServiceClient:PromisePlayerSettings(player: Player, cancelToken)
|
|
122
123
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
123
124
|
|
|
124
125
|
return self._settingsDataService:PromisePlayerSettings(player, cancelToken)
|
|
@@ -9,11 +9,12 @@ local require = require(script.Parent.loader).load(script)
|
|
|
9
9
|
local PlayerUtils = require("PlayerUtils")
|
|
10
10
|
local SettingsCmdrUtils = require("SettingsCmdrUtils")
|
|
11
11
|
local Maid = require("Maid")
|
|
12
|
+
local _ServiceBag = require("ServiceBag")
|
|
12
13
|
|
|
13
14
|
local SettingsCmdrService = {}
|
|
14
15
|
SettingsCmdrService.ServiceName = "SettingsCmdrService"
|
|
15
16
|
|
|
16
|
-
function SettingsCmdrService:Init(serviceBag)
|
|
17
|
+
function SettingsCmdrService:Init(serviceBag: _ServiceBag.ServiceBag)
|
|
17
18
|
assert(not self._serviceBag, "Already initialized")
|
|
18
19
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
19
20
|
self._maid = Maid.new()
|
|
@@ -51,9 +52,9 @@ function SettingsCmdrService:_setupCommands()
|
|
|
51
52
|
}, function(_context, players, settingsDefinitions)
|
|
52
53
|
local givenTo = {}
|
|
53
54
|
|
|
54
|
-
for _, player in
|
|
55
|
+
for _, player in players do
|
|
55
56
|
local playerSettings = self._settingService:PromisePlayerSettings(player):Wait()
|
|
56
|
-
for _, settingDefinition in
|
|
57
|
+
for _, settingDefinition in settingsDefinitions do
|
|
57
58
|
playerSettings:RestoreDefault(settingDefinition:GetSettingName(), settingDefinition:GetDefaultValue())
|
|
58
59
|
end
|
|
59
60
|
table.insert(givenTo, PlayerUtils.formatName(player))
|
|
@@ -16,7 +16,7 @@ local PlayerHasSettings = setmetatable({}, BaseObject)
|
|
|
16
16
|
PlayerHasSettings.ClassName = "PlayerHasSettings"
|
|
17
17
|
PlayerHasSettings.__index = PlayerHasSettings
|
|
18
18
|
|
|
19
|
-
function PlayerHasSettings.new(player, serviceBag)
|
|
19
|
+
function PlayerHasSettings.new(player: Player, serviceBag)
|
|
20
20
|
local self = setmetatable(BaseObject.new(player), PlayerHasSettings)
|
|
21
21
|
|
|
22
22
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
@@ -40,7 +40,7 @@ function PlayerHasSettings:_promiseLoadSettings()
|
|
|
40
40
|
|
|
41
41
|
return dataStore:Load("settings", {})
|
|
42
42
|
:Then(function(settings)
|
|
43
|
-
for settingName, value in
|
|
43
|
+
for settingName, value in settings do
|
|
44
44
|
local attributeName = PlayerSettingsUtils.getAttributeName(settingName)
|
|
45
45
|
self._settings:SetAttribute(attributeName, PlayerSettingsUtils.encodeForAttribute(value))
|
|
46
46
|
end
|
|
@@ -75,7 +75,7 @@ end
|
|
|
75
75
|
function PlayerSettings:_setSettingsMap(settingsMap)
|
|
76
76
|
assert(type(settingsMap) == "table", "Bad settingsMap")
|
|
77
77
|
|
|
78
|
-
for settingName, value in
|
|
78
|
+
for settingName, value in settingsMap do
|
|
79
79
|
assert(type(settingName) == "string", "Bad key")
|
|
80
80
|
|
|
81
81
|
-- Avoid even letting these be set.
|
|
@@ -7,18 +7,19 @@
|
|
|
7
7
|
local require = require(script.Parent.loader).load(script)
|
|
8
8
|
|
|
9
9
|
local Maid = require("Maid")
|
|
10
|
+
local _ServiceBag = require("ServiceBag")
|
|
10
11
|
|
|
11
12
|
local SettingsService = {}
|
|
12
13
|
SettingsService.ServiceName = "SettingsService"
|
|
13
14
|
|
|
14
|
-
function SettingsService:Init(serviceBag)
|
|
15
|
+
function SettingsService:Init(serviceBag: _ServiceBag.ServiceBag)
|
|
15
16
|
assert(not self._serviceBag, "Already initialized")
|
|
16
17
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
17
18
|
self._maid = Maid.new()
|
|
18
19
|
|
|
19
20
|
-- External
|
|
20
21
|
self._serviceBag:GetService(require("PlayerDataStoreService"))
|
|
21
|
-
self._serviceBag:GetService(require("SettingsCmdrService"))
|
|
22
|
+
self._serviceBag:GetService((require :: any)("SettingsCmdrService"))
|
|
22
23
|
|
|
23
24
|
-- Internal
|
|
24
25
|
self._settingsDataService = self._serviceBag:GetService(require("SettingsDataService"))
|
|
@@ -18,24 +18,24 @@ function SettingsCmdrUtils.registerSettingDefinition(cmdr, serviceBag)
|
|
|
18
18
|
Transform = function(text)
|
|
19
19
|
local definitions = settingsDataService:GetSettingDefinitions()
|
|
20
20
|
local settingNames = {}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
for _, settingDefinition in definitions do
|
|
22
|
+
table.insert(settingNames, settingDefinition:GetSettingName())
|
|
23
|
+
end
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
local find = cmdr.Util.MakeFuzzyFinder(settingNames)
|
|
26
|
+
return find(text)
|
|
27
27
|
end;
|
|
28
28
|
Validate = function(keys)
|
|
29
|
-
|
|
29
|
+
return #keys > 0, "No item model with that name could be found."
|
|
30
30
|
end,
|
|
31
31
|
Autocomplete = function(keys)
|
|
32
|
-
|
|
32
|
+
return keys
|
|
33
33
|
end,
|
|
34
34
|
Parse = function(keys)
|
|
35
|
-
|
|
35
|
+
local name = keys[1]
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
for _, settingDefinition in
|
|
37
|
+
local definitions = settingsDataService:GetSettingDefinitions()
|
|
38
|
+
for _, settingDefinition in definitions do
|
|
39
39
|
if settingDefinition:GetSettingName() == name then
|
|
40
40
|
return settingDefinition
|
|
41
41
|
end
|
|
@@ -27,6 +27,7 @@ local SettingProperty = require("SettingProperty")
|
|
|
27
27
|
local ServiceBag = require("ServiceBag")
|
|
28
28
|
local DuckTypeUtils = require("DuckTypeUtils")
|
|
29
29
|
local Maid = require("Maid")
|
|
30
|
+
local _ServiceBag = require("ServiceBag")
|
|
30
31
|
|
|
31
32
|
local SettingDefinition = {}
|
|
32
33
|
SettingDefinition.ClassName = "SettingDefinition"
|
|
@@ -59,7 +60,7 @@ end
|
|
|
59
60
|
|
|
60
61
|
@param serviceBag ServiceBag
|
|
61
62
|
]=]
|
|
62
|
-
function SettingDefinition:Init(serviceBag)
|
|
63
|
+
function SettingDefinition:Init(serviceBag: _ServiceBag.ServiceBag)
|
|
63
64
|
assert(serviceBag, "No serviceBag")
|
|
64
65
|
assert(not self._maid, "Already initialized")
|
|
65
66
|
|
|
@@ -76,7 +77,7 @@ end
|
|
|
76
77
|
@param player Player
|
|
77
78
|
@return T
|
|
78
79
|
]=]
|
|
79
|
-
function SettingDefinition:Get(player)
|
|
80
|
+
function SettingDefinition:Get(player: Player)
|
|
80
81
|
assert(typeof(player) == "Instance" and player:IsA("Player") or player == nil, "Bad player")
|
|
81
82
|
assert(self._serviceBag, "Retrieve from serviceBag")
|
|
82
83
|
|
|
@@ -89,7 +90,7 @@ end
|
|
|
89
90
|
@param player Player
|
|
90
91
|
@param value T
|
|
91
92
|
]=]
|
|
92
|
-
function SettingDefinition:Set(player, value)
|
|
93
|
+
function SettingDefinition:Set(player: Player, value)
|
|
93
94
|
assert(typeof(player) == "Instance" and player:IsA("Player") or player == nil, "Bad player")
|
|
94
95
|
assert(self._serviceBag, "Retrieve from serviceBag")
|
|
95
96
|
|
|
@@ -102,7 +103,7 @@ end
|
|
|
102
103
|
@param player Player
|
|
103
104
|
@return Promise<T>
|
|
104
105
|
]=]
|
|
105
|
-
function SettingDefinition:Promise(player)
|
|
106
|
+
function SettingDefinition:Promise(player: Player)
|
|
106
107
|
assert(typeof(player) == "Instance" and player:IsA("Player") or player == nil, "Bad player")
|
|
107
108
|
assert(self._serviceBag, "Retrieve from serviceBag")
|
|
108
109
|
|
|
@@ -116,7 +117,7 @@ end
|
|
|
116
117
|
@param value T
|
|
117
118
|
@return Promise<T>
|
|
118
119
|
]=]
|
|
119
|
-
function SettingDefinition:PromiseSet(player, value)
|
|
120
|
+
function SettingDefinition:PromiseSet(player: Player, value)
|
|
120
121
|
assert(typeof(player) == "Instance" and player:IsA("Player") or player == nil, "Bad player")
|
|
121
122
|
assert(self._serviceBag, "Retrieve from serviceBag")
|
|
122
123
|
|
|
@@ -129,7 +130,7 @@ end
|
|
|
129
130
|
@param player Player
|
|
130
131
|
@return Promise<T>
|
|
131
132
|
]=]
|
|
132
|
-
function SettingDefinition:Observe(player)
|
|
133
|
+
function SettingDefinition:Observe(player: Player)
|
|
133
134
|
assert(typeof(player) == "Instance" and player:IsA("Player") or player == nil, "Bad player")
|
|
134
135
|
assert(self._serviceBag, "Retrieve from serviceBag")
|
|
135
136
|
|
|
@@ -142,7 +143,7 @@ end
|
|
|
142
143
|
@param value any
|
|
143
144
|
@return boolean
|
|
144
145
|
]=]
|
|
145
|
-
function SettingDefinition.isSettingDefinition(value)
|
|
146
|
+
function SettingDefinition.isSettingDefinition(value: any): boolean
|
|
146
147
|
return DuckTypeUtils.isImplementation(SettingDefinition, value)
|
|
147
148
|
end
|
|
148
149
|
|
|
@@ -153,7 +154,7 @@ end
|
|
|
153
154
|
@param player Player
|
|
154
155
|
@return SettingProperty<T>
|
|
155
156
|
]=]
|
|
156
|
-
function SettingDefinition:GetSettingProperty(serviceBag, player)
|
|
157
|
+
function SettingDefinition:GetSettingProperty(serviceBag, player: Player)
|
|
157
158
|
assert(ServiceBag.isServiceBag(serviceBag), "Bad serviceBag")
|
|
158
159
|
assert(typeof(player) == "Instance" and player:IsA("Player") or player == nil, "Bad player")
|
|
159
160
|
|
|
@@ -178,7 +179,7 @@ end
|
|
|
178
179
|
Retrieves the default name of the setting
|
|
179
180
|
@return string
|
|
180
181
|
]=]
|
|
181
|
-
function SettingDefinition:GetSettingName()
|
|
182
|
+
function SettingDefinition:GetSettingName(): string
|
|
182
183
|
return self._settingName
|
|
183
184
|
end
|
|
184
185
|
|
|
@@ -28,6 +28,7 @@ local require = require(script.Parent.loader).load(script)
|
|
|
28
28
|
|
|
29
29
|
local Maid = require("Maid")
|
|
30
30
|
local SettingDefinition = require("SettingDefinition")
|
|
31
|
+
local _ServiceBag = require("ServiceBag")
|
|
31
32
|
|
|
32
33
|
local SettingDefinitionProvider = {}
|
|
33
34
|
SettingDefinitionProvider.ClassName = "SettingDefinitionProvider"
|
|
@@ -72,7 +73,7 @@ function SettingDefinitionProvider.new(settingDefinitions)
|
|
|
72
73
|
self._settingDefinitionList = {}
|
|
73
74
|
self._lookup = {}
|
|
74
75
|
|
|
75
|
-
for key, value in
|
|
76
|
+
for key, value in settingDefinitions do
|
|
76
77
|
if type(key) == "number" then
|
|
77
78
|
assert(SettingDefinition.isSettingDefinition(key), "Bad settingDefinition")
|
|
78
79
|
|
|
@@ -104,7 +105,7 @@ end
|
|
|
104
105
|
|
|
105
106
|
@param serviceBag ServiceBag
|
|
106
107
|
]=]
|
|
107
|
-
function SettingDefinitionProvider:Init(serviceBag)
|
|
108
|
+
function SettingDefinitionProvider:Init(serviceBag: _ServiceBag.ServiceBag)
|
|
108
109
|
assert(serviceBag, "No serviceBag")
|
|
109
110
|
assert(not self._maid, "Already initialized")
|
|
110
111
|
|
|
@@ -114,7 +115,7 @@ function SettingDefinitionProvider:Init(serviceBag)
|
|
|
114
115
|
self._initializedDefinitionLookup = {}
|
|
115
116
|
|
|
116
117
|
-- Register our setting definitions
|
|
117
|
-
for _, settingDefinition in
|
|
118
|
+
for _, settingDefinition in self._settingDefinitionList do
|
|
118
119
|
local initialized = self._serviceBag:GetService(settingDefinition)
|
|
119
120
|
self._initializedDefinitionLookup[settingDefinition] = initialized
|
|
120
121
|
|
|
@@ -139,7 +140,7 @@ function SettingDefinitionProvider:GetSettingDefinitions()
|
|
|
139
140
|
if self._serviceBag then
|
|
140
141
|
local copy = table.clone(self._settingDefinitionList)
|
|
141
142
|
|
|
142
|
-
for key, settingDefinition in
|
|
143
|
+
for key, settingDefinition in copy do
|
|
143
144
|
copy[key] = assert(self._initializedDefinitionLookup[settingDefinition], "Missing settingDefinition")
|
|
144
145
|
end
|
|
145
146
|
|
|
@@ -205,7 +206,7 @@ end
|
|
|
205
206
|
@param settingName string
|
|
206
207
|
@return SettingDefinition
|
|
207
208
|
]=]
|
|
208
|
-
function SettingDefinitionProvider:Get(settingName)
|
|
209
|
+
function SettingDefinitionProvider:Get(settingName: string)
|
|
209
210
|
assert(type(settingName) == "string", "Bad settingName")
|
|
210
211
|
|
|
211
212
|
local found = self._lookup[settingName]
|
|
@@ -15,6 +15,7 @@ local PlayerSettingsInterface = require("PlayerSettingsInterface")
|
|
|
15
15
|
local Rx = require("Rx")
|
|
16
16
|
local RxBrioUtils = require("RxBrioUtils")
|
|
17
17
|
local RxInstanceUtils = require("RxInstanceUtils")
|
|
18
|
+
local _ServiceBag = require("ServiceBag")
|
|
18
19
|
|
|
19
20
|
local SettingsDataService = {}
|
|
20
21
|
|
|
@@ -23,7 +24,7 @@ local SettingsDataService = {}
|
|
|
23
24
|
|
|
24
25
|
@param serviceBag ServiceBag
|
|
25
26
|
]=]
|
|
26
|
-
function SettingsDataService:Init(serviceBag)
|
|
27
|
+
function SettingsDataService:Init(serviceBag: _ServiceBag.ServiceBag)
|
|
27
28
|
assert(not self._serviceBag, "Already initialized")
|
|
28
29
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
29
30
|
self._maid = Maid.new()
|
|
@@ -24,14 +24,12 @@ bridge:RegisterSettingDefinition(volumeDefinition)
|
|
|
24
24
|
local rumbleDefinition = SettingDefinition.new("Rumble", true)
|
|
25
25
|
bridge:RegisterSettingDefinition(rumbleDefinition)
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
local function handlePlayer(player)
|
|
27
|
+
local function handlePlayer(player: Player)
|
|
29
28
|
local volume = volumeDefinition:GetSettingProperty(serviceBag, player)
|
|
30
29
|
|
|
31
|
-
volume:PromiseValue()
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
end)
|
|
30
|
+
volume:PromiseValue():Then(function(value)
|
|
31
|
+
print(value)
|
|
32
|
+
end)
|
|
35
33
|
|
|
36
34
|
-- volume:PromiseSetValue(0.5)
|
|
37
35
|
-- :Then(function()
|
|
@@ -40,7 +38,7 @@ local function handlePlayer(player)
|
|
|
40
38
|
end
|
|
41
39
|
|
|
42
40
|
game.Players.PlayerAdded:Connect(handlePlayer)
|
|
43
|
-
for _, player in
|
|
41
|
+
for _, player in game.Players:GetPlayers() do
|
|
44
42
|
handlePlayer(player)
|
|
45
43
|
end
|
|
46
44
|
|