diff --git a/Warp.rbxm b/Warp.rbxm index 729019b..42a59e0 100644 Binary files a/Warp.rbxm and b/Warp.rbxm differ diff --git a/docs/api/1.0/server.md b/docs/api/1.0/server.md index b549c00..614d422 100644 --- a/docs/api/1.0/server.md +++ b/docs/api/1.0/server.md @@ -150,6 +150,24 @@ Remote:Fires(true, "Hello World!") ``` ::: +## `:FireExcept` + +Fire the event to all clients but except a players. + +::: code-group +```lua [Variable] +( + reliable: boolean, + except: { Player }, + ...: any +) +``` + +```lua [Example] +Remote:FireExcept(true, { Players.Eternity_Devs, Players.Player2 }, "Hello World!") -- this will sent to all players except { Players.Eternity_Devs, Players.Player2 }. +``` +::: + ## `:Invoke` Semiliar to `:InvokeClient`, its for Invoke to a client. diff --git a/src/Index/Client/Index.luau b/src/Index/Client/Index.luau index ff64856..d0002fd 100644 --- a/src/Index/Client/Index.luau +++ b/src/Index/Client/Index.luau @@ -1,4 +1,5 @@ --!strict +--!native local Client = {} Client.__index = Client diff --git a/src/Index/Server/Index.luau b/src/Index/Server/Index.luau index 9554e64..cbe6171 100644 --- a/src/Index/Server/Index.luau +++ b/src/Index/Server/Index.luau @@ -1,4 +1,5 @@ --!strict +--!native local Server = {} Server.__index = Server @@ -29,6 +30,13 @@ function Server:Fires(reliable: boolean, ...: any) end end +function Server:FireExcept(reliable: boolean, except: { Player }, ...: any) + for _, player: Player in ipairs(Players:GetPlayers()) do + if table.find(except, player) then continue end + ServerProcess.insertQueue(self.id, reliable, player, ...) + end +end + function Server:Invoke(timeout: number, player: Player, ...: any): any return ServerProcess.insertRequest(self.id, timeout, player, ...) end diff --git a/src/Index/Server/ServerProcess.luau b/src/Index/Server/ServerProcess.luau index 8b430fd..599dba1 100644 --- a/src/Index/Server/ServerProcess.luau +++ b/src/Index/Server/ServerProcess.luau @@ -55,7 +55,8 @@ local function initializeEachPlayer(player: Player) if not queueOut[player] then queueOut[player] = {} end - for Identifier: string,_ in serverQueue do + for Identifier: string in serverQueue do + if not player then break end if not queueOut[player][Identifier] then queueOut[player][Identifier] = {} end diff --git a/src/init.luau b/src/init.luau index 020e5c9..23eae2f 100644 --- a/src/init.luau +++ b/src/init.luau @@ -1,5 +1,5 @@ -- Warp Library (@Eternity_Devs) --- version 1.0.5 +-- version 1.0.6 --!strict --!native local Index = require(script.Index)