@quenty/settings 11.22.3 → 11.22.4
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
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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.22.4](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.22.3...@quenty/settings@11.22.4) (2025-03-21)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @quenty/settings
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [11.22.3](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.22.2...@quenty/settings@11.22.3) (2025-03-20)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @quenty/settings
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/settings",
|
|
3
|
-
"version": "11.22.
|
|
3
|
+
"version": "11.22.4",
|
|
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": "^14.16.
|
|
28
|
+
"@quenty/attributeutils": "^14.16.1",
|
|
29
29
|
"@quenty/baseobject": "^10.8.0",
|
|
30
|
-
"@quenty/binder": "^14.18.
|
|
31
|
-
"@quenty/brio": "^14.16.
|
|
32
|
-
"@quenty/cmdrservice": "^13.21.
|
|
33
|
-
"@quenty/datastore": "^13.19.
|
|
34
|
-
"@quenty/ducktype": "^5.8.
|
|
30
|
+
"@quenty/binder": "^14.18.1",
|
|
31
|
+
"@quenty/brio": "^14.16.1",
|
|
32
|
+
"@quenty/cmdrservice": "^13.21.3",
|
|
33
|
+
"@quenty/datastore": "^13.19.2",
|
|
34
|
+
"@quenty/ducktype": "^5.8.1",
|
|
35
35
|
"@quenty/enumutils": "^3.4.0",
|
|
36
|
-
"@quenty/instanceutils": "^13.16.
|
|
37
|
-
"@quenty/jsonutils": "^10.10.
|
|
36
|
+
"@quenty/instanceutils": "^13.16.1",
|
|
37
|
+
"@quenty/jsonutils": "^10.10.1",
|
|
38
38
|
"@quenty/loader": "^10.8.0",
|
|
39
39
|
"@quenty/maid": "^3.4.0",
|
|
40
|
-
"@quenty/observablecollection": "^12.19.
|
|
41
|
-
"@quenty/playerbinder": "^14.18.
|
|
42
|
-
"@quenty/playerutils": "^8.16.
|
|
43
|
-
"@quenty/remotefunctionutils": "^10.10.
|
|
44
|
-
"@quenty/remoting": "^12.17.
|
|
45
|
-
"@quenty/rx": "^13.16.
|
|
46
|
-
"@quenty/rxbinderutils": "^14.18.
|
|
47
|
-
"@quenty/rxsignal": "^7.16.
|
|
48
|
-
"@quenty/servicebag": "^11.11.
|
|
40
|
+
"@quenty/observablecollection": "^12.19.3",
|
|
41
|
+
"@quenty/playerbinder": "^14.18.1",
|
|
42
|
+
"@quenty/playerutils": "^8.16.1",
|
|
43
|
+
"@quenty/remotefunctionutils": "^10.10.1",
|
|
44
|
+
"@quenty/remoting": "^12.17.1",
|
|
45
|
+
"@quenty/rx": "^13.16.1",
|
|
46
|
+
"@quenty/rxbinderutils": "^14.18.1",
|
|
47
|
+
"@quenty/rxsignal": "^7.16.1",
|
|
48
|
+
"@quenty/servicebag": "^11.11.1",
|
|
49
49
|
"@quenty/signal": "^7.10.0",
|
|
50
|
-
"@quenty/statestack": "^14.17.
|
|
51
|
-
"@quenty/string": "^3.3.
|
|
50
|
+
"@quenty/statestack": "^14.17.1",
|
|
51
|
+
"@quenty/string": "^3.3.1",
|
|
52
52
|
"@quenty/symbol": "^3.4.0",
|
|
53
|
-
"@quenty/table": "^3.7.
|
|
53
|
+
"@quenty/table": "^3.7.1",
|
|
54
54
|
"@quenty/throttle": "^10.9.0",
|
|
55
|
-
"@quenty/tie": "^10.19.
|
|
56
|
-
"@quenty/valueobject": "^13.16.
|
|
55
|
+
"@quenty/tie": "^10.19.1",
|
|
56
|
+
"@quenty/valueobject": "^13.16.1"
|
|
57
57
|
},
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"access": "public"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "6b7c3e15e60cdb185986207b574e2b5591261e7a"
|
|
62
62
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
--[=[
|
|
2
|
+
Provides commands involving player settings
|
|
3
|
+
|
|
2
4
|
@class SettingsCmdrService
|
|
3
5
|
]=]
|
|
4
6
|
|
|
@@ -30,22 +32,22 @@ function SettingsCmdrService:_setupCommands()
|
|
|
30
32
|
end)
|
|
31
33
|
|
|
32
34
|
self._cmdrService:RegisterCommand({
|
|
33
|
-
Name = "restore-setting"
|
|
34
|
-
Aliases = {
|
|
35
|
-
Description = "Restores the player setting to default."
|
|
36
|
-
Group = "Settings"
|
|
35
|
+
Name = "restore-setting",
|
|
36
|
+
Aliases = {},
|
|
37
|
+
Description = "Restores the player setting to default.",
|
|
38
|
+
Group = "Settings",
|
|
37
39
|
Args = {
|
|
38
40
|
{
|
|
39
|
-
Name = "Players"
|
|
40
|
-
Type = "players"
|
|
41
|
-
Description = "Players to restore the default settings to."
|
|
41
|
+
Name = "Players",
|
|
42
|
+
Type = "players",
|
|
43
|
+
Description = "Players to restore the default settings to.",
|
|
42
44
|
},
|
|
43
45
|
{
|
|
44
|
-
Name = "Settings"
|
|
45
|
-
Type = "settingDefinitions"
|
|
46
|
-
Description = "Settings to restore."
|
|
47
|
-
}
|
|
48
|
-
}
|
|
46
|
+
Name = "Settings",
|
|
47
|
+
Type = "settingDefinitions",
|
|
48
|
+
Description = "Settings to restore.",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
49
51
|
}, function(_context, players, settingsDefinitions)
|
|
50
52
|
local givenTo = {}
|
|
51
53
|
|
|
@@ -65,5 +67,4 @@ function SettingsCmdrService:Destroy()
|
|
|
65
67
|
self._maid:DoCleaning()
|
|
66
68
|
end
|
|
67
69
|
|
|
68
|
-
|
|
69
|
-
return SettingsCmdrService
|
|
70
|
+
return SettingsCmdrService
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
--[=[
|
|
2
|
+
Provides a service for managing centralized player settings. See [SettingsDataService] for the data service.
|
|
3
|
+
|
|
2
4
|
@class SettingsService
|
|
3
5
|
]=]
|
|
4
6
|
|
|
@@ -26,32 +28,60 @@ function SettingsService:Init(serviceBag)
|
|
|
26
28
|
self._serviceBag:GetService(require("PlayerSettings"))
|
|
27
29
|
end
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
--[=[
|
|
32
|
+
Observes the settings for a player using Brio.
|
|
33
|
+
|
|
34
|
+
@param player Player
|
|
35
|
+
@return Observable<Brio<PlayerSettings>>
|
|
36
|
+
]=]
|
|
37
|
+
function SettingsService:ObservePlayerSettingsBrio(player: Player)
|
|
30
38
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
31
39
|
|
|
32
40
|
return self._settingsDataService:ObservePlayerSettingsBrio(player)
|
|
33
41
|
end
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
--[=[
|
|
44
|
+
Observes the settings for a player.
|
|
45
|
+
|
|
46
|
+
@param player Player
|
|
47
|
+
@return Observable<PlayerSettings>
|
|
48
|
+
]=]
|
|
49
|
+
function SettingsService:ObservePlayerSettings(player: Player)
|
|
36
50
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
37
51
|
|
|
38
52
|
return self._settingsDataService:ObservePlayerSettings(player)
|
|
39
53
|
end
|
|
40
54
|
|
|
41
|
-
|
|
55
|
+
--[=[
|
|
56
|
+
Obtains the settings for a player.
|
|
57
|
+
|
|
58
|
+
@param player Player
|
|
59
|
+
@return PlayerSettings
|
|
60
|
+
]=]
|
|
61
|
+
function SettingsService:GetPlayerSettings(player: Player)
|
|
42
62
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
43
63
|
|
|
44
64
|
return self._settingsDataService:GetPlayerSettings(player)
|
|
45
65
|
end
|
|
46
66
|
|
|
47
|
-
|
|
67
|
+
--[=[
|
|
68
|
+
Promises the settings for a player.
|
|
69
|
+
|
|
70
|
+
@param player Player
|
|
71
|
+
@param cancelToken CancelToken?
|
|
72
|
+
@return Promise<PlayerSettings>
|
|
73
|
+
]=]
|
|
74
|
+
function SettingsService:PromisePlayerSettings(player: Player, cancelToken)
|
|
48
75
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
49
76
|
|
|
50
77
|
return self._settingsDataService:PromisePlayerSettings(player, cancelToken)
|
|
51
78
|
end
|
|
52
79
|
|
|
80
|
+
--[=[
|
|
81
|
+
Cleans up the settings service
|
|
82
|
+
]=]
|
|
53
83
|
function SettingsService:Destroy()
|
|
54
84
|
self._maid:DoCleaning()
|
|
55
85
|
end
|
|
56
86
|
|
|
57
|
-
return SettingsService
|
|
87
|
+
return SettingsService
|
|
@@ -44,14 +44,14 @@ function SettingsDataService:_getPlayerSettingsCacheMap()
|
|
|
44
44
|
self._playerSettingsCacheMap = self._maid:Add(ObservableMap.new())
|
|
45
45
|
self._hydratedPlayersMaid = self._maid:Add(Maid.new())
|
|
46
46
|
|
|
47
|
-
self._maid:GiveTask(Players.PlayerRemoving:Connect(function(player)
|
|
47
|
+
self._maid:GiveTask(Players.PlayerRemoving:Connect(function(player: Player)
|
|
48
48
|
self._hydratedPlayersMaid[player] = nil
|
|
49
49
|
end))
|
|
50
50
|
|
|
51
51
|
return self._playerSettingsCacheMap
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
function SettingsDataService:_getPlayerSettingsMapForPlayer(player)
|
|
54
|
+
function SettingsDataService:_getPlayerSettingsMapForPlayer(player: Player)
|
|
55
55
|
local playerSettingsCacheMap = self:_getPlayerSettingsCacheMap()
|
|
56
56
|
|
|
57
57
|
if self._hydratedPlayersMaid[player] then
|
|
@@ -65,28 +65,35 @@ function SettingsDataService:_getPlayerSettingsMapForPlayer(player)
|
|
|
65
65
|
return playerSettingsCacheMap
|
|
66
66
|
end
|
|
67
67
|
|
|
68
|
-
function SettingsDataService:_hydrateCacheForPlayer(player)
|
|
68
|
+
function SettingsDataService:_hydrateCacheForPlayer(player: Player)
|
|
69
69
|
local playerMaid = Maid.new()
|
|
70
70
|
|
|
71
71
|
playerMaid:GiveTask(RxInstanceUtils.observeChildrenBrio(player, function(value)
|
|
72
72
|
-- We really only care about this, and we can assume we have the tag immediately
|
|
73
73
|
return value:HasTag("PlayerSettings")
|
|
74
|
-
end)
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
74
|
+
end)
|
|
75
|
+
:Pipe({
|
|
76
|
+
RxBrioUtils.flatMapBrio(function(playerSettingsInstance)
|
|
77
|
+
return PlayerSettingsInterface:ObserveBrio(playerSettingsInstance, self._tieRealmService:GetTieRealm())
|
|
78
|
+
end),
|
|
79
|
+
})
|
|
80
|
+
:Subscribe(function(brio)
|
|
81
|
+
if brio:IsDead() then
|
|
82
|
+
return
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
local maid, playerSettings = brio:ToMaidAndValue()
|
|
86
|
+
maid:GiveTask(self._playerSettingsCacheMap:Set(playerSettings:GetPlayer(), playerSettings))
|
|
87
|
+
end))
|
|
86
88
|
|
|
87
89
|
return playerMaid
|
|
88
90
|
end
|
|
89
91
|
|
|
92
|
+
--[=[
|
|
93
|
+
Gets the setting definitions
|
|
94
|
+
|
|
95
|
+
@return { SettingDefinition }
|
|
96
|
+
]=]
|
|
90
97
|
function SettingsDataService:GetSettingDefinitions()
|
|
91
98
|
return self._settingDefinitions:GetList()
|
|
92
99
|
end
|
|
@@ -112,7 +119,6 @@ function SettingsDataService:ObserveRegisteredDefinitionsBrio()
|
|
|
112
119
|
return self._settingDefinitions:ObserveItemsBrio()
|
|
113
120
|
end
|
|
114
121
|
|
|
115
|
-
|
|
116
122
|
--[=[
|
|
117
123
|
Observes the player's settings
|
|
118
124
|
|
|
@@ -131,7 +137,7 @@ end
|
|
|
131
137
|
@param player Player
|
|
132
138
|
@return Observable<Brio<PlayerSettingsClient>>
|
|
133
139
|
]=]
|
|
134
|
-
function SettingsDataService:ObservePlayerSettingsBrio(player)
|
|
140
|
+
function SettingsDataService:ObservePlayerSettingsBrio(player: Player)
|
|
135
141
|
return self:_getPlayerSettingsMapForPlayer(player):ObserveAtKeyBrio(player, self._tieRealmService:GetTieRealm())
|
|
136
142
|
end
|
|
137
143
|
|
|
@@ -142,14 +148,17 @@ end
|
|
|
142
148
|
@param cancelToken CancelToken
|
|
143
149
|
@return Promise<PlayerSettingsBase>
|
|
144
150
|
]=]
|
|
145
|
-
function SettingsDataService:PromisePlayerSettings(player, cancelToken)
|
|
151
|
+
function SettingsDataService:PromisePlayerSettings(player: Player, cancelToken)
|
|
146
152
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
147
153
|
|
|
148
|
-
return
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
154
|
+
return Rx.toPromise(
|
|
155
|
+
self:ObservePlayerSettings(player):Pipe({
|
|
156
|
+
Rx.where(function(playerSettings)
|
|
157
|
+
return playerSettings ~= nil
|
|
158
|
+
end),
|
|
159
|
+
}),
|
|
160
|
+
cancelToken
|
|
161
|
+
)
|
|
153
162
|
end
|
|
154
163
|
|
|
155
164
|
--[=[
|
|
@@ -158,7 +167,7 @@ end
|
|
|
158
167
|
@param player Player
|
|
159
168
|
@return Promise<PlayerSettingsBase>
|
|
160
169
|
]=]
|
|
161
|
-
function SettingsDataService:GetPlayerSettings(player)
|
|
170
|
+
function SettingsDataService:GetPlayerSettings(player: Player)
|
|
162
171
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
163
172
|
|
|
164
173
|
return self:_getPlayerSettingsMapForPlayer(player):Get(player)
|
|
@@ -171,4 +180,4 @@ function SettingsDataService:Destroy()
|
|
|
171
180
|
self._maid:DoCleaning()
|
|
172
181
|
end
|
|
173
182
|
|
|
174
|
-
return SettingsDataService
|
|
183
|
+
return SettingsDataService
|