
generic.online.game.server.gogs.model.rooms.OperationsInitializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of generic-online-game-server Show documentation
Show all versions of generic-online-game-server Show documentation
Simple tool to create online game server.
The newest version!
package generic.online.game.server.gogs.model.rooms;
import com.corundumstudio.socketio.ClientOperations;
import com.corundumstudio.socketio.SocketIOServer;
import generic.online.game.server.gogs.api.auth.model.User;
import java.util.List;
import java.util.Set;
import java.util.Timer;
import java.util.stream.Collectors;
public interface OperationsInitializer {
static Operations initialize(RoomInitializerData data, String namespace,
SocketIOServer server, List rooms) {
return new Operations() {
@Override
public void closeRoom() {
String roomId = data.getRoomId();
data.getRoomTimers().forEach(Timer::cancel);
data.getClientsMap().values().forEach(ClientOperations::disconnect);
server.removeNamespace(namespace + "/" + roomId);
rooms.remove(
rooms.stream().filter(r -> r.getRoomId().equals(roomId)).findFirst().orElse(null)
);
}
@Override
public Timer closeRoomAfterTime(int seconds) {
return new CloseRoomTimer(this).startCounting(seconds);
}
@Override
public Set connectedUsers() {
return data.getClientsMap().values()
.stream()
.map(u -> (User) u.get("user"))
.collect(Collectors.toSet());
}
};
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy