Ejemplo n.º 1
0
 public void TryEnterRoom(MucRoomMember member, Presence presence)
 {
     if (MucHelpers.IsJoinRequest(presence))
     {
         if (CanEnterRoom(member, presence))
         {
             if (RoomSettings.IsNew)
             {
                 member.Affiliation = Affiliation.owner;
                 member.Role        = Role.moderator;
             }
             //enter
             members.Add(member);
             RoomSettings.UpdateMemberInfo(member.RealJid, member.Affiliation, member.Role);                    //Update settings on enter
             //subscribe to events
             SetMemberEvents(member);
             MemberEnter(member);
         }
     }
     else
     {
         ErrorPresence(presence, ErrorCondition.BadRequest);
         member.Send(presence);
     }
 }
Ejemplo n.º 2
0
 public override void HandlePresence(XmppStream stream, Presence presence, XmppHandlerContext context)
 {
     //Presence to open new room
     if (MucHelpers.IsJoinRequest(presence))
     {
         //Register
         Service.CreateRoom(new Jid(presence.To.Bare), null);
         Service.HandlerManager.ProcessStreamElement(presence, stream);//Forward to room
     }
     else
     {
         //Return error
         presence.Type  = PresenceType.error;
         presence.Error = new Error(ErrorType.cancel, ErrorCondition.NotAllowed);
         presence.SwitchDirection();
         context.Sender.SendTo(stream, presence);
     }
 }