diff --git a/server/channelserver/handlers_cast_binary.go b/server/channelserver/handlers_cast_binary.go index ca3410618..304369295 100644 --- a/server/channelserver/handlers_cast_binary.go +++ b/server/channelserver/handlers_cast_binary.go @@ -118,7 +118,7 @@ func handleMsgSysCastBinary(s *Session, p mhfpacket.MHFPacket) { // Send to the proper recipients. switch pkt.BroadcastType { case BroadcastTypeWorld: - s.server.WorldcastMHF(resp, s) + s.server.WorldcastMHF(resp, s, nil) case BroadcastTypeStage: if isDiceCommand { s.stage.BroadcastMHF(resp, nil) // send dice result back to caller @@ -129,8 +129,7 @@ func handleMsgSysCastBinary(s *Session, p mhfpacket.MHFPacket) { if pkt.MessageType == 1 { raviSema := getRaviSemaphore(s) if raviSema != "" { - sema := s.server.semaphore[raviSema] - (*sema).BroadcastMHF(resp, s) + s.server.BroadcastMHF(resp, s) } } else { s.server.BroadcastMHF(resp, s) diff --git a/server/channelserver/sys_channel_server.go b/server/channelserver/sys_channel_server.go index 9425cdcd5..69335280c 100644 --- a/server/channelserver/sys_channel_server.go +++ b/server/channelserver/sys_channel_server.go @@ -295,8 +295,11 @@ func (s *Server) BroadcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session) } } -func (s *Server) WorldcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session) { +func (s *Server) WorldcastMHF(pkt mhfpacket.MHFPacket, ignoredSession *Session, ignoredChannel *Server) { for _, c := range s.Channels { + if c == ignoredChannel { + continue + } for _, session := range c.sessions { if session == ignoredSession { continue @@ -357,7 +360,7 @@ func (s *Server) BroadcastRaviente(ip uint32, port uint16, stage []byte, _type u BroadcastType: BroadcastTypeServer, MessageType: BinaryMessageTypeChat, RawDataPayload: bf.Data(), - }, nil) + }, nil, s) } func (s *Server) DiscordChannelSend(charName string, content string) {