o
    kj                     @   st   d dl Z d dlmZ d dlmZmZ d dlmZ ddlm	Z	 ddl
mZmZmZmZ g dZeG d	d
 d
eZdS )    N)CommandPlugin)attext)register_plugin   )
TITLE_DEFS)evaluate_and_unlock_titlesget_title_defget_lottery_title_ids_title_collection_progress)r   r	   r
   r   TitlePluginc                   @   sh   e Zd ZdZdZdZdd Zdd Zdd	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd ZdS )r   manage_titlesu*   查询、查看、装备和卸下称号。)   /称号一览   /稱號一覽u   /称号u   /稱號c              
   C   sd   t |}|sd| dS ||v rdnd}|dd}d|d  d|d	  d
|d  d| d| 
S )N[u   ] 未知称号u   （已装备） unlock_typeunknownid   ] 「name   」 (rarityz, ))r   get)selftitle_idequipped_titlesdatasuffixr    r    3/home/dore/onebot/Bot_Ero/plugins/title/__init__.py_title_line   s   
.zTitlePlugin._title_linec                 C   sJ   | j jD ]}|ddkr"|di d}|r"|dkr"t|  S qd S )Ntyper   r   qqall)	bot_eventmessager   int)r   segr$   r    r    r!   _get_target_user_id_from_at&   s   z'TitlePlugin._get_target_user_id_from_atc                 C   s   | j j|}t| j j|}|s| jt|td d S ddt	t
|t
t dg}|D ]}|| || q0| jtd|g d S )Nu   还没有解锁任何称号喵~u   已解锁称号：u   搜集进度：r   
)	dbmanagertitleslistsetequipped_allapisend_msgr   r   r   lenr   appendr"   send_forward_msgjoin)r   user_idshow_to_user_id	title_idsequippedlinestidr    r    r!   _show_title_list.   s   zTitlePlugin._show_title_listc              
   C   s   | j j|}t|dkr| jt|td d S dg}|D ]}t	|ddd}|
d| d|d	  d
|d  d q| jt|td| d S )Nr   u   你当前没有装备称号u   当前装备称号：   未知称号r   )r   r   r   r   r   r   r   r   r+   )r,   r-   r0   r3   r1   r2   r   r   r   r   r4   r6   )r   r7   r:   r;   r<   r   r    r    r!   _show_current>   s   ( zTitlePlugin._show_currentc              	   C   s   t |}|s| jt|td d S | jj||s)| jt|td d S d|d  d|d  d|d  d	|d
  }| jt|t| d S )N   没有这个称号编号喵!   你还没有解锁这个称号喵r   r   r   r   u   」
稀有度：r   u
   
说明：description)	r   r   r1   r2   r   r   r,   r-   has)r   r7   r   r   msgr    r    r!   _show_detailI   s   
,zTitlePlugin._show_detailc                 C   sz   |sd S dg}|D ]#}t |dddd}|d| d|d  d	|d
  d|d   q	| jt|td| d S )Nu   解锁新称号：r>   r   u   无)r   r   rB   r   r   r   r   r   z) - rB   r+   )r   r   r4   r1   r2   r   r   r6   )r   r7   unlocked_idsr;   r<   r   r    r    r!   _send_unlocked_titles_noticeT   s   0 z(TitlePlugin._send_unlocked_titles_noticec                 C   s   t |}|s| jt|td d S | jj||s)| jt|td d S | jjj	||dd\}}|sN|dkrN| jt|td|d  d d S |sa|d	kra| jt|td
 d S t
| j|}| || | jt|td|d  d d S )Nr@   rA      	max_countalreadyu   称号已装备：「r      」full4   最多只能装备3个称号，请先 /称号 卸下u   已装备称号：「)r   r   r1   r2   r   r   r,   r-   rC   equipr   rG   )r   r7   r   r   okreasonunlockedr    r    r!   _equip]   s"   
"&zTitlePlugin._equipc                 C   s@   | j j| t| j |}| || | jt|td d S )Nu   已卸下所有装备称号)	r,   r-   clear_equippedr   rG   r1   r2   r   r   )r   r7   rR   r    r    r!   _unequipp   s   zTitlePlugin._unequipc              	   C   s   | j j|}|s| jt|td d S t|}t	
|ddi}| j jj||dd\}}|sK|dkrK| jt|td| d|d  d	 d S |s^|d
kr^| jt|td d S t| j |}| || | jt|td| d|d  d	 d S )Nu$   还没有可随机装备的称号喵r   r>   rH   rI   rK   u   随机到了已装备称号：[r   rL   rM   rN   u   随机装备成功：[)r,   r-   r.   r1   r2   r   r   randomchoicer   r   rO   r   rG   )r   r7   r9   r   r   rP   rQ   rR   r    r    r!   _equip_randomv   s    
(,zTitlePlugin._equip_randomc                 C   s|  | j jd krd S | j j}| jdv r| || d S dd | jD }t|dkr4| jt|t	d d S |d }|dv rC| 
| d S |dkrN| | d S |dv rY| | d S |d	v rt|d
k si|d  sv| jt|t	d d S | |t|d  d S |dv r|  }|d u r| jt|t	d d S | || d S | r| |t| d S | jt|t	d d S )N)r   r   c                 S   s   g | ]
}|  d kr|qS )r   )strip).0ar    r    r!   
<listcomp>   s    z&TitlePlugin.handle.<locals>.<listcomp>r   u   用法：/称号 当前 | /称号 卸下 | /称号 详情 <index> | /称号 随机 | /称号 <index> | /称号 查看 @用户（最多装备3个）)u   当前u   當前u   卸下)u   随机u   隨機)u   详情u   詳情   r   u    请使用 /称号 详情 <index>)u   查看u   檢視u    请使用 /称号 查看 @用户u   无法识别的子命令喵)r&   r7   cmdr=   argsr3   r1   r2   r   r   r?   rU   rX   isdigitrE   r(   r*   rS   )r   r7   r_   subtarget_userr    r    r!   handle   sP   



zTitlePlugin.handleN)__name__
__module____qualname__r   rB   COMMANDSr"   r*   r=   r?   rE   rG   rS   rU   rX   rc   r    r    r    r!   r      s    	r   )rV   	core.baser   core.cqr   r   
core.utilsr   defsr   logicr   r	   r
   r   __all__r   r    r    r    r!   <module>   s    	