PeerID 16/n: BitchatPeer / PeerInfo / TransportPeer (#755)

* PeerID 15/n: Bitchat Message & Packet accept in init

* PeerID 16/n: BitchatPeer / PeerInfo / TransportPeer
This commit is contained in:
Islam
2025-10-06 17:17:57 +02:00
committed by GitHub
parent 5f44c56a90
commit 10e3f574ab
9 changed files with 81 additions and 83 deletions
+4 -4
View File
@@ -4,10 +4,10 @@ import Foundation
struct PeerDisplayNameResolver {
/// Computes display names with a `#xxxx` suffix for connected peers when nickname collisions occur.
/// - Parameters:
/// - peers: Array of tuples (id, nickname, isConnected).
/// - peers: Array of tuples (peerID, nickname, isConnected).
/// - selfNickname: The local user's current nickname, included in collision counts to suffix remotes matching it.
/// - Returns: Map of peerID -> displayName.
static func resolve(_ peers: [(id: String, nickname: String, isConnected: Bool)], selfNickname: String) -> [PeerID: String] {
static func resolve(_ peers: [(peerID: PeerID, nickname: String, isConnected: Bool)], selfNickname: String) -> [PeerID: String] {
// Count collisions among connected peers and include our own nickname
var counts: [String: Int] = [:]
for p in peers where p.isConnected {
@@ -19,9 +19,9 @@ struct PeerDisplayNameResolver {
for p in peers {
var name = p.nickname
if p.isConnected, (counts[p.nickname] ?? 0) > 1 {
name += "#" + String(p.id.prefix(4))
name += "#" + String(p.peerID.id.prefix(4))
}
result[PeerID(str: p.id)] = name
result[p.peerID] = name
}
return result
}