51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import dayjs from 'dayjs';
|
||
|
||
export default function MessageDispatcher({ message }: { message: any }) {
|
||
const messageType = message?.units?.[0]?.type;
|
||
let nick = "";
|
||
let content = "[暂不支持该类型消息]";
|
||
let fortuneLv = 0;
|
||
let text = '';
|
||
let productId = '';
|
||
let amount = 0;
|
||
|
||
if (message?.type === "sauth_ret") {
|
||
if (message?.data?.em !== "ok") {
|
||
return <div>{message?.data?.em}</div>;
|
||
} else {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
switch (messageType) {
|
||
case "Message":
|
||
nick = message?.nick;
|
||
content = message?.units?.[0]?.["Msg.Message.data"]?.text;
|
||
break;
|
||
case "EnterRoom":
|
||
text = message?.units?.[0]?.["Set.EnterRoom.data"]?.text;
|
||
fortuneLv = message?.units?.[0]?.["Set.EnterRoom.data"]?.fortune_lv;
|
||
content = `有新人:${text} lv: ${fortuneLv}`;
|
||
break;
|
||
case "Version":
|
||
// TODO 解析
|
||
return null
|
||
case "GiftV3":
|
||
nick = message?.nick;
|
||
text = message?.['units']?.[0]?.['GiftV3.giftV3']?.['text']
|
||
productId = message?.['units']?.[0]?.['GiftV3.giftV3']?.['productId']
|
||
amount = message?.['units']?.[0]?.['GiftV3.giftV3']?.['weight']
|
||
content = `${nick} 送出礼物,内容为: ${text},产品ID为: ${productId}, 价值:${amount}`
|
||
nick = ''
|
||
break;
|
||
default:
|
||
console.log("debug....", messageType, message);
|
||
break;
|
||
}
|
||
return (
|
||
<div className="p-1 text-xs">
|
||
[{message.current}]{nick}{nick ? ': ' : ''}{content}
|
||
</div>
|
||
);
|
||
}
|