给一个参考(片段),炼药的,判断颜色后执行对应操作:
触发器使用raw模式,抓取对应的ANSI颜色代码,根据不同颜色执行不同处理:
Trigger(self.session, "^\x1b\\[([\\d;]+)m[\r\n]*$", raw = True, enabled = False, id = "tri_medicine_color", onSuccess = self.ontri_color, group = "medicine")
def ontri_color(self, name, line, wildcards):
color = wildcards[0]
if "31" in color: # 31: red
self.info(f"颜色:红色 ({color}), 使用 turnup")
self.session.writeline("turnup")
elif "35" in color: # 35: magenta
self.info(f"颜色:紫色 ({color}), 使用 blow")
self.session.writeline("blow")
elif "37" in color: # 37: while
self.info(f"颜色:白色 ({color}), 使用 turndown")
self.session.writeline("turndown")
elif "36" in color: # 36: cyan
self.info(f"颜色:青色 ({color}), 使用 defend")
self.session.writeline("defend")
else:
self.warning(f"未知的颜色代码: {color}")
self._objs["color"].enabled = False