diff --git a/roomserver/api/wrapper.go b/roomserver/api/wrapper.go index 82a4a5719..2e0e0273f 100644 --- a/roomserver/api/wrapper.go +++ b/roomserver/api/wrapper.go @@ -42,10 +42,11 @@ func SendEvents( // SendEventWithState writes an event with KindNew to the roomserver // with the state at the event as KindOutlier before it. Will not send any event that is -// marked as `true` in haveEventIDs +// marked as `true` in haveEventIDs. The event itself is optional in case +// hou just want to write outliers to the roomserver. func SendEventWithState( ctx context.Context, rsAPI RoomserverInternalAPI, state *gomatrixserverlib.RespState, - event gomatrixserverlib.HeaderedEvent, haveEventIDs map[string]bool, + event *gomatrixserverlib.HeaderedEvent, haveEventIDs map[string]bool, ) error { outliers, err := state.Events() if err != nil { @@ -69,13 +70,15 @@ func SendEventWithState( stateEventIDs[i] = state.StateEvents[i].EventID() } - ires = append(ires, InputRoomEvent{ - Kind: KindNew, - Event: event, - AuthEventIDs: event.AuthEventIDs(), - HasState: true, - StateEventIDs: stateEventIDs, - }) + if event != nil { + ires = append(ires, InputRoomEvent{ + Kind: KindNew, + Event: *event, + AuthEventIDs: event.AuthEventIDs(), + HasState: true, + StateEventIDs: stateEventIDs, + }) + } return SendInputRoomEvents(ctx, rsAPI, ires) }