Code: Select all
Double roomId = -1.0;
if (blah) {
try {
room = extension.currentZone.getRoomByName(roomName);
if (room == null) {
room = extension.helper.createRoom(extension.currentZone, params, user, false, true);
}
extension.helper.joinRoom(user, extension.lobby.getId(), room.getId(), false, "", false, true);
room.setUcountUpdates(false);
} catch (Exception e) {
e.printStackTrace();
}
roomId = new Double(room.getId());
}
recipients.add(user.getChannel());
response.put("_cmd", "joinGuildRoomResponse");
response.put("roomId", roomId);
extension.sendResponse(response, -1, null, recipients);
It is pretty straightforward. If you have room for that guild, join it. If you don't have, create and join it. The problem is that this piece of code doesn't return extension response to the user. When users make any other request to the server it is returned ok, except this one.
I managed to fix it setting "sendUpdate" param of createRoom to true - the client start recieving joinGuildResponse. But I need sendUpdate param set to false, because otherwise all users start getting roomAdded - with 10k guilds and 15k users it is pretty laggy.
So is that a bug, and how can I what can I do about that?