| 147 | } |
| 148 | |
| 149 | void TeamClient::pullFullUpdate() { |
| 150 | if (m_fullUpdateRunning) |
| 151 | return; |
| 152 | m_fullUpdateRunning = true; |
| 153 | JsonObject request; |
| 154 | request["playerUuid"] = m_clientContext->playerUuid().hex(); |
| 155 | |
| 156 | invokeRemote("team.fetchTeamStatus", request, [this](Json response) { |
| 157 | m_fullUpdateRunning = false; |
| 158 | |
| 159 | m_teamUuid = response.optString("teamUuid").apply(construct<Uuid>()); |
| 160 | |
| 161 | if (m_teamUuid) { |
| 162 | m_teamLeader = Uuid(response.getString("leader")); |
| 163 | m_members.clear(); |
| 164 | |
| 165 | for (auto m : response.getArray("members")) { |
| 166 | Member member; |
| 167 | member.name = m.getString("name"); |
| 168 | member.uuid = Uuid(m.getString("uuid")); |
| 169 | member.entity = m.getInt("entity"); |
| 170 | member.healthPercentage = m.getFloat("health"); |
| 171 | member.energyPercentage = m.getFloat("energy"); |
| 172 | member.position[0] = m.getFloat("x"); |
| 173 | member.position[1] = m.getFloat("y"); |
| 174 | member.world = parseWorldId(m.getString("world")); |
| 175 | member.warpMode = WarpModeNames.getLeft(m.getString("warpMode")); |
| 176 | member.portrait = jsonToList<Drawable>(m.get("portrait")); |
| 177 | m_members.push_back(member); |
| 178 | } |
| 179 | std::sort(m_members.begin(), m_members.end(), [](Member const& a, Member const& b) { return a.name < b.name; }); |
| 180 | } else { |
| 181 | clearTeam(); |
| 182 | } |
| 183 | }); |
| 184 | } |
| 185 | |
| 186 | void TeamClient::statusUpdate() { |
| 187 | if (m_statusUpdateRunning) |
nothing calls this directly
no test coverage detected