mirror of
				https://github.com/nonebot/nonebot2.git
				synced 2025-10-31 06:56:39 +00:00 
			
		
		
		
	🐛 fix missing update when reject or pause (fix #394)
This commit is contained in:
		| @@ -166,20 +166,25 @@ class Matcher(metaclass=MatcherMeta): | |||||||
|         return repr(self) |         return repr(self) | ||||||
|  |  | ||||||
|     @classmethod |     @classmethod | ||||||
|     def new(cls, |     def new( | ||||||
|             type_: str = "", |         cls, | ||||||
|             rule: Optional[Rule] = None, |         type_: str = "", | ||||||
|             permission: Optional[Permission] = None, |         rule: Optional[Rule] = None, | ||||||
|             handlers: Optional[Union[List[T_Handler], List[Handler], |         permission: Optional[Permission] = None, | ||||||
|                                      List[Union[T_Handler, Handler]]]] = None, |         handlers: Optional[Union[List[T_Handler], List[Handler], | ||||||
|             temp: bool = False, |                                  List[Union[T_Handler, Handler]]]] = None, | ||||||
|             priority: int = 1, |         temp: bool = False, | ||||||
|             block: bool = False, |         priority: int = 1, | ||||||
|             *, |         block: bool = False, | ||||||
|             module: Optional[ModuleType] = None, |         *, | ||||||
|             default_state: Optional[T_State] = None, |         module: Optional[ModuleType] = None, | ||||||
|             default_state_factory: Optional[T_StateFactory] = None, |         expire_time: Optional[datetime] = None, | ||||||
|             expire_time: Optional[datetime] = None) -> Type["Matcher"]: |         default_state: Optional[T_State] = None, | ||||||
|  |         default_state_factory: Optional[T_StateFactory] = None, | ||||||
|  |         default_parser: Optional[T_ArgsParser] = None, | ||||||
|  |         default_type_updater: Optional[T_TypeUpdater] = None, | ||||||
|  |         default_permission_updater: Optional[T_PermissionUpdater] = None | ||||||
|  |     ) -> Type["Matcher"]: | ||||||
|         """ |         """ | ||||||
|         :说明: |         :说明: | ||||||
|  |  | ||||||
| @@ -237,7 +242,13 @@ class Matcher(metaclass=MatcherMeta): | |||||||
|                     default_state or {}, |                     default_state or {}, | ||||||
|                 "_default_state_factory": |                 "_default_state_factory": | ||||||
|                     staticmethod(default_state_factory) |                     staticmethod(default_state_factory) | ||||||
|                     if default_state_factory else None |                     if default_state_factory else None, | ||||||
|  |                 "_default_parser": | ||||||
|  |                     default_parser, | ||||||
|  |                 "_default_type_updater": | ||||||
|  |                     default_type_updater, | ||||||
|  |                 "_default_permission_updater": | ||||||
|  |                     default_permission_updater | ||||||
|             }) |             }) | ||||||
|  |  | ||||||
|         matchers[priority].append(NewMatcher) |         matchers[priority].append(NewMatcher) | ||||||
| @@ -586,17 +597,21 @@ class Matcher(metaclass=MatcherMeta): | |||||||
|             else: |             else: | ||||||
|                 permission = USER(event.get_session_id(), perm=self.permission) |                 permission = USER(event.get_session_id(), perm=self.permission) | ||||||
|  |  | ||||||
|             Matcher.new(type_, |             Matcher.new( | ||||||
|                         Rule(), |                 type_, | ||||||
|                         permission, |                 Rule(), | ||||||
|                         self.handlers, |                 permission, | ||||||
|                         temp=True, |                 self.handlers, | ||||||
|                         priority=0, |                 temp=True, | ||||||
|                         block=True, |                 priority=0, | ||||||
|                         module=self.module, |                 block=True, | ||||||
|                         default_state=self.state, |                 module=self.module, | ||||||
|                         expire_time=datetime.now() + |                 expire_time=datetime.now() + bot.config.session_expire_timeout, | ||||||
|                         bot.config.session_expire_timeout) |                 default_state=self.state, | ||||||
|  |                 default_parser=self.__class__._default_parser, | ||||||
|  |                 default_type_updater=self.__class__._default_type_updater, | ||||||
|  |                 default_permission_updater=self.__class__. | ||||||
|  |                 _default_permission_updater) | ||||||
|         except PausedException: |         except PausedException: | ||||||
|             updater = self.__class__._default_type_updater |             updater = self.__class__._default_type_updater | ||||||
|             if updater: |             if updater: | ||||||
| @@ -610,17 +625,21 @@ class Matcher(metaclass=MatcherMeta): | |||||||
|             else: |             else: | ||||||
|                 permission = USER(event.get_session_id(), perm=self.permission) |                 permission = USER(event.get_session_id(), perm=self.permission) | ||||||
|  |  | ||||||
|             Matcher.new(type_, |             Matcher.new( | ||||||
|                         Rule(), |                 type_, | ||||||
|                         permission, |                 Rule(), | ||||||
|                         self.handlers, |                 permission, | ||||||
|                         temp=True, |                 self.handlers, | ||||||
|                         priority=0, |                 temp=True, | ||||||
|                         block=True, |                 priority=0, | ||||||
|                         module=self.module, |                 block=True, | ||||||
|                         default_state=self.state, |                 module=self.module, | ||||||
|                         expire_time=datetime.now() + |                 expire_time=datetime.now() + bot.config.session_expire_timeout, | ||||||
|                         bot.config.session_expire_timeout) |                 default_state=self.state, | ||||||
|  |                 default_parser=self.__class__._default_parser, | ||||||
|  |                 default_type_updater=self.__class__._default_type_updater, | ||||||
|  |                 default_permission_updater=self.__class__. | ||||||
|  |                 _default_permission_updater) | ||||||
|         except FinishedException: |         except FinishedException: | ||||||
|             pass |             pass | ||||||
|         except StopPropagation: |         except StopPropagation: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user