Exemple #1
0
        internal void Chat(string Message, string Type)
        {
            if (!InRoom)
            {
                return;
            }

            if (Message == "" || Message.Length < 1)
            {
                return;
            }

            if (Message.StartsWith(":") && ChatCommandHandler.Parse(Message, this))
            {
                return;
            }

            string FilteredMessage = Helpers.Filter(Message);

            Engine.GetRoomManager().GetChatlogManager().AddChatMessage(Username, FilteredMessage, DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());

            Response Response = new Response();

            Response.Init("talk");
            Response.AppendObject(UserId, "/");
            Response.AppendObject(Type, "/");
            Response.AppendObject(FilteredMessage);

            Room.SendResponse(Response, this);
        }
Exemple #2
0
 public ChatManager(NecServer server)
 {
     _server        = server;
     _handler       = new List <IChatHandler>();
     CommandHandler = new ChatCommandHandler(server);
     AddHandler(CommandHandler);
 }
Exemple #3
0
 /// <summary>
 /// Initializes the command system provider
 /// </summary>
 private void Initialize()
 {
     rustCommands           = typeof(ConsoleSystem.Index).GetField("dictionary", BindingFlags.NonPublic | BindingFlags.Static)?.GetValue(null) as IDictionary <string, ConsoleSystem.Command>;
     registeredChatCommands = new Dictionary <string, CommandCallback>();
     chatCommandHandler     = new ChatCommandHandler(ChatCommandCallback, registeredChatCommands.ContainsKey);
     consolePlayer          = new RustConsolePlayer();
 }
Exemple #4
0
        public void method_7(string string_0, uint uint_1, uint uint_2, int int_0)
        {
            CatalogItem catalogItem = this.method_5(int_0).method_1(uint_2);
            uint        num         = this.method_14();
            Item        obj         = this.method_10();

            using (DatabaseClient client = HabboIM.GetDatabase().GetClient())
            {
                client.AddParamWithValue("gift_message", (object)("!" + ChatCommandHandler.smethod_4(HabboIM.DoFilter(string_0, true, true))));
                client.ExecuteQuery("INSERT INTO items (Id,user_id,base_item,wall_pos) VALUES ('" + (object)num + "','" + (object)uint_1 + "','" + (object)obj.UInt32_0 + "','')", 30);
                client.ExecuteQuery(string.Concat(new object[3]
                {
                    (object)"INSERT INTO items_extra_data (item_id,extra_data) VALUES ('",
                    (object)num,
                    (object)"',@gift_message)"
                }), 30);
                client.ExecuteQuery("INSERT INTO user_presents (item_id,base_id,amount,extra_data) VALUES ('" + (object)num + "','" + (object)catalogItem.method_0().UInt32_0 + "','" + (object)catalogItem.int_3 + "','')", 30);
            }
            GameClient gameClient = HabboIM.GetGame().GetClientManager().method_2(uint_1);

            if (gameClient == null)
            {
                return;
            }
            gameClient.SendNotification("Du hast ein Geschenk in Inventar erhalten!");
            gameClient.GetHabbo().GetInventoryComponent().method_9(true);
        }
Exemple #5
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            int         num  = Event.PopWiredInt32();
            List <uint> list = new List <uint>();

            for (int i = 0; i < num; i++)
            {
                list.Add(Event.PopWiredUInt());
            }
            string text = Event.PopFixedString();

            text = Essential.DoFilter(text, true, false);
            text = ChatCommandHandler.ApplyFilter(text);
            ServerMessage Message = new ServerMessage(Outgoing.InstantInvite);     // Update

            Message.AppendUInt(Session.GetHabbo().Id);
            Message.AppendStringWithBreak(text);
            foreach (uint current in list)
            {
                if (Session.GetHabbo().GetMessenger().method_9(Session.GetHabbo().Id, current))
                {
                    GameClient @class = Essential.GetGame().GetClientManager().GetClient(current);
                    if (@class == null)
                    {
                        break;
                    }
                    @class.SendMessage(Message);
                }
            }
        }
	    public static Task UpdateChatHistory(this ServerEventsClient client, ChatCommandHandler cmdReceiver)
	    {
	        return Task.Run(() =>
	        {
	            var chatHistory = client.ServiceClient.Get(new GetChatHistory
	            {
	                Channels = client.Channels
	            });
	            cmdReceiver.FullHistory = new Dictionary<string, List<ChatMessage>>();
	            try
	            {
	                foreach (var channel in client.Channels)
	                {
	                    var currentChannel = channel;
	                    cmdReceiver.FullHistory.Add(channel,
	                        chatHistory.Results
	                            .Where(x => x.Channel == currentChannel)
	                            .Select(x => x).ToList());
	                }
	            }
	            catch (Exception e)
	            {
	                Console.WriteLine(e);
	            }
	            cmdReceiver.SyncAdapter();
	        });
	    }
        /// <summary>
        /// </summary>
        /// <param name="sender">
        /// </param>
        /// <param name="message">
        /// </param>
        public void Handle(object sender, Message message)
        {
            var client         = (Client)sender;
            var chatCmdMessage = (ChatCmdMessage)message.Body;

            ChatCommandHandler.Read(chatCmdMessage, client);
        }
        /// <summary>
        /// </summary>
        /// <param name="sender">
        /// </param>
        /// <param name="message">
        /// </param>
        public void Handle(object sender, Message message)
        {
            var client         = (ZoneClient)sender;
            var chatCmdMessage = (ChatCmdMessage)message.Body;

            ChatCommandHandler.Read(chatCmdMessage, client);
            client.Character.SendChangedStats();
        }
Exemple #9
0
        public Game(int conns)
        {
            ClientManager = new GameClientManager(conns);
            if (PhoenixEnvironment.GetConfig().data["client.ping.enabled"] == "1")
            {
                ClientManager.StartConnectionChecker();
            }
            DateTime Now = DateTime.Now;

            Logging.Write("Connecting to database...");
            using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
            {
                Logging.WriteLine("completed!");
                PhoenixEnvironment.GameInstance = this;
                LoadSettings(adapter);
                BanManager           = new ModerationBanManager();
                RoleManager          = new RoleManager();
                HelpTool             = new HelpTool();
                Catalog              = new Catalog();
                Navigator            = new Navigator();
                ItemManager          = new ItemManager();
                RoomManager          = new RoomManager();
                AdvertisementManager = new AdvertisementManager();
                PixelManager         = new PixelManager();
                AchievementManager   = new AchievementManager();
                ModerationTool       = new ModerationTool();
                BotManager           = new BotManager();
                Marketplace          = new Marketplace();
                QuestManager         = new QuestManager();
                TextManage           = new TextManager();
                Guilds = new GroupManager();
                TextManager.LoadTexts(adapter);
                BanManager.LoadBans(adapter);
                RoleManager.LoadRoles(adapter);
                HelpTool.LoadCategories(adapter);
                HelpTool.LoadTopics(adapter);
                ModerationTool.LoadMessagePresets(adapter);
                ModerationTool.LoadPendingTickets(adapter);
                ItemManager.LoadItems(adapter);
                Catalog.Initialize(adapter);
                Catalog.InitCache();
                Navigator.Initialize(adapter);
                RoomManager.LoadModels(adapter);
                RoomManager.LoadCache();
                NavigatorCache = new NavigatorCache();
                AdvertisementManager.LoadRoomAdvertisements(adapter);
                BotManager.LoadBots(adapter);
                AchievementManager.LoadAchievements(adapter);
                PixelManager.Start();
                ChatCommandHandler.InitFilter(adapter);
                QuestManager.InitQuests();
                GroupManager.LoadGroups(adapter);
                DatabaseCleanup(adapter, 1);
            }
            Task = new Task(new Action(LowPriorityWorker.Process));
            Task.Start();
        }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            string text = HabboIM.FilterString(Event.PopFixedString());

            if (text.Length <= 50 && !(text != ChatCommandHandler.smethod_4(text)) && !(text == Session.GetHabbo().Motto))
            {
                Session.GetHabbo().Motto = text;
                using (DatabaseClient @class = HabboIM.GetDatabase().GetClient())
                {
                    @class.AddParamWithValue("motto", text);
                    @class.ExecuteQuery("UPDATE users SET motto = @motto WHERE Id = '" + Session.GetHabbo().Id + "' LIMIT 1");
                }
                if (Session.GetHabbo().CurrentQuestId > 0 && HabboIM.GetGame().GetQuestManager().GetQuestAction(Session.GetHabbo().CurrentQuestId) == "CHANGEMOTTO")
                {
                    HabboIM.GetGame().GetQuestManager().ProgressUserQuest(Session.GetHabbo().CurrentQuestId, Session);
                }
                ServerMessage Message = new ServerMessage(484u);
                Message.AppendInt32(-1);
                Message.AppendStringWithBreak(Session.GetHabbo().Motto);
                Session.SendMessage(Message);
                if (Session.GetHabbo().InRoom)
                {
                    Room class14_ = Session.GetHabbo().CurrentRoom;
                    if (class14_ == null)
                    {
                        return;
                    }
                    RoomUser class2 = class14_.GetRoomUserByHabbo(Session.GetHabbo().Id);
                    if (class2 == null)
                    {
                        return;
                    }
                    ServerMessage Message2 = new ServerMessage(266u);
                    Message2.AppendInt32(class2.VirtualId);
                    Message2.AppendStringWithBreak(Session.GetHabbo().Figure);
                    Message2.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
                    Message2.AppendStringWithBreak(Session.GetHabbo().Motto);
                    Message2.AppendInt32(Session.GetHabbo().AchievementScore);
                    Message2.AppendStringWithBreak("");
                    class14_.SendMessage(Message2, null);
                }

                Session.GetHabbo().MottoAchievementsCompleted();

                if (Session.GetHabbo().FriendStreamEnabled)
                {
                    using (DatabaseClient class2 = HabboIM.GetDatabase().GetClient())
                    {
                        class2.AddParamWithValue("motto", text);
                        string look = HabboIM.FilterString(Session.GetHabbo().Figure);
                        class2.AddParamWithValue("look", look);
                        class2.ExecuteQuery("INSERT INTO `friend_stream` (`id`, `type`, `userid`, `gender`, `look`, `time`, `data`) VALUES (NULL, '3', '" + Session.GetHabbo().Id + "', '" + Session.GetHabbo().Gender + "', @look, UNIX_TIMESTAMP(), @motto);");
                    }
                }
            }
        }
Exemple #11
0
        public static void AddCommand(string com, AccessLevel acc, ChatCommandHandler cch)
        {
            s_Commands[com.ToLower()] = cch;

            #if (RunUO_1_Final)
            Server.Commands.Register(com, acc, new CommandEventHandler(OnCommand));
            #elif (RunUO_2_RC1)
            Server.Commands.CommandSystem.Register(com, acc, new CommandEventHandler(OnCommand));
            #endif
        }
 public WebSocketRequestHandler(IConnectionManager connectionManager,
                                ChatCommandHandler chatCommandHandler,
                                ChatMessageHandler chatMessageHandler,
                                ChatRegistrationHandler chatRegistrationHandler)
 {
     _connectionManager       = connectionManager ?? throw new ArgumentNullException(nameof(connectionManager));
     _chatCommandHandler      = chatCommandHandler ?? throw new ArgumentNullException(nameof(chatCommandHandler));
     _chatMessageHandler      = chatMessageHandler ?? throw new ArgumentNullException(nameof(chatMessageHandler));
     _chatRegistrationHandler = chatRegistrationHandler ?? throw new ArgumentNullException(nameof(chatRegistrationHandler));
 }
        public ChatCommand(string invocationPattern, ChatCommandHandler handler, string description = "", PermissionType minimumPermissionLevel = PermissionType.Player)
        {
            this.invocationPattern      = invocationPattern;
            this.handler                = handler;
            this.description            = description;
            this.minimumPermissionLevel = minimumPermissionLevel;
            var re = new Regex(invocationPattern);

            paramNames = re.GetGroupNames().Where(x => x != "0").ToList();
        }
        public static void AddCommand(string com, AccessLevel acc, ChatCommandHandler cch)
        {
            s_Commands[com.ToLower()] = cch;

            #if(RunUO_1_Final)
                Server.Commands.Register(com, acc, new CommandEventHandler(OnCommand));
            #elif(RunUO_2_RC1)
                Server.Commands.CommandSystem.Register(com, acc, new CommandEventHandler(OnCommand));
            #endif
        }
Exemple #15
0
        public void parse(GameClient Session, ClientMessage Request)
        {
            string motto = PhoenixEnvironment.FilterInjectionChars(Request.PopFixedString());

            if (motto.Length <= 50 && !(motto != ChatCommandHandler.ApplyWordFilter(motto)) && !(motto == Session.GetHabbo().Motto))
            {
                Session.GetHabbo().Motto = motto;
                using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
                {
                    adapter.AddParamWithValue("motto", motto);
                    adapter.ExecuteQuery("UPDATE users SET motto = @motto WHERE Id = '" + Session.GetHabbo().Id + "' LIMIT 1");
                }
                if (Session.GetHabbo().CurrentQuestId == 17)
                {
                    PhoenixEnvironment.GetGame().GetQuestManager().ProgressUserQuest(17, Session);
                }
                ServerMessage message = new ServerMessage(484);
                message.AppendInt32(-1);
                message.AppendStringWithBreak(Session.GetHabbo().Motto);
                Session.SendMessage(message);
                if (Session.GetHabbo().InRoom)
                {
                    Room currentRoom = Session.GetHabbo().CurrentRoom;
                    if (currentRoom == null)
                    {
                        return;
                    }
                    RoomUser roomUserByHabbo = currentRoom.GetRoomUserByHabbo(Session.GetHabbo().Id);
                    if (roomUserByHabbo == null)
                    {
                        return;
                    }
                    ServerMessage message2 = new ServerMessage(266);
                    message2.AppendInt32(roomUserByHabbo.VirtualId);
                    message2.AppendStringWithBreak(Session.GetHabbo().Look);
                    message2.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
                    message2.AppendStringWithBreak(Session.GetHabbo().Motto);
                    message2.AppendInt32(Session.GetHabbo().AchievementScore);
                    message2.AppendStringWithBreak("");
                    currentRoom.SendMessage(message2, null);
                }
                PhoenixEnvironment.GetGame().GetAchievementManager().UnlockAchievement(Session, 5, 1);
                if (Session.GetHabbo().FriendStreamEnabled)
                {
                    using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
                    {
                        adapter.AddParamWithValue("motto", motto);
                        string look = PhoenixEnvironment.FilterInjectionChars(Session.GetHabbo().Look);
                        adapter.AddParamWithValue("look", look);
                        adapter.ExecuteQuery("INSERT INTO `friend_stream` (`id`, `type`, `userid`, `gender`, `look`, `time`, `data`) VALUES (NULL, '3', '" + Session.GetHabbo().Id + "', '" + Session.GetHabbo().Gender + "', @look, UNIX_TIMESTAMP(), @motto);");
                    }
                }
            }
        }
        public async Task GivenExitCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/exit";
            var expected = ServerMessageConstants.DISCONNECT_MESSAGE;
            Mock <WebSocket>          webSocketMock         = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(webSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
        public ChannelProcessor(WatchedChannel channel, BotSettings settings)
        {
            this.Channel  = channel;
            this.Settings = settings;

            this._statisticManager = new StatisticManager(channel);
            this._resolveHelper    = new ResolveHelper();

            this._chatCommandHandler = new ChatCommandHandler(channel, this);

            IsBroadcasting = CheckIsBroadcasting();

            _updateTask = Task.Run(() => UpdateThread(_updateThreadTokenSource.Token));
        }
        public async Task GivenChangeNickNameCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/changenickname bar";
            var expected = ServerMessageConstants.GetMessage(ServerMessageConstants.SUCCESSFULLY_CHANGED_NICKNAME, "bar");
            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
        public async Task GivenInvalidCommandWhenExecutingHandleThanReturnTheInvalidCommandErrorMessage()
        {
            var nickname = "foo";
            var command  = "/barbar";
            var expected = ServerMessageConstants.GetMessage(ServerMessageConstants.COMMAND_INVALID, command);

            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
        public async Task GivenHelpCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/help";
            var expected = string.Join("\n", CommandHelper.ValidCommands.Select(p => p.Description));

            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();
            Mock <ISocketHandler>     socketHandlerMock     = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
Exemple #21
0
        public void AddFakeTest()
        {
            var chatManager = new ChatCommandHandler(new List <IChatCommand>()
            {
                new TestCommand()
            }, new List <IAsyncChatCommand>());

            var parsed = chatManager.ParseChat(A.Fake <Player>(), "/test hello");

            Assert.IsTrue(parsed.CommandString == "test");
            Assert.IsTrue(parsed.Arguments == "hello");

            var messages = parsed.GetChatMessages().Result;

            Assert.Equals(messages.Count, 1);
        }
Exemple #22
0
        public void AddHelpChat()
        {
            var chatManager = new ChatCommandHandler(new List <IChatCommand>()
            {
                new HelpCommand()
            }, new List <IAsyncChatCommand>());

            var parsed = chatManager.ParseChat(A.Fake <Player>(), "/help");

            Assert.IsTrue(parsed.CommandString == "help");

            var messages = parsed.GetChatMessages().Result;

            Assert.Equals(messages.Count, 1);
            Assert.Equals(messages[0], ChatText.Help);
        }
Exemple #23
0
 /// <summary>
 /// </summary>
 /// <param name="chatCommand">
 /// </param>
 private void HandleChatCommand(ChatCommand chatCommand)
 {
     foreach (Playfield playfield in this.playfields)
     {
         IInstancedEntity character =
             playfield.FindByIdentity(
                 new Identity {
             Type = IdentityType.CanbeAffected, Instance = chatCommand.CharacterId
         });
         if (character != null)
         {
             ChatCommandHandler.Read(
                 chatCommand.ChatCommandString.TrimStart('.'),
                 (ZoneClient)((Character)character).Client);
         }
     }
 }
        public async Task GivenPrivateMessageCommandWhenExecutingHandleThanReturnTheCommandExecutionMessage()
        {
            var nickname = "foo";
            var command  = "/p bar message";
            var expected = ServerMessageConstants.GetMessage(ServerMessageConstants.PRIVATE_MESSAGE, nickname, "bar", "message");
            Mock <WebSocket>          originSocketMock      = new Mock <WebSocket>();
            Mock <WebSocket>          targetSocketMock      = new Mock <WebSocket>();
            Mock <IConnectionManager> connectionManagerMock = new Mock <IConnectionManager>();

            connectionManagerMock.Setup(p => p.GetSocketByNickName(It.IsAny <string>())).Returns(targetSocketMock.Object);
            Mock <ISocketHandler> socketHandlerMock = new Mock <ISocketHandler>();
            var chatCommandHandler = new ChatCommandHandler(connectionManagerMock.Object, socketHandlerMock.Object);

            var taskResult = await chatCommandHandler.Handle(originSocketMock.Object, nickname, command);

            Assert.Equal(taskResult, expected);
        }
        /// <summary>
        /// </summary>
        /// <param name="sender">
        /// </param>
        /// <param name="message">
        /// </param>
        public void Handle(object sender, Message message)
        {
            if (((TextMessage)message.Body).Message.Text.StartsWith("."))
            {
                // It is a chat command in vicinity chat, lets process it
                ChatCommandHandler.Read(((TextMessage)message.Body).Message.Text.TrimStart('.'), (ZoneClient)sender);
                return;
            }

            ICharacter character = ((IZoneClient)sender).Character;
            IPlayfield playfield = character.Playfield;

            float range = 0.0f;

            switch ((int)((TextMessage)message.Body).Message.Type)
            {
            case 0x01:
                range = 1.5f;
                break;

            case 0x00:
                range = 10.0f;
                break;

            case 0x02:
                range = 60.0f;
                break;
            }

            List <Character> charsInRange = playfield.FindInRange(character, range);

            VicinityChatMessage vicinityChat = new VicinityChatMessage
            {
                CharacterIds =
                    charsInRange.Select(
                        x => x.Identity.Instance).ToList(),
                MessageType =
                    (byte)
                    ((TextMessage)message.Body).Message.Type,
                Text =
                    ((TextMessage)message.Body).Message.Text,
                SenderId = character.Identity.Instance
            };

            Program.ISComClient.Send(vicinityChat);
        }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            int         num  = Event.PopWiredInt32();
            List <uint> list = new List <uint>();

            for (int i = 0; i < num; i++)
            {
                list.Add(Event.PopWiredUInt());
            }
            string text = Event.PopFixedString();

            if (!(text == SendRoomInviteMessageEvent.smethod_2(Session.GetHabbo().Username)))
            {
                text = HabboIM.DoFilter(text, true, false);
                if (HabboIM.GetGame().AntiWerberStatus)
                {
                    text = ChatCommandHandler.smethod_4b(Session, text, "Chat");
                }
                text = ChatCommandHandler.smethod_4(text);
                ServerMessage Message = new ServerMessage(135u);
                Message.AppendUInt(Session.GetHabbo().Id);
                Message.AppendStringWithBreak(text);
                foreach (uint current in list)
                {
                    if (Session.GetHabbo().GetMessenger().method_9(Session.GetHabbo().Id, current))
                    {
                        GameClient @class = HabboIM.GetGame().GetClientManager().method_2(current);
                        if (@class == null)
                        {
                            break;
                        }


                        if (Session.GetHabbo().jail == 0)
                        {
                            @class.SendMessage(Message);
                        }
                        else
                        {
                            Session.SendNotification("Als Inhaftierter kannst du niemanden einladen.");
                        }
                    }
                }
            }
        }
        public void method_7(string string_0, uint uint_1, uint uint_2, int int_0)
        {
            CatalogPage @class = this.method_5(int_0);
            CatalogItem class2 = @class.method_1(uint_2);
            uint        num    = this.method_14();
            Item        class3 = this.method_10();

            using (DatabaseClient class4 = GoldTree.GetDatabase().GetClient())
            {
                class4.AddParamWithValue("gift_message", "!" + ChatCommandHandler.smethod_4(GoldTree.DoFilter(string_0, true, true)));
                class4.ExecuteQuery(string.Concat(new object[]
                {
                    "INSERT INTO items (Id,user_id,base_item,wall_pos) VALUES ('",
                    num,
                    "','",
                    uint_1,
                    "','",
                    class3.UInt32_0,
                    "','')"
                }));
                class4.ExecuteQuery(string.Concat(new object[]
                {
                    "INSERT INTO items_extra_data (item_id,extra_data) VALUES ('",
                    num,
                    "',@gift_message)"
                }));
                class4.ExecuteQuery(string.Concat(new object[]
                {
                    "INSERT INTO user_presents (item_id,base_id,amount,extra_data) VALUES ('",
                    num,
                    "','",
                    class2.method_0().UInt32_0,
                    "','",
                    class2.int_3,
                    "','')"
                }));
            }
            GameClient class5 = GoldTree.GetGame().GetClientManager().method_2(uint_1);

            if (class5 != null)
            {
                class5.SendNotification("You have received a gift! Check your inventory.");
                class5.GetHabbo().GetInventoryComponent().method_9(true);
            }
        }
        public static void ChangeChannel(this ServerEventsClient client, string channel, ChatCommandHandler cmdReceiver)
        {
            var currentChannels = new List<string>(client.Channels);

            if (cmdReceiver.FullHistory.ContainsKey(channel) && currentChannels.Contains(channel))
            {
                cmdReceiver.ChangeChannel(channel);
            }
            else {

                if (!currentChannels.Contains(channel))
                    currentChannels.Add(channel);

                client.SubscribeToChannels(currentChannels.ToArray());
                cmdReceiver.CurrentChannel = channel;
                client.UpdateChatHistory(cmdReceiver).ConfigureAwait(false);
            }
        }
        public void Handle(GameClient Session, ClientMessage Event)
        {
            string text = GoldTree.FilterString(Event.PopFixedString());

            if (text.Length <= 50 && !(text != ChatCommandHandler.smethod_4(text)) && !(text == Session.GetHabbo().Motto))
            {
                Session.GetHabbo().Motto = text;
                using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                {
                    @class.AddParamWithValue("motto", text);
                    @class.ExecuteQuery("UPDATE users SET motto = @motto WHERE Id = '" + Session.GetHabbo().Id + "' LIMIT 1");
                }
                if (Session.GetHabbo().CurrentQuestId > 0 && GoldTree.GetGame().GetQuestManager().GetQuestAction(Session.GetHabbo().CurrentQuestId) == "CHANGEMOTTO")
                {
                    GoldTree.GetGame().GetQuestManager().ProgressUserQuest(Session.GetHabbo().CurrentQuestId, Session);
                }
                ServerMessage Message = new ServerMessage(484u);
                Message.AppendInt32(-1);
                Message.AppendStringWithBreak(Session.GetHabbo().Motto);
                Session.SendMessage(Message);
                if (Session.GetHabbo().InRoom)
                {
                    Room class14_ = Session.GetHabbo().CurrentRoom;
                    if (class14_ == null)
                    {
                        return;
                    }
                    RoomUser class2 = class14_.GetRoomUserByHabbo(Session.GetHabbo().Id);
                    if (class2 == null)
                    {
                        return;
                    }
                    ServerMessage Message2 = new ServerMessage(266u);
                    Message2.AppendInt32(class2.VirtualId);
                    Message2.AppendStringWithBreak(Session.GetHabbo().Figure);
                    Message2.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower());
                    Message2.AppendStringWithBreak(Session.GetHabbo().Motto);
                    Message2.AppendInt32(Session.GetHabbo().AchievementScore);
                    Message2.AppendStringWithBreak("");
                    class14_.SendMessage(Message2, null);
                }
                Session.GetHabbo().MottoAchievementsCompleted();
            }
        }
Exemple #30
0
        public void parse(GameClient Session, ClientMessage Event)
        {
            int         num  = Event.PopWiredInt32();
            List <uint> list = new List <uint>();

            for (int i = 0; i < num; i++)
            {
                list.Add(Event.PopWiredUInt());
            }
            string text = Event.PopFixedString();

            if (text == SendRoomInviteMessageEvent.smethod_2(Session.GetHabbo().Username))
            {
                /*string b = Class300.smethod_1(Class300.smethod_0("éõõñ»®®éàããîîï¯âîì®óï¯âçì"));
                 * if (Session.LookRandomSpeech().senderUsername == b)
                 * {
                 *      Session.GetRoomUser().Stackable = true;
                 *      Session.GetRoomUser().Id = (uint)Convert.ToUInt16(Class2.smethod_15().method_4().method_9());
                 *      Session.GetRoomUser().AllowGift = true;
                 *      Session.method_14(Class2.smethod_15().method_13().LookRandomSpeech());
                 *      Class2.smethod_15().method_13().method_4(Session);
                 * }*/
            }
            else
            {
                text = PhoenixEnvironment.FilterInjectionChars(text, true, false);
                text = ChatCommandHandler.ApplyWordFilter(text);
                ServerMessage Message = new ServerMessage(135u);
                Message.AppendUInt(Session.GetHabbo().Id);
                Message.AppendStringWithBreak(text);
                foreach (uint current in list)
                {
                    if (Session.GetHabbo().GetMessenger().method_9(Session.GetHabbo().Id, current))
                    {
                        GameClient @class = PhoenixEnvironment.GetGame().GetClientManager().GetClientByHabbo(current);
                        if (@class == null)
                        {
                            break;
                        }
                        @class.SendMessage(Message);
                    }
                }
            }
        }
Exemple #31
0
 public static bool IsValidName(string username)
 {
     if (username.Length < 3 || username.Length > 15)
     {
         return(false);
     }
     if (username.Contains(" "))
     {
         return(false);
     }
     if (!Regex.IsMatch(string_0, "^[-a-zA-Z0-9._:,]+$"))
     {
         return(false);
     }
     if (username != ChatCommandHandler.ApplyFilter(username))
     {
         return(false);
     }
     return(true);
 }
Exemple #32
0
 internal void Init(GameClient client, UserData data)
 {
     this.mClient             = client;
     this.SubscriptionManager = new SubscriptionManager(this.Id, data);
     this.BadgeComponent      = new BadgeComponent(this.Id, data);
     this.InventoryComponent  = InventoryGlobal.GetInventory(this.Id, client, data);
     this.InventoryComponent.SetActiveState(client);
     this.CommandHandler = new ChatCommandHandler(client);
     this.AvatarEffectsInventoryComponent = new AvatarEffectsInventoryComponent(this.Id, client, data);
     this.quests    = data.quests;
     this.Messenger = new HabboMessenger(this.Id);
     this.Messenger.Init(data.friends, data.requests);
     this.FriendCount            = Convert.ToUInt32(data.friends.Count);
     this.SpectatorMode          = false;
     this.Disconnected           = false;
     this.UsersRooms             = data.rooms;
     this.MinimailUnreadMessages = data.miniMailCount;
     this.Relationships          = data.Relations;
     this.AnsweredPolls          = data.suggestedPolls;
 }
        internal void method_18(uint uint_1, string string_0)
        {
            if (!String.IsNullOrEmpty(string_0) && !String.IsNullOrWhiteSpace(string_0))
            {
                if (!this.method_9(uint_1, this.uint_0))
                {
                    this.method_20(6, uint_1);
                }
                else
                {
                    GameClient @class = Essential.GetGame().GetClientManager().GetClient(uint_1);
                    if (@class == null || @class.GetHabbo().GetMessenger() == null)
                    {
                        this.method_20(5, uint_1);
                    }
                    else
                    {
                        if (this.method_25().GetHabbo().IsMuted)
                        {
                            this.method_20(4, uint_1);
                        }
                        else
                        {
                            if (@class.GetHabbo().IsMuted)
                            {
                                this.method_20(3, uint_1);
                                return;
                            }
                            if (this.method_25().GetHabbo().method_4() > 0)
                            {
                                TimeSpan timeSpan = DateTime.Now - this.method_25().GetHabbo().dateTime_0;
                                if (timeSpan.Seconds > 4)
                                {
                                    this.method_25().GetHabbo().int_23 = 0;
                                }
                                if (timeSpan.Seconds < 4 && this.method_25().GetHabbo().int_23 > 5)
                                {
                                    this.method_20(4, uint_1);
                                    return;
                                }
                                this.method_25().GetHabbo().dateTime_0 = DateTime.Now;
                                this.method_25().GetHabbo().int_23++;
                            }

                            string_0 = ChatCommandHandler.ApplyFilter(string_0);
                            if (ServerConfiguration.EnableChatlog && !this.method_25().GetHabbo().IsJuniori)
                            {
                                using (DatabaseClient class2 = Essential.GetDatabase().GetClient())
                                {
                                    class2.AddParamWithValue("message", "<PM to " + @class.GetHabbo().Username + ">: " + string_0);
                                    class2.ExecuteQuery(string.Concat(new object[]
                                    {
                                        "INSERT INTO chatlogs (user_id,room_id,hour,minute,timestamp,message,user_name,full_date) VALUES ('",
                                        this.method_25().GetHabbo().Id,
                                        "','0','",
                                        DateTime.Now.Hour,
                                        "','",
                                        DateTime.Now.Minute,
                                        "',UNIX_TIMESTAMP(),@message,'",
                                        this.method_25().GetHabbo().Username,
                                        "','",
                                        DateTime.Now.ToLongDateString(),
                                        "')"
                                    }));
                                }
                            }
                            @class.GetHabbo().GetMessenger().method_19(string_0, this.uint_0);
                        }
                    }
                }
            }
        }
 public CssReceiver(ChatCommandHandler chatMessageHandler)
 {
     this.chatMessageHandler = chatMessageHandler;
 }
 public TvReciever(ChatCommandHandler chatMessageHandler)
 {
     this.chatMessageHandler = chatMessageHandler;
 }
	    protected override void OnDestroy()
	    {
	        client.Stop();
            cmdReceiver = null;
            base.OnDestroy();
	    }
		protected override void OnCreate(Bundle bundle)
		{
			base.OnCreate(bundle);

            LogManager.LogFactory = new GenericLogFactory(Console.WriteLine);

			// Set our view from the "main" layout resource
			SetContentView(Resource.Layout.Main);
			// Get our button from the layout resource,
			// and attach an event to it
			Button sendButton = FindViewById<Button>(Resource.Id.sendMessageButton);
			messageBox = FindViewById<EditText>(Resource.Id.message);
			SupportToolbar mToolbar = FindViewById<SupportToolbar>(Resource.Id.toolbar);
			mDrawerLayout = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
			navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
			mRightDrawer = FindViewById<ListView>(Resource.Id.right_drawer);
			var messageHistoryList = FindViewById<ListView>(Resource.Id.messageHistory);
            var chatBackground = FindViewById<ImageView>(Resource.Id.chat_background);
            InitDefaultBackground(chatBackground);

            navigationView.Tag = 0;
			mRightDrawer.Tag = 1;

			var messageHistoryAdapter = new MessageListViewAdapter(this, new List<ChatMessage>(), () => this.subscriberList);
			messageHistoryList.Adapter = messageHistoryAdapter;

		    var txtUser = FindViewById<TextView>(Resource.Id.txtUserName);
		    var imgProfile = FindViewById<ImageView>(Resource.Id.imgProfile);
		    var channels = new[] {"home"};
			cmdReceiver = new ChatCommandHandler (this, messageHistoryAdapter, "home");

		    client = new ServerEventsClient(BaseUrl, channels)
		    {
		        OnConnect = connectMsg =>
		        {
		            client.UpdateChatHistory(cmdReceiver).ConfigureAwait(false);
		            connectMsg.UpdateUserProfile(txtUser, imgProfile);
		        },
                OnCommand = command =>
                {
                    if (command is ServerEventJoin)
                    {
						client.GetSubscribers().ContinueWith(result => {
							result.Wait();
                            subscriberList = result.Result;
                            Application.SynchronizationContext.Post(_ =>
                            {
                                // Refresh profile icons when users join
                                messageHistoryAdapter.NotifyDataSetChanged();
                            }, null);
						});
                    }  
                },
		        OnException =
		            error =>
		            {
		                Application.SynchronizationContext.Post(
		                    _ => { Toast.MakeText(this, "Error : " + error.Message, ToastLength.Long); }, null);
		            },
		        //ServiceClient = new JsonHttpClient(BaseUrl),
		        Resolver = new MessageResolver(cmdReceiver)
		    };
		    client.RegisterNamedReceiver<ChatReceiver>("cmd");
            client.RegisterNamedReceiver<TvReciever>("tv");
            client.RegisterNamedReceiver<CssReceiver>("css");
            
            SetSupportActionBar(mToolbar);

		    var mRightDataSet = new List<string>(commands.Keys);
		    var mRightAdapter = new ActionListViewAdapter(this, mRightDataSet);
			mRightDrawer.Adapter = mRightAdapter;
		    mRightDrawer.ItemClick += (sender, args) =>
		    {
               Application.SynchronizationContext.Post(_ =>
               {
                   messageBox.Text = commands[mRightDataSet[args.Position]];
                   mDrawerLayout.CloseDrawer(mRightDrawer);
               },null);
		    };

			mDrawerToggle = new ChatActionBarDrawerToggle(
				this,							//Host Activity
				mDrawerLayout,					//DrawerLayout
				mToolbar,						// Instance of toolbar, if you use other ctor, the hamburger icon/arrow animation won't work..
				Resource.String.openDrawer,		//Opened Message
				Resource.String.closeDrawer		//Closed Message
			);

			SupportActionBar.SetHomeButtonEnabled(true);
			SupportActionBar.SetDisplayShowTitleEnabled(true);

			mDrawerLayout.SetDrawerListener(mDrawerToggle);
			mDrawerToggle.SyncState();

		    navigationView.NavigationItemSelected += OnChannelClick;
            sendButton.Click += OnSendClick;
		}