public ThreadCreatedComposer(GameClient Session, GroupForumThread Thread) : base(ServerPacketHeader.ThreadCreatedMessageComposer) { base.WriteInteger(Thread.ParentForum.Id); //Thread ID Thread.SerializeData(Session, this); /* * base.WriteInteger(Thread.Id); //Thread ID * base.WriteInteger(Thread.GetAuthor().Id); * base.WriteString(Thread.GetAuthor().Username); //Thread Author * base.WriteString(Thread.Caption); //Thread Title * base.WriteBoolean(false); //Pinned * base.WriteBoolean(false); //Locked * base.WriteInteger((int)(QuasarEnvironment.GetUnixTimestamp() - Thread.Timestamp)); //Created Secs Ago * base.WriteInteger(Thread.Posts.Count); //Message count * base.WriteInteger(Thread.GetUnreadMessages(Session.GetHabbo().Id)); //Unread message count * base.WriteInteger(0); // idk * base.WriteInteger(0); // idk * * base.WriteString("Unknown");// Last User Post Username * base.WriteInteger(65); // Last User Post time ago [Sec] * * base.WriteByte(0); //idk * base.WriteInteger(10);// idk * base.WriteString("Str4"); //idk * base.WriteInteger(11);//idk*/ }
public ThreadUpdatedComposer(GameClient Session, GroupForumThread Thread) : base(ServerPacketHeader.ThreadUpdatedMessageComposer) { WriteInteger(Thread.ParentForum.Id); Thread.SerializeData(Session, this); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); int threadId = request.GetInteger(); int stateToSet = request.GetInteger(); Group theGroup = GroupRepository.Find(groupId); if (theGroup != null) { GroupForumThread thread = theGroup.Forum.GetThread(threadId); if (thread != null && (thread.Creator == session.Info || theGroup.Admins.Contains(session.Info))) { thread.Hidden = stateToSet == 20; thread.HiddenBy = session.Info; GroupRepository.Save(theGroup); router.GetComposer <SuperNotificationMessageComposer>() .Compose(session, string.Empty, string.Empty, string.Empty, string.Empty, stateToSet == 20 ? "forums.thread.hidden" : "forums.thread.restored", 0); router.GetComposer <GroupForumThreadUpdateMessageComposer>() .Compose(session, groupId, thread, thread.Pinned, thread.Locked); } } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); int threadId = request.GetInteger(); int startIndex = request.GetInteger(); request.GetInteger(); // TODO Unused Group theGroup = GroupRepository.Find(groupId); if (theGroup == null) { return; } GroupForumThread thread = theGroup.Forum.GetThread(threadId); if (thread == null) { return; } // TODO Magic constant List <GroupForumPost> posts = thread.Posts.Skip(startIndex).Take(20).ToList(); router.GetComposer <GroupForumReadThreadMessageComposer>() .Compose(session, groupId, threadId, startIndex, posts); }
public override void Compose(Yupi.Protocol.ISender session, int groupId, GroupForumThread thread, bool pin, bool Lock) { // TODO Hardcoded message using (ServerMessage message = Pool.GetMessageBuffer(Id)) { message.AppendInteger(groupId); message.AppendInteger(thread.Id); message.AppendInteger(thread.Creator.Id); message.AppendString(thread.Creator.Name); message.AppendString(thread.Subject); message.AppendBool(thread.Pinned); message.AppendBool(thread.Locked); message.AppendInteger((int)(DateTime.Now - thread.CreatedAt).TotalSeconds); message.AppendInteger(thread.Posts.Count); message.AppendInteger(0); message.AppendInteger(0); message.AppendInteger(1); message.AppendString(string.Empty); message.AppendInteger((int)(DateTime.Now - thread.CreatedAt).TotalSeconds); message.AppendByte(thread.Hidden ? 10 : 1); message.AppendInteger(1); message.AppendString(thread.HiddenBy.Name); message.AppendInteger(0); session.Send(message); } }
public ThreadDataComposer(GroupForumThread Thread, int StartIndex, int MaxLength) : base(ServerPacketHeader.ThreadDataMessageComposer) { base.WriteInteger(Thread.ParentForum.Id); base.WriteInteger(Thread.Id); base.WriteInteger(StartIndex); base.WriteInteger(Thread.Posts.Count); //Messages count foreach (var Post in Thread.Posts) { Post.SerializeData(this); } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); int threadId = request.GetInteger(); bool pin = request.GetBool(); bool Lock = request.GetBool(); Group theGroup = GroupRepository.Find(groupId); if (theGroup == null) { return; } GroupForumThread thread = theGroup.Forum.GetThread(threadId); if (thread.Creator == session.Info || theGroup.Admins.Contains(session.Info)) { thread.Locked = Lock; thread.Pinned = pin; } //GroupForumPost thread = new GroupForumPost(row); throw new NotImplementedException(); /* * if (thread.Pinned != pin) { * router.GetComposer<SuperNotificationMessageComposer> ().Compose (session, string.Empty, string.Empty, string.Empty, string.Empty, * pin ? "forums.thread.pinned" : "forums.thread.unpinned", 0); * } * * if (thread.Locked != Lock) { * router.GetComposer<SuperNotificationMessageComposer> ().Compose (session, string.Empty, string.Empty, string.Empty, string.Empty, * Lock ? "forums.thread.locked" : "forums.thread.unlocked", 0); * } * * router.GetComposer<GroupForumThreadUpdateMessageComposer> ().Compose (session, groupId, thread, pin, Lock); */ }
public ThreadCreatedComposer(GameClient Session, GroupForumThread Thread) : base(ServerPacketHeader.ThreadCreatedMessageComposer) { base.WriteInteger(Thread.ParentForum.Id); //Thread ID base.WriteInteger(Thread.Id); //Thread ID base.WriteInteger(Thread.GetAuthor().Id); base.WriteString(Thread.GetAuthor().Username); //Thread Author base.WriteString(Thread.Caption); //Thread Title base.WriteBoolean(false); //Pinned base.WriteBoolean(false); //Locked base.WriteInteger((int)(RocketEmulador.GetUnixTimestamp() - Thread.Timestamp)); //Created Secs Ago base.WriteInteger(Thread.Posts.Count); //Message count base.WriteInteger(Thread.GetUnreadMessages(Session.GetHabbo().Id)); //Unread message count base.WriteInteger(0); // idk base.WriteInteger(0); // idk base.WriteString("Unknown"); // Last User Post Username base.WriteInteger(65); // Last User Post time ago [Sec] base.WriteByte(0); //idk base.WriteInteger(10); // idk base.WriteString("Str4"); //idk base.WriteInteger(11); //idk }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); int threadId = request.GetInteger(); string subject = request.GetString(); string content = request.GetString(); Group group = GroupRepository.Find(groupId); if (group == null) { return; } GroupForumThread thread; if (threadId == 0) { // New thread thread = new GroupForumThread(); } else { thread = group.Forum.GetThread(threadId); if (thread == null) { return; } } if (thread.Locked || thread.Hidden) { return; } GroupForumPost post = new GroupForumPost() { Content = content, Subject = subject, Poster = session.Info }; group.Forum.ForumScore += 0.25; // TODO SAVE throw new NotImplementedException(); /* * group.UpdateForum(); * * if (threadId == 0) * { * router.GetComposer<GroupForumNewThreadMessageComposer> ().Compose (session, groupId, threadId, session.GetHabbo ().Id, subject, content, timestamp); * } * else * { * router.GetComposer<GroupForumNewResponseMessageComposer> ().Compose ( * session, groupId, threadId, group.Forum.ForumMessagesCount, session.GetHabbo (), timestamp); * }*/ }
public virtual void Compose(Yupi.Protocol.ISender session, int groupId, GroupForumThread thread, bool pin, bool Lock) { // Do nothing by default. }