public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { string name = request.GetString(); // TODO Refactor switch (name) { case "predefined_noob_lobby": { /* * int roomId = Convert.ToUInt32(Yupi.GetDbConfig().DbData["noob.lobby.roomid"]); * router.GetComposer<RoomForwardMessageComposer> ().Compose (session, roomId);*/ throw new NotImplementedException(); break; } case "random_friending_room": { Room room = RoomManager.GetActive().ToList().Random(); router.GetComposer <RoomForwardMessageComposer>().Compose(session, room.Data.Id); break; } } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { string time = message.GetString(); router.GetComposer <HotelViewCountdownMessageComposer>().Compose(session, time); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { /* * Yupi.Messages.Rooms room = Yupi.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); * * uint petId = request.GetUInt32(); * * RoomUser pet = room.GetRoomUserManager().GetPet(petId); * * if (pet.PetData.AnyoneCanRide == 1) * { * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * queryReactor.RunFastQuery($"UPDATE pets_data SET anyone_ride = '0' WHERE id={num} LIMIT 1"); * * pet.PetData.AnyoneCanRide = 0; * } * else * { * using (IQueryAdapter queryreactor2 = Yupi.GetDatabaseManager().GetQueryReactor()) * queryreactor2.RunFastQuery($"UPDATE pets_data SET anyone_ride = '1' WHERE id = {num} LIMIT 1"); * * pet.PetData.AnyoneCanRide = 1; * } * * router.GetComposer<PetInfoMessageComposer> ().Compose (room, pet.PetData); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int toId = request.GetInteger(); string text = request.GetString(); if (string.IsNullOrWhiteSpace(text)) { return; } Relationship friend = session.Info.Relationships.FindByUser(toId); if (friend != null) { MessengerMessage message = new MessengerMessage() { From = session.Info, UnfilteredText = text, Text = Wordfilter.Filter(text), Timestamp = DateTime.Now, }; var friendSession = ClientManager.GetByInfo(friend.Friend); friendSession?.Router.GetComposer <ConsoleChatMessageComposer>().Compose(session, message); message.Read = friendSession != null; // TODO Store for offline // TODO Store for chatlog } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { Room room = session.Room; int userId = message.GetInteger(); UserEntity roomUserByHabbo = room?.GetEntity(userId) as UserEntity; if (roomUserByHabbo == null) { return; } router.GetComposer <UserTagsMessageComposer>() .Compose(session, roomUserByHabbo.UserInfo); // TODO Move to proper place! /* * if (session.Info.Tags.Count >= 5) { * Yupi.GetGame () * .GetAchievementManager () * .ProgressUserAchievement (roomUserByHabbo.GetClient (), "ACH_UserTags", 5); * * }*/ }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { /* * Room room = Yupi.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); * * if (room == null) * return; * // TODO Use permissions * if (!room.CheckRights(session) && room.RoomData.WhoCanKick != 2 && * session.GetHabbo().Rank < Convert.ToUInt32(Yupi.GetDbConfig().DbData["ambassador.minrank"])) * return; * * uint userId = request.GetUInt32(); * * RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabbo(userId); * * if (roomUserByHabbo == null || roomUserByHabbo.IsBot) * return; * * if (room.CheckRights(roomUserByHabbo.GetClient(), true) || * roomUserByHabbo.GetClient().UserData.Info.HasPermission("fuse_mod") || * roomUserByHabbo.GetClient().UserData.Info.HasPermission("fuse_no_kick")) // TODO Shouldn't we tell the user about this? (Whisper?) * return; * * room.GetRoomUserManager().RemoveUserFromRoom(roomUserByHabbo.GetClient(), true, true); * roomUserByHabbo.GetClient().CurrentRoomUserId = -1; */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { List <RoomData> rooms = session.Info.UsersRooms.Where(x => x.Group == null).ToList(); router.GetComposer <GroupPurchasePageMessageComposer>().Compose(session, rooms); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { if (session.RoomEntity == null) { return; } int actionId = request.GetInteger(); UserAction action; if (!UserAction.TryParse(actionId, out action)) { return; } if (action == UserAction.Idle) { session.RoomEntity.Sleep(); } else { session.RoomEntity.Wake(); session.RoomEntity.Room.EachUser( roomSession => { roomSession.Router.GetComposer <RoomUserActionMessageComposer>() .Compose(roomSession, session.RoomEntity.Id, action); }); } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { /* * Yupi.Messages.Rooms room = Yupi.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); * * if (room == null || (!room.RoomData.AllowPets && !room.CheckRights(session, true))) * return; * * uint petId = request.GetUInt32(); * * RoomUser pet = room.GetRoomUserManager().GetPet(petId); * * if (pet?.PetData == null || pet.PetData.OwnerId != session.GetHabbo().Id) * return; * * pet.PetData.HaveSaddle = false; * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.RunFastQuery( * $"UPDATE pets_data SET have_saddle = '0' WHERE id = {pet.PetData.PetId}"); * * queryReactor.RunFastQuery( * $"INSERT INTO items_rooms (user_id, item_name) VALUES ({session.GetHabbo().Id}, 'horse_saddle1');"); * } * * session.GetHabbo().GetInventoryComponent().UpdateItems(true); * * router.GetComposer<SetRoomUserMessageComposer> ().Compose (room, pet); * router.GetComposer<SerializePetMessageComposer> ().Compose (room, pet); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); int color1 = request.GetInteger(); int color2 = request.GetInteger(); Group group = GroupRepository.Find(groupId); if (group?.Creator != session.Info) { return; } group.Colour1 = new GroupSymbolColours() { Colour = color1 }; group.Colour2 = new GroupBackGroundColours() { Colour = color2 }; throw new NotImplementedException(); //router.GetComposer<GroupDataMessageComposer> ().Compose (session.GetHabbo().CurrentRoom, group, session.GetHabbo()); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { string newName = message.GetString(); List <string> alternatives; NameChangedUpdatesMessageComposer.Status status = Validate(newName, session.Info.Name, out alternatives); if (status == NameChangedUpdatesMessageComposer.Status.OK) { session.Info.Name = newName; router.GetComposer <UpdateUsernameMessageComposer>().Compose(session, newName); // TODO Refactor UserRepository.Save(session.Info); if (session.Room != null) { session.Room.EachUser( (roomSession) => { router.GetComposer <UserUpdateNameInRoomMessageComposer>() .Compose(roomSession, session); } ); } // TODO Update room owner // TODO Notify messenger } }
// TODO Refactor public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int userId = request.GetInteger(); Relationship relationship = session.Info.Relationships.FindByUser(userId); if (relationship == null) { router.GetComposer <FollowFriendErrorMessageComposer>().Compose(session, 0); } else { var friendSession = ClientManager.GetByUserId(userId); if (friendSession == null || friendSession.Room == null) { router.GetComposer <FollowFriendErrorMessageComposer>().Compose(session, 2); } else { router.GetComposer <RoomForwardMessageComposer>().Compose(session, friendSession.Room.Data.Id); } } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { UserEntity userEntity = session.RoomEntity; if (userEntity == null) { return; } int effectId = message.GetInteger(); if (session.IsRidingHorse) { return; } if (effectId == 0) { EffectController.StopEffect(session, session.Info.EffectComponent.ActiveEffect); } else { EffectController.ActivateEffect(userEntity, effectId); } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { string whatever = message.GetString(); // TODO What does the string contain? router.GetComposer <CitizenshipStatusMessageComposer>().Compose(session, whatever); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { request.GetBool(); // TODO Unused string idAsString = request.GetString(); int userId; int.TryParse(idAsString, out userId); if (userId == 0) { return; } string message = request.GetString(); Habbo guide = GuideManager.GetRandomGuide(); if (guide == null) { router.GetComposer <OnGuideSessionErrorComposer>().Compose(session); return; } router.GetComposer <OnGuideSessionAttachedMessageComposer>().Compose(session, false, userId, message, 30); router.GetComposer <OnGuideSessionAttachedMessageComposer>().Compose(guide, true, userId, message, 15); guide.GuideOtherUser = session; session.GuideOtherUser = guide; }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { router.GetComposer <SubscriptionStatusMessageComposer>().Compose(session, session.Info.Subscription); // TODO Implement Ambassador router.GetComposer <UserClubRightsMessageComposer>().Compose(session, session.Info.Subscription.GetLevel(), session.Info.Rank, false); }
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 override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { int windowId = message.GetInteger(); router.GetComposer <CatalogueClubPageMessageComposer>().Compose(session, windowId); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { int targetUserId = message.GetInteger(); message.GetUInt32(); // TODO Unknown int duration = message.GetInteger(); Room room = session.Room; if (room == null || !room.Data.ModerationSettings.CanMute(session.Info)) { return; } UserEntity targetUser = room.GetEntity(targetUserId) as UserEntity; if (targetUser == null || targetUser.UserInfo.Rank >= session.Info.Rank) { return; } room.Data.MutedEntities.Add(new RoomMute() { Entity = targetUser.UserInfo, ExpiresAt = DateTime.Now.AddMinutes(duration) }); targetUser.User.Router.GetComposer <SuperNotificationMessageComposer>() .Compose(targetUser.User, T._("Notice"), string.Format(T._("The owner of the room has muted you for {0} minutes!"), duration), "", "", "", 4); }
// TODO Refactor public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); string name = request.GetString(); string description = request.GetString(); Group theGroup = GroupRepository.Find(groupId); if (theGroup?.Creator != session.Info) { return; } theGroup.Name = name; theGroup.Description = description; GroupRepository.Save(theGroup); if (session.Room != null) { session.Room.EachUser( (entitySession) => { entitySession.Router.GetComposer <GroupDataMessageComposer>() .Compose(entitySession, theGroup, session.Info); }); } else { router.GetComposer <GroupDataMessageComposer>().Compose(session, theGroup, session.Info); } }
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 HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { if (session.RoomEntity == null) { return; } if (session.RoomEntity.RotBody % 2 != 0) { session.RoomEntity.SetRotation(session.RoomEntity.RotBody - 1); } Vector3 position = session.RoomEntity.Position; position.Z = session.Room.HeightMap.GetTileHeight(session.RoomEntity.Position); session.RoomEntity.SetPosition(position); EntityStatus status = session.RoomEntity.Status; if (status.IsSitting()) { status.Stand(); } else { // TODO Stop dancing status.Sit(); } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { /* * Room room = Yupi.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); * * if (room == null || !room.CheckRights(session)) * return; * * string userName = request.GetString(); * bool anwser = request.GetBool(); * * GameClient clientByUserName = Yupi.GetGame().GetClientManager().GetClientByUserName(userName); * * if (clientByUserName == null) * return; * * if (anwser) * { * clientByUserName.GetHabbo().LoadingChecksPassed = true; * * router.GetComposer<DoorbellOpenedMessageComposer> ().Compose (clientByUserName); * } * else if (clientByUserName.GetHabbo().CurrentRoomId != session.GetHabbo().CurrentRoomId) * { * router.GetComposer<DoorbellNoOneMessageComposer> ().Compose (clientByUserName); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { if (!session.Info.HasPermission("fuse_mod")) { return; } int ticketCount = message.GetInteger(); for (int i = 0; i < ticketCount; i++) { int ticketId = message.GetInteger(); SupportTicket ticket = TicketRepository.Find(ticketId); if (ticket != null) { ticket.Release(); TicketRepository.Save(ticket); } foreach (Habbo staff in ClientManager.GetByPermission("handle_cfh")) { staff.Router.GetComposer <ModerationToolIssueMessageComposer>().Compose(staff, ticket); } } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { string username = request.GetString(); // TODO Implement //session.Router.GetComposer<HotelClosedMessageComposer> ().Compose (session, 8, 0, false); if (username != session.Info.Name) { // TODO Should we check this and disconnect on mismatch? } // TODO Welcome message //router.GetComposer<SuperNotificationMessageComposer>().Compose(session, T._("Welcome"), T._("This is a development build")); /* * YupiWriterManager.WriteLine(request.GetString() + " joined game. With IP " + session.RemoteAddress, "Yupi.User", ConsoleColor.DarkGreen); * * if (!ServerConfigurationSettings.Data.ContainsKey("welcome.message.enabled") || * ServerConfigurationSettings.Data["welcome.message.enabled"] != "true") * return; * * if (!ServerConfigurationSettings.Data.ContainsKey("welcome.message.image") || * string.IsNullOrEmpty(ServerConfigurationSettings.Data["welcome.message.image"])) * session.SendNotifWithScroll(ServerExtraSettings.WelcomeMessage.Replace("%username%", * session.GetHabbo().Name)); * else * session.SendNotif(ServerExtraSettings.WelcomeMessage.Replace("%username%", session.GetHabbo().Name), * ServerConfigurationSettings.Data.ContainsKey("welcome.message.title") * ? ServerConfigurationSettings.Data["welcome.message.title"] * : string.Empty, ServerConfigurationSettings.Data["welcome.message.image"]); */ }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); int userId = request.GetInteger(); Group group = GroupRepository.Find(groupId); UserInfo user = UserRepository.Find(userId); if (group == null || !group.Admins.Contains(session.Info) || !group.Requests.Contains(user)) { return; } throw new NotImplementedException(); /* * * GroupMember memberGroup = group.Requests[userId]; * * memberGroup.DateJoin = Yupi.GetUnixTimeStamp(); * group.Members.Add(userId, memberGroup); * group.Requests.Remove(userId); * group.Admins.Add(userId, group.Members[userId]); * * router.GetComposer<GroupDataMessageComposer> ().Compose (session, group, session.GetHabbo()); * router.GetComposer<GroupMembersMessageComposer> ().Compose (session, group, 0u, session); */ }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int roomId = request.GetInteger(); request.GetBool(); // TODO Unused RoomData roomData = RoomRepository.Find(roomId); if (roomData == null) { return; } // TODO TOGGLE?! AchievementManager.ProgressUserAchievement(roomData.Owner, RoomBuilderAchievement.StaffPickedRooms); // TODO Add room to Staff Pick category! throw new NotImplementedException(); Room room = RoomManager.GetIfLoaded(roomData); if (room != null) { room.EachUser( (entitySession) => { entitySession.Router.GetComposer <RoomDataMessageComposer>() .Compose(entitySession, roomData, entitySession.Info, true, true); }); } }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { string motto = message.GetString(); // TODO Filter! session.Info.Motto = motto; UserRepository.Save(session.Info); if (session.Room == null) { return; } session.Room.EachUser( (roomSession) => { router.GetComposer <UpdateUserDataMessageComposer>() .Compose(roomSession, session.Info, session.RoomEntity.Id); } ); AchievementManager.ProgressUserAchievement(session, ProfileAchievement.Motto); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { /*Room currentLoadingRoom = CurrentLoadingRoom; * * if (currentLoadingRoom == null || !session.GetHabbo().LoadingChecksPassed) * return queuedServerMessageBuffer; * * if (session.GetHabbo().FavouriteGroup > 0u) * { * if (CurrentLoadingRoom.RoomData.Group != null && !CurrentLoadingRoom.LoadedGroups.ContainsKey(CurrentLoadingRoom.RoomData.Group.Id)) * CurrentLoadingRoom.LoadedGroups.Add(CurrentLoadingRoom.RoomData.Group.Id, CurrentLoadingRoom.RoomData.Group.Badge); * * if (!CurrentLoadingRoom.LoadedGroups.ContainsKey(Session.GetHabbo().FavouriteGroup) && Yupi.GetGame().GetGroupManager().GetGroup(Session.GetHabbo().FavouriteGroup) != null) * CurrentLoadingRoom.LoadedGroups.Add(Session.GetHabbo().FavouriteGroup, Yupi.GetGame().GetGroupManager().GetGroup(Session.GetHabbo().FavouriteGroup).Badge); * } * * router.GetComposer<RoomGroupMessageComposer> ().Compose (session); * router.GetComposer<InitialRoomInfoMessageComposer> ().Compose (session, currentLoadingRoom); * * if (session.GetHabbo().SpectatorMode) * { * router.GetComposer<SpectatorModeMessageComposer> ().Compose (session); * } * * if (currentLoadingRoom.RoomData.WallPaper != "0.0") * { * router.GetComposer<RoomSpacesMessageComposer> ().Compose (session, RoomSpacesMessageComposer.RoomSpacesType.WALLPAPER, currentLoadingRoom); * } * * if (currentLoadingRoom.RoomData.Floor != "0.0") * { * router.GetComposer<RoomSpacesMessageComposer> ().Compose (session, RoomSpacesMessageComposer.RoomSpacesType.FLOOR, currentLoadingRoom); * } * * router.GetComposer<RoomSpacesMessageComposer> ().Compose (session, RoomSpacesMessageComposer.RoomSpacesType.LANDSCAPE, currentLoadingRoom); * * if (currentLoadingRoom.CheckRights(session, true)) * { * // TODO Magic number * router.GetComposer<RoomRightsLevelMessageComposer> ().Compose (session, 4); * router.GetComposer<HasOwnerRightsMessageComposer> ().Compose (session); * } * else if (currentLoadingRoom.CheckRights(session, false, true)) * { * router.GetComposer<RoomRightsLevelMessageComposer> ().Compose (session, 1); * } * else * { * router.GetComposer<RoomRightsLevelMessageComposer> ().Compose (session, 0); * } * * router.GetComposer<RoomRatingMessageComposer> ().Compose (session, urrentLoadingRoom.RoomData.Score, * !session.GetHabbo ().RatedRooms.Contains (currentLoadingRoom.RoomId) && !currentLoadingRoom.CheckRights (session, true)); // TODO Refactor * * router.GetComposer<RoomUpdateMessageComposer> ().Compose (session, currentLoadingRoom.RoomId); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { string badgeCode = message.GetString(); bool hasBadge = session.Info.Badges.HasBadge(badgeCode); router.GetComposer <SendCampaignBadgeMessageComposer>().Compose(session, badgeCode, hasBadge); }