78 lines
1.8 KiB
Java
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);
|
|
}
|