public override bool Execute(GameClient session, string[] pms) { if (ServerExtraSettings.NewPageCommands) { session.SendMessage(StaticMessage.NewWayToOpenCommandsList); return true; } string commandList; if (pms.Length == 0) { commandList = CommandsManager.CommandsDictionary.Where( command => CommandsManager.CanUse(command.Value.MinRank, session)) .Aggregate(string.Empty, (current, command) => current + command.Value.Usage + " - " + command.Value.Description + "\n"); } else { if (pms[0].Length == 1) { commandList = CommandsManager.CommandsDictionary.Where( command => command.Key.StartsWith(pms[0]) && CommandsManager.CanUse(command.Value.MinRank, session)) .Aggregate(string.Empty, (current, command) => current + command.Value.Usage + " - " + command.Value.Description + "\n"); } else { commandList = CommandsManager.CommandsDictionary.Where( command => command.Key.Contains(pms[0]) && CommandsManager.CanUse(command.Value.MinRank, session)) .Aggregate(string.Empty, (current, command) => current + command.Value.Usage + " - " + command.Value.Description + "\n"); } } session.SendNotifWithScroll(commandList); return true; }
private static bool GetInfo(GameClient session, IReadOnlyList<string> pms) { string type = pms[0]; RoomUser user = session.GetHabbo() .CurrentRoom.GetRoomUserManager() .GetRoomUserByHabbo(session.GetHabbo().UserName); StringBuilder text = new StringBuilder(); switch (type) { case "cache": { text.AppendLine("Displaying info of all cached data avaible"); text.Append("Users: " + Yupi.UsersCached.Count + '\r'); text.Append("Rooms: " + Yupi.GetGame().GetRoomManager().LoadedRooms.Count + '\r'); text.Append("Rooms Data: " + Yupi.GetGame().GetRoomManager().LoadedRoomData.Count + '\r'); text.Append("Groups: " + Yupi.GetGame().GetGroupManager().Groups.Count + '\r'); text.Append("Items: " + Yupi.GetGame().GetItemManager().CountItems() + '\r'); text.Append("Catalog Items: " + Yupi.GetGame().GetCatalog().Offers.Count + '\r'); session.SendNotifWithScroll(text.ToString()); break; } case "users": { text.AppendLine("Displaying info of all users of this room"); foreach (RoomUser roomUser in session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUsers()) AppendUserInfo(roomUser, text); session.SendNotifWithScroll(text.ToString()); break; } case "user": { RoomUser roomUser = session.GetHabbo() .CurrentRoom.GetRoomUserManager() .GetRoomUserByHabbo(session.GetHabbo().LastSelectedUser); if (roomUser == null || roomUser.IsBot || roomUser.GetClient() == null) text.Append("User not found"); else AppendUserInfo(roomUser, text); session.SendNotifWithScroll(text.ToString()); break; } case "items": { text.AppendLine( $"Displaying info of coordinates: (X/Y) {user.LastSelectedX}/{user.LastSelectedY}"); foreach ( RoomItem item in session.GetHabbo() .CurrentRoom.GetGameMap() .GetAllRoomItemForSquare(user.LastSelectedX, user.LastSelectedY)) { text.Append($"## itemId: {item.Id} itemBaseId: {item.GetBaseItem().ItemId} \r"); text.Append( $"itemName: {item.GetBaseItem().Name} itemSpriteId: {item.GetBaseItem().SpriteId} \r"); text.Append($"itemInteraction: {item.GetBaseItem().InteractionType} \r"); text.Append($"itemInteractionCount: {item.GetBaseItem().Modes} \r"); text.Append($"itemPublicName: {item.GetBaseItem().PublicName} \r"); text.Append($"X/Y/Z/Rot: {item.X}/{item.Y}/{item.Z}/{item.Rot} Height: {item.Height} \r"); if (item.GetBaseItem().StackMultipler) text.Append("Heights: " + string.Join(" - ", item.GetBaseItem().ToggleHeight) + '\r'); text.AppendLine( $"Can: {(item.GetBaseItem().Walkable ? "walk" : string.Empty)} {(item.GetBaseItem().IsSeat ? "sit" : string.Empty)} {(item.GetBaseItem().Stackable ? "stack" : string.Empty)}"); } session.SendNotifWithScroll(text.ToString()); break; } } return true; }