@quenty/settings 11.23.0 → 11.23.1-canary.545.2374fb2.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,17 @@
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.1-canary.545.2374fb2.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.23.0...@quenty/settings@11.23.1-canary.545.2374fb2.0) (2025-04-05)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Add types to packages ([2374fb2](https://github.com/Quenty/NevermoreEngine/commit/2374fb2b043cfbe0e9b507b3316eec46a4e353a0))
12
+
13
+
14
+
15
+
16
+
6
17
  # [11.23.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/settings@11.22.5...@quenty/settings@11.23.0) (2025-04-02)
7
18
 
8
19
  **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.23.0",
3
+ "version": "11.23.1-canary.545.2374fb2.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.17.0",
29
- "@quenty/baseobject": "^10.8.0",
30
- "@quenty/binder": "^14.19.0",
31
- "@quenty/brio": "^14.17.0",
32
- "@quenty/cmdrservice": "^13.22.0",
33
- "@quenty/datastore": "^13.20.0",
34
- "@quenty/ducktype": "^5.8.1",
35
- "@quenty/enumutils": "^3.4.0",
36
- "@quenty/instanceutils": "^13.17.0",
37
- "@quenty/jsonutils": "^10.10.1",
38
- "@quenty/loader": "^10.8.0",
39
- "@quenty/maid": "^3.4.0",
40
- "@quenty/observablecollection": "^12.20.0",
41
- "@quenty/playerbinder": "^14.19.0",
42
- "@quenty/playerutils": "^8.17.0",
43
- "@quenty/remotefunctionutils": "^10.10.1",
44
- "@quenty/remoting": "^12.18.0",
45
- "@quenty/rx": "^13.17.0",
46
- "@quenty/rxbinderutils": "^14.19.0",
47
- "@quenty/rxsignal": "^7.17.0",
48
- "@quenty/servicebag": "^11.11.1",
49
- "@quenty/signal": "^7.10.0",
50
- "@quenty/statestack": "^14.18.0",
51
- "@quenty/string": "^3.3.1",
52
- "@quenty/symbol": "^3.4.0",
53
- "@quenty/table": "^3.7.1",
54
- "@quenty/throttle": "^10.9.0",
55
- "@quenty/tie": "^10.20.0",
56
- "@quenty/valueobject": "^13.17.0"
28
+ "@quenty/attributeutils": "14.17.1-canary.545.2374fb2.0",
29
+ "@quenty/baseobject": "10.8.1-canary.545.2374fb2.0",
30
+ "@quenty/binder": "14.19.1-canary.545.2374fb2.0",
31
+ "@quenty/brio": "14.17.1-canary.545.2374fb2.0",
32
+ "@quenty/cmdrservice": "13.22.1-canary.545.2374fb2.0",
33
+ "@quenty/datastore": "13.20.1-canary.545.2374fb2.0",
34
+ "@quenty/ducktype": "5.8.2-canary.545.2374fb2.0",
35
+ "@quenty/enumutils": "3.4.1-canary.545.2374fb2.0",
36
+ "@quenty/instanceutils": "13.17.1-canary.545.2374fb2.0",
37
+ "@quenty/jsonutils": "10.10.2-canary.545.2374fb2.0",
38
+ "@quenty/loader": "10.8.1-canary.545.2374fb2.0",
39
+ "@quenty/maid": "3.4.1-canary.545.2374fb2.0",
40
+ "@quenty/observablecollection": "12.20.1-canary.545.2374fb2.0",
41
+ "@quenty/playerbinder": "14.19.1-canary.545.2374fb2.0",
42
+ "@quenty/playerutils": "8.17.1-canary.545.2374fb2.0",
43
+ "@quenty/remotefunctionutils": "10.10.2-canary.545.2374fb2.0",
44
+ "@quenty/remoting": "12.18.1-canary.545.2374fb2.0",
45
+ "@quenty/rx": "13.17.1-canary.545.2374fb2.0",
46
+ "@quenty/rxbinderutils": "14.19.1-canary.545.2374fb2.0",
47
+ "@quenty/rxsignal": "7.17.1-canary.545.2374fb2.0",
48
+ "@quenty/servicebag": "11.11.2-canary.545.2374fb2.0",
49
+ "@quenty/signal": "7.10.1-canary.545.2374fb2.0",
50
+ "@quenty/statestack": "14.18.1-canary.545.2374fb2.0",
51
+ "@quenty/string": "3.3.2-canary.545.2374fb2.0",
52
+ "@quenty/symbol": "3.4.1-canary.545.2374fb2.0",
53
+ "@quenty/table": "3.7.2-canary.545.2374fb2.0",
54
+ "@quenty/throttle": "10.9.1-canary.545.2374fb2.0",
55
+ "@quenty/tie": "10.20.1-canary.545.2374fb2.0",
56
+ "@quenty/valueobject": "13.17.1-canary.545.2374fb2.0"
57
57
  },
58
58
  "publishConfig": {
59
59
  "access": "public"
60
60
  },
61
- "gitHead": "e8ea56930e65322fcffc05a1556d5df988068f0b"
61
+ "gitHead": "2374fb2b043cfbe0e9b507b3316eec46a4e353a0"
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 pairs(self._toReplicateCallbacks[settingName]) do
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 pairs(players) do
55
+ for _, player in players do
55
56
  local playerSettings = self._settingService:PromisePlayerSettings(player):Wait()
56
- for _, settingDefinition in pairs(settingsDefinitions) do
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 pairs(settings) do
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 pairs(settingsMap) do
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
- for _, settingDefinition in pairs(definitions) do
22
- table.insert(settingNames, settingDefinition:GetSettingName())
23
- end
21
+ for _, settingDefinition in definitions do
22
+ table.insert(settingNames, settingDefinition:GetSettingName())
23
+ end
24
24
 
25
- local find = cmdr.Util.MakeFuzzyFinder(settingNames)
26
- return find(text)
25
+ local find = cmdr.Util.MakeFuzzyFinder(settingNames)
26
+ return find(text)
27
27
  end;
28
28
  Validate = function(keys)
29
- return #keys > 0, "No item model with that name could be found."
29
+ return #keys > 0, "No item model with that name could be found."
30
30
  end,
31
31
  Autocomplete = function(keys)
32
- return keys
32
+ return keys
33
33
  end,
34
34
  Parse = function(keys)
35
- local name = keys[1]
35
+ local name = keys[1]
36
36
 
37
- local definitions = settingsDataService:GetSettingDefinitions()
38
- for _, settingDefinition in pairs(definitions) do
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 pairs(settingDefinitions) do
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 pairs(self._settingDefinitionList) do
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 pairs(copy) do
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
- :Then(function(value)
33
- print(value)
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 pairs(game.Players:GetPlayers()) do
41
+ for _, player in game.Players:GetPlayers() do
44
42
  handlePlayer(player)
45
43
  end
46
44