def set_undone(source: CommandSource, titles: str) -> None: if not root.task_manager.exists(TitleList(titles)): task_not_found(source) return root.task_manager.undone_task(TitleList(titles)) info_task(source, title=titles) root.log(f"{_source_name(source)} marked task {titles} as undone")
def remove_task(source: CommandSource, titles: str): if not root.task_manager.exists(TitleList(titles)): task_not_found(source) return root.task_manager.delete_task(TitleList(titles)) source.reply(tr("mcd_task.deleted_task", "§e{}§r".format(titles))) root.log(f"{_source_name(source)} deleted task {titles}")
def edit_desc(source: CommandSource, titles: str, desc: str) -> None: title_list = TitleList(titles) if not root.task_manager.exists(title_list): task_not_found(source) return root.task_manager.edit_desc(title_list, desc) info_task(source, title=titles) root.log( f"{_source_name(source)} changed task {titles} description to {desc}")
def set_task_deadline(source: CommandSource, titles: str, ddl: str) -> None: if not root.task_manager.exists(TitleList(titles)): task_not_found(source) return deadline = float(time.time()) + float(ddl) * 3600 * 24 root.task_manager.set_deadline(TitleList(titles), deadline) source.reply(tr("mcd_task.ddl_set", titles, ddl, formatted_time(deadline))) root.log( f"{_source_name(source)} set task deadline to {formatted_time(deadline, locale='en_us')}" )
def inherit_responsible(info: Info, old_name: str, new_name: str, debug=False): resm = root.task_manager.get_responsible_manager() if old_name in resm.player_work.keys(): resm.rename_player(old_name, new_name) num = len(resm[new_name]) info.get_server().tell(new_name, tr("mcd_task.on_player_renamed", num)) root.logger.debug(tr("mcd_task.on_player_renamed", num), no_check=debug) root.log( f"Detected player rename {old_name} -> {new_name}. Inherited {num} task(s)" )
def add_task(source: CommandSource, titles: str, desc: str = ''): titles = TitleList(titles) titles_for_text = titles.copy() if not root.task_manager.exists(titles): root.task_manager.add_task(titles, desc=desc) info_task(source, title=titles_for_text.head, prefix=tr("mcd_task.new_task_created")) root.log( f"{_source_name(source)} created new task named {str(titles_for_text)}" ) else: task_already_exist(source)
def rename_task(source: CommandSource, old_titles: str, new_title: str) -> None: if not root.task_manager.exists(TitleList(old_titles)): task_not_found(source) return if '.' in list(new_title): source.reply(tr("mcd_task.illegal_title_with_dot", new_title)) return root.task_manager.rename_task(TitleList(old_titles), new_title) new_titles = TitleList(old_titles) new_titles.pop_tail() new_titles.append(new_title) info_task(source, title=str(new_titles), prefix=tr("mcd_task.task_renamed", old_titles, str(new_titles))) root.log( f"{_source_name(source)} renamed {old_titles} to {str(new_titles)}")
def set_responsible(source: CommandSource, titles: str, players: Optional[str] = None) -> None: if not root.task_manager.exists(TitleList(titles)): task_not_found(source) return if players is None: if isinstance(source, PlayerCommandSource): players = source.player else: illegal_call(source) return players = players.split(' ') num = root.task_manager.set_responsible(TitleList(titles), *players) list_responsible(source, titles, prefix=tr("mcd_task.added_responsibles_title", num)) root.log( f"{_source_name(source)} added responsibles for task {str(titles)}: {str(players)}" )