diff --git a/lib/common/conf/url_conf.dart b/lib/common/conf/url_conf.dart index 9ae9191..2edad62 100644 --- a/lib/common/conf/url_conf.dart +++ b/lib/common/conf/url_conf.dart @@ -11,10 +11,9 @@ class URLConf { static const String analyticsApiHome = "https://scbox.org"; /// PartyRoom Server - static const String partyRoomServerAddress = "partyroom.grpc.scbox.xkeyc.cn"; + static const String partyRoomServerAddress = "ecdn.partyroom.grpc.scbox.xkeyc.cn"; static const int partyRoomServerPort = 443; - static bool isUrlCheckPass = false; /// URLS diff --git a/lib/provider/party_room.dart b/lib/provider/party_room.dart index ddf6a3a..6ef7446 100644 --- a/lib/provider/party_room.dart +++ b/lib/provider/party_room.dart @@ -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: + // 刷新成员状态,只更新对应成员的 status + state = state.copyWith( + room: state.room.copyWith( + members: state.room.members.map((member) { + if (member.gameUserId == event.member.gameUserId) { + return member.deepCopy()..status = event.member.status; + } + return member; + }).toList(), + ), + ); + break; case partroom.RoomEventType.OWNER_CHANGED: // 检查是否自己成为房主 final isOwner = event.member.gameUserId == state.auth.userInfo?.gameUserId; diff --git a/lib/ui/party_room/widgets/create_room_dialog.dart b/lib/ui/party_room/widgets/create_room_dialog.dart index bc2bc68..f5338db 100644 --- a/lib/ui/party_room/widgets/create_room_dialog.dart +++ b/lib/ui/party_room/widgets/create_room_dialog.dart @@ -127,7 +127,7 @@ class CreateRoomDialog extends HookConsumerWidget { ), const SizedBox(height: 16), InfoLabel( - label: '目标人数 (2-600)', + label: '目标人数 (2-100)', child: TextBox( controller: targetMembersController, placeholder: '输入目标人数', @@ -194,12 +194,12 @@ class CreateRoomDialog extends HookConsumerWidget { } final targetMembers = int.tryParse(targetMembersController.text); - if (targetMembers == null || targetMembers < 2 || targetMembers > 600) { + if (targetMembers == null || targetMembers < 2 || targetMembers > 100) { await showDialog( context: context, builder: (context) => ContentDialog( title: const Text('提示'), - content: const Text('目标人数必须在 2-600 之间'), + content: const Text('目标人数必须在 2-100 之间'), actions: [FilledButton(child: const Text('确定'), onPressed: () => Navigator.pop(context))], ), );