diff --git a/dev/client/clientTests.client.luau b/dev/client/clientTests.client.luau index 39ecbd0..160a666 100644 --- a/dev/client/clientTests.client.luau +++ b/dev/client/clientTests.client.luau @@ -12,6 +12,8 @@ packets.myPacket.onClientReceived:connect(function(data) print(data) end) -RunService.Heartbeat:Connect(function() - packets.myPacket.sendToServer("ez") -end) +-- RunService.Heartbeat:Connect(function() +-- packets.myPacket.sendToServer("ez") +-- end) + +packets.helloCommand() diff --git a/dev/server/serverTests.server.luau b/dev/server/serverTests.server.luau index 953e699..9c4fb66 100644 --- a/dev/server/serverTests.server.luau +++ b/dev/server/serverTests.server.luau @@ -13,6 +13,8 @@ packets.myPacket.onServerReceived:connect(function(data, player) print(data) end) -RunService.Heartbeat:Connect(function() - packets.myPacket.broadcast({true}) -end) +-- RunService.Heartbeat:Connect(function() +-- packets.myPacket.broadcast("aa") +-- end) + +packets.helloCommand() diff --git a/dev/shared/testPackets.luau b/dev/shared/testPackets.luau index cb0354e..6cfeb98 100644 --- a/dev/shared/testPackets.luau +++ b/dev/shared/testPackets.luau @@ -7,5 +7,8 @@ return HandyNet.defineNamespace("game", function() myPacket = HandyNet.defineReliablePacket( HandyNet.string(HandyNet.u8) ), + helloCommand = HandyNet.defineReliableCommand(function() + print("Merhaba!") + end) } end) diff --git a/src/types.luau b/src/types.luau index bb7cabd..6dff339 100644 --- a/src/types.luau +++ b/src/types.luau @@ -51,9 +51,17 @@ type EmptyEvent = nil & { export type HandyNet = { defineReliablePacket: (value: T) -> Packet, defineUnreliablePacket: (value: T) -> Packet, + defineReliableCommand: (fn: () -> ()) -> (Player?) -> (), + defineUnreliableCommand: (fn: () -> ()) -> (Player?) -> (), defineNamespace: (name: string, namespace: () -> T) -> ({ - server: { [string]: { sendToServer: nil, onClientReceived: EmptyEvent } } & T, - client: { [string]: { sendTo: nil, broadcast: nil, onServerReceived: EmptyEvent } } & T + server: { [string]: typeof(setmetatable( + {} :: { sendToServer: nil, onClientReceived: EmptyEvent }, + {} :: { __call: (Player?) -> () } + )) } & T, + client: { [string]: typeof(setmetatable( + {} :: { sendTo: nil, broadcast: nil, onServerReceived: EmptyEvent }, + {} :: { __call: () -> () } + )) } & T }), struct: (format: T) -> T,