From f27e72d68d3f10142428a55aa1822a7d352980f7 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 27 Jun 2023 22:05:08 -0500 Subject: [PATCH] send chat packets to *all* players --- shard/chat.go | 6 +++--- shard/entitymanager.go | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/shard/chat.go b/shard/chat.go index 4ada26a..0e52cc8 100644 --- a/shard/chat.go +++ b/shard/chat.go @@ -13,7 +13,7 @@ func (server *ShardServer) freeChat(peer *protocol.CNPeer, pkt protocol.Packet) } // spread message - return server.sendOthersPacket(plr, protocol.P_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC, protocol.SP_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC{ + return server.sendAllPacket(plr, protocol.P_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC, protocol.SP_FE2CL_REP_SEND_FREECHAT_MESSAGE_SUCC{ IPC_ID: int32(plr.PlayerID), SzFreeChat: chat.SzFreeChat, IEmoteCode: chat.IEmoteCode, @@ -31,7 +31,7 @@ func (server *ShardServer) menuChat(peer *protocol.CNPeer, pkt protocol.Packet) } // spread message - return server.sendOthersPacket(plr, protocol.P_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC, protocol.SP_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC{ + return server.sendAllPacket(plr, protocol.P_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC, protocol.SP_FE2CL_REP_SEND_MENUCHAT_MESSAGE_SUCC{ IPC_ID: int32(plr.PlayerID), SzFreeChat: chat.SzFreeChat, IEmoteCode: chat.IEmoteCode, @@ -49,7 +49,7 @@ func (server *ShardServer) emoteChat(peer *protocol.CNPeer, pkt protocol.Packet) } // spread message - return server.sendOthersPacket(plr, protocol.P_FE2CL_REP_PC_AVATAR_EMOTES_CHAT, protocol.SP_FE2CL_REP_PC_AVATAR_EMOTES_CHAT{ + return server.sendAllPacket(plr, protocol.P_FE2CL_REP_PC_AVATAR_EMOTES_CHAT, protocol.SP_FE2CL_REP_PC_AVATAR_EMOTES_CHAT{ IID_From: int32(plr.PlayerID), IEmoteCode: chat.IEmoteCode, }) diff --git a/shard/entitymanager.go b/shard/entitymanager.go index 1d98005..fe875a5 100644 --- a/shard/entitymanager.go +++ b/shard/entitymanager.go @@ -46,6 +46,16 @@ func (server *ShardServer) sendOthersPacket(plr *entity.Player, typeID uint32, p return nil } +// sends a packet to all peers in the given chunks +func (server *ShardServer) sendAllPacket(plr *entity.Player, typeID uint32, pkt ...interface{}) error { + chunks := server.getViewableChunks(plr.Chunk) + for _, chunk := range chunks { + chunk.SendPacket(typeID, pkt...) + } + + return nil +} + func (server *ShardServer) removeEntityFromChunks(chunks []*entity.Chunk, this entity.Entity) { for _, chunk := range chunks { for e := range chunk.Entities {