joinSolve method

void joinSolve(
  1. String inMsg,
  2. dynamic caller
)

Direct reach via joinM to clients placardM and clause data- Solve inMsg String to extract parts of command.

Implementation

void joinSolve(String inMsg, caller) {
  //  if caller is registered Mission:
  if (joinM.containsKey(caller)) {
    List<String> joinInfoL = [
      '**  PLAN: :join:Solve: has access to all #joined members data, and it',
      'resolves callers #FIND calls serching #clause #info and #motto fields',
      'by #LANG and #RULE keywords and mediates answer and act to caller.',
      ''
    ];

    print(
        '\n ----->--- :join:Solve: C: $caller  --->------------->---------');
    joinInfoL.forEach(print);
    print(tl.mapToListO(joinM));
    print('------------- info map: -----------------------');
    //  howTo NULL Map hklTry:  OK
    //  NO  joinM[caller].say!.forEach((k, v) => print('$k $v'));
    joinM[caller]!.say.forEach((k, v) => print('$k $v'));

    print('-------- name: motto:  -----------------------');
    //  howTo NULL   hklTry:
    print(joinM[caller]!.name);
    print(joinM[caller]!.motto);

    print('------------- report -----------------------');
    //  no details
    // howTo NULL   hklTry:
    List<String> _l = joinM[caller]!.report(':scoutSolve:', false);
    _l.forEach(print);
    print('--------placardM: ----------------------------');
    print(joinM[caller]!.placardM);
    print('--<------ :join:Solve:   done  ----<-------------<--------- \n');
  }
  //  get #findThisThing, announce it
  //  search joinM / forEach / clause-info-motto for: / findWord
  //  Match Word #time #area
  //  If found:  Sender & receiver/all are in same area
  //  Answer #Match joinM, to give them to do their own actions
  //  Add Joins and Binds to 2-week, year and connect-table
  //  Done this search.
}