ChatRoom* ChatManagerImplementation::createRoomByFullPath(const String& path) { StringTokenizer tokenizer(path); tokenizer.setDelimeter("."); String game; tokenizer.getStringToken(game); ChatRoom* gameRoom = getGameRoom(game); if (gameRoom == NULL) return NULL; String channel; ChatRoom* room = gameRoom; while (tokenizer.hasMoreTokens()) { tokenizer.getStringToken(channel); if (room->getSubRoom(channel) == NULL) break; else room = room->getSubRoom(channel); } if (room == gameRoom) return NULL; if (room->isPrivate()) return NULL; ChatRoom* newRoom = createRoom(channel, room); room->addSubRoom(newRoom); return newRoom; }
void ChatManagerImplementation::initiateRooms() { gameRooms.setNullValue(NULL); ChatRoom* mainRoom = createRoom("SWG"); mainRoom->setPrivate(); gameRooms.put("SWG", mainRoom); core3Room = createRoom(server->getGalaxyName(), mainRoom); core3Room->setPrivate(); mainRoom->addSubRoom(core3Room); groupRoom = createRoom("group", core3Room); groupRoom->setPrivate(); core3Room->addSubRoom(groupRoom); guildRoom = createRoom("guild", core3Room); guildRoom->setPrivate(); core3Room->addSubRoom(guildRoom); auctionRoom = createRoom("Auction", core3Room); core3Room->addSubRoom(auctionRoom); generalRoom = createRoom("General", core3Room); core3Room->addSubRoom(generalRoom); }
void ChatManagerImplementation::initiatePlanetRooms() { // Planet Chat for (int i = 0; i < server->getZoneCount(); ++i) { ManagedReference<Zone*> zone = server->getZone(i); if (zone == NULL) continue; Locker locker(zone); ChatRoom* planetRoom = createRoom(zone->getZoneName(), core3Room); core3Room->addSubRoom(planetRoom); ChatRoom* planetaryChat = createRoom("Planet", planetRoom); planetRoom->addSubRoom(planetaryChat); zone->setChatRoom( planetaryChat ); } }