Fix normal events being handled as state events
This commit is contained in:
parent
8aa134b8b2
commit
ded4767729
@ -120,9 +120,9 @@ func (s *GomuksSyncer) processSyncEvents(room *rooms.Room, events []*mautrix.Eve
|
|||||||
func (s *GomuksSyncer) processSyncEvent(room *rooms.Room, event *mautrix.Event, source EventSource) {
|
func (s *GomuksSyncer) processSyncEvent(room *rooms.Room, event *mautrix.Event, source EventSource) {
|
||||||
if room != nil {
|
if room != nil {
|
||||||
event.RoomID = room.ID
|
event.RoomID = room.ID
|
||||||
}
|
if source&EventSourceState != 0 {
|
||||||
if event.Type.Class == mautrix.StateEventType {
|
room.UpdateState(event)
|
||||||
room.UpdateState(event)
|
}
|
||||||
}
|
}
|
||||||
s.notifyListeners(source, event)
|
s.notifyListeners(source, event)
|
||||||
}
|
}
|
||||||
@ -138,6 +138,12 @@ func (s *GomuksSyncer) OnEventType(eventType mautrix.EventType, callback EventHa
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *GomuksSyncer) notifyListeners(source EventSource, event *mautrix.Event) {
|
func (s *GomuksSyncer) notifyListeners(source EventSource, event *mautrix.Event) {
|
||||||
|
if event.Type.IsState() && source&EventSourceState == 0 ||
|
||||||
|
event.Type.IsAccountData() && source&EventSourceAccountData == 0 ||
|
||||||
|
event.Type.IsEphemeral() && source&EventSourceEphemeral == 0 {
|
||||||
|
debug.Printf("Event of type %s received from mismatching source %s: %v.", event.Type, source, event)
|
||||||
|
return
|
||||||
|
}
|
||||||
listeners, exists := s.listeners[event.Type]
|
listeners, exists := s.listeners[event.Type]
|
||||||
if !exists {
|
if !exists {
|
||||||
return
|
return
|
||||||
|
Loading…
Reference in New Issue
Block a user