chore(identifier): few fixes

This commit is contained in:
khtsly 2026-02-16 14:41:45 +07:00
parent a34f161cfe
commit b6fa3cf2d7
4 changed files with 20 additions and 18 deletions

View file

@ -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,
})

View file

@ -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

View file

@ -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

View file

@ -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