fix: party room provider

This commit is contained in:
xkeyC
2025-11-20 09:28:46 +08:00
parent b65187d4f0
commit d1f19bae4e
2 changed files with 18 additions and 7 deletions

View File

@@ -781,9 +781,9 @@ class PartyRoom extends _$PartyRoom {
void _handleRoomEvent(partroom.RoomEvent event) {
dPrint('[PartyRoom] Event received: ${event.type}');
// 添加到最近事件列表(保留最近 50 条)
// 添加到最近事件列表(保留最近 1000 条)
final recentEvents = [...state.room.recentEvents, event];
if (recentEvents.length > 50) {
if (recentEvents.length > 1000) {
recentEvents.removeAt(0);
}
@@ -794,13 +794,24 @@ class PartyRoom extends _$PartyRoom {
case partroom.RoomEventType.MEMBER_JOINED:
case partroom.RoomEventType.MEMBER_LEFT:
case partroom.RoomEventType.MEMBER_KICKED:
case partroom.RoomEventType.MEMBER_STATUS_UPDATED:
// 刷新成员列表
if (state.room.roomUuid != null) {
getRoomMembers(state.room.roomUuid!);
}
break;
case partroom.RoomEventType.MEMBER_STATUS_UPDATED:
// 刷新成员状态
state = state.copyWith(
room: state.room.copyWith(
members: state.room.members.map((member) {
if (member.gameUserId == event.member.gameUserId) {
return event.member;
}
return member;
}).toList(),
),
);
break;
case partroom.RoomEventType.OWNER_CHANGED:
// 检查是否自己成为房主
final isOwner = event.member.gameUserId == state.auth.userInfo?.gameUserId;