def __updatePrebattleInvites(self, prbInvites): receiver = BigWorld.player().name receiverDBID = getPlayerDatabaseID() receiverClanAbbrev = g_lobbyContext.getClanAbbrev(self.__clanInfo) added = [] changed = [] deleted = [] modified = False rosterGetter = self.users.getUser for (prebattleID, peripheryID), data in prbInvites.iteritems(): inviteID = self._makeInviteID(prebattleID, peripheryID) if data is None: if self._delInvite(inviteID): modified = True deleted.append(inviteID) continue invite = PrbInviteWrapper(id=inviteID, receiver=receiver, receiverDBID=receiverDBID, receiverClanAbbrev=receiverClanAbbrev, peripheryID=peripheryID, **data) inList = inviteID in self.__receivedInvites if not inList: if self._addInvite(invite, rosterGetter): modified = True added.append(inviteID) elif self._updateInvite(invite, rosterGetter): modified = True changed.append(inviteID) if modified: self.onReceivedInviteListModified(added, changed, deleted) return
def getPermissions(self, memberDbID = None): if memberDbID is None: memberDbID = getPlayerDatabaseID() if self.hasMember(memberDbID): return MemberPermissions(self.__clubDescr.members[memberDbID]) else: return DefaultMemberPermissions()
def clanRole(self): user = self.usersStorage.getUser(getPlayerDatabaseID()) if user: role = user.getClanRole() else: role = 0 return role
def __init__(self): StaticFormationStaffViewMeta.__init__(self) UsersInfoHelper.__init__(self) ClubPage.__init__(self) self.__openCloseCallbackID = None self.__viewerDbID = getPlayerDatabaseID() self.addListener(events.CoolDownEvent.CLUB, self.__handleClubCooldown, scope=EVENT_BUS_SCOPE.LOBBY) return
def _updateInvites(self, invites): self._contactsState |= _CONTACTS_LIST.INVITES prevInvites = self._invites self._invites = {} for sendingTime, inviterDbID, clubDbID, status in invites: invite = ClubInvite(clubDbID, getPlayerDatabaseID(), inviterDbID, sendingTime, status) self._invites[invite.getID()] = invite self.__processInvitations(prevInvites)
def assignSlotRequest(self, slotIndex, playerId): if playerId == -1: if self.unitFunctional.getPlayerInfo().isCreator(): LOG_DEBUG('Request to assign is ignored. Creator can not move to another slots') return playerId = account_helpers.getPlayerDatabaseID() elif not self.isPlayerInUnit(playerId): return self.requestToAssign(playerId, slotIndex)
def validate(self, update = False): items = g_itemsCache.items invVehicles = items.getVehicles(REQ_CRITERIA.INVENTORY) vehCDs = invVehicles.keys() pInfo = self.__functional.getPlayerInfo() if pInfo.isInSlot: _, unit = self.__functional.getUnit() roster = unit.getRoster() if not roster.checkVehicleList(vehCDs, pInfo.slotIdx) and not pInfo.isCreator(): self.__functional.request(unit_ctx.AssignUnitCtx(pInfo.dbID, UNIT_SLOT.REMOVE, 'prebattle/assign')) else: vInfo = self.__functional.getVehicleInfo() if vInfo.vehTypeCD and vInfo.vehTypeCD not in vehCDs: self.__functional.request(unit_ctx.SetVehicleUnitCtx(vehInvID=INV_ID_CLEAR_VEHICLE, waitingID='prebattle/change_settings')) elif update: self.__functional.unit_onUnitPlayerVehDictChanged(getPlayerDatabaseID()) elif update: self.__functional.unit_onUnitPlayerVehDictChanged(getPlayerDatabaseID())
def _updateApps(self, apps): self._apps = {} for clubDbID, sendingTime, comment, status in apps: app = ClubApplication(clubDbID, getPlayerDatabaseID(), comment, sendingTime, status) self._apps[app.getID()] = app if not self._isSynced: self.__notify('onAccountClubAppsInited', self._apps.values()) else: self.__notify('onAccountClubAppsChanged', self._apps.values())
def _populate(self): super(PrbSendInvitesWindow, self)._populate() self.addListener(events.CoolDownEvent.PREBATTLE, self.__handleSetPrebattleCoolDown, scope=EVENT_BUS_SCOPE.LOBBY) self.as_setWindowTitleS(i18n.makeString('#dialogs:sendInvites/{0:>s}/title'.format(self._prbName))) self.as_setDefaultOnlineFlagS(self._onlineMode) self._searchDP = search_data_providers.SearchUsersDataProvider(exclude=[account_helpers.getPlayerDatabaseID()]) self._searchDP.init(self.as_getSearchDPS(), [self]) self._friendsDP = users_data_providers.FriendsDataProvider() self._friendsDP.init(self.as_getFriendsDPS(), self._onlineMode) self._clanDP = users_data_providers.ClanMembersDataProvider() self._clanDP.init(self.as_getClanDPS(), self._onlineMode)
def getRoles(self, pDatabaseID = None): result = 0 if self._settings is None: return result else: if pDatabaseID is None: pDatabaseID = account_helpers.getPlayerDatabaseID() roles = self._settings['roles'] if pDatabaseID in roles: result = roles[pDatabaseID] return result
def getUnitFullData(self, unitIdx = None): (dbID, rosters,) = (getPlayerDatabaseID(), self.getRosters()) pInfo = unit_items.PlayerUnitInfo.fromPrbInfo(self.getPlayerInfo()) accounts = rosters[PREBATTLE_ROSTER.ASSIGNED_IN_TEAM1] unitState = self._buildState() unitStats = self._buildStats(accounts) slotsIter = self._getSlotsIterator(accounts) return (unitState, unitStats, pInfo, slotsIter)
def _buildReceivedInvitesList(self, invitesData): self.__isInvitesListBuild = True self.__receivedInvites.clear() self.__unreadInvitesCount = 0 receiver = BigWorld.player().name receiverDBID = getPlayerDatabaseID() receiverClanAbbrev = g_lobbyContext.getClanAbbrev(self.__clanInfo) userGetter = self.users.getUser for (prebattleID, peripheryID), data in invitesData.iteritems(): inviteID = self._makeInviteID(prebattleID, peripheryID) invite = PrbInviteWrapper(id=inviteID, receiver=receiver, receiverDBID=receiverDBID, receiverClanAbbrev=receiverClanAbbrev, peripheryID=peripheryID, **data) self._addInvite(invite, userGetter)
def _buildReceivedInvitesList(self, invitesData): if self.__inited & PRB_INVITES_INIT_STEP.DATA_BUILD == 0: self.__inited |= PRB_INVITES_INIT_STEP.DATA_BUILD self.__receivedInvites.clear() self.__unreadInvitesCount = 0 receiver = getattr(BigWorld.player(), 'name', '') receiverDBID = getPlayerDatabaseID() receiverClanAbbrev = g_lobbyContext.getClanAbbrev(self.__clanInfo) userGetter = self.users.getUser for (prebattleID, peripheryID), data in invitesData.iteritems(): inviteID = self._makeInviteID(prebattleID, peripheryID) invite = PrbInviteWrapper(id=inviteID, receiver=receiver, receiverDBID=receiverDBID, receiverClanAbbrev=receiverClanAbbrev, peripheryID=peripheryID, prebattleID=prebattleID, **data) self._addInvite(invite, userGetter)
def _populate(self): super(PrbSendInvitesWindow, self)._populate() self.addListener(events.CoolDownEvent.PREBATTLE, self.__handleSetPrebattleCoolDown, scope=EVENT_BUS_SCOPE.LOBBY) self.as_setWindowTitleS(i18n.makeString(DIALOGS.SENDINVITES_COMMON_TITLE)) self.as_setDefaultOnlineFlagS(self._onlineMode) self.as_showClanOnlyS(self._showClanOnly) self._searchDP = search_data_providers.SearchUsersDataProvider(exclude=[account_helpers.getPlayerDatabaseID()]) self._searchDP.init(self.as_getSearchDPS(), [self]) self._friendsDP = users_data_providers.FriendsDataProvider() self._friendsDP.init(self.as_getFriendsDPS(), self._onlineMode) self._clanDP = users_data_providers.ClanMembersDataProvider() self._clanDP.init(self.as_getClanDPS(), self._onlineMode) self._sendInvites()
def _populate(self): super(PrbSendInvitesWindow, self)._populate() self.addListener(events.CoolDownEvent.PREBATTLE, self.__handleSetPrebattleCoolDown, scope=EVENT_BUS_SCOPE.LOBBY) self.as_setWindowTitleS( i18n.makeString('#dialogs:sendInvites/{0:>s}/title'.format( self._prbName))) self.as_setDefaultOnlineFlagS(self._onlineMode) self._searchDP = search_data_providers.SearchUsersDataProvider( exclude=[account_helpers.getPlayerDatabaseID()]) self._searchDP.init(self.as_getSearchDPS(), [self]) self._friendsDP = users_data_providers.FriendsDataProvider() self._friendsDP.init(self.as_getFriendsDPS(), self._onlineMode) self._clanDP = users_data_providers.ClanMembersDataProvider() self._clanDP.init(self.as_getClanDPS(), self._onlineMode)
def getRoles(self, pDatabaseID = None, clanDBID = None, team = None): result = 0 if self._settings is None: return result if pDatabaseID is None: pDatabaseID = account_helpers.getPlayerDatabaseID() roles = self._settings['roles'] if pDatabaseID in roles: result = roles[pDatabaseID] if not result and clanDBID: roles = self._settings['clanRoles'] if clanDBID in roles: result = roles[clanDBID] if not result and team: roles = self._settings['teamRoles'] if team in roles: result = roles[team] return result
def __getButtonInfo(self, club): dbID = account_helpers.getPlayerDatabaseID() if club.hasMember(dbID): return self.__getMemberBtnInfo(club) else: return self.__getNotMemberBtnInfo(club)
def isCurrentPlayer(self): if self.dbID > 0: result = self.dbID == getPlayerDatabaseID() else: result = self.accID == getPlayerID() return result
def isCurrentPlayer(self): return self.dbID == getPlayerDatabaseID()
def canAssignToSlot(self, dbID): return self._roles & UNIT_ROLE.ADD_REMOVE_MEMBERS > 0 or dbID == account_helpers.getPlayerDatabaseID( )
def __makeAchievements(self, dossier, club): achievements = dossier.getTotalStats().getAchievements() mergedList = list(itertools.chain(*achievements)) isForClubMember = club.getMember(getPlayerDatabaseID()) is not None return AchievementsUtils.packAchievementList(mergedList, dossier.getDossierType(), dumpDossier(dossier), isForClubMember, True)
def _getInfo4AccountPlayer(): return (account_helpers.getPlayerDatabaseID(), BigWorld.player().name, None)
def __init__(self, success = None): super(PlayerFortRequester, self).__init__(success) self._databaseID = getPlayerDatabaseID() self._individualRqIDs = set()
def getMember(self, memberDbID = None): memberDbID = memberDbID or getPlayerDatabaseID() if self.hasMember(memberDbID): return self.__makeMemberItem(memberDbID, self.__clubDescr.members[memberDbID]) else: return None
def _takeLeadership(self): yield self.prbDispatcher.sendUnitRequest(unit_ctx.GiveLeadershipCtx(getPlayerDatabaseID(), 'prebattle/takeLeadership'))
def canAssignToSlot(self, dbID): return self._roles & UNIT_ROLE.ADD_REMOVE_MEMBERS > 0 or dbID == account_helpers.getPlayerDatabaseID()
def _getInfo4AccountPlayer(): return (account_helpers.getPlayerDatabaseID(), getPlayerName(), None)
def _getAccountDatabaseID(): return account_helpers.getPlayerDatabaseID()
def isPromoAutoViewsEnabled(cls): return getPlayerDatabaseID() % cls.PROMO_AUTO_VIEWS_TEST_VALUE != 0 and g_lobbyContext.getServerSettings().isPromoAutoViewsEnabled()