mirror of
https://github.com/imezx/Warp.git
synced 2026-03-18 00:44:16 +00:00
chore(identifier): few fixes
This commit is contained in:
parent
a34f161cfe
commit
b6fa3cf2d7
4 changed files with 20 additions and 18 deletions
|
|
@ -84,8 +84,8 @@ end
|
|||
|
||||
Client.Destroy = Client.DisconnectAll
|
||||
|
||||
Client.Fire = function(remoteName: string, reliable: boolean, ...: any?)
|
||||
table.insert(reliable and queueEvent or queueUnreliableEvent, {
|
||||
Client.Fire = function(remoteName: string, ...: any?)
|
||||
table.insert(queueEvent, {
|
||||
Replication.get_id(remoteName),
|
||||
{ ... } :: any,
|
||||
})
|
||||
|
|
|
|||
|
|
@ -15,15 +15,15 @@ local warp_identifier_registry = shared.__warp_identifier_registry
|
|||
if RunService:IsServer() then
|
||||
local replication_ready: { Player } = {}
|
||||
local replication_id: number = Identifier.get("id_replication") or 1
|
||||
|
||||
|
||||
if not Identifier.has("id_replication") or not replication_id then
|
||||
replication_id = Identifier.get("id_replication") or 1
|
||||
end
|
||||
|
||||
local function replicateToAll(content: any, id: number?)
|
||||
if #replication_ready == 0 then return end
|
||||
local to_repl: any = type(content) == "string" and { content = id } or content
|
||||
Buffer.writeRepl(writer, to_repl, warp_identifier_registry.counter, identifiers_schema)
|
||||
local to_repl: any = type(content) == "string" and { [content] = id } or content
|
||||
Buffer.writeRepl(writer, to_repl, 1, identifiers_schema)
|
||||
do
|
||||
local buf = Buffer.build(writer)
|
||||
Buffer.reset(writer)
|
||||
|
|
@ -43,17 +43,17 @@ if RunService:IsServer() then
|
|||
end
|
||||
|
||||
Identifier.on_added(replicateToAll)
|
||||
|
||||
|
||||
_repl.OnServerEvent:Connect(function(player: Player)
|
||||
if table.find(replication_ready, player) then return end
|
||||
table.insert(replication_ready, player)
|
||||
replicateTo(player)
|
||||
end)
|
||||
|
||||
|
||||
Replication.remove = function(player: Player)
|
||||
table.remove(replication_ready, table.find(replication_ready, player))
|
||||
end
|
||||
|
||||
|
||||
elseif RunService:IsClient() then
|
||||
_repl.OnClientEvent:Connect(function(b: buffer, id: number)
|
||||
if type(b) ~= "buffer" then
|
||||
|
|
@ -66,7 +66,7 @@ elseif RunService:IsClient() then
|
|||
end
|
||||
end)
|
||||
_repl:FireServer()
|
||||
|
||||
|
||||
Replication.get_id = function(name: string): number
|
||||
return warp_identifier_registry.cache[name]
|
||||
end
|
||||
|
|
|
|||
|
|
@ -95,27 +95,26 @@ end
|
|||
|
||||
Server.Destroy = Server.DisconnectAll
|
||||
|
||||
Server.Fire = function(remoteName: string, reliable: boolean, player: Player, ...: any?)
|
||||
local targetQueue = reliable and queueEvent or queueUnreliableEvent
|
||||
if not targetQueue[player] then
|
||||
targetQueue[player] = {} :: any
|
||||
Server.Fire = function(remoteName: string, player: Player, ...: any?)
|
||||
if not queueEvent[player] then
|
||||
queueEvent[player] = {} :: any
|
||||
end
|
||||
table.insert(targetQueue[player], {
|
||||
table.insert(queueEvent[player], {
|
||||
Identifier.get(remoteName),
|
||||
{ ... } :: any,
|
||||
})
|
||||
end
|
||||
|
||||
Server.Fires = function(remoteName: string, reliable: boolean, ...: any?)
|
||||
Server.Fires = function(remoteName: string, ...: any?)
|
||||
for _, player: Player in players_ready do
|
||||
Server.Fire(remoteName, reliable, player, ...)
|
||||
Server.Fire(remoteName, player, ...)
|
||||
end
|
||||
end
|
||||
|
||||
Server.FireExcept = function(remoteName: string, reliable: boolean, except: { Player }, ...: any?)
|
||||
Server.FireExcept = function(remoteName: string, except: { Player }, ...: any?)
|
||||
for _, player: Player in players_ready do
|
||||
if table.find(except, player) then continue end
|
||||
Server.Fire(remoteName, reliable, player, ...)
|
||||
Server.Fire(remoteName, player, ...)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,9 @@
|
|||
local Remote = {}
|
||||
|
||||
if game.RunService:IsServer() then
|
||||
if not script:FindFirstChild("_repl") then
|
||||
Instance.new("RemoteEvent", script).Name = "_repl"
|
||||
end
|
||||
if not script:FindFirstChild("Event") then
|
||||
Instance.new("RemoteEvent", script).Name = "Event"
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in a new issue