@java.lang.Override
    public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof NearbyUser other)) {
            return super.equals(obj);
        }

        if (getUserId() != other.getUserId()) {
            return false;
        }
        if (hasDeviceType() != other.hasDeviceType()) {
            return false;
        }
        if (hasDeviceType()) {
            if (deviceType_ != other.deviceType_) {
                return false;
            }
        }
        if (hasInfo() != other.hasInfo()) {
            return false;
        }
        if (hasInfo()) {
            if (!getInfo().equals(other.getInfo())) {
                return false;
            }
        }
        if (hasDistance() != other.hasDistance()) {
            return false;
        }
        if (hasDistance()) {
            if (getDistance() != other.getDistance()) {
                return false;
            }
        }
        if (hasLocation() != other.hasLocation()) {
            return false;
        }
        if (hasLocation()) {
            if (!getLocation().equals(other.getLocation())) {
                return false;
            }
        }
        return getCustomAttributesList().equals(other.getCustomAttributesList())
                && getUnknownFields().equals(other.getUnknownFields());
    }
<code>repeated .im.turms.proto.Value custom_attributes = 15;</code>
turms-server-common/src/main/java/im/turms/server/common/access/client/dto/model/user/NearbyUser.java