SC2: Fix /received display bugs (#3949)

* SC2: Fix location display in /received command

* SC2: Backport broken markup fix in /received output from the dev branch

* Cleanup
This commit is contained in:
Ziktofel
2024-09-17 23:18:43 +02:00
committed by GitHub
parent 8f7e0dc441
commit b982e9ebb4
2 changed files with 22 additions and 8 deletions

View File

@@ -1,7 +1,8 @@
from typing import *
import asyncio
from kvui import GameManager, HoverBehavior, ServerToolTip
from NetUtils import JSONMessagePart
from kvui import GameManager, HoverBehavior, ServerToolTip, KivyJSONtoTextParser
from kivy.app import App
from kivy.clock import Clock
from kivy.uix.tabbedpanel import TabbedPanelItem
@@ -69,6 +70,18 @@ class MissionLayout(GridLayout):
class MissionCategory(GridLayout):
pass
class SC2JSONtoKivyParser(KivyJSONtoTextParser):
def _handle_text(self, node: JSONMessagePart):
if node.get("keep_markup", False):
for ref in node.get("refs", []):
node["text"] = f"[ref={self.ref_count}|{ref}]{node['text']}[/ref]"
self.ref_count += 1
return super(KivyJSONtoTextParser, self)._handle_text(node)
else:
return super()._handle_text(node)
class SC2Manager(GameManager):
logging_pairs = [
("Client", "Archipelago"),
@@ -87,6 +100,7 @@ class SC2Manager(GameManager):
def __init__(self, ctx) -> None:
super().__init__(ctx)
self.json_to_kivy_parser = SC2JSONtoKivyParser(ctx)
def clear_tooltip(self) -> None:
if self.ctx.current_tooltip: