@quenty/playerutils 8.17.0 → 8.17.1
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 +11 -0
- package/package.json +8 -8
- package/src/Shared/PlayerUtils.lua +11 -11
- package/src/Shared/RxPlayerUtils.lua +14 -11
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
|
+
## [8.17.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/playerutils@8.17.0...@quenty/playerutils@8.17.1) (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
|
# [8.17.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/playerutils@8.16.2...@quenty/playerutils@8.17.0) (2025-04-02)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @quenty/playerutils
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/playerutils",
|
|
3
|
-
"version": "8.17.
|
|
3
|
+
"version": "8.17.1",
|
|
4
4
|
"description": "Player utility functions",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -28,12 +28,12 @@
|
|
|
28
28
|
"access": "public"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@quenty/brio": "^14.17.
|
|
32
|
-
"@quenty/instanceutils": "^13.17.
|
|
33
|
-
"@quenty/loader": "^10.8.
|
|
34
|
-
"@quenty/maid": "^3.4.
|
|
35
|
-
"@quenty/promise": "^10.10.
|
|
36
|
-
"@quenty/rx": "^13.17.
|
|
31
|
+
"@quenty/brio": "^14.17.1",
|
|
32
|
+
"@quenty/instanceutils": "^13.17.1",
|
|
33
|
+
"@quenty/loader": "^10.8.1",
|
|
34
|
+
"@quenty/maid": "^3.4.1",
|
|
35
|
+
"@quenty/promise": "^10.10.2",
|
|
36
|
+
"@quenty/rx": "^13.17.1"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "78c3ac0ab08dd18085b6e6e6e4f745e76ed99f68"
|
|
39
39
|
}
|
|
@@ -86,15 +86,15 @@ function PlayerUtils.addVerifiedBadgeToName(name: string): string
|
|
|
86
86
|
return string.format("%s %s", name, utf8.char(0xE000))
|
|
87
87
|
end
|
|
88
88
|
|
|
89
|
-
local NAME_COLORS = {
|
|
90
|
-
BrickColor.new("Bright red").Color,
|
|
91
|
-
BrickColor.new("Bright blue").Color,
|
|
92
|
-
BrickColor.new("Earth green").Color,
|
|
93
|
-
BrickColor.new("Bright violet").Color,
|
|
94
|
-
BrickColor.new("Bright orange").Color,
|
|
95
|
-
BrickColor.new("Bright yellow").Color,
|
|
96
|
-
BrickColor.new("Light reddish violet").Color,
|
|
97
|
-
BrickColor.new("Brick yellow").Color,
|
|
89
|
+
local NAME_COLORS: { Color3 } = {
|
|
90
|
+
(BrickColor :: any).new("Bright red").Color,
|
|
91
|
+
(BrickColor :: any).new("Bright blue").Color,
|
|
92
|
+
(BrickColor :: any).new("Earth green").Color,
|
|
93
|
+
(BrickColor :: any).new("Bright violet").Color,
|
|
94
|
+
(BrickColor :: any).new("Bright orange").Color,
|
|
95
|
+
(BrickColor :: any).new("Bright yellow").Color,
|
|
96
|
+
(BrickColor :: any).new("Light reddish violet").Color,
|
|
97
|
+
(BrickColor :: any).new("Brick yellow").Color,
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
local function hashName(playerName: string): number
|
|
@@ -129,7 +129,7 @@ end
|
|
|
129
129
|
@param player Player
|
|
130
130
|
@return Promise<Model>
|
|
131
131
|
]=]
|
|
132
|
-
function PlayerUtils.promiseLoadCharacter(player: Player)
|
|
132
|
+
function PlayerUtils.promiseLoadCharacter(player: Player): Promise.Promise<Model>
|
|
133
133
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
134
134
|
|
|
135
135
|
return Promise.spawn(function(resolve, reject)
|
|
@@ -154,7 +154,7 @@ end
|
|
|
154
154
|
function PlayerUtils.promiseLoadCharacterWithHumanoidDescription(
|
|
155
155
|
player: Player,
|
|
156
156
|
humanoidDescription: HumanoidDescription
|
|
157
|
-
)
|
|
157
|
+
): Promise.Promise<Model>
|
|
158
158
|
assert(typeof(player) == "Instance" and player:IsA("Player"), "Bad player")
|
|
159
159
|
assert(
|
|
160
160
|
typeof(humanoidDescription) == "Instance" and humanoidDescription:IsA("HumanoidDescription"),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
--!strict
|
|
1
2
|
--[=[
|
|
2
3
|
Utilities for observing players
|
|
3
4
|
@class RxPlayerUtils
|
|
@@ -11,21 +12,23 @@ local Brio = require("Brio")
|
|
|
11
12
|
local Maid = require("Maid")
|
|
12
13
|
local Observable = require("Observable")
|
|
13
14
|
local RxInstanceUtils = require("RxInstanceUtils")
|
|
15
|
+
local _Rx = require("Rx")
|
|
16
|
+
local _Observable = require("Observable")
|
|
14
17
|
|
|
15
18
|
local RxPlayerUtils = {}
|
|
16
19
|
|
|
17
20
|
--[=[
|
|
18
21
|
Observe players for the lifetime they exist
|
|
19
|
-
@param predicate (Player) -> boolean
|
|
22
|
+
@param predicate ((Player) -> boolean)?
|
|
20
23
|
@return Observable<Brio<Player>>
|
|
21
24
|
]=]
|
|
22
|
-
function RxPlayerUtils.observePlayersBrio(predicate)
|
|
25
|
+
function RxPlayerUtils.observePlayersBrio(predicate: _Rx.Predicate<Player>?): _Observable.Observable<Brio.Brio<Player>>
|
|
23
26
|
assert(type(predicate) == "function" or predicate == nil, "Bad predicate!")
|
|
24
27
|
|
|
25
28
|
return Observable.new(function(sub)
|
|
26
29
|
local maid = Maid.new()
|
|
27
30
|
|
|
28
|
-
local function handlePlayer(player)
|
|
31
|
+
local function handlePlayer(player: Player)
|
|
29
32
|
if predicate == nil or predicate(player) then
|
|
30
33
|
local brio = Brio.new(player)
|
|
31
34
|
maid[player] = brio
|
|
@@ -47,7 +50,7 @@ function RxPlayerUtils.observePlayersBrio(predicate)
|
|
|
47
50
|
end
|
|
48
51
|
|
|
49
52
|
return maid
|
|
50
|
-
end)
|
|
53
|
+
end) :: any
|
|
51
54
|
end
|
|
52
55
|
|
|
53
56
|
--[=[
|
|
@@ -55,7 +58,7 @@ end
|
|
|
55
58
|
|
|
56
59
|
@return Observable<Brio<Player>>
|
|
57
60
|
]=]
|
|
58
|
-
function RxPlayerUtils.observeLocalPlayerBrio()
|
|
61
|
+
function RxPlayerUtils.observeLocalPlayerBrio(): _Observable.Observable<Brio.Brio<Player>>
|
|
59
62
|
return RxInstanceUtils.observePropertyBrio(Players, "LocalPlayer", function(value)
|
|
60
63
|
return value ~= nil
|
|
61
64
|
end)
|
|
@@ -63,16 +66,16 @@ end
|
|
|
63
66
|
|
|
64
67
|
--[=[
|
|
65
68
|
Observe players as they're added, and as they are.
|
|
66
|
-
@param predicate (Player) -> boolean
|
|
69
|
+
@param predicate ((Player) -> boolean)?
|
|
67
70
|
@return Observable<Player>
|
|
68
71
|
]=]
|
|
69
|
-
function RxPlayerUtils.observePlayers(predicate)
|
|
72
|
+
function RxPlayerUtils.observePlayers(predicate: _Rx.Predicate<Player>?): _Observable.Observable<Player>
|
|
70
73
|
assert(type(predicate) == "function" or predicate == nil, "Bad predicate")
|
|
71
74
|
|
|
72
75
|
return Observable.new(function(sub)
|
|
73
76
|
local maid = Maid.new()
|
|
74
77
|
|
|
75
|
-
local function handlePlayer(player)
|
|
78
|
+
local function handlePlayer(player: Player)
|
|
76
79
|
if predicate == nil or predicate(player) then
|
|
77
80
|
sub:Fire(player)
|
|
78
81
|
end
|
|
@@ -87,16 +90,16 @@ function RxPlayerUtils.observePlayers(predicate)
|
|
|
87
90
|
end
|
|
88
91
|
|
|
89
92
|
return maid
|
|
90
|
-
end)
|
|
93
|
+
end) :: any
|
|
91
94
|
end
|
|
92
95
|
|
|
93
96
|
--[=[
|
|
94
97
|
Observes the first time the character appearance is loaded
|
|
95
98
|
|
|
96
99
|
@param player Player
|
|
97
|
-
@return Observable<
|
|
100
|
+
@return Observable<()>
|
|
98
101
|
]=]
|
|
99
|
-
function RxPlayerUtils.observeFirstAppearanceLoaded(player)
|
|
102
|
+
function RxPlayerUtils.observeFirstAppearanceLoaded(player: Player): _Observable.Observable<()>
|
|
100
103
|
assert(typeof(player) == "Instance", "Bad player")
|
|
101
104
|
|
|
102
105
|
return Observable.new(function(sub)
|