80 lines
1.7 KiB
Java
80 lines
1.7 KiB
Java
package com.hivekion.room;
|
|
|
|
import com.hivekion.baseData.entity.Scenario;
|
|
import com.hivekion.room.bean.Room;
|
|
import com.hivekion.room.func.TaskAction;
|
|
import java.util.Map;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.concurrent.ScheduledExecutorService;
|
|
|
|
/**
|
|
* [类的简要说明]
|
|
* <p>
|
|
* [详细描述,可选]
|
|
* <p>
|
|
*
|
|
* @author LiDongYU
|
|
* @since 2025/7/22
|
|
*/
|
|
public class RoomManager {
|
|
|
|
private static final Map<String, Room> roomsMap = new ConcurrentHashMap<>();
|
|
|
|
public static void startRoom(String id, Scenario scenario, long time) {
|
|
Room room = new Room(id, scenario);
|
|
roomsMap.put(id, room);
|
|
room.start(time);
|
|
}
|
|
|
|
public static void stopRoom(String id) {
|
|
Room room = roomsMap.get(id);
|
|
if (room != null) {
|
|
room.stop();
|
|
}
|
|
}
|
|
|
|
public static void pauseRoom(String id) {
|
|
Room room = roomsMap.get(id);
|
|
if (room != null) {
|
|
room.pause();
|
|
}
|
|
}
|
|
|
|
public static void resumeRoom(String id) {
|
|
Room room = roomsMap.get(id);
|
|
if (room != null) {
|
|
room.resume();
|
|
}
|
|
}
|
|
|
|
public static void addAction(String id, long time, TaskAction action) {
|
|
Room room = roomsMap.get(id);
|
|
if (room != null) {
|
|
room.addAction(time, action);
|
|
}
|
|
}
|
|
|
|
public static long getRoomDuringTime(String id) {
|
|
Room room = roomsMap.get(id);
|
|
if (room != null) {
|
|
return room.getDuringTime();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public static void addFuture(ScheduledExecutorService future, String roomId) {
|
|
Room room = roomsMap.get(roomId);
|
|
if (room != null) {
|
|
room.addTaskReference(future);
|
|
}
|
|
}
|
|
|
|
public static boolean isRunning(String id) {
|
|
Room room = roomsMap.get(id);
|
|
if (room != null) {
|
|
return room.isRunning();
|
|
}
|
|
return false;
|
|
}
|
|
}
|