@quenty/cmdrservice 8.2.1 → 8.3.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 +16 -0
- package/package.json +8 -9
- package/src/Client/CmdrServiceClient.lua +2 -21
- package/src/Server/CmdrService.lua +1 -36
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,22 @@
|
|
|
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.3.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/cmdrservice@8.2.1...@quenty/cmdrservice@8.3.0) (2023-12-14)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Remove remoting calls and ensure we cancel promise for cmdr cleanup ([e000671](https://github.com/Quenty/NevermoreEngine/commit/e000671ddfec319a332e6aaa93206cf6e1c361b5))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* ChatProviderService can disable chat ([99d06db](https://github.com/Quenty/NevermoreEngine/commit/99d06db7c7f1a2b16d2cb5ae9c0a26c842f1270b))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
6
22
|
## [8.2.1](https://github.com/Quenty/NevermoreEngine/compare/@quenty/cmdrservice@8.2.0...@quenty/cmdrservice@8.2.1) (2023-10-28)
|
|
7
23
|
|
|
8
24
|
**Note:** Version bump only for package @quenty/cmdrservice
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quenty/cmdrservice",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0",
|
|
4
4
|
"description": "Bridge between cmdr and Nevermore services using servicebag",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Roblox",
|
|
@@ -25,19 +25,18 @@
|
|
|
25
25
|
"Quenty"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@quenty/
|
|
29
|
-
"@quenty/loader": "^7.0.0",
|
|
28
|
+
"@quenty/loader": "^7.1.0",
|
|
30
29
|
"@quenty/maid": "^2.6.0",
|
|
31
|
-
"@quenty/permissionprovider": "^9.
|
|
32
|
-
"@quenty/promise": "^7.
|
|
33
|
-
"@quenty/remoting": "^7.
|
|
34
|
-
"@quenty/servicebag": "^7.
|
|
30
|
+
"@quenty/permissionprovider": "^9.3.0",
|
|
31
|
+
"@quenty/promise": "^7.1.0",
|
|
32
|
+
"@quenty/remoting": "^7.2.0",
|
|
33
|
+
"@quenty/servicebag": "^7.1.0",
|
|
35
34
|
"@quenty/string": "^3.1.0",
|
|
36
|
-
"@quenty/templateprovider": "^8.
|
|
35
|
+
"@quenty/templateprovider": "^8.1.0",
|
|
37
36
|
"@quentystudios/cmdr": "^1.12.0-quenty.0"
|
|
38
37
|
},
|
|
39
38
|
"publishConfig": {
|
|
40
39
|
"access": "public"
|
|
41
40
|
},
|
|
42
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "2c2dbbc0cb2fbb46b4f3270c559c63890fe18b26"
|
|
43
42
|
}
|
|
@@ -16,8 +16,6 @@ local Promise = require("Promise")
|
|
|
16
16
|
local promiseChild = require("promiseChild")
|
|
17
17
|
local PromiseUtils = require("PromiseUtils")
|
|
18
18
|
local String = require("String")
|
|
19
|
-
local ChatProviderServiceClient = require("ChatProviderServiceClient")
|
|
20
|
-
local Remoting = require("Remoting")
|
|
21
19
|
|
|
22
20
|
local CmdrServiceClient = {}
|
|
23
21
|
CmdrServiceClient.ServiceName = "CmdrServiceClient"
|
|
@@ -29,10 +27,9 @@ CmdrServiceClient.ServiceName = "CmdrServiceClient"
|
|
|
29
27
|
function CmdrServiceClient:Init(serviceBag)
|
|
30
28
|
assert(not self._serviceBag, "Already initialized")
|
|
31
29
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
32
|
-
|
|
33
30
|
self._maid = Maid.new()
|
|
31
|
+
|
|
34
32
|
self._permissionServiceClient = self._serviceBag:GetService(PermissionServiceClient)
|
|
35
|
-
self._chatProviderServiceClient = self._serviceBag:GetService(ChatProviderServiceClient)
|
|
36
33
|
|
|
37
34
|
self:PromiseCmdr():Then(function(cmdr)
|
|
38
35
|
cmdr.Registry:RegisterHook("BeforeRun", function(context)
|
|
@@ -81,8 +78,6 @@ end
|
|
|
81
78
|
function CmdrServiceClient:Start()
|
|
82
79
|
assert(self._serviceBag, "Not initialized")
|
|
83
80
|
|
|
84
|
-
self._remoting = self._maid:Add(Remoting.new(ReplicatedStorage, "CmdrService"))
|
|
85
|
-
|
|
86
81
|
self._maid:GivePromise(PromiseUtils.all({
|
|
87
82
|
self:PromiseCmdr(),
|
|
88
83
|
self._maid:GivePromise(self._permissionServiceClient:PromisePermissionProvider())
|
|
@@ -110,20 +105,6 @@ function CmdrServiceClient:_setBindings(cmdr)
|
|
|
110
105
|
end
|
|
111
106
|
end))
|
|
112
107
|
|
|
113
|
-
self._maid:GiveTask(self._remoting.OpenCmdr:Connect(function()
|
|
114
|
-
cmdr:Show()
|
|
115
|
-
end))
|
|
116
|
-
|
|
117
|
-
-- same with chat provider
|
|
118
|
-
self._maid:GiveTask(self._chatProviderServiceClient.MessageIncoming:Connect(function(textChatMessage)
|
|
119
|
-
if not (textChatMessage.TextSource and textChatMessage.TextSource.UserId == Players.LocalPlayer.UserId) then
|
|
120
|
-
return
|
|
121
|
-
end
|
|
122
|
-
|
|
123
|
-
if String.startsWith(textChatMessage.Text, "/cmdr") then
|
|
124
|
-
cmdr:Show()
|
|
125
|
-
end
|
|
126
|
-
end))
|
|
127
108
|
|
|
128
109
|
-- Race condition
|
|
129
110
|
task.defer(function()
|
|
@@ -143,7 +124,7 @@ function CmdrServiceClient:PromiseCmdr()
|
|
|
143
124
|
return self._cmdrPromise
|
|
144
125
|
end
|
|
145
126
|
|
|
146
|
-
self._cmdrPromise = promiseChild(ReplicatedStorage, "CmdrClient")
|
|
127
|
+
self._cmdrPromise = self._maid:GivePromise(promiseChild(ReplicatedStorage, "CmdrClient"))
|
|
147
128
|
:Then(function(cmdClient)
|
|
148
129
|
return Promise.spawn(function(resolve, _reject)
|
|
149
130
|
-- Requiring cmdr can yield
|
|
@@ -9,14 +9,11 @@
|
|
|
9
9
|
local require = require(script.Parent.loader).load(script)
|
|
10
10
|
|
|
11
11
|
local HttpService = game:GetService("HttpService")
|
|
12
|
-
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
|
13
|
-
local Players = game:GetService("Players")
|
|
14
12
|
|
|
15
13
|
local PermissionService = require("PermissionService")
|
|
16
14
|
local CmdrTemplateProviderServer = require("CmdrTemplateProviderServer")
|
|
17
15
|
local Promise = require("Promise")
|
|
18
16
|
local Maid = require("Maid")
|
|
19
|
-
local Remoting = require("Remoting")
|
|
20
17
|
|
|
21
18
|
local CmdrService = {}
|
|
22
19
|
CmdrService.ServiceName = "CmdrService"
|
|
@@ -32,13 +29,6 @@ function CmdrService:Init(serviceBag)
|
|
|
32
29
|
self._maid = Maid.new()
|
|
33
30
|
self._serviceBag = assert(serviceBag, "No serviceBag")
|
|
34
31
|
|
|
35
|
-
-- State
|
|
36
|
-
self._remoting = self._maid:Add(Remoting.new(ReplicatedStorage, "CmdrService"))
|
|
37
|
-
self._remoting:DeclareEvent("OpenCmdr")
|
|
38
|
-
|
|
39
|
-
-- External
|
|
40
|
-
self._chatProviderService = self._serviceBag:GetService(require("ChatProviderService"))
|
|
41
|
-
|
|
42
32
|
-- Internal
|
|
43
33
|
self._cmdrTemplateProviderServer = self._serviceBag:GetService(CmdrTemplateProviderServer)
|
|
44
34
|
|
|
@@ -55,7 +45,7 @@ function CmdrService:Init(serviceBag)
|
|
|
55
45
|
resolve(cmdr)
|
|
56
46
|
end))
|
|
57
47
|
|
|
58
|
-
self._permissionService =
|
|
48
|
+
self._permissionService = self._serviceBag:GetService(PermissionService)
|
|
59
49
|
|
|
60
50
|
self._definitionData = {}
|
|
61
51
|
self._executeData = {}
|
|
@@ -97,10 +87,6 @@ function CmdrService:Init(serviceBag)
|
|
|
97
87
|
GLOBAL_REGISTRY[self._serviceId] = self
|
|
98
88
|
end
|
|
99
89
|
|
|
100
|
-
function CmdrService:Start()
|
|
101
|
-
self:_createActivateChatCommand()
|
|
102
|
-
end
|
|
103
|
-
|
|
104
90
|
--[=[
|
|
105
91
|
Returns cmdr
|
|
106
92
|
@return Promise<Cmdr>
|
|
@@ -158,27 +144,6 @@ function CmdrService:RegisterCommand(commandData, execute)
|
|
|
158
144
|
end)
|
|
159
145
|
end
|
|
160
146
|
|
|
161
|
-
function CmdrService:_createActivateChatCommand()
|
|
162
|
-
local command = Instance.new("TextChatCommand")
|
|
163
|
-
command.Name = "OpenCmdrCommand"
|
|
164
|
-
command.PrimaryAlias = "/cmdr"
|
|
165
|
-
|
|
166
|
-
self._maid:GiveTask(command)
|
|
167
|
-
self._maid:GiveTask(command.Triggered:Connect(function(originTextSource, _unfilteredText)
|
|
168
|
-
local player = Players:GetPlayerByUserId(originTextSource.UserId)
|
|
169
|
-
if not player then
|
|
170
|
-
return
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
self._permissionService:PromiseIsAdmin(player):Then(function(isAdmin)
|
|
174
|
-
if isAdmin then
|
|
175
|
-
self._remoting.OpenCmdr:FireClient(player)
|
|
176
|
-
end
|
|
177
|
-
end)
|
|
178
|
-
end))
|
|
179
|
-
|
|
180
|
-
self._chatProviderService:AddChatCommand(command)
|
|
181
|
-
end
|
|
182
147
|
|
|
183
148
|
|
|
184
149
|
--[=[
|