Skip to content

Commit 6f1cdf5

Browse files
committed
🐛 fix adapter minecraft broken changes
1 parent 366d83e commit 6f1cdf5

File tree

7 files changed

+767
-716
lines changed

7 files changed

+767
-716
lines changed

pdm.lock

Lines changed: 742 additions & 692 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,10 +223,10 @@ test = [
223223
"fastapi>=0.119.0",
224224
"uvicorn[standard]>=0.37.0",
225225
"nonebot2[httpx,websockets]>=2.4.3",
226-
"nonebot-adapter-qq>=1.6.5",
227-
"nonebot-adapter-satori>=0.13.7",
226+
"nonebot-adapter-qq>=1.6.6",
227+
"nonebot-adapter-satori>=0.13.8",
228228
"nonebot-adapter-discord>=0.1.8",
229-
"nonebot-adapter-minecraft>=1.5.2",
229+
"nonebot-adapter-minecraft>=1.7.1",
230230
"nonebot-adapter-onebot>=2.4.6",
231231
"nonebot-plugin-filehost>=1.1.1",
232232
"nonebot-plugin-send-anything-anywhere>=0.7.1",

src/nonebot_plugin_alconna/uniseg/adapters/minecraft/builder.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from nonebot.adapters.minecraft.message import MessageSegment
2-
from nonebot.adapters.minecraft.model import TextColor
2+
from nonebot.adapters.minecraft.models import Color
33

44
from nonebot_plugin_alconna.uniseg.builder import MessageBuilder, build
55
from nonebot_plugin_alconna.uniseg.constraint import SupportAdapter
@@ -13,7 +13,7 @@ def get_adapter(cls) -> SupportAdapter:
1313

1414
def get_styles(self, data: dict):
1515
styles = []
16-
if "color" in data and data["color"] and data["color"] != TextColor.WHITE:
16+
if "color" in data and data["color"] and data["color"] != Color.white:
1717
styles.append(data["color"])
1818
if data.get("bold"):
1919
styles.append("bold")

src/nonebot_plugin_alconna/uniseg/adapters/minecraft/exporter.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
from nonebot.adapters import Bot, Event
44
from nonebot.adapters.minecraft.bot import Bot as MinecraftBot
5-
from nonebot.adapters.minecraft.event.base import MessageEvent
5+
from nonebot.adapters.minecraft.event import MessageEvent
66
from nonebot.adapters.minecraft.message import Message, MessageSegment
7-
from nonebot.adapters.minecraft.model import BaseComponent, ClickAction, ClickEvent, HoverAction, HoverEvent, TextColor
7+
from nonebot.adapters.minecraft.models import Component, ClickAction, ClickEvent, HoverAction, HoverEvent, Color
88
from tarina import lang
99

1010
from nonebot_plugin_alconna.uniseg.constraint import SupportScope
@@ -45,7 +45,7 @@
4545
"white": "white",
4646
}
4747

48-
for color in TextColor.__members__.values():
48+
for color in Color.__members__.values():
4949
STYLE_TYPE_MAP[color.value] = color # type: ignore
5050

5151

@@ -123,19 +123,19 @@ async def button(self, seg: Button, bot: Union[Bot, None]):
123123
kwargs["color"] = style
124124
if seg.clicked_label:
125125
kwargs["hover_event"] = HoverEvent(
126-
action=HoverAction.SHOW_TEXT, text=[BaseComponent(text=seg.clicked_label)]
126+
action=HoverAction.show_text, contents=[Component(text=seg.clicked_label)]
127127
)
128-
if seg.flag == "link":
128+
if seg.flag == "link" and seg.url:
129129
return MessageSegment.text(
130-
label.text, **kwargs, click_event=ClickEvent(action=ClickAction.OPEN_URL, value=seg.url)
130+
label.text, **kwargs, click_event=ClickEvent(action=ClickAction.open_url, value=seg.url)
131131
)
132-
if seg.flag == "input":
132+
if seg.flag == "input" and seg.text:
133133
return MessageSegment.text(
134-
label.text, **kwargs, click_event=ClickEvent(action=ClickAction.SUGGEST_COMMAND, value=seg.text)
134+
label.text, **kwargs, click_event=ClickEvent(action=ClickAction.suggest_command, value=seg.text)
135135
)
136-
if seg.flag == "enter":
136+
if seg.flag == "enter" and seg.text:
137137
return MessageSegment.text(
138-
label.text, **kwargs, click_event=ClickEvent(action=ClickAction.RUN_COMMAND, value=seg.text)
138+
label.text, **kwargs, click_event=ClickEvent(action=ClickAction.run_command, value=seg.text)
139139
)
140140
raise SerializeFailed(lang.require("nbp-uniseg", "invalid_segment").format(type="button", seg=seg))
141141

src/nonebot_plugin_alconna/uniseg/exporter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,11 @@ def export(
130130
) -> Callable[[Any, TS, Union[Bot, None]], Awaitable[Union[TMS, list[TMS]]]]: ...
131131

132132

133-
def export(
133+
def export( # type: ignore
134134
func: Union[
135-
Callable[[Any, TS, Union[Bot, None]], Awaitable[TMS]],
136-
Callable[[Any, TS, Union[Bot, None]], Awaitable[list[TMS]]],
137-
Callable[[Any, TS, Union[Bot, None]], Awaitable[Union[TMS, list[TMS]]]],
135+
Callable[[Any, Segment, Union[Bot, None]], Awaitable[TMS]],
136+
Callable[[Any, Segment, Union[Bot, None]], Awaitable[list[TMS]]],
137+
Callable[[Any, Segment, Union[Bot, None]], Awaitable[Union[TMS, list[TMS]]]],
138138
],
139139
):
140140
sig = inspect.signature(func)

tests/fake.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ class Config:
219219

220220
def fake_satori_bot_params(self_id: str = "test", platform: str = "test") -> dict:
221221
from nonebot.adapters.satori.models import Login, LoginStatus, User
222+
from nonebot.adapters.satori.config import ClientInfo
222223

223224
return {
224225
"self_id": self_id,
@@ -229,6 +230,6 @@ def fake_satori_bot_params(self_id: str = "test", platform: str = "test") -> dic
229230
platform=platform,
230231
user=User(id=self_id, name="test"),
231232
),
232-
"info": None,
233+
"info": ClientInfo(port=5140),
233234
"proxy_urls": [],
234235
}

tests/test_mc.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
def test_mc_style_text():
22
from nonebot.adapters.minecraft.message import Message, MessageSegment
3-
from nonebot.adapters.minecraft.model import TextColor
3+
from nonebot.adapters.minecraft.models import Color
44

55
from nonebot_plugin_alconna import Text, UniMessage
66

77
msg = UniMessage([Text("1234").color("red", 0, 2).color("yellow"), Text("456").color("blue")])
88

99
assert msg.export_sync(adapter="Minecraft") == Message(
1010
[
11-
MessageSegment.text("12", color=TextColor.RED),
12-
MessageSegment.text("34", color=TextColor.YELLOW),
13-
MessageSegment.text("456", color=TextColor.BLUE),
11+
MessageSegment.text("12", color=Color.red),
12+
MessageSegment.text("34", color=Color.yellow),
13+
MessageSegment.text("456", color=Color.blue),
1414
]
1515
)

0 commit comments

Comments
 (0)