@@ -333,8 +333,9 @@ async def set_power_levels(self, room_id: str, content: dict) -> dict:
333333 if "events" not in content :
334334 content ["events" ] = {}
335335 response = await self .send_state_event (room_id , "m.room.power_levels" , content )
336- self .state_store .set_power_levels (room_id , content )
337- return response
336+ if response :
337+ self .state_store .set_power_levels (room_id , content )
338+ return response
338339
339340 async def get_pinned_messages (self , room_id : str ) -> List [str ]:
340341 await self .ensure_joined (room_id )
@@ -513,9 +514,10 @@ async def send_state_event(self, room_id: str, event_type: str, content: dict,
513514 elif not event_type :
514515 raise ValueError ("Event type not given" )
515516 await self .ensure_joined (room_id )
516- await self ._ensure_has_power_level_for (room_id , event_type , is_state_event = True )
517- url = self ._get_state_url (room_id , event_type , state_key )
518- return await self .client .request ("PUT" , url , content )
517+ has_pl = await self ._ensure_has_power_level_for (room_id , event_type , is_state_event = True )
518+ if has_pl :
519+ url = self ._get_state_url (room_id , event_type , state_key )
520+ return await self .client .request ("PUT" , url , content )
519521
520522 async def get_state_event (self , room_id : str , event_type : str , state_key : Optional [str ] = ""
521523 ) -> dict :
@@ -614,13 +616,13 @@ async def _ensure_has_power_level_for(self, room_id: str, event_type: str,
614616 await self .get_power_levels (room_id )
615617 if self .state_store .has_power_level (room_id , self .mxid , event_type ,
616618 is_state_event = is_state_event ):
617- return
619+ return True
618620 elif not self .bot :
619621 self .log .warning (
620622 f"Power level of { self .mxid } is not enough for { event_type } in { room_id } " )
621623 # raise IntentError(f"Power level of {self.mxid} is not enough"
622624 # f"for {event_type} in {room_id}")
623- return
625+ return False
624626 # TODO implement
625627
626628 # endregion
0 commit comments