Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Critical Critical
    • Resolution: Not A Bug
    • Affects Version/s: 0.7.0
    • Fix Version/s: 0.7.0
    • Component/s: Agents
    • Labels:
      None
    • Severity:
      Showstopper
    • Environment:
      Mono / OSX

      Description

      I tried create a tiny chat app with openmetaverse and mono, and came into a problem,

      when I used 'RequestJoinGroupChat(groupID)', 'OnGroupChatJoin' wasn't responding.

      However I could get the 'sessionID' generated from the 'RequestJoinGroupChat(groupID)' I used, in the

      'GroupChatSessions'.

      And I also could get other chats in Group Chat through 'onInstantMessage'.

      Btw, I'm not able to send message to my group chat with 'InstantMessageGroup(uuid ,string)' as well.

      Could anyone lend me a hand?

        Activity

        Hide
        Marco Scooter added a comment - - edited

        try the callback ...
        void SelfGroupChatJoined(object sender, GroupChatJoinedEventArgs e)

        instead of ...

        'OnGroupChatJoin'

        also use the ....
        Client.Self.GroupChatSessions
        dictionary

        Client.Self.InstantMessageGroup(uuid ,string);
        should work, atleast it does under windows.

        as for groupmessage mixed inbetween 'onInstantMessage'.

        private Dictionary<UUID, Group> _groupInfo = new Dictionary<UUID, Group>();
        void GroupsCurrentGroups(object sender, CurrentGroupsEventArgs e)
        {
        _groupInfo.Clear();
        _groupInfo = e.Groups;
        //foreach (var group in _groupInfo)
        //

        { // MessageBox.Show(group.Key.ToString() + " :: " + group.Value.Name); //}

        }

        void SelfIm(object sender, InstantMessageEventArgs e)
        {
        if (e.IM.Dialog != InstantMessageDialog.MessageFromAgent) return;
        lock (_groupInfo)
        {
        if (_groupInfo.ContainsKey(e.IM.IMSessionID))

        { // it's group IM var tempgroupname = _groupInfo[e.IM.IMSessionID].Name; }

        else
        {
        // it's a regular instant message
        switch (e.IM.Dialog)

        { case InstantMessageDialog.MessageFromAgent: //your code here break; case InstantMessageDialog.StartTyping: //your code here, still needs some extra logic here break; case InstantMessageDialog.StopTyping: //your code here, still needs some extra logic here break; }

        }
        }

        what doesn't work correct, atleast i for me or i'm doing something wrong.

        _Client.Self.RequestLeaveGroupChat(GroupID);

        and the callbacks

        void SelfGroupChatLeft(object sender, GroupChatLeftEventArgs e)

        { LogText("'SelfGroupChatLeft' Closed: " + e.SessionID, Color.FromKnownColor(KnownColor.ControlText)); }

        void SelfChatSessionMemberLeft(object sender, ChatSessionMemberLeftEventArgs e)

        { LogText("'SelfChatSessionMemberLeft' Closed: " + e.SessionID, Color.FromKnownColor(KnownColor.ControlText)); }

        none of does trigger, but you can't send groupim anymore, it work, but only partially .... seams.

        hope you can figger it out now.

        regards,

        Natural

        Show
        Marco Scooter added a comment - - edited try the callback ... void SelfGroupChatJoined(object sender, GroupChatJoinedEventArgs e) instead of ... 'OnGroupChatJoin' also use the .... Client.Self.GroupChatSessions dictionary Client.Self.InstantMessageGroup(uuid ,string); should work, atleast it does under windows. as for groupmessage mixed inbetween 'onInstantMessage'. private Dictionary<UUID, Group> _groupInfo = new Dictionary<UUID, Group>(); void GroupsCurrentGroups(object sender, CurrentGroupsEventArgs e) { _groupInfo.Clear(); _groupInfo = e.Groups; //foreach (var group in _groupInfo) // { // MessageBox.Show(group.Key.ToString() + " :: " + group.Value.Name); //} } void SelfIm(object sender, InstantMessageEventArgs e) { if (e.IM.Dialog != InstantMessageDialog.MessageFromAgent) return; lock (_groupInfo) { if (_groupInfo.ContainsKey(e.IM.IMSessionID)) { // it's group IM var tempgroupname = _groupInfo[e.IM.IMSessionID].Name; } else { // it's a regular instant message switch (e.IM.Dialog) { case InstantMessageDialog.MessageFromAgent: //your code here break; case InstantMessageDialog.StartTyping: //your code here, still needs some extra logic here break; case InstantMessageDialog.StopTyping: //your code here, still needs some extra logic here break; } } } what doesn't work correct, atleast i for me or i'm doing something wrong. _Client.Self.RequestLeaveGroupChat(GroupID); and the callbacks void SelfGroupChatLeft(object sender, GroupChatLeftEventArgs e) { LogText("'SelfGroupChatLeft' Closed: " + e.SessionID, Color.FromKnownColor(KnownColor.ControlText)); } void SelfChatSessionMemberLeft(object sender, ChatSessionMemberLeftEventArgs e) { LogText("'SelfChatSessionMemberLeft' Closed: " + e.SessionID, Color.FromKnownColor(KnownColor.ControlText)); } none of does trigger, but you can't send groupim anymore, it work, but only partially .... seams. hope you can figger it out now. regards, Natural
        Hide
        Peter W added a comment - - edited

        Thank Marco Scooter

        And I found that my stupid

        When I set up

        Client.Settings.ENABLE_CAPS = true

        'OnGroupChatJoin' can work

        And Client.Self.InstantMessageGroup (uuid, string) is also

        It seems there openmetaverse is no problem

        Show
        Peter W added a comment - - edited Thank Marco Scooter And I found that my stupid When I set up Client.Settings.ENABLE_CAPS = true 'OnGroupChatJoin' can work And Client.Self.InstantMessageGroup (uuid, string) is also It seems there openmetaverse is no problem

          People

          • Assignee:
            Unassigned
            Reporter:
            Peter W
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: