Files
webgame-backend/src/main/java/com/webgame/webgamebackend/service/GameService.java
2026-06-22 10:09:40 +08:00

78 lines
1.8 KiB
Java

package com.webgame.webgamebackend.service;
import com.webgame.webgamebackend.common.dto.game.*;
/**
* 游戏服务接口
*/
public interface GameService {
/**
* 获取游戏列表
*
* @return 所有启用的游戏信息
*/
GameListResponse getGameList();
/**
* 获取指定游戏的房间列表
*
* @param gameId 游戏标识
* @param status 状态筛选(可选),不传返回所有未结束的房间
* @return 房间列表
*/
RoomListResponse getRoomList(String gameId, String status);
/**
* 创建房间
*
* @param request 创建房间请求
* @param creatorId 房主 account_id
* @return 新建的房间信息
*/
CreateRoomResponse createRoom(CreateRoomRequest request, String creatorId);
/**
* 加入房间
*
* @param request 加入房间请求
* @param userId 用户 account_id
* @return 房间信息
*/
RoomItemResponse joinRoom(JoinRoomRequest request, String userId);
/**
* 离开房间
*
* @param roomId 房间 ID
* @param userId 用户 account_id
*/
void leaveRoom(String roomId, String userId);
/**
* 房主踢出玩家
*
* @param roomId 房间 ID
* @param ownerId 房主 account_id
* @param targetUserId 目标用户 account_id
*/
void kickPlayer(String roomId, String ownerId, String targetUserId);
/**
* 切换准备状态
*
* @param roomId 房间 ID
* @param userId 用户 account_id
* @return 切换后的准备状态
*/
boolean toggleReady(String roomId, String userId);
/**
* 开始游戏
*
* @param roomId 房间 ID
* @param ownerId 房主 account_id
*/
void startGame(String roomId, String ownerId);
}