def registerForChannel(self, channel): if channel in self._registedChannels: return self._registedChannels.add(channel) dg = Datagram() dg.add_server_control_header(CONTROL_SET_CHANNEL) dg.add_channel(channel) self.send(dg)
def unregisterForChannel(self, channel): if channel not in self._registedChannels: return self._registedChannels.remove(channel) dg = Datagram() dg.add_server_control_header(CONTROL_REMOVE_CHANNEL) dg.add_channel(channel) self.send(dg)
def createObjects(self): self.registerForChannel(self.ourChannel) from .Objects import ToontownDistrictAI, ToontownDistrictStatsAI, DistributedInGameNewsMgrAI, NewsManagerAI, FriendManagerAI from .TimeManagerAI import TimeManagerAI self.district = ToontownDistrictAI(self) self.district.name = 'Nutty River' self.generateWithRequired(self.district, OTP_DO_ID_TOONTOWN, OTP_ZONE_ID_DISTRICTS) post_remove = Datagram() post_remove.add_server_control_header(CONTROL_ADD_POST_REMOVE) post_remove.add_server_header([ STATESERVERS_CHANNEL, ], self.ourChannel, STATESERVER_SHARD_REST) post_remove.add_channel(self.ourChannel) self.send(post_remove) dg = Datagram() dg.add_server_header([STATESERVERS_CHANNEL], self.ourChannel, STATESERVER_ADD_AI_RECV) dg.add_uint32(self.district.do_id) dg.add_channel(self.ourChannel) self.send(dg) stats = ToontownDistrictStatsAI(self) stats.settoontownDistrictId(self.district.do_id) self.generateWithRequired(stats, OTP_DO_ID_TOONTOWN, OTP_ZONE_ID_DISTRICTS_STATS) dg = Datagram() dg.add_server_header([STATESERVERS_CHANNEL], self.ourChannel, STATESERVER_ADD_AI_RECV) dg.add_uint32(stats.do_id) dg.add_channel(self.ourChannel) self.send(dg) self.timeManager = TimeManagerAI(self) self.timeManager.generateWithRequired(OTP_ZONE_ID_MANAGEMENT) self.ingameNewsMgr = DistributedInGameNewsMgrAI(self) self.ingameNewsMgr.generateWithRequired(OTP_ZONE_ID_MANAGEMENT) self.newsManager = NewsManagerAI(self) self.newsManager.generateWithRequired(OTP_ZONE_ID_MANAGEMENT) self.friendManager = FriendManagerAI(self) self.friendManager.generateGlobalObject(OTP_ZONE_ID_MANAGEMENT) self.loadZones() self.district.b_setAvailable(True)
def on_upstream_connect(self): self.subscribe_channel(self._client, self.GLOBAL_ID) self.log.debug('Uberdog online') dg = self.dclass.ai_format_generate(self, self.GLOBAL_ID, self.GAME_ID, OTP_ZONE_ID_MANAGEMENT, STATESERVERS_CHANNEL, self.GLOBAL_ID, optional_fields=None) self.send_datagram(dg) dg = Datagram() dg.add_server_control_header(CONTROL_ADD_POST_REMOVE) dg.add_server_header([self.GLOBAL_ID], self.GLOBAL_ID, STATESERVER_OBJECT_DELETE_RAM) dg.add_uint32(self.GLOBAL_ID) self.send_datagram(dg)