Exemplo n.º 1
0
 public FormConferention(string _roomJid, string _roomName, bool _savingHistory, bool _persistRoom, string _roomDesc = "", List<string> users = null )
 {
     InitializeComponent();
     roomJid = new Jid(_roomJid);
     roomName = _roomName;
     this.Text = _roomName;
     roomDesc = _roomDesc;
     mainJid = Settings.jid;
     nickname = Settings.nickname;
     xmpp = Settings.xmpp;
     muc = new MucManager(xmpp);
     savingHistory = _savingHistory ? "1" : "0";
     persistRoom = _persistRoom ? "1" : "0";
     //muc.AcceptDefaultConfiguration(roomJid, new IqCB(OnGetFieldsResult));
     muc.CreateReservedRoom(roomJid);
     muc.GrantOwnershipPrivileges(roomJid, new Jid(mainJid));
     muc.JoinRoom(roomJid, nickname);
     initMucConfig();
     xmpp.MesagageGrabber.Add(roomJid, new BareJidComparer(), new MessageCB(MessageCallback), null);
     xmpp.PresenceGrabber.Add(roomJid, new BareJidComparer(), new PresenceCB(PresenceCallback), null);
     muc.Invite(users.ConvertAll<Jid>(
         delegate(string jid)
         {
             return new Jid(jid);
         }
     ).ToArray(), roomJid, "Вы приглашены в конференцию Конф.");
 }
Exemplo n.º 2
0
        public XmppChatRoom(string name, string jid, XmppClientConnection client)
        {
            m_client = client;
             m_chat = new MucManager(m_client);

             Name = name;
             Jid = jid;
        }
Exemplo n.º 3
0
 public RoomManager(Connection connection)
 {
     _logger = ObjectFactory.GetInstance<ILogger<RoomManager>>();
     _connection = connection;
     _mucManager  = new MucManager (_connection);
     _messageGrabber = new MessageGrabber(connection);
     _presenceGrabber = new PresenceGrabber(connection);
     _callBackContainer = new CallBackContainer();
 }
Exemplo n.º 4
0
        public AgsXmppBackend(IConfiguration config)
        {
            this.config = config;

            this.xmpp = new XmppClientConnection(this.config.Jid.ToAgsJid(), this.config.Password);
            this.muc = new MucManager(xmpp);

            this.xmpp.OnLogin += OnLogin;
            this.xmpp.OnMessage +=OnMessage;
        }
Exemplo n.º 5
0
 public FormConferention(string _roomJid)
 {
     InitializeComponent();
     roomJid = new Jid(_roomJid);
     xmpp = Settings.xmpp;
     mainJid = Settings.jid;
     nickname = Settings.nickname;
     muc = new MucManager(xmpp);
     muc.JoinRoom(roomJid, nickname);
     xmpp.MesagageGrabber.Add(roomJid, new BareJidComparer(), new MessageCB(MessageCallback), null);
     xmpp.PresenceGrabber.Add(roomJid, new BareJidComparer(), new PresenceCB(PresenceCallback), null);
 }
Exemplo n.º 6
0
        private void OnLogin(object sender)
        {
            var mucManager = new MucManager(_client);

            var rooms = _robot.Settings.Get("HipChatRooms").Split(',');

            var roomJids = rooms.Select(room => new Jid(room + "@" + _robot.Settings.Get("HipChatConferenceServer")));

            foreach (var jid in roomJids)
            {
                mucManager.JoinRoom(jid, _robot.Settings.Get("HipChatRoomNick"));
                JoinedRoomJids.Add(jid);
            }
        }
Exemplo n.º 7
0
 public EndOfGamePage(EndOfGameStats statistics)
 {
     InitializeComponent();
     RenderStats(statistics);
     Client.SwitchPage(Client.MainPage);
     Client.runonce = false;
     Client.ChampId = -1;
     RoomJid = Client.GetChatroomJid(statistics.RoomName, statistics.RoomPassword, false);
     
     newRoom = new MucManager(Client.XmppConnection);
     Client.XmppConnection.OnMessage += XmppConnection_OnMessage;
     Client.XmppConnection.OnPresence += XmppConnection_OnPresence;
     Client.RiotConnection.MessageReceived += RiotConnection_MessageReceived;
     newRoom.AcceptDefaultConfiguration(new Jid(RoomJid));
     newRoom.JoinRoom(new Jid(RoomJid), Client.LoginPacket.AllSummonerData.Summoner.Name);
 }
Exemplo n.º 8
0
 public GroupChatItem(string id, string title)
 {
     InitializeComponent();
     ChatId = id;
     PlayerLabelName.Content = title;
     GroupTitle = title;
     if (ChatId == null)
         return;
     try
     {
         newRoom = new MucManager(Client.XmppConnection);
     }
     catch
     {
         return;
     }
     Client.XmppConnection.OnPresence += XmppConnection_OnPresence;
     Client.XmppConnection.OnMessage += XmppConnection_OnMessage;
     newRoom.AcceptDefaultConfiguration(new Jid(ChatId));
     roomName = ChatId;
     newRoom.JoinRoom(new Jid(ChatId), Client.LoginPacket.AllSummonerData.Summoner.Name);
 }
Exemplo n.º 9
0
        public override Task Run()
        {
            _loginTcs = new TaskCompletionSource<bool>();
            Task<bool> connect = _loginTcs.Task;
            
            if (_xmppConnection != null) 
            {
                _xmppConnection.Close();
                _xmppConnection = null;
            }
            _xmppConnection = new XmppClientConnection
            {
                Server = _host,
                ConnectServer = _connectHost,
                AutoResolveConnectServer = true,
                Username = _username,
                Password = _password
            };
            if (_port > 0) _xmppConnection.Port = _port;

            _xmppConnection.KeepAlive = true;

            _xmppConnection.OnLogin += OnLogin;
            _xmppConnection.OnError += OnError;
            _xmppConnection.OnMessage += OnMessage;
            _xmppConnection.OnPresence += XmppConnectionOnOnPresence;
            _xmppConnection.OnRosterItem += OnClientRosterItem;
            _xmppConnection.OnXmppConnectionStateChanged += OnXmppConnectionStateChanged;

            Task.Factory.StartNew(() =>
            {
                _xmppConnection.Open();
                Thread.Sleep(CONNECT_TIMEOUT);
                _loginTcs.TrySetResult(false);
            });

            if (!connect.Result)
                throw new TimeoutException("XMPP adapter timed out while trying to login");
            else
            {
                MucManager muc = new MucManager(_xmppConnection);
                foreach (var room in _rooms)
                {
                    try
                    {
                        muc.JoinRoom(string.Format("{0}@{1}", room, _confServer), _username, _password, true);
                        Logger.Info(string.Format("Successfully joined room {0}", room));
                        Rooms.Add(string.Format("{0}@{1}", room, _confServer));
                    }
                    catch (Exception ex)
                    {
                        Logger.Error("Failed to join room - " + ex.Message);
                    }
                }

                foreach (var logroom in _logRooms)
                {
                    try
                    {
                        muc.JoinRoom(string.Format("{0}@{1}", logroom, _confServer), _username, _password, true);
                        Logger.Info(string.Format("Successfully joined room {0}", logroom));
                        LogRooms.Add(string.Format("{0}@{1}", logroom, _confServer));
                    }
                    catch (Exception ex)
                    {
                        Logger.Error("Failed to join room - " + ex.Message);
                    }
                }
            }

            return _loginTcs.Task;
        }
Exemplo n.º 10
0
        /// <summary>
        /// Leaves the specified room.
        /// </summary>
        /// <param name="room">The room.</param>
        public bool Leave(Room room)
        {
            var manager = new MucManager(connection);

            var jid = new Jid(room.JabberId, "conf.hipchat.com", string.Empty);

            manager.LeaveRoom(jid, current.Name);

            Out.WriteLine("Left room: {0}.", room.Name);

            return true;
        }
        private void Lobby_OnMessageReceived(object sender, object message)
        {
            if (message.GetType() != typeof(GameDTO))
                return;

            var dto = message as GameDTO;
            Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(async () =>
            {
                if (!HasConnectedToChat)
                {
                    //Run once
                    BaseMap map = BaseMap.GetMap(dto.MapId);
                    MapLabel.Content = map.DisplayName;
                    ModeLabel.Content = Client.TitleCaseString(dto.GameMode);
                    GameTypeConfigDTO configType =
                        Client.LoginPacket.GameTypeConfigs.Find(x => x.Id == dto.GameTypeConfigId);
                    TypeLabel.Content = GetGameMode(configType.Id);
                    SizeLabel.Content = dto.MaxNumPlayers / 2 + "v" + dto.MaxNumPlayers / 2;

                    HasConnectedToChat = true;
                    string obfuscatedName =
                        Client.GetObfuscatedChatroomName(dto.Name.ToLower() + Convert.ToInt32(dto.Id),
                            ChatPrefixes.Arranging_Practice);
                    string Jid = Client.GetChatroomJid(obfuscatedName, dto.RoomPassword, false);
                    newRoom = new MucManager(Client.XmppConnection);
                    Client.XmppConnection.OnMessage += XmppConnection_OnMessage;
                    Client.XmppConnection.OnPresence += XmppConnection_OnPresence;
                    jid = new Jid(dto.RoomName);
                    newRoom.AcceptDefaultConfiguration(jid);
                    newRoom.JoinRoom(jid, Client.LoginPacket.AllSummonerData.Summoner.Name, dto.RoomPassword);
                }
                switch (dto.GameState)
                {
                    case "TEAM_SELECT":
                        {
                            OptomisticLock = dto.OptimisticLock;
                            LaunchedTeamSelect = false;
                            BlueTeamListView.Items.Clear();
                            PurpleTeamListView.Items.Clear();

                            var allParticipants = new List<Participant>(dto.TeamOne.ToArray());
                            allParticipants.AddRange(dto.TeamTwo);

                            int i = 0;
                            bool purpleSide = false;

                            foreach (Participant playerTeam in allParticipants)
                            {
                                i++;
                                var lobbyPlayer = new CustomLobbyPlayer();
                                //var botPlayer = new BotControl();
                                if (playerTeam is PlayerParticipant)
                                {
                                    var player = playerTeam as PlayerParticipant;
                                    lobbyPlayer = RenderPlayer(player, dto.OwnerSummary.SummonerId == player.SummonerId);
                                    ///BotParticipant botParticipant = playerTeam as BotParticipant;
                                    //botPlayer = RenderBot(botParticipant);
                                    IsOwner = dto.OwnerSummary.SummonerId ==
                                              Client.LoginPacket.AllSummonerData.Summoner.SumId;
                                    StartGameButton.IsEnabled = IsOwner;

                                    if (Client.Whitelist.Count > 0)
                                        if (!Client.Whitelist.Contains(player.SummonerName.ToLower()))
                                            await RiotCalls.BanUserFromGame(Client.GameID, player.AccountId);
                                }

                                if (i > dto.TeamOne.Count)
                                {
                                    i = 0;
                                    purpleSide = true;
                                }

                                if (!purpleSide)
                                    BlueTeamListView.Items.Add(lobbyPlayer);
                                else
                                    PurpleTeamListView.Items.Add(lobbyPlayer);
                            }
                        }
                        break;
                    case "PRE_CHAMP_SELECT":
                    case "CHAMP_SELECT":
                        if (!LaunchedTeamSelect)
                        {
                            Client.ChampSelectDTO = dto;
                            Client.LastPageContent = Client.Container.Content;
                            Client.SwitchPage(new ChampSelectPage(dto.RoomName, dto.RoomPassword).Load(this));
                            LaunchedTeamSelect = true;
                        }
                        break;
                }
            }));
        }
        /// <summary>
        /// This method will parse incoming messages and call specific handlers.
        /// </summary>
        /// <param name="sender">The sender of the message</param>
        /// <param name="message">The messsage that was received</param>
        private void receivedMessageDispatcher(Object sender, Message message)
        {
            //check whether the message is an invitation to join a chatroom and invoke the strategy
            if (message.HasTag("invite", true))
            {
                chatroom = message.From;
                MucManager manager = new MucManager(connection);
                //Wait for 3 seconds
                System.Threading.Thread.Sleep(3000);
                manager.JoinRoom(chatroom, nickname, false);
                decisionStrategy.OnJoiningGame(chatroom.ToString());
            }

            else
            {

                if (message.Body != null)
                {
                    decisionStrategy.OnMessageReceived(message);
                }

            }
        }
Exemplo n.º 13
0
 private void XmppOnOnLogin(object sender)
 {
     MucManager = new MucManager(Xmpp);
     Jid room = new Jid("*****@*****.**");
     MucManager.AcceptDefaultConfiguration(room);
     MucManager.JoinRoom(room,Username,Password,false);
     Me = new NewUser(Xmpp.MyJID);
     if(OnLoginComplete != null)
         OnLoginComplete.Invoke(this,LoginResults.Success);
 }
Exemplo n.º 14
0
        private void OnClientLogin(object sender)
        {
            var mucManager = new MucManager(_client);

            var rooms = _api.GetAllRooms();
            foreach (var room in rooms.Items)
            {
                var roomInfo = _api.GetRoom(room.Id);

                var jid = new Jid(roomInfo.XmppJid);
                mucManager.JoinRoom(jid, _botUser.Name);
                Rooms.Add(room.Name);
                LogRooms.Add(room.Name);
                Logger.Info(string.Format("Joined Room '{0}'", room.Name));
            }
        }
Exemplo n.º 15
0
        private void XmppOnOnLogin(object sender)
        {
            myPresence.Type = PresenceType.available;
            MucManager = new MucManager(Xmpp);
			Jid room = new Jid("lobby@conference." + Host);
            MucManager.AcceptDefaultConfiguration(room);
            MucManager.JoinRoom(room,Username,Password,false);
            Me = new NewUser(Xmpp.MyJID);

            if(OnLoginComplete != null)
                OnLoginComplete.Invoke(this,LoginResults.Success);
        }
Exemplo n.º 16
0
        private void XmppOnOnMessage(object sender , Message msg)
        {
            switch (msg.Type)
            {
                case MessageType.normal:
                    if(msg.From.Server == "conference.skylabsonline.com")
                    {
                        var rname = msg.From.User;
                        MucManager m = new MucManager(_xmpp);
                        m.JoinRoom(msg.From , msg.From.User);
                        var theRoom = GetRoom(new NewUser(msg.From) , true);
                        _xmpp.RosterManager.AddRosterItem(msg.From,msg.From.User);
                        if(OnCreateRoom != null)
                            OnCreateRoom.Invoke(this,theRoom);

                    }
                    break;
                case MessageType.error:
                    break;
                case MessageType.chat:
                    switch (msg.Chatstate)
                    {
                        case Chatstate.None:
                            var nc = GetRoom(new NewUser(msg.From.Bare));
                            nc.OnMessage(sender , msg);
                            break;
                        case Chatstate.active:

                            break;
                        case Chatstate.inactive:
                            break;
                        case Chatstate.composing:
                            break;
                        case Chatstate.gone:
                            break;
                        case Chatstate.paused:
                            break;
                        default:
                            throw new ArgumentOutOfRangeException();
                    }
                    break;
                case MessageType.groupchat:
                {
                    var nc = GetRoom(new NewUser(msg.From.Bare) , true);
                    nc.OnMessage(this , msg);
                    break;
                }
                case MessageType.headline:
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }
Exemplo n.º 17
0
        public XmppProtocolManager(Session session)
            : base(session)
        {
            Trace.Call(session);
            Contacts = new Dictionary<Jid, XmppPersonModel>();
            DiscoCache = new Dictionary<string, DiscoInfo>();

            ShowChatStates = true;
            OpenNewChatOnChatState = true;

            JabberClient = new XmppClientConnection();
            JabberClient.AutoRoster = true;
            JabberClient.AutoPresence = true;
            JabberClient.OnMessage += OnMessage;
            JabberClient.OnClose += OnClose;
            JabberClient.OnLogin += OnLogin;
            JabberClient.OnError += OnError;
            JabberClient.OnStreamError += OnStreamError;
            JabberClient.OnPresence += OnPresence;
            JabberClient.OnRosterItem += OnRosterItem;
            JabberClient.OnReadXml += OnReadXml;
            JabberClient.OnWriteXml += OnWriteXml;
            JabberClient.OnAuthError += OnAuthError;
            JabberClient.SendingServiceUnavailable += OnSendingServiceUnavailable;
            JabberClient.AutoAgents = false; // outdated feature
            JabberClient.EnableCapabilities = true;
            JabberClient.Capabilities.Node = "https://smuxi.im";
            JabberClient.ClientVersion = Engine.VersionString;

            // identify smuxi
            var ident = JabberClient.DiscoInfo.AddIdentity();
            ident.Category = "client";
            ident.Type = "pc";
            ident.Name = Engine.VersionString;

            // add features here (this is just for notification of other clients)
            JabberClient.DiscoInfo.AddFeature().Var = "http://jabber.org/protocol/caps";
            JabberClient.DiscoInfo.AddFeature().Var = "jabber:iq:last";
            JabberClient.DiscoInfo.AddFeature().Var = "http://jabber.org/protocol/muc";
            JabberClient.DiscoInfo.AddFeature().Var = "http://jabber.org/protocol/disco#info";
            JabberClient.DiscoInfo.AddFeature().Var = "http://jabber.org/protocol/xhtml-im";

            Disco = new DiscoManager(JabberClient);
            Disco.AutoAnswerDiscoInfoRequests = true;

            MucManager = new MucManager(JabberClient);
        }
Exemplo n.º 18
0
        /// <summary>
        /// Fires when the XMPP Client receives a message.
        /// </summary>
        /// <param name="sender">
        /// The Sender
        /// </param>
        /// <param name="msg">
        /// The Message
        /// </param>
        private void XmppOnMessage(object sender, Message msg)
        {
            switch (msg.Type)
            {
                case MessageType.normal:
                    if (msg.From.Server == "conference." + this.client.Host)
                    {
                        string rname = msg.From.User;
                        var m = new MucManager(this.xmpp);
                        m.JoinRoom(msg.From, msg.From.User);
                        NewChatRoom theRoom = this.GetRoom(new NewUser(msg.From), true);
                        this.xmpp.RosterManager.AddRosterItem(msg.From, msg.From.User);
                        this.FireOnCreateRoom(this, theRoom);
                    }

                    break;
                case MessageType.error:
                    {
                        NewChatRoom nc = this.GetRoom(new NewUser(msg.From.Bare), true);
                        nc.OnMessage(this, msg);
                        break;
                    }

                case MessageType.chat:
                    {
                        switch (msg.Chatstate)
                        {
                            case Chatstate.None:

                                // TODO Group chat whispers in the form of {roomname}@conference.server.octgn.info/{username} need to be handled here.
                                NewChatRoom nc = this.GetRoom(new NewUser(msg.From.Bare));
                                nc.OnMessage(sender, msg);
                                break;
                        }

                        break;
                    }

                case MessageType.groupchat:
                    {
                        NewChatRoom nc = this.GetRoom(new NewUser(msg.From.Bare), true);
                        nc.OnMessage(this, msg);
                        break;
                    }

                case MessageType.headline:
                    break;
            }
        }
        private void Lobby_OnMessageReceived(object sender, object message)
        {
            if (message == null)
                return;

            if (message.GetType() != typeof(GameDTO))
                return;

            var dto = message as GameDTO;
            Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(async () =>
            {
                if (!HasConnectedToChat)
                {
                    //Run once
                    BaseMap map = BaseMap.GetMap(dto.MapId);
                    MapLabel.Content = map.DisplayName;
                    ModeLabel.Content = Client.TitleCaseString(dto.GameMode);
                    GameTypeConfigDTO configType = Client.LoginPacket.GameTypeConfigs.Find(x => x.Id == dto.GameTypeConfigId);
                    TypeLabel.Content = GetGameMode(configType.Id);
                    SizeLabel.Content = dto.MaxNumPlayers / 2 + "v" + dto.MaxNumPlayers / 2;

                    HasConnectedToChat = true;

                    string obfuscatedName = Client.GetObfuscatedChatroomName(dto.Name.ToLower() + Convert.ToInt64(dto.Id), ChatPrefixes.Arranging_Practice);
                    string Jid = Client.GetChatroomJid(obfuscatedName, dto.RoomPassword, false);
                    newRoom = new MucManager(Client.XmppConnection);
                    Client.XmppConnection.OnMessage +=XmppConnection_OnMessage;
                    Client.XmppConnection.OnPresence += XmppConnection_OnPresence;
                    roomJid = new Jid(Jid);
                    newRoom.AcceptDefaultConfiguration(roomJid);
                    newRoom.JoinRoom(roomJid, Client.LoginPacket.AllSummonerData.Summoner.Name);
                }
                switch (dto.GameState)
                {
                    case "TEAM_SELECT":
                        {
                            bool isSpectator = false;
                            OptomisticLock = dto.OptimisticLock;
                            LaunchedTeamSelect = false;
                            BlueTeamListView.Items.Clear();
                            PurpleTeamListView.Items.Clear();
                            SpectatorListView.Items.Clear();

                            foreach (Participant playerTeam in dto.TeamOne)
                            {
                                if (playerTeam is PlayerParticipant)
                                {
                                    var lobbyPlayer = new CustomLobbyPlayer();
                                    var player = playerTeam as PlayerParticipant;
                                    lobbyPlayer = RenderPlayer(player, dto.OwnerSummary.SummonerId == player.SummonerId);
                                    Client.isOwnerOfGame = dto.OwnerSummary.SummonerId == Client.LoginPacket.AllSummonerData.Summoner.SumId;
                                    StartGameButton.IsEnabled = Client.isOwnerOfGame;
                                    AddBotBlueTeam.IsEnabled = Client.isOwnerOfGame;
                                    AddBotPurpleTeam.IsEnabled = Client.isOwnerOfGame;

                                    BlueTeamListView.Items.Add(lobbyPlayer);

                                    if (Client.Whitelist.Count <= 0)
                                        continue;

                                    if (!Client.Whitelist.Contains(player.SummonerName.ToLower()))
                                        await RiotCalls.BanUserFromGame(Client.GameID, player.AccountId);
                                }
                                else if (playerTeam is BotParticipant)
                                {
                                    var botParticipant = playerTeam as BotParticipant;
                                    var botPlayer = new BotControl();
                                    botPlayer = RenderBot(botParticipant);
                                    BlueTeamListView.Items.Add(botPlayer);
                                }
                            }
                            foreach (Participant playerTeam in dto.TeamTwo)
                            {
                                if (playerTeam is PlayerParticipant)
                                {
                                    var lobbyPlayer = new CustomLobbyPlayer();
                                    var player = playerTeam as PlayerParticipant;
                                    lobbyPlayer = RenderPlayer(player, dto.OwnerSummary.SummonerId == player.SummonerId);
                                    Client.isOwnerOfGame = dto.OwnerSummary.SummonerId == Client.LoginPacket.AllSummonerData.Summoner.SumId;
                                    StartGameButton.IsEnabled = Client.isOwnerOfGame;
                                    AddBotBlueTeam.IsEnabled = Client.isOwnerOfGame;
                                    AddBotPurpleTeam.IsEnabled = Client.isOwnerOfGame;

                                    PurpleTeamListView.Items.Add(lobbyPlayer);

                                    if (Client.Whitelist.Count <= 0)
                                        continue;

                                    if (!Client.Whitelist.Contains(player.SummonerName.ToLower()))
                                        await RiotCalls.BanUserFromGame(Client.GameID, player.AccountId);
                                }
                                else if (playerTeam is BotParticipant)
                                {
                                    var botParticipant = playerTeam as BotParticipant;
                                    var botPlayer = new BotControl();
                                    botPlayer = RenderBot(botParticipant);
                                    PurpleTeamListView.Items.Add(botPlayer);
                                }
                            }
                            foreach (GameObserver observer in dto.Observers)
                            {
                                if (observer.SummonerId == Client.LoginPacket.AllSummonerData.Summoner.SumId)
                                    isSpectator = true;

                                var spectatorItem = new CustomLobbyObserver();

                                spectatorItem = RenderObserver(observer);
                                SpectatorListView.Items.Add(spectatorItem);
                            }
                            if (isSpectator)
                            {
                                AddBotPurpleTeam.Visibility = Visibility.Hidden;
                                AddBotBlueTeam.Visibility = Visibility.Hidden;
                                JoinBlueTeamFromSpectator.Visibility = Visibility.Visible;
                                JoinPurpleTeamFromSpectator.Visibility = Visibility.Visible;
                            }
                            else
                            {
                                AddBotPurpleTeam.Visibility = Visibility.Visible;
                                AddBotBlueTeam.Visibility = Visibility.Visible;
                                JoinBlueTeamFromSpectator.Visibility = Visibility.Hidden;
                                JoinPurpleTeamFromSpectator.Visibility = Visibility.Hidden;
                            }
                        }
                        break;
                    case "PRE_CHAMP_SELECT":
                    case "CHAMP_SELECT":
                        if (!LaunchedTeamSelect)
                        {
                            Client.ChampSelectDTO = dto;
                            Client.LastPageContent = Client.Container.Content;
                            Client.SwitchPage(new ChampSelectPage(dto.RoomName, dto.RoomPassword).Load(this));
                            Client.GameStatus = "championSelect";
                            Client.SetChatHover();
                            LaunchedTeamSelect = true;
                        }
                        break;
                }
            }));
        }
Exemplo n.º 20
0
 public override async Task Topic(string roomName, params string[] messages)
 {
     var mucManager = new MucManager(_client);
     mucManager.ChangeSubject(new Jid(roomName), string.Join(" ", messages));
 }
Exemplo n.º 21
0
 public ChampSelectPage(string RoomName, string RoomPassword)
 {
     InitializeComponent();
     var Jid = Client.GetChatroomJid(RoomName.Replace("@sec", ""), RoomPassword, false);
     jid = new Jid(Jid);
     Chatroom = new MucManager(Client.XmppConnection);
     Client.XmppConnection.OnMessage += XmppConnection_OnMessage;
     Client.XmppConnection.OnPresence += XmppConnection_OnPresence;
     Chatroom.AcceptDefaultConfiguration(jid);
     Chatroom.JoinRoom(jid, Client.LoginPacket.AllSummonerData.Summoner.Name, RoomPassword);
 }
        public override bool OnLoad(Gui.MainWindow window)
        {
            Config = Configuration.Load();

            Window = window;

            var loginWindow = new LoginWindow { txtUsername = { Text = Config.Email } };
            if (!loginWindow.ShowDialog().HasValue || LoginData == null)
            {
                return false;
            }

            Config.Email = loginWindow.Username;

            if (loginWindow.chkRemember.IsChecked != null && loginWindow.chkRemember.IsChecked.Value)
            {
                Config.Save();
            }

            SelfJid = new Jid(Nickname + "@chat.hipchat.com");

            window.Title = "Chatterbox - " + GroupName;

            HipchatClient = new XmppClientConnection("chat.hipchat.com");
            HipchatClient.Open(Nickname, loginWindow.Password);
            HipchatClient.Status = "Chatterbox";
            HipchatClient.Show = ShowType.chat;
            HipchatClient.AutoResolveConnectServer = false;
            HipchatClient.OnLogin += HipchatClient_OnLogin;

            MucManager = new MucManager(HipchatClient);

            HipchatClient.OnRosterStart += sender => Users.Clear();
            HipchatClient.OnRosterItem += HipchatClient_OnRosterItem;
            HipchatClient.OnMessage += HipchatClient_OnMessage;
            HipchatClient.OnPresence += HipchatClient_OnPresence;

            Lobby = new LobbyControl();
            Lobby.OnRoomJoin += Lobby_OnRoomJoin;

            Window.SetLobbyRoom(Lobby);

            return true;
        }
Exemplo n.º 23
0
        private void OnClientLogin(object sender)
        {
            var mucManager = new MucManager(_client);

            foreach (string room in _rooms.Union(_logRooms).Distinct())
            {
                var jid = new Jid(room + "@" + _confhost);
                mucManager.JoinRoom(jid, _roomNick);
                Rooms.Add(room);
                Logger.Info(string.Format("Joined Room '{0}'", room));
            }
            foreach (string logRoom in _logRooms)
            {
                LogRooms.Add(logRoom);
            }
        }
Exemplo n.º 24
0
        private void OnClientLogin(object sender)
        {
            var mucManager = new MucManager(_client);

            var rooms = _api.GetAllRooms();
            foreach (var room in rooms.Items.Where(r => _roomList.Count == 0 || r.Name != null && _roomList.Contains(r.Name.ToUpper())))
            {
                var roomInfo = _api.GetRoom(room.Id);

                _roomMap.Add(roomInfo.XmppJid, room.Id);

                var jid = new Jid(roomInfo.XmppJid);
                mucManager.JoinRoom(jid, _botUser.Name);
                Rooms.Add(room.Name);
                LogRooms.Add(room.Name);
                Logger.Info(string.Format("Joined Room '{0}'", room.Name));
            }
        }
Exemplo n.º 25
0
        public override Task Topic(string roomName, AdapterArguments adapterArgs, params string[] messages)
        {
            var mucManager = new MucManager(_client);
            mucManager.ChangeSubject(new Jid(roomName), string.Join(" ", messages));

            return Task.FromResult(0);
        }
Exemplo n.º 26
0
 public HeadlessConn(string name)
     : base(Window1.SERVER)
 {
     this.name = name;
     log(name);
     ME = new Jid(name + "@conference." +Window1.SERVER);
     AutoAgents = false;
     OnAuthError += (_sender, error) =>
     {
         if (error.TagName == "failure")
         {
             RegisterAccount = true;
             Open(name, "examplePassword");
         }
         else
         {
             throw new AuthenticationException(error.ToString());
         }
     };
     OnLogin += (o) =>
     {
         var manager = new MucManager(this);
         manager.JoinRoom(MUC, name);
         manager.JoinRoom(ME, name);
         log(name + " logged in");
     };
     OnPresence += (_sender, presence) =>
     {
         //log(presence.ToString()); 
     };
     OnMessage += (_sender, msg) =>
     {
         increment(ref shoutsReceived);
     };
     OnRegistered += (registration) => { };
     OnRegisterError += (_sender, error) => { throw new Exception(error.ToString()); };
     OnError += (_sender, error) => { throw error; };
     OnReadXml += (_sender, xml) =>
     {
         //log("In size:"+xml.ToString().Length);
     };
     OnWriteXml += (_sender, xml) =>
     {
         //log("Out size:"+xml.ToString().Length);
     };
     Open(name, "examplePassword");
 }
Exemplo n.º 27
0
 private static void XmppOnOnLogin(object sender)
 {
     Trace.WriteLine("[Bot]Login:"******"*****@*****.**");
     muc.AcceptDefaultConfiguration(room);
     muc.JoinRoom(room, Xmpp.Username, Xmpp.Password, false);
 }
Exemplo n.º 28
0
        private void XmppOnOnMessage(object sender , Message msg)
        {
            switch (msg.Type)
            {
                case MessageType.normal:
                    if (msg.From.Server == "conference." + Skylabs.Lobby.Client.Host)
                    {
                        var rname = msg.From.User;
                        MucManager m = new MucManager(_xmpp);
                        m.JoinRoom(msg.From , msg.From.User);
                        var theRoom = GetRoom(new NewUser(msg.From) , true);
                        _xmpp.RosterManager.AddRosterItem(msg.From,msg.From.User);
                        if(OnCreateRoom != null)
                            OnCreateRoom.Invoke(this,theRoom);

                    }
                    break;
                case MessageType.error:
                {
                    var nc = GetRoom(new NewUser(msg.From.Bare) , true);
                    nc.OnMessage(this , msg);
                    break;
                }
                case MessageType.chat:
                {
                    switch(msg.Chatstate)
                    {
                        case Chatstate.None:
                            //TODO Group chat whispers in the form of {roomname}@conference.server.octgn.info/{username} need to be handled here.
                            var nc = GetRoom(new NewUser(msg.From.Bare));
                            nc.OnMessage(sender , msg);
                            break;
                        case Chatstate.active:

                            break;
                        case Chatstate.inactive:
                            break;
                        case Chatstate.composing:
                            break;
                        case Chatstate.gone:
                            break;
                        case Chatstate.paused:
                            break;
                        default:
                            throw new ArgumentOutOfRangeException();
                    }
                    break;
                }
                case MessageType.groupchat:
                {
                    var nc = GetRoom(new NewUser(msg.From.Bare) , true);
                    nc.OnMessage(this , msg);
                    break;
                }
                case MessageType.headline:
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }
        }
Exemplo n.º 29
-1
 /// <summary>
 ///     Use this to connect to chat
 /// </summary>
 /// <param name="ChatJid"></param>
 /// <param name="Pass"></param>
 private void ConnectToChat(string ChatJid, string Pass)
 {
     string Jid = Client.GetChatroomJid(ChatJid, Pass, false);
     newRoom = new MucManager(Client.XmppConnection);
     Client.XmppConnection.OnMessage += XmppConnection_OnMessage;
     Client.XmppConnection.OnPresence += XmppConnection_OnPresence;
     jid = new Jid(ChatJid);
     newRoom.AcceptDefaultConfiguration(jid);
     newRoom.JoinRoom(jid, Client.LoginPacket.AllSummonerData.Summoner.Name, Pass);
     connectedToChat = true;
 }
Exemplo n.º 30
-1
        /// <summary>
        /// Joins the specified room.
        /// </summary>
        /// <param name="room">The room.</param>
        /// <returns></returns>
        public bool Join(Room room)
        {
            var manager = new MucManager(connection);

            var jid = new Jid(room.JabberId, "conf.hipchat.com", string.Empty);

            manager.JoinRoom(jid, current.Name);

            Out.WriteLine("{1:HH:mm:ss} Joined room: {0}.", room.Name, DateTime.Now);

            return true;
        }