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 }
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); }
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); }); }
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); }
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); } }
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 }