Example #1
0
        public void Whisper(Habbo session, string message, ChatBubbleStyle bubble, RoomEntity target, int count = -1)
        {
            if (!Validate(ref message) || TryHandleCommand(message) || !bubble.CanUse(session.Info))
            {
                return;
            }

            session.RoomEntity.Wake();

            ChatMessage entry = CreateMessage(session, message, bubble);

            entry.Whisper = true;
            // TODO Save Whisper target
            // TODO Save Chatlog

            session.Router.GetComposer <WhisperMessageComposer>().Compose(session, entry, count);

            if (target != null)
            {
                target.HandleChatMessage(session.RoomEntity, targetSession =>
                {
                    targetSession.Router.GetComposer <WhisperMessageComposer>()
                    .Compose(targetSession, entry, count);
                });
            }

            // TODO Trigger Wired
        }
Example #2
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.RoomEntity == null)
            {
                return;
            }

            string command  = request.GetString();
            int    bubbleId = request.GetInteger();

            ChatBubbleStyle bubble;

            if (!ChatBubbleStyle.TryFromInt32(bubbleId, out bubble))
            {
                return;
            }

            string[] args = command.Split(new char[] { ' ' }, 2);

            if (args.Length != 2)
            {
                return;
            }

            string targetUsername = args[0];
            string msg            = args[1];

            RoomEntity target = session.Room.GetEntity(targetUsername);

            Chat.Whisper(session, msg, bubble, target, -1);
        }
Example #3
0
 public void Shout(Habbo session, string message, ChatBubbleStyle bubble, int count = -1)
 {
     Chat(session, message, bubble, (user, entry) =>
     {
         user.Router.GetComposer <ShoutMessageComposer>()
         .Compose(user, entry, count);
     });
 }
Example #4
0
        private ChatMessage CreateMessage(Habbo session, string message, ChatBubbleStyle bubble)
        {
            ChatMessage msg = new ChatMessage
            {
                OriginalMessage = message,
                Entity          = session.RoomEntity,
                Bubble          = bubble,
                User            = session.Info
            };

            session.Room.Data.Chatlog.Add(msg);
            return(msg);
        }
Example #5
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.RoomEntity == null)
            {
                return;
            }

            string message  = request.GetString();
            int    bubbleId = request.GetInteger();

            ChatBubbleStyle bubble;

            if (ChatBubbleStyle.TryFromInt32(bubbleId, out bubble))
            {
                Chat.Shout(session, message, bubble);
            }
        }
Example #6
0
        private void Chat(Habbo session, string message, ChatBubbleStyle bubble, Action <Habbo, ChatMessage> composer)
        {
            if (!Validate(ref message) || TryHandleCommand(message) || !bubble.CanUse(session.Info))
            {
                return;
            }

            session.RoomEntity.Wake();

            ChatMessage entry = CreateMessage(session, message, bubble);

            session.Info.Preferences.ChatBubbleStyle = bubble;
            // TODO Save Preferences
            // TODO Save Chatlog
            session.Room.EachEntity(
                entity => { entity.HandleChatMessage(session.RoomEntity, user => composer(user, entry)); }
                );

            // TODO Trigger Wired
        }