From 378f679fd13fd8c3dfcd4fee30faf6a2d45f4ebd Mon Sep 17 00:00:00 2001 From: bowedyapper Date: Sat, 10 Dec 2022 01:10:25 +0000 Subject: [PATCH] Added broadcast functions --- host.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/host.go b/host.go index 99840e1..03da661 100644 --- a/host.go +++ b/host.go @@ -14,6 +14,9 @@ type Host interface { Connect(addr Address, channelCount int, data uint32) (Peer, error) CompressWithRangeCoder() error + BroadcastBytes(data []byte, channel uint8, flags PacketFlags) error + BroadcastPacket(packet Packet, channel uint8) error + BroadcastString(str string, channel uint8, flags PacketFlags) error } type enetHost struct { @@ -86,3 +89,28 @@ func NewHost(addr Address, peerCount, channelLimit uint64, incomingBandwidth, ou cHost: host, }, nil } + +func (host *enetHost) BroadcastBytes(data []byte, channel uint8, flags PacketFlags) error { + packet, err := NewPacket(data, flags) + if err != nil { + return err + } + return host.BroadcastPacket(packet, channel) +} + +func (host *enetHost) BroadcastPacket(packet Packet, channel uint8) error { + C.enet_host_broadcast( + host.cHost, + (C.enet_uint8)(channel), + packet.(enetPacket).cPacket, + ) + return nil +} + +func (host *enetHost) BroadcastString(str string, channel uint8, flags PacketFlags) error { + packet, err := NewPacket([]byte(str), flags) + if err != nil { + return err + } + return host.BroadcastPacket(packet, channel) +}