@quenty/settings 11.22.2 → 11.22.3-canary.542.7609692.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 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.3-canary.542.7609692.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.22.2...@quenty/settings@11.22.3-canary.542.7609692.0) (2025-03-13)
7
+
8
+ **Note:** Version bump only for package @quenty/settings
9
+
10
+
11
+
12
+
13
+
6
14
  ## [11.22.2](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.22.1...@quenty/settings@11.22.2) (2025-03-13)
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.2",
3
+ "version": "11.22.3-canary.542.7609692.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": "^14.16.0",
29
- "@quenty/baseobject": "^10.8.0",
30
- "@quenty/binder": "^14.18.0",
31
- "@quenty/brio": "^14.16.0",
32
- "@quenty/cmdrservice": "^13.21.2",
33
- "@quenty/datastore": "^13.19.0",
34
- "@quenty/ducktype": "^5.8.0",
35
- "@quenty/enumutils": "^3.4.0",
36
- "@quenty/instanceutils": "^13.16.0",
37
- "@quenty/jsonutils": "^10.10.0",
38
- "@quenty/loader": "^10.8.0",
39
- "@quenty/maid": "^3.4.0",
40
- "@quenty/observablecollection": "^12.19.2",
41
- "@quenty/playerbinder": "^14.18.0",
42
- "@quenty/playerutils": "^8.16.0",
43
- "@quenty/remotefunctionutils": "^10.10.0",
44
- "@quenty/remoting": "^12.17.0",
45
- "@quenty/rx": "^13.16.0",
46
- "@quenty/rxbinderutils": "^14.18.0",
47
- "@quenty/rxsignal": "^7.16.0",
48
- "@quenty/servicebag": "^11.11.0",
49
- "@quenty/signal": "^7.10.0",
50
- "@quenty/statestack": "^14.17.0",
51
- "@quenty/string": "^3.3.0",
52
- "@quenty/symbol": "^3.4.0",
53
- "@quenty/table": "^3.7.0",
54
- "@quenty/throttle": "^10.9.0",
55
- "@quenty/tie": "^10.19.0",
56
- "@quenty/valueobject": "^13.16.0"
28
+ "@quenty/attributeutils": "14.16.1-canary.542.7609692.0",
29
+ "@quenty/baseobject": "10.8.0",
30
+ "@quenty/binder": "14.18.1-canary.542.7609692.0",
31
+ "@quenty/brio": "14.16.1-canary.542.7609692.0",
32
+ "@quenty/cmdrservice": "13.21.3-canary.542.7609692.0",
33
+ "@quenty/datastore": "13.19.1-canary.542.7609692.0",
34
+ "@quenty/ducktype": "5.8.1-canary.542.7609692.0",
35
+ "@quenty/enumutils": "3.4.0",
36
+ "@quenty/instanceutils": "13.16.1-canary.542.7609692.0",
37
+ "@quenty/jsonutils": "10.10.1-canary.542.7609692.0",
38
+ "@quenty/loader": "10.8.0",
39
+ "@quenty/maid": "3.4.0",
40
+ "@quenty/observablecollection": "12.19.3-canary.542.7609692.0",
41
+ "@quenty/playerbinder": "14.18.1-canary.542.7609692.0",
42
+ "@quenty/playerutils": "8.16.1-canary.542.7609692.0",
43
+ "@quenty/remotefunctionutils": "10.10.1-canary.542.7609692.0",
44
+ "@quenty/remoting": "12.17.1-canary.542.7609692.0",
45
+ "@quenty/rx": "13.16.1-canary.542.7609692.0",
46
+ "@quenty/rxbinderutils": "14.18.1-canary.542.7609692.0",
47
+ "@quenty/rxsignal": "7.16.1-canary.542.7609692.0",
48
+ "@quenty/servicebag": "11.11.1-canary.542.7609692.0",
49
+ "@quenty/signal": "7.10.0",
50
+ "@quenty/statestack": "14.17.1-canary.542.7609692.0",
51
+ "@quenty/string": "3.3.1-canary.542.7609692.0",
52
+ "@quenty/symbol": "3.4.0",
53
+ "@quenty/table": "3.7.1-canary.542.7609692.0",
54
+ "@quenty/throttle": "10.9.0",
55
+ "@quenty/tie": "10.19.1-canary.542.7609692.0",
56
+ "@quenty/valueobject": "13.16.1-canary.542.7609692.0"
57
57
  },
58
58
  "publishConfig": {
59
59
  "access": "public"
60
60
  },
61
- "gitHead": "454a991b6f45e1db7b8030e216a1a8d6efc34083"
61
+ "gitHead": "76096921c6c965e5c4f9c796f97642d16d628c6b"
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
- function SettingsService:ObservePlayerSettingsBrio(player)
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
- function SettingsService:ObservePlayerSettings(player)
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
- function SettingsService:GetPlayerSettings(player)
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
- function SettingsService:PromisePlayerSettings(player, cancelToken)
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):Pipe({
75
- RxBrioUtils.flatMapBrio(function(playerSettingsInstance)
76
- return PlayerSettingsInterface:ObserveBrio(playerSettingsInstance, self._tieRealmService:GetTieRealm())
77
- end)
78
- }):Subscribe(function(brio)
79
- if brio:IsDead() then
80
- return
81
- end
82
-
83
- local maid, playerSettings = brio:ToMaidAndValue()
84
- maid:GiveTask(self._playerSettingsCacheMap:Set(playerSettings:GetPlayer(), playerSettings))
85
- end))
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 Rx.toPromise(self:ObservePlayerSettings(player):Pipe({
149
- Rx.where(function(playerSettings)
150
- return playerSettings ~= nil
151
- end)
152
- }), cancelToken)
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