diff --git a/mystic/bbs_userchat.pas b/mystic/bbs_userchat.pas new file mode 100644 index 0000000..d34ecea --- /dev/null +++ b/mystic/bbs_userchat.pas @@ -0,0 +1,61 @@ +Unit bbs_UserChat; + +{$I M_OPS.PAS} + +Interface + +Procedure PageUserForChat; +Procedure OpenUserChat (Forced: Boolean; ToNode: Byte); + +Implementation + +Uses + m_Strings, + m_FileIO, + m_DateTime, + bbs_Core, + bbs_Common, + bbs_NodeInfo; + +Procedure PageUserForChat; +Var + Str : String; + ToNode : Byte; + ReqType : Byte = 8; +Begin + Repeat + Session.io.OutFull ('|CR|09Enter node to chat with (?/List): '); + + Str := Session.io.GetInput(3, 3, 12, ''); + + If Str = '?' Then Show_Whos_Online Else + If Str = 'Q' Then Exit Else Break; + Until False; + + ToNode := strS2I(Str); + + // pull chat record + + If (ToNode = Session.NodeNum) {or user unavailable} Then Begin + Session.io.OutFull('|CR|15That user is marked unavailable|CR|CR|PA'); + Exit; + End; + + If Session.User.Access(Config.ACSSysop) Then + If Session.io.GetYN('|CR|12Force user into chat? ', False) Then + ReqType := 9; + + FileErase (Config.DataPath + 'userchat.' + strI2S(ToNode)); + FileErase (Config.DataPath + 'userchat.' + strI2S(Session.NodeNum)); + + Session.io.OutFull('|CRSending chat request to ...|DE|DE|CR'); + + Send_Node_Message (ReqType, strI2S(ToNode) + ';C' + Str, 0); +End; + +Procedure OpenUserChat (Forced: Boolean; ToNode: Byte); +Begin + session.io.outfull('|CRstarting user2user chat|CR|PA'); +End; + +End. \ No newline at end of file