public void Invoke(Session Session, Messages.PacketEvent Packet) { if (System.Configuration.PopBoolean("MOTD.Notifitation.Enabled")) { Session.WriteComposer(new MOTDNotificationComposer(System.Configuration.PopString("MOTD.Notifitation.Message"))); } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { int A = Packet.PopInt32(); int B = Packet.PopInt32(); Session.UpdateLatencyPing(((A + B) / 2)); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { string Name = Packet.PopString(); string Model = Packet.PopString(); System.IOStreamer.AppendLine("Caption: {0}, Model: {1}", Name, Model); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { switch (Packet.PopString()) { case "Performance": switch (Packet.PopString()) { case "fps": Session.UpdateFramesPerSecond(int.Parse(Packet.PopString())); break; } break; } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { RoomAdapter Adapter; if (System.HabboSystem.CharacterManager.GetCurrentRoom(Session.Character.Id, out Adapter)) { RoomUnit Unit; if (Adapter.GetUnit(Session.Character.Id, out Unit)) { Adapter.WriteComposer(new ChatMessageComposer(Unit.Id, Packet.PopString())); } } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new HabboActivityPointNotificationMessageComposer(Session.Character.ActivityPoints)); Session.Character.UpdateAchievements(System.HabboSystem.AchievementManager.GetCharacterAchievement(Session.Character.Id)); Session.WriteComposer(new AchievementsScoreComposer(System.HabboSystem.AchievementManager.GetAchievementScore(Session.Character))); Session.WriteComposer(new NavigatorSettingsComposer(Session.Character.HomeRoom)); Session.WriteComposer(new UserRightsMessageComposer(Habbo.Characters.Membership.Vip, Session.Character.Id)); Session.Character.UpdateLogs(System.HabboSystem.CharacterManager.GetCharacterLogs(Session.Character.Id)); Session.Character.CheckAchievement(2); Session.Character.CheckAchievement(3); // RegistrationDuration Session.Character.CheckAchievement(10); // HappyHour // TODO serialize ach at login etc }
public void Invoke(Session Session, Messages.PacketEvent Packet) { string Ticket = Packet.PopString(); Character CharObj = System.HabboSystem.CharacterManager.Authenticate(Ticket); if (CharObj == null) { System.IOStreamer.AppendColor(ConsoleColor.Red); System.IOStreamer.AppendLine("Failed to Authenticate: {0}", Ticket); System.NetworkSocket.CloseSession(Session); } else { Session.UpdateCharacter(CharObj); Session.WriteComposer(new AuthenticationOKMessageComposer()); } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { RoomAdapter Adapter; if (System.HabboSystem.CharacterManager.GetCurrentRoom(Session.Character.Id, out Adapter)) { RoomUnit Unit; if (Adapter.GetUnit(Session.Character.Id, out Unit)) { var DanceId = Packet.PopInt32(); Unit.Dance(DanceId); Unit.Activate(); Adapter.WriteComposer(new DanceMessageComposer(Unit.Id, DanceId)); } } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { RoomAdapter Adapter; if (System.HabboSystem.CharacterManager.GetCurrentRoom(Session.Character.ConnectedRoom, out Adapter)) { RoomUnit Unit; Point Point = new Point(Adapter.Information.Model.LocationDoorX, Adapter.Information.Model.LocationDoorY); if (Adapter.GetUnit(Session.Character.ConnectedRoom, out Unit)) { Unit.StopWalk(); if (Unit.Point == Point) { Unit.Remove(); return; } var Path = System.HabboSystem.RoomManager.BlockCalculator.Generate(Unit.Point, Point, Adapter.BlockNodes); if (Path.Count > 0) { if (Path.Count <= 20) { Unit.GivePath(Path); } else { Unit.SetLocation(Point); } } else { Unit.Remove(); return; } } } }
/// <summary> /// Returns the status of an character. /// </summary> /// <param name="Username"></param> /// <returns></returns> public CharacterStatus GetStatus(string Username, out Session Session) { Session = System.NetworkSocket.GetSession(Username); return Session != null ? CharacterStatus.Online : CharacterStatus.Offline; }
public bool EnterRoom(Session Session,int RoomId, string Password, out Room Room) { Room = System.HabboSystem.RoomManager.GetRoom(RoomId); if (Room == null) { return false; } if (Room.GetRoomRight(Session.Character.Id) != RoomRight.Owner) { if (Room.DoorState == DoorState.Password) { if (Room.Password != Password) { Session.WriteComposer(new GenericErrorComposer(-100002)); Session.WriteComposer(new CloseConnectionMessageComposer()); return false; } } } RoomAdapter Adapter = System.HabboSystem.RoomManager.CastAdapter(RoomId); if (System.HabboSystem.RoomManager.HasAdapter(RoomId)) { if (Room.GetRoomRight(Session.Character.Id) != RoomRight.Owner) { if (Adapter.PlayersAmount >= Adapter.Information.Model.MaximalUnits) { Session.WriteComposer(new CantConnectMessageComposer(1)); Session.WriteComposer(new CloseConnectionMessageComposer()); return false; } } } Session.WriteComposer(new OpenConnectionMessageComposer()); return true; }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new LatencyPingResponseMessageComposer(Packet.PopInt32())); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new GuestRoomSearchResultComposer(System.HabboSystem.RoomManager.GetRooms(Session.Character.Id))); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Room Room; if (System.HabboSystem.RoomManager.GetRoom(Session.Character.LoadingRoom, out Room)) { Session.WriteComposer(new PublicRoomObjectsMessageComposer()); Session.WriteComposer(new ObjectsMessageComposer()); Session.WriteComposer(new ItemsMessageComposer()); RoomUnit Unit; if (Room.Adapter.CastPlayer(Session.Character.Id, out Unit)) { Room.Adapter.WriteComposer(new UsersMessageComposer(new List<RoomUnit> { Unit })); Room.Adapter.WriteComposer(new UserUpdateMessageComposer(new List<RoomUnit> { Unit })); Session.WriteComposer(new UsersMessageComposer(Room.Adapter.Units.Values)); // TODO: HideWalls, WallThick, FloorThick Session.WriteComposer(new RoomEntryInfoMessageComposer(Room.Id, Room.GetRoomRight(Session.Character.Id))); Session.WriteComposer(new UserUpdateMessageComposer(Room.Adapter.Units.Values)); Session.WriteComposer(new GlobalDanceMessageComposer(Room.Adapter.GetDancingUnits())); // TODO: Rights Composers Unit.Authenticate(); Session.Character.UpdateLoadingRoom(0); System.HabboSystem.MessengerManager.UpdateRequest(Session.Character.Id, Habbo.Messenger.MessengerUpdateType.RoomChange); } else { Session.WriteComposer(new CloseConnectionMessageComposer()); } } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new SoundSettingsComposer(Session.Character.SoundSettings)); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new CreditBalanceComposer(Session.Character.Credits)); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new UserObjectComposer(Session.Character)); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new RoomAdMessageComposer()); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Room Room; if (System.HabboSystem.RoomManager.EnterRoom(Session, Packet.PopInt32(), Packet.PopString(), out Room)) { Session.WriteComposer(new RoomUrlMessageComposer(Room.Id)); Session.WriteComposer(new RoomReadyMessageComposer(Room.Model.Caption, Room.Id)); /* * Wallpaper * Floor * Landscape * Rating * Event * */ Session.Character.UpdateLoadingRoom(Room.Id); Session.Character.UpdateConnectedRoom(0); } else { Session.WriteComposer(new CloseConnectionMessageComposer()); } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { var Point = new Point(Packet.PopInt32(), Packet.PopInt32()); RoomAdapter Adapter; if (System.HabboSystem.CharacterManager.GetCurrentRoom(Session.Character.Id, out Adapter)) { RoomUnit Unit; if (Adapter.GetUnit(Session.Character.Id, out Unit)) { if (Unit.Point == Point) { return; } Unit.StopWalk(); var Path = System.HabboSystem.RoomManager.BlockCalculator.Generate(Unit.Point, Point, Adapter.BlockNodes); if (Path.Count > 0) { Unit.GivePath(Path); } } } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { var Point = new Point(Packet.PopInt32(), Packet.PopInt32()); RoomAdapter Adapter; if (System.HabboSystem.CharacterManager.GetCurrentRoom(Session.Character.Id, out Adapter)) { RoomUnit Unit; if (Adapter.GetUnit(Session.Character.Id, out Unit)) { if (Unit.Point == Point) { return; } Unit.StopWalk(); Unit.LookAt(Point); } } }
/// <summary> /// Returns the status of an character. /// </summary> /// <param name="Username"></param> /// <returns></returns> public CharacterStatus GetStatus(int Id, out Session Session) { Session = System.NetworkSocket.GetSession(Id); return Session != null ? CharacterStatus.Online : CharacterStatus.Offline; }
/// <summary> /// Handles the bytes from an Session. /// </summary> /// <param name="Session"></param> /// <param name="Bytes"></param> public void ProcessBytes(Session Session, ref byte[] Bytes) { try { if (Bytes[0] == 64) { using (BinaryReader ReaderStream = new BinaryReader(new MemoryStream(Bytes))) { for (int i = 0; i < Bytes.Length; ) { PacketEvent Stream = new PacketEvent(); int Length; if (Stream.TryGetInfo(ref Bytes, ReaderStream, out Length)) { i += Length; if (MessageEvents.ContainsKey(Stream.Id)) { IMessageEvent Event = MessageEvents[Stream.Id]; if (Session != null) { Event.Invoke(Session, Stream); if (System.Configuration.PopBoolean("Packets.Events.Logging")) { System.IOStreamer.AppendColor(ConsoleColor.Green); System.IOStreamer.AppendLine("({2}) ({0}) {1}", Stream.Id, GetName(Stream.Id), Session.Id); } } } else if (System.Configuration.PopBoolean("Packets.Events.Logging") && Session != null) { System.IOStreamer.AppendColor(ConsoleColor.Red); System.IOStreamer.AppendLine("({2}) ({0}) {1}", Stream.Id, GetName(Stream.Id), Session.Id); } } } } } else if (Bytes[0] == 60) { Session.WriteComposer(new PolicyFileRequestComposer("<?xml version=\"1.0\"?>\r\n" + "<!DOCTYPE cross-domain-policy SYSTEM \"/xml/dtds/cross-domain-policy.dtd\">\r\n" + "<cross-domain-policy>\r\n" + "<allow-access-from domain=\"*\" to-ports=\"1-31111\" />\r\n" + "</cross-domain-policy>\x0")); } } catch (Exception e) { System.IOStreamer.AppendColor(ConsoleColor.Red); System.IOStreamer.AppendLine("[ProcessBytes] {0}", e.ToString()); } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new CanCreateRoomComposer(false, 10)); // todo }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.Character.UpdateIgnores(System.HabboSystem.CharacterManager.GetIgnores(Session.Character.Id)); Session.WriteComposer(new IgnoredUsersMessageComposer(Session.Character.Ignores)); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new HabboGroupBadgesMessageComposer()); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.WriteComposer(new FurnitureAliasesMessageComposer()); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Room Room; if (System.HabboSystem.RoomManager.GetRoom(Session.Character.LoadingRoom, out Room)) { Session.WriteComposer(new HeightMapMessageComposer(Room.Model)); Session.WriteComposer(new FloorHeightMapMessageComposer(Room.Model)); Session.Character.UpdateConnectedRoom(Room.Id); } else { Session.WriteComposer(new CloseConnectionMessageComposer()); } }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Session.Character.UpdateSoundSettings(Packet.PopInt32()); }
public void Invoke(Session Session, Messages.PacketEvent Packet) { Room Room; if (System.HabboSystem.RoomManager.GetRoom(Packet.PopInt32(), out Room)) { Session.WriteComposer(new GetGuestRoomResultComposer(Room, Packet.PopBoolean(), Packet.PopBoolean())); } }