public static Boolean Parse(GameClient Session, string Input) { if (!Input.StartsWith(":")) { return false; } Input = Input.Substring(1); string[] Params = Input.Split(' '); #region Commands switch (Params[0].ToLower()) { #region User Commands #region Commands (:commands) case "commands": case "cmds": { if (Session.GetHabbo().HasCmd("commands")) { DataTable data; StringBuilder builder = new StringBuilder(); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT command,params,description FROM fuse_cmds WHERE rank <= " + Session.GetHabbo().Rank + " ORDER BY id DESC");// LIMIT " + min + ",15");// + max+ ""); data = dbClient.getTable(); } builder.Append("You have the following commands available to use:\n"); foreach (DataRow row in data.Rows) { builder.Append(":" + Convert.ToString(row[0]) + " " + Convert.ToString(row[1]) + "\n - " + Convert.ToString(row[2]) + "\n"); } Session.SendNotifWithScroll(builder.ToString()); } return true; } #endregion #region About (:about) case "about": case "info": { if (Session.GetHabbo().HasCmd("about")) { StringBuilder About = new StringBuilder(); About.Append("Plus Emulator - Release 2.1 \n\r @forum.ragezone.com "); Session.SendNotifWithScroll(About.ToString()); } return true; } #endregion #region Sit (:sit) case "sit": { if (Session.GetHabbo().HasCmd("sit")) { RoomUser user = null; Room room = Session.GetHabbo().CurrentRoom; if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin")) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Client != null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (user == null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } else { user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } //Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0); if (user.Statusses.ContainsKey("lie") || user.isLying || user.RidingHorse || user.IsWalking) { return true; } if (!user.Statusses.ContainsKey("sit")) { if ((user.RotBody % 2) == 0) { if (user == null) return true; try { user.Statusses.Add("sit", "1.0"); user.Z -= 0.35; user.isSitting = true; user.UpdateNeeded = true; } catch { } } else { user.RotBody--; user.Statusses.Add("sit", "1.0"); user.Z -= 0.35; user.isSitting = true; user.UpdateNeeded = true; } } else if (user.isSitting == true) { user.Z += 0.35; user.Statusses.Remove("sit"); user.Statusses.Remove("1.0"); user.isSitting = false; user.UpdateNeeded = true; } } return true; } #endregion #region Lie (:lie) case "lie": case "lay": { if (Session.GetHabbo().HasCmd("lie")) { RoomUser user = null; Room room = Session.GetHabbo().CurrentRoom; if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin")) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Client != null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (user == null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } else { user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0); if (!room.GetGameMap().ValidTile(user.X + 2, user.Y + 2) && !room.GetGameMap().ValidTile(user.X + 1, user.Y + 1)) { SendChatMessage(Session, "Try lying somewhere valid!"); return true; } if (user.Statusses.ContainsKey("sit") || user.isSitting || user.RidingHorse || user.IsWalking) { return true; } if (!user.Statusses.ContainsKey("lay")) { if ((user.RotBody % 2) == 0) { if (user == null) return true; try { user.Statusses.Add("lay", "1.0 null"); user.Z -= 0.35; user.isLying = true; user.UpdateNeeded = true; } catch { } } else { user.RotBody--; user.Statusses.Add("lay", "1.0 null"); user.Z -= 0.35; user.isLying = true; user.UpdateNeeded = true; } } else { user.Z += 0.35; user.Statusses.Remove("lay"); user.Statusses.Remove("1.0"); user.isLying = false; user.UpdateNeeded = true; } } return true; } #endregion #region Pickall (:pickall) case "pickall": { if (Session.GetHabbo().HasCmd("pickall")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { if (TargetRoom.Group != null) { Session.SendNotif("You are unable to pickall in group rooms."); return true; } if (TargetRoom.ForSale) { Session.SendNotif("You are unable to pickall a room whilst it is for sale."); return true; } List<RoomItem> RemovedItems = TargetRoom.GetRoomItemHandler().RemoveAllFurniture(Session); if (Session.GetHabbo().GetInventoryComponent() != null) { Session.GetHabbo().GetInventoryComponent().AddItemArray(RemovedItems); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } } else { Session.SendNotif("An error occured."); } } return true; } #endregion #region Unload (:unload) case "unload": { if (Session.GetHabbo().HasCmd("unload")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(TargetRoom); TargetRoom.RequestReload(); } } return true; } #endregion #region Set Max (:setmax) case "setmax": { if (Session.GetHabbo().HasCmd("setmax")) { if (Params.Length == 1) { SendChatMessage(Session, "You must enter a number to set"); return true; } try { int Max = int.Parse(Params[1]); if ((Max > 101 && Session.GetHabbo().Rank < 3)) { Session.SendNotif("The maximum users is 100"); return true; } else if (Max < 10 && Session.GetHabbo().Rank < 3) { Session.SendNotif("The minimum users is 10"); return true; } Room room = Session.GetHabbo().CurrentRoom; room.UsersMax = Max; room.SetMaxUsers(Max); } catch { } } return true; } #endregion #region User Info (:userinfo) case "userinfo": case "ui": { if (Session.GetHabbo().HasCmd("userinfo")) { string username = Params[1]; bool UserOnline = true; if (string.IsNullOrEmpty(username)) { Session.SendNotif("Please enter a username"); return true; } GameClient tTargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username); if (tTargetClient == null || tTargetClient.GetHabbo() == null) { DataRow Row; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT username, rank, online, id, motto, credits FROM users WHERE username=@user LIMIT 1"); dbClient.addParameter("user", username); Row = dbClient.getRow(); Session.SendNotif("User Info for " + username + ":\r" + "Rank: " + Row[1].ToString() + " \r" + "User Id: " + Row[3].ToString() + " \r" + "Motto: " + Row[4].ToString() + " \r" + "Credits: " + Row[5].ToString() + " \r"); } return true; } Habbo User = tTargetClient.GetHabbo(); //Habbo User = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(username).GetHabbo(); StringBuilder RoomInformation = new StringBuilder(); if (User.CurrentRoom != null) { RoomInformation.Append(" - ROOM INFORMAtiON [" + User.CurrentRoom.RoomId + "] - \r"); RoomInformation.Append("Owner: " + User.CurrentRoom.Owner + "\r"); RoomInformation.Append("Room Name: " + User.CurrentRoom.Name + "\r"); RoomInformation.Append("Current Users: " + User.CurrentRoom.UserCount + "/" + User.CurrentRoom.UsersMax); } Session.SendNotif("User info for: " + username + ":\r" + "Rank: " + User.Rank + " \r" + "Online: " + UserOnline.ToString() + " \r" + "User Id: " + User.Id + " \r" + "Current Room: " + User.CurrentRoomId + " \r" + "Motto: " + User.Motto + " \r" + "Credits: " + User.Credits + " \r" + "Muted: " + User.Muted.ToString() + "\r" + "\r\r" + RoomInformation.ToString()); } return true; } #endregion #region Disable Diagonal (:disablediagonal) case "disablediagonal": case "disablediag": case "togglediagonal": { if (Session.GetHabbo().HasCmd("togglediagonal")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { if (TargetRoom.GetGameMap().DiagonalEnabled) TargetRoom.GetGameMap().DiagonalEnabled = false; else TargetRoom.GetGameMap().DiagonalEnabled = true; } } return true; } #endregion #region Freeze (:freeze) case "freeze": { if (Session.GetHabbo().HasCmd("freeze")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]); if (Target != null) Target.Frozen = true; } return true; } #endregion #region unFreeze (:unfreeze) case "unfreeze": { if (Session.GetHabbo().HasCmd("unfreeze")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]); if (Target != null) Target.Frozen = false; } return true; } #endregion #region SaveFurni (:savefurni) case "savefurni": case "save": { if (Session.GetHabbo().HasCmd("save")) { //using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) //Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SaveFurniture(dbClient); } return true; } #endregion #region Set Speed (:setspeed) case "setspeed": { if (Session.GetHabbo().HasCmd("setspeed")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { try { Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SetSpeed(int.Parse(Params[1])); } catch { Session.SendNotif("Numbers Only!"); } } } return true; } #endregion #region Regenerate maps (:regenmaps) case "regenmaps": case "reloadmaps": case "fixroom": { if (Session.GetHabbo().HasCmd("regenmaps")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom == null) return true; if (!TargetRoom.CheckRights(Session, true)) return true; TargetRoom.GetGameMap().GenerateMaps(); Session.SendNotif("The room map has been refreshed!"); } return true; } #endregion #region Empty Pets (:emptypets) case "emptypets": case "removepets": { if (Session.GetHabbo().HasCmd("emptypets")) { Session.SendNotif("Your pet inventory has been cleared!"); } return true; } #endregion #region Redeem Credits (:convertcredits) case "convertcredits": { if (Session.GetHabbo().HasCmd("convertcredits")) { try { Session.GetHabbo().GetInventoryComponent().Redeemcredits(Session); SendChatMessage(Session, "All credits have successfully been converted!"); } catch (Exception e) { Console.WriteLine(e); } } return true; } #endregion #region Mute Bots (:mutebots) case "mutebots": case "mutepets": { if (Session.GetHabbo().HasCmd("mutebots")) { if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true)) { Room Room = Session.GetHabbo().CurrentRoom; if (Room.MutedBots) Room.MutedBots = false; else Room.MutedBots = true; SendChatMessage(Session, "Muted bots have been toggled"); } } return true; } #endregion #region SellRoom / BuyRoom #region Sell Room (:sellroom) case "sellroom": { if (Session.GetHabbo().HasCmd("sellroom")) { Room Room = Session.GetHabbo().CurrentRoom; Int32 Value = 0; if (Room == null) return true; if (!Room.CheckRights(Session, true)) return true; if (Params.Length == 1) { Session.SendNotif("In order to sell a room, you must include a value. \n\nPLEASE NOTE:\nIf you sell a room you CANNOT get any of it back!"); return true; } else if (Room.Group != null) { Session.SendNotif("You cannot sell a room with a group on it.\n Delete the group first by typing :deletegroup"); return true; } else if (!SilverwaveEnvironment.IsNum(Params[1])) { SendChatMessage(Session, "You must enter a number!"); return true; } else Value = Convert.ToInt32(Params[1]); if (Value < 0) { SendChatMessage(Session, "You can not sell a room for less than 0 credits!"); return true; } if (Room.ForSale) { Room.SalePrice = Value; } else { Room.ForSale = true; Room.SalePrice = Value; } foreach (RoomUser User in Room.GetRoomUserManager().GetRoomUsers()) { User.SendChatMsg("This room is for sale! The current asking price is " + Value + " credits! Buy it by saying :buyroom"); } Session.SendNotif("In order to sell a room, you must include a value. \n\nPLEASE NOTE:\nIf you sell a room you CANNOT get any of it back!\n\n" + "You can cancel selling a room by typing ':buyroom 0' (Without '')"); } return true; } #endregion #region Buy Room (:buyroom) case "buyroom": { if (Session.GetHabbo().HasCmd("buyroom")) { Room Room = Session.GetHabbo().CurrentRoom; RoomUser RoomOwner = Room.GetRoomUserManager().GetRoomUserByHabbo(Room.Owner); if (Room == null) { return true; } if (Room.Owner == Session.GetHabbo().Username) { SendChatMessage(Session, "You already own this room!"); return true; } if (!Room.ForSale) { SendChatMessage(Session, "This room is not for sale!"); return true; } if (Session.GetHabbo().Credits < Room.SalePrice) { SendChatMessage(Session, "You do not have enough credits to buy this room!"); return true; } if (RoomOwner == null || RoomOwner.GetClient() == null) { SendChatMessage(Session, "An unknown error occured, this room is no longer for sale."); Room.ForSale = false; Room.SalePrice = 0; return true; } GameClient Owner = RoomOwner.GetClient(); Session.GetHabbo().Credits -= Room.SalePrice; Session.GetHabbo().UpdateCreditsBalance(); Owner.GetHabbo().Credits += Room.SalePrice; Owner.GetHabbo().UpdateCreditsBalance(); Room.Owner = Session.GetHabbo().Username; Room.OwnerId = (int)Session.GetHabbo().Id; Room.RoomData.Owner = Session.GetHabbo().Username; Room.RoomData.OwnerId = (int)Session.GetHabbo().Id; uint RoomId = Room.RoomId; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE rooms SET owner='" + Session.GetHabbo().Username + "' WHERE id='" + Room.RoomId + "' LIMIT 1"); } Session.GetHabbo().UsersRooms.Add(Room.RoomData); Owner.GetHabbo().UsersRooms.Remove(Room.RoomData); SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(Room); RoomData Data = SilverwaveEnvironment.GetGame().GetRoomManager().GenerateRoomData(RoomId); Data.SerializeRoomData(new ServerMessage(), true, Session, false); Session.GetMessageHandler().PrepareRoomForUser(Room.RoomId, ""); } return true; } #endregion #endregion #region Dance (:dance) case "dance": { int DanceId = 1; if (Params.Length > 1) { if (int.TryParse(Params[1], out DanceId)) { DanceId = 1; } } if (DanceId > 4 || DanceId < 0) { Session.SendWhisper("The dance ID must be between 0 and 4!"); DanceId = 0; } ServerMessage Response = new ServerMessage(); Response.Init(Outgoing.Dance); Response.AppendInt32(Session.CurrentRoomUserID); Response.AppendInt32(DanceId); Session.GetHabbo().CurrentRoom.SendMessage(Response); return true; } #endregion #region DeleteGroup (:deletegroup) case "deletegroup": { if (Session.GetHabbo().HasCmd("deletegroup")) { Room Room = Session.GetHabbo().CurrentRoom; if (!Room.CheckRights(Session, true, false)) { Session.SendNotif("You do not own this room!"); return true; } if (Params.Length == 1 || Params[1].ToLower() != "yes") { Session.SendNotif("Are you sure you want to delete this group?\n" + "Once you delete it you will never be able to get it back.\n\n" + "To continue, type ':deletegroup yes' (without '')"); return true; } if (Room.Group == null) { Session.SendNotif("This room does not have a group."); return true; } Group Group = Room.Group; foreach (GroupUser User in Group.Members.Values) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(User.Id); if (Client == null) { continue; } Client.GetHabbo().UserGroups.Remove(User); if (Client.GetHabbo().FavouriteGroup == Group.Id) { Client.GetHabbo().FavouriteGroup = 0; } } Room.RoomData.Group = null; SilverwaveEnvironment.GetGame().GetGroupManager().DeleteGroup(Group.Id); SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(Room); } return true; } #endregion #endregion #region VIP Commands #region Moonwalk (:moonwalk) case "moonwalk": { if (Session.GetHabbo().HasFuse("fuse_cmd_moonwalk")) { Room room = Session.GetHabbo().CurrentRoom; if (room == null) return true; RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); roomuser.moonwalkEnabled = !roomuser.moonwalkEnabled; if (roomuser.moonwalkEnabled) SendChatMessage(Session, "Moonwalk enabled!"); else SendChatMessage(Session, "Moonwalk disabled!"); } else { SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); } return true; } #endregion #region Mimic (:mimic) case "mimic": { if (Session.GetHabbo().HasFuse("fuse_cmd_mimic")) { string copyTarget = Params[1]; RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(copyTarget); string gender = null; string figure = null; if (Target != null) { gender = Target.GetClient().GetHabbo().Gender; figure = Target.GetClient().GetHabbo().Look; //if (!AntiMutant.ValidateLook(figure, gender)) { //SendChatMessage(Session, "This figure appears to be invalid!"); // return true; } Session.GetHabbo().Gender = gender; Session.GetHabbo().Look = figure; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("UPDATE users SET gender = @gender, look = @look WHERE username = @username"); dbClient.addParameter("gender", gender); dbClient.addParameter("look", figure); dbClient.addParameter("username", Session.GetHabbo().Username); dbClient.runQuery(); } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return true; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return true; } Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation); Session.GetMessageHandler().GetResponse().AppendInt32(-1); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower()); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto); Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints); Session.GetMessageHandler().SendResponse(); ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendString(Session.GetHabbo().Look); RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendString(Session.GetHabbo().Motto); RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints); Room.SendMessage(RoomUpdate); } } else SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); return true; } #endregion #region Push (:push) case "push": { if (Session.GetHabbo().HasFuse("fuse_cmd_push")) { Room TargetRoom; RoomUser TargetRoomUser; RoomUser TargetRoomUser1; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } if (Params.Length == 1) { SendChatMessage(Session, "You must enter a user"); return true; } TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Convert.ToString(Params[1])); if (TargetRoomUser == null) { SendChatMessage(Session, "Could not find that user!"); return true; } if (TargetRoomUser.GetUsername() == Session.GetHabbo().Username) { SendChatMessage(Session, "Come on, surely you don't want to push yourself!"); return true; } TargetRoomUser1 = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser1 == null || TargetRoomUser.TeleportEnabled) { return true; } //if ((TargetRoomUser.X == TargetRoomUser1.X - 1) || (TargetRoomUser.X == TargetRoomUser1.X + 1) || (TargetRoomUser.Y == TargetRoomUser1.Y - 1) || (TargetRoomUser.Y == TargetRoomUser1.Y + 1)) if (!((Math.Abs((int)(TargetRoomUser.X - TargetRoomUser1.X)) >= 2) || (Math.Abs((int)(TargetRoomUser.Y - TargetRoomUser1.Y)) >= 2))) { if (TargetRoomUser1.RotBody == 4) { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); } if (TargetRoomUser1.RotBody == 0) { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); } if (TargetRoomUser1.RotBody == 6) { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); } if (TargetRoomUser1.RotBody == 2) { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); } if (TargetRoomUser1.RotBody == 3) { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); } if (TargetRoomUser1.RotBody == 1) { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); } if (TargetRoomUser1.RotBody == 7) { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); } if (TargetRoomUser1.RotBody == 5) { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); } TargetRoomUser.UpdateNeeded = true; TargetRoomUser1.UpdateNeeded = true; TargetRoomUser1.SetRot(Rotation.Calculate(TargetRoomUser1.X, TargetRoomUser1.Y, TargetRoomUser.GoalX, TargetRoomUser.GoalY)); TargetRoom.SendMessage(new ChatComposer(TargetRoomUser1.VirtualId, "*pushes " + Params[1] + "*", 0, TargetRoomUser1.LastBubble,-1)); } else { SendChatMessage(Session, Params[1] + " is not close enough."); } } else SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); return true; } #endregion #region Pull (:pull) case "pull": { if (Session.GetHabbo().HasFuse("fuse_cmd_pull")) { Room room = Session.GetHabbo().CurrentRoom; if (room == null) { return true; } RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomuser == null) { return true; } if (Params.Length == 1) { SendChatMessage(Session, "Unable to find user!"); return true; } GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Target == null) return true; if (Target.GetHabbo().Id == Session.GetHabbo().Id) { SendChatMessage(Session, "You cannot pull yourself!"); return true; } RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id); if (TargetUser == null) return true; if (TargetUser.TeleportEnabled) return true; if (!((Math.Abs((int)(roomuser.X - TargetUser.X)) >= 3) || (Math.Abs((int)(roomuser.Y - TargetUser.Y)) >= 3))) { room.SendMessage(new ChatComposer(roomuser.VirtualId, "*pulls " + Params[1] + "*", 0, roomuser.LastBubble,-1)); if (roomuser.RotBody % 2 != 0) roomuser.RotBody--; if (roomuser.RotBody == 0) TargetUser.MoveTo(roomuser.X, roomuser.Y - 1); else if (roomuser.RotBody == 2) TargetUser.MoveTo(roomuser.X + 1, roomuser.Y); else if (roomuser.RotBody == 4) TargetUser.MoveTo(roomuser.X, roomuser.Y + 1); else if (roomuser.RotBody == 6) TargetUser.MoveTo(roomuser.X - 1, roomuser.Y); } else { SendChatMessage(Session, "This user is too far away!"); return true; } } else SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); return true; } #endregion #region Enable (:enable) case "enable": case "effect": { if (Session.GetHabbo().HasFuse("fuse_cmd_enable")) { if (Params.Length == 1) { SendChatMessage(Session, "You must enter an effect ID"); return true; } RoomUser TargetRoomUser = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (TargetRoomUser.RidingHorse) { SendChatMessage(Session, "You cannot enable effects whilst riding a horse!"); return true; } else if (TargetRoomUser.team != Team.none) { return true; } else if (TargetRoomUser.isLying) return true; string Effect = Params[1]; double EffectID; bool isNum = double.TryParse(Effect, out EffectID); if (isNum) { //if(EffectID != 97) Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(int.Parse(EffectID.ToString())); } else { SendChatMessage(Session, "Try using a number for the effects!"); return true; } } else { SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); } return true; } #endregion #region Change name (:flagme) case "flagme": { if (Session.GetHabbo().HasFuse("fuse_cmd_flagme")) { SendChatMessage(Session, "In order to change your name, click yourself and choose \"Change Name\""); SendChatMessage(Session, "You can only change your name every 12 hours."); } else { SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE_2); } return true; } #endregion #region Empty (:empty) case "emptyitems": case "empty": { if (Session.GetHabbo().HasCmd("emptyitems")) { if (Params.Length == 1) { Session.SendNotif("Are you sure you want to clear your inventory? You will lose all the furniture!\n" + "To confirm, type \":emptyitems yes\". \n\nOnce you do this, there is no going back!\n(If you do not want to empty it, just ignore this message!)\n\n" + "PLEASE NOTE! If you have more than 3000 items, the hidden items will also be DELETED."); return true; } else { if (Params.Length == 2) { if (Params[1].ToString() == "yes") { //GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); Session.GetHabbo().GetInventoryComponent().ClearItems(); Session.SendNotif("Your inventory has been cleared!"); return true; } } } } return true; } #endregion #region Toll (:toll) case "toll": { if (Session.GetHabbo().HasFuse("fuse_cmd_toll")) { Room TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (TargetRoom.CheckRights(Session, true)) { if (Params.Length == 1) { SendChatMessage(Session, "You must include a price!"); return true; } string toll = Params[1]; double Price; bool isNum = double.TryParse(toll, out Price); if (!isNum) { SendChatMessage(Session, "The price must be a number!"); return true; } else if (Price < 0) { SendChatMessage(Session, "The price cannot be a negative number"); return true; } int x = 0; int y = 0; //0 - MINUS Y //2 - PLUS X //4 - PLUS Y //6 - MINUS X if (User.RotBody == 0) { x = User.X; y = User.Y - 1; } else if (User.RotBody == 2) { x = User.X + 1; y = User.Y; } else if (User.RotBody == 4) { x = User.X; y = User.Y + 1; } else if (User.RotBody == 6) { x = User.X - 1; y = User.Y; } //RoomItem item = SilverwaveEnvironment.GetGame().GetItemManager().GetItem(); List<RoomItem> Items = TargetRoom.GetGameMap().GetAllRoomItemForSquare(x, y); if (Items.Count == 0) { SendChatMessage(Session, "Could not find any items on that square!"); return true; } int i = 0; foreach (RoomItem item in TargetRoom.GetGameMap().GetAllRoomItemForSquare(x, y)) { if (i == 1) continue; if (item.GetBaseItem().InteractionType == InteractionType.onewaygate || item.GetBaseItem().InteractionType == InteractionType.teleport) { i++; item.TollPrice = Convert.ToInt32(Price); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE item_tolls SET toll_price=" + Price + " WHERE item_id=" + item.Id + " LIMIT 1"); SendChatMessage(Session, "The toll price has been set to " + Price + " credits!"); } } } } } return true; } #endregion #region Hit (:hit) case "hit": { if (Session.GetHabbo().HasCmd("hit")) { Room TargetRoom; RoomUser TargetRoomUser; RoomUser TargetRoomUser1; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } if (Params.Length == 1) { SendChatMessage(Session, "You must enter a user"); return true; } TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Convert.ToString(Params[1])); if (TargetRoomUser == null) { SendChatMessage(Session, "Could not find that user!"); return true; } if (TargetRoomUser.GetUsername() == Session.GetHabbo().Username) { SendChatMessage(Session, "Come on, surely you don't want to hit yourself!"); return true; } TargetRoomUser1 = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser1 == null) { return true; } //if ((TargetRoomUser.X == TargetRoomUser1.X - 1) || (TargetRoomUser.X == TargetRoomUser1.X + 1) || (TargetRoomUser.Y == TargetRoomUser1.Y - 1) || (TargetRoomUser.Y == TargetRoomUser1.Y + 1)) if (!((Math.Abs((int)(TargetRoomUser.X - TargetRoomUser1.X)) >= 2) || (Math.Abs((int)(TargetRoomUser.Y - TargetRoomUser1.Y)) >= 2))) { TargetRoomUser1.SetRot(Rotation.Calculate(TargetRoomUser1.X, TargetRoomUser1.Y, TargetRoomUser.GoalX, TargetRoomUser.GoalY)); TargetRoom.SendMessage(new ChatComposer(TargetRoomUser1.VirtualId, "*hits " + Params[1] + "*", 0, TargetRoomUser1.LastBubble,-1)); } } return true; } #endregion #region Override (:override) case "override": { if (Session.GetHabbo().HasCmd("override")) { Room currentRoom = Session.GetHabbo().CurrentRoom; RoomUser roomUserByHabbo = null; currentRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (currentRoom != null) { roomUserByHabbo = currentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomUserByHabbo != null) { if (roomUserByHabbo.AllowOverride) { roomUserByHabbo.AllowOverride = false; SendChatMessage(Session, "Override has been disabled!"); } else { roomUserByHabbo.AllowOverride = true; SendChatMessage(Session, "Override has been enabled!"); } currentRoom.GetGameMap().GenerateMaps(true); } } } return true; } #endregion #region Faceless case "faceless": { string[] figureParts; string[] headParts; figureParts = Session.GetHabbo().Look.Split('.'); foreach (string Part in figureParts) { if (Part.StartsWith("hd")) { headParts = Part.Split('-'); if (!headParts[1].Equals("99999")) headParts[1] = "99999"; else break; string NewHead = "hd-" + headParts[1] + "-" + headParts[2]; Session.GetHabbo().Look = Session.GetHabbo().Look.Replace(Part, NewHead); break; } } using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("UPDATE users SET look = @Look WHERE username = @username"); dbClient.addParameter("look", Session.GetHabbo().Look); dbClient.addParameter("username", Session.GetHabbo().Username); dbClient.runQuery(); } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) break; RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) break; #region Messages Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation); Session.GetMessageHandler().GetResponse().AppendInt32(-1); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower()); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto); Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints); Session.GetMessageHandler().SendResponse(); ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendString(Session.GetHabbo().Look); RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendString(Session.GetHabbo().Motto); RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints); Room.SendMessage(RoomUpdate); #endregion break; } #endregion #endregion #region Moderation Commands #region Kick (:kick) case "kick": { if (Session.GetHabbo().HasCmd("kick")) { string TargetUser = null; GameClient TargetClient = null; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); Room TargetRoom = TargetClient.GetHabbo().CurrentRoom; if (TargetClient == null) { Session.SendNotif("User could not be found."); return true; } if (Session.GetHabbo().Rank <= TargetClient.GetHabbo().Rank) { Session.SendNotif("You are not allowed to kick that user."); return true; } if (TargetClient.GetHabbo().CurrentRoomId < 1) { Session.SendNotif("That user is not in a room and can not be kicked."); return true; } TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(TargetClient.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } TargetRoom.GetRoomUserManager().RemoveUserFromRoom(TargetClient, true, false); TargetClient.CurrentRoomUserID = -1; if (Params.Length > 2) { TargetClient.SendNotif("A moderator has kicked you from the room for the following reason: " + MergeParams(Params, 2)); } else { TargetClient.SendNotif("A moderator has kicked you from the room."); } return true; } return true; } #endregion #region Room Mute (:roommute) / Room unmute (:roomunmute) case "roommute": { if (Session.GetHabbo().HasCmd("roommute") || Session.GetHabbo().HasCmd("roomunmute")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (!Session.GetHabbo().CurrentRoom.RoomMuted) Session.GetHabbo().CurrentRoom.RoomMuted = true; string Msg = MergeParams(Params, 1); ServerMessage Message = new ServerMessage(); Message.Init(Outgoing.SendNotif); Message.AppendString("This room has been muted because:\n" + Msg); Message.AppendString(""); TargetRoom.SendMessage(Message); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Room Mute", "Room muted"); } return true; } case "roomunmute": { if (Session.GetHabbo().HasCmd("roomunmute")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom.RoomMuted) Session.GetHabbo().CurrentRoom.RoomMuted = false; ServerMessage Message = new ServerMessage(); Message.Init(Outgoing.SendNotif); Message.AppendString("You have been unmuted."); Message.AppendString(""); TargetRoom.SendMessage(Message); } return true; } #endregion #region Mute (:mute) case "mute": { if (Session.GetHabbo().HasCmd("mute")) { string TargetUser = null; GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendNotif("User could not be found."); return true; } if (TargetClient.GetHabbo().Rank >= 4) { Session.SendNotif("You are not allowed to (un)mute that user."); return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Mute", "Muted user"); TargetClient.GetHabbo().Mute(); } return true; } #endregion #region Flood (:flood) case "flood": { if (Session.GetHabbo().HasCmd("flood")) { string TargetUser = null; GameClient TargetClient = null; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); if (Params.Length != 3) { Session.SendNotif("You must include a username and a time for the person you want to flood."); return true; } TargetClient.GetHabbo().FloodTime = SilverwaveEnvironment.GetUnixTimestamp() + Convert.ToInt32(Params[2]); ServerMessage Packet = new ServerMessage(Outgoing.FloodFilter); Packet.AppendInt32(Convert.ToInt32(Params[2])); TargetClient.SendMessage(Packet); } return true; } #endregion #region Unmute (:unmute) case "unmute": { if (Session.GetHabbo().HasCmd("unmute")) { string TargetUser = null; GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendNotif("User could not be found."); return true; } if (!TargetClient.GetHabbo().Muted) { return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Mute", "Un Muted user"); TargetClient.GetHabbo().Unmute(); } return true; } #endregion #region Summon (:summon) case "summon": case "come": { if (Session.GetHabbo().HasCmd("summon")) { if (Params.Length < 1) { Session.SendNotif("No use specified"); return true; } string username = Params[1]; GameClient client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username); if (client == null) { Session.SendNotif("Could not find user \"" + username + "\""); return true; } client.SendNotif("You have been summoned by " + Session.GetHabbo().Username); RoomData Room = SilverwaveEnvironment.GetGame().GetRoomManager().GenerateRoomData(Session.GetHabbo().CurrentRoomId); Room.SerializeRoomData(new ServerMessage(), (client.GetHabbo().CurrentRoom == null), client); //client.GetMessageHandler().PrepareRoomForUser(Session.GetHabbo().CurrentRoomId, ""); client.SendMessage(new RoomForwardComposer(false, Session.GetHabbo().CurrentRoomId)); return true; } return true; } #endregion #region Follow (:follow) case "follow": case "stalk": { if (Session.GetHabbo().HasCmd("follow")) { GameClient TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendNotif("This user could not be found"); return true; } if (TargetClient == null || TargetClient.GetHabbo().CurrentRoom == null || TargetClient.GetHabbo().CurrentRoom == Session.GetHabbo().CurrentRoom) { return true; } Session.SendMessage(new RoomForwardComposer(false, TargetClient.GetHabbo().CurrentRoom.RoomId)); //Session.GetMessageHandler().PrepareRoomForUser(TargetClient.GetHabbo().CurrentRoom.RoomId, ""); return true; } return true; } #endregion #region Room kick (:roomkick) case "roomkick": { if (Session.GetHabbo().HasCmd("roomkick")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } string ModMsg = MergeParams(Params, 1); RoomKick kick = new RoomKick(ModMsg, (int)Session.GetHabbo().Rank); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Room kick", "Kicked the whole room"); TargetRoom.QueueRoomKick(kick); return true; } return true; } #endregion #region Super ban (:superban) case "superban": { if (Session.GetHabbo().HasCmd("superban")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendNotif("User could not be found."); return true; } if (TargetClient.GetHabbo().Rank >= Session.GetHabbo().Rank) { Session.SendNotif("You are not allowed to ban that user."); return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Ban", "Long ban forever"); SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetClient, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), false, false); } return true; } #endregion #region Show Whispers (:togglewhisper) case "togglewhisper": { if (Session.GetHabbo().HasCmd("togglewhisper")) { /*if (Session.GetHabbo().ShowRoomWhispers) { Session.GetHabbo().ShowRoomWhispers = false; SendChatMessage(Session, "Room Whispers viewing disabled."); } else { Session.GetHabbo().ShowRoomWhispers = true; SendChatMessage(Session, "Room Whispers viewing enabled."); }*/ } return true; } #endregion #region Roomalert (:roomalert) case "roomalert": { if (Session.GetHabbo().HasCmd("roomalert")) { Room currentRoom = Session.GetHabbo().CurrentRoom; currentRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (currentRoom != null) { string s = MergeParams(Params, 1); ServerMessage message = new ServerMessage(); message.Init(Outgoing.SendNotif); message.AppendString(s); message.AppendString(""); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Alert", "Room alert with message [" + s + "]"); currentRoom.QueueRoomMessage(message); } } } return true; #endregion case "alert": { if (Session.GetHabbo().HasCmd("alert")) { if (Params[1] == null || Params[2] == null) { Session.SendNotif("You left something empty."); return true; } string TargetUser = null; GameClient TargetClient = null; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); Room TargetRoom = TargetClient.GetHabbo().CurrentRoom; if (TargetClient == null) { Session.SendNotif("User could not be found."); return true; } TargetClient.SendNotif(Params[2] + " -" + Session.GetHabbo().Username); } return true; } #endregion #region Administration Commands #region Fast walk case "fastwalk": { if (Session.GetHabbo().HasCmd("fastwalk")) { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (!User.FastWalking) { User.FastWalking = true; } else { User.FastWalking = false; } } return true; } #endregion case "givebelcredits": { if (Session.GetHabbo().Rank > 7) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { int creditsToAdd; if (int.TryParse(Params[2], out creditsToAdd)) { TargetClient.GetHabbo().BelCredits = TargetClient.GetHabbo().BelCredits + creditsToAdd; TargetClient.GetHabbo().UpdateCreditsBalance(); return true; } else { Session.SendNotif("Numbers Only!"); return true; } } else { Session.SendNotif("User could not be found."); return true; } } return true; } #region Promote room case "promoteroom": { if (Session.GetHabbo().HasCmd("promoteroom")) { if (Params[1] == null) { Session.SendNotif("You need to enter event name and description."); return true; } int Time; if (!int.TryParse(Params[1], out Time)) { Session.SendNotif("You need use command like :promoteroom time (time being how long to run event for in seconds)."); return true; } Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); SilverwaveEnvironment.GetGame().GetRoomEvents().AddNewEvent(Room.RoomId, "Default Name", "Default Desc", Session); } return true; } #endregion #region Mass Dance (:massdance) case "massdance": { if (Session.GetHabbo().HasCmd("massdance") || Session.GetHabbo().Username == "MOD-billsonnn") { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); int DanceId = Convert.ToInt32(Params[1]); if (DanceId > 4) { Session.SendNotif("That is an invalid dance ID"); return true; } if (DanceId > 0 && User.CarryItemID > 0) { User.CarryItem(0); } User.DanceId = DanceId; foreach (RoomUser user in users) { ServerMessage DanceMessage = new ServerMessage(Outgoing.Dance); DanceMessage.AppendInt32(user.VirtualId); DanceMessage.AppendInt32(DanceId); Room.SendMessage(DanceMessage); user.DanceId = DanceId; } return true; } return true; } #endregion #region Go Boom (:goboom) case "goboom": { if (Session.GetHabbo().HasCmd("goboom")) { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser user in users) { user.ApplyEffect(108); } } return true; } #endregion #region Mass Enable (:massenable) case "massenable": { if (Session.GetHabbo().HasCmd("massenable")) { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser user in users) { if (user.RidingHorse) continue; user.ApplyEffect(Convert.ToInt32(Params[1])); } } return true; } #endregion #region Give Credits (:credits) case "givecredits": case "credits": case "coins": { if (Session.GetHabbo().HasCmd("coins")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { int creditsToAdd; if (int.TryParse(Params[2], out creditsToAdd)) { TargetClient.GetHabbo().Credits = TargetClient.GetHabbo().Credits + creditsToAdd; TargetClient.GetHabbo().UpdateCreditsBalance(); TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("coins.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("coins.awardmessage2")); Session.SendNotif(LanguageLocale.GetValue("coins.updateok")); return true; } else { Session.SendNotif("Numbers Only!"); return true; } } else { Session.SendNotif("User could not be found."); return true; } } return true; } #endregion #region Give Pixels (:pixels) case "pixels": case "givepixels": { if (Session.GetHabbo().HasCmd("pixels")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { int creditsToAdd; if (int.TryParse(Params[2], out creditsToAdd)) { TargetClient.GetHabbo().ActivityPoints = TargetClient.GetHabbo().ActivityPoints + creditsToAdd; Session.GetHabbo().NotifyNewPixels(creditsToAdd); TargetClient.GetHabbo().UpdateActivityPointsBalance(); TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("pixels.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("pixels.awardmessage2")); Session.SendNotif(LanguageLocale.GetValue("pixels.updateok")); return true; } else { Session.SendNotif("Numbers Only!"); return true; } } else { Session.SendNotif("User could not be found."); return true; } } return true; } #endregion #region Hotel Alert (:ha) case "ha": if (Session.GetHabbo().HasCmd("ha")) { string Notice = MergeParams(Params, 1); ServerMessage HotelAlert = new ServerMessage(Outgoing.BroadcastMessage); HotelAlert.AppendString(Notice + "\r\n" + "- " + Session.GetHabbo().Username); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(HotelAlert); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Notice + "]"); return true; } return true; #endregion #region Shutdown (:shutdown) case "shutdown": { if (Session.GetHabbo().HasCmd("shutdown")) { Task ShutdownTask = new Task(SilverwaveEnvironment.PerformShutDown); ShutdownTask.Start(); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Shutdown", "Issued shutdown command"); return true; } return true; } #endregion #region Disconnect (:kill) case "disconnect": case "kill": case "dc": { if (Session.GetHabbo().HasCmd("kill")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendNotif("User not found."); return true; } if (TargetClient.GetHabbo().Rank >= 4 && !Session.GetHabbo().HasFuse("fuse_disconnect_anyone")) { Session.SendNotif("You are not allowed to disconnect that user."); return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Disconnect", "User disconnected by user"); TargetClient.GetConnection().Dispose(); } return true; } #endregion #region Position (:coords) case "coord": case "coords": case "position": { if (Session.GetHabbo().HasCmd("coords")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser TargetRoomUser = null; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser == null) { return true; } Session.SendNotif("X: " + TargetRoomUser.X + "\n - Y: " + TargetRoomUser.Y + "\n - Z: " + TargetRoomUser.Z + "\n - Rot: " + TargetRoomUser.RotBody + ", sqState: " + TargetRoom.GetGameMap().GameMap[TargetRoomUser.X, TargetRoomUser.Y].ToString() + "\n\n - RoomID: " + Session.GetHabbo().CurrentRoomId); } return true; } #endregion #region Teleport (:teleport) case "teleport": case "tele": { if (Session.GetHabbo().HasCmd("teleport")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser TargetRoomUser = null; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser.RidingHorse) { SendChatMessage(Session, "You cannot teleport whilst riding a horse!"); return true; } if (TargetRoomUser == null) return true; TargetRoomUser.TeleportEnabled = !TargetRoomUser.TeleportEnabled; TargetRoom.GetGameMap().GenerateMaps(); } return true; } #endregion #region Update (:update_x) #region Update Catalog case "update_catalog": case "reload_catalog": case "recache_catalog": case "refresh_catalog": case "update_catalogue": case "reload_catalogue": case "recache_catalogue": case "refresh_catalogue": { if (Session.GetHabbo().HasCmd("update_catalog")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetCatalog().Initialize(dbClient); } SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(new ServerMessage(Outgoing.UpdateShop)); Session.SendNotif("The catalog has been refreshed!"); return true; } return true; } #endregion #region Update Items case "update_items": case "reload_items": case "recache_items": case "refresh_items": { if (Session.GetHabbo().HasCmd("update_items")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetItemManager().LoadItems(dbClient); } Session.SendNotif("Item definitions have been refreshed!"); } return true; } #endregion #region Update Filter case "update_filter": case "reload_filter": case "recache_filter": case "refresh_filter": { if (Session.GetHabbo().HasCmd("update_filter")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { LanguageLocale.InitSwearWord(dbClient); } } return true; } #endregion #region Update Navigator case "update_navigator": case "reload_navigator": case "recache_navigator": case "refresh_navigator": { if (Session.GetHabbo().HasCmd("update_navigator")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetNavigator().Initialize(dbClient); } Session.SendNotif("The navigator has been updated!"); } return true; } #endregion #region Update Ranks case "update_ranks": case "reload_ranks": case "recache_ranks": case "refresh_ranks": { if (Session.GetHabbo().HasCmd("update_ranks")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetRoleManager().LoadRights(dbClient); } Session.SendNotif("Ranks have been refreshed!"); } return true; } #endregion #region Update Settings case "update_settings": case "reload_settings": case "recache_settings": case "refresh_settings": { if (Session.GetHabbo().HasCmd("update_settings")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) SilverwaveEnvironment.ConfigData = new ConfigData(dbClient); } return true; } #endregion #region Update Groups case "update_groups": case "reload_groups": case "recache_groups": case "refresh_groups": { if (Session.GetHabbo().HasCmd("update_groups")) { SilverwaveEnvironment.GetGame().GetGroupManager().InitGroups(); Session.SendNotif("Groups have been successfully reloaded"); } return true; } #endregion #region Update Bans case "update_bans": { if (Session.GetHabbo().HasCmd("update_bans")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) SilverwaveEnvironment.GetGame().GetBanManager().LoadBans(dbClient); Session.SendNotif("Bans have been refreshed!"); } return true; } #endregion #region Update Quests case "update_quests": { if (Session.GetHabbo().HasCmd("update_quests")) { SilverwaveEnvironment.GetGame().GetQuestManager().Initialize(SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()); Session.SendNotif("Quests have been successfully reloaed!"); } return true; } #endregion #endregion #region Super Pull (:spull) case "spull": { if (Session.GetHabbo().HasCmd("spull")) { Room room = Session.GetHabbo().CurrentRoom; if (room == null) { SendChatMessage(Session, "Error in finding room!"); return true; } RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomuser == null) { SendChatMessage(Session, "Unable to find user!"); return true; } if (Params.Length == 1) { SendChatMessage(Session, "Unable to find user!"); return true; } GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id); if (Target.GetHabbo().Id == Session.GetHabbo().Id) { SendChatMessage(Session, "You cannot pull yourself!"); return true; } if (TargetUser.TeleportEnabled) return true; if (roomuser.RotBody % 2 != 0) roomuser.RotBody--; room.SendMessage(new ChatComposer(roomuser.VirtualId, "*pulls " + Params[1] + "*", 0, roomuser.LastBubble,-1)); if (roomuser.RotBody == 0) TargetUser.MoveTo(roomuser.X, roomuser.Y - 1); else if (roomuser.RotBody == 2) TargetUser.MoveTo(roomuser.X + 1, roomuser.Y); else if (roomuser.RotBody == 4) TargetUser.MoveTo(roomuser.X, roomuser.Y + 1); else if (roomuser.RotBody == 6) TargetUser.MoveTo(roomuser.X - 1, roomuser.Y); } return true; } #endregion #region Global Credits (:globalcredits) case "globalcredits": { if (Session.GetHabbo().HasCmd("globalcredits")) { if (Params.Length == 1) { Session.SendNotif("You need to enter an amount!"); return true; } try { int Amount = int.Parse(Params[1]); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) dbClient.runFastQuery("UPDATE users SET credits=credits+" + Amount); SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone in the database"); } catch { } } return true; } #endregion #region Mass Credits (:masscredits) case "masscredits": { if (Session.GetHabbo().HasCmd("masscredits")) { if (Params.Length == 1) { Session.SendNotif("You need to enter an amount!"); return true; } try { int Amount = int.Parse(Params[1]); SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone online"); } catch { } } return true; } #endregion #region Give Badge (:badge) case "badge": case "givebadge": { if (Session.GetHabbo().HasCmd("badge")) { if (Params.Length != 3) { Session.SendNotif("You must include a username and badgecode!"); return true; } GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { TargetClient.GetHabbo().GetBadgeComponent().GiveBadge(Params[2], true, TargetClient); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Badge", "Badge given to user [" + Params[2] + "]"); TargetClient.SendNotif("You have just been given a badge!"); return true; } else { Session.SendNotif("User was not found"); return true; } } return true; } #endregion #region Room Badge (:roombadge) case "roombadge": { if (Session.GetHabbo().HasCmd("roombadge")) { if (Params.Length == 1) { Session.SendNotif("You must enter a badge code!"); return true; } Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom == null) return true; TargetRoom.QueueRoomBadge(Params[1]); ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString("You have just recieved a badge!"); nMessage.AppendString(""); TargetRoom.SendMessage(nMessage); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "Roombadge in room [" + TargetRoom.RoomId + "] with badge [" + Params[1] + "]"); } return true; } #endregion #region Mass Badge (:massbadge) case "massbadge": { if (Session.GetHabbo().HasCmd("massbadge")) { if (Params.Length == 1) { Session.SendNotif("You must enter a badge code!"); return true; } Room TargetRoom = Session.GetHabbo().CurrentRoom; SilverwaveEnvironment.GetGame().GetClientManager().QueueBadgeUpdate(Params[1]); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "Mass badge with badge [" + Params[1] + "]"); ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString("You have just recieved a badge!"); nMessage.AppendString(""); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage); } return true; } #endregion #region All eyes on me (:alleyesonme) case "alleyesonme": { if (Session.GetHabbo().HasCmd("alleyesonme")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom == null) return true; Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser Us in users) { if (Session.GetHabbo().Id == Us.userID) continue; Us.SetRot(Rotation.Calculate(Us.X, Us.Y, User.X, User.Y)); } } return true; } #endregion #region IP Ban (:ipban) case "ipban": case "banip": { if (Session.GetHabbo().HasCmd("ipban")) { if (Params.Length == 1) { Session.SendNotif("You must include a username and reason!"); } GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString()); if (TargetUser == null) { Session.SendNotif("An unknown error occured whilst finding this user!"); return true; } try { SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false); } catch (Exception e) { Console.WriteLine(e); } } return true; } #endregion #region Machine Ban (:machineban) case "machineban": case "banmachine": case "mban": { if (Session.GetHabbo().HasCmd("machineban")) { if (Params.Length == 1) { Session.SendNotif("You must include a username and reason!"); } GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString()); if (TargetUser == null) { Session.SendNotif("An unknown error occured whilst finding this user!"); return true; } if (string.IsNullOrWhiteSpace(TargetUser.MachineId)) { Session.SendNotif("Unable to ban this user, they don't have a machine ID"); return true; } try { SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "You have been banned! The reason given was:\n" + MergeParams(Params, 2), false, true); } catch (Exception e) { Console.WriteLine(e); } } return true; } #endregion #region Machine and IP ban (:mip) case "mip": { if (Session.GetHabbo().HasCmd("mip")) { if (Params.Length == 1) { Session.SendNotif("You must include a username and reason!"); } GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString()); if (TargetUser == null) { Session.SendNotif("An unknown error occured whilst finding this user!"); return true; } try { if (string.IsNullOrWhiteSpace(TargetUser.MachineId)) { Session.SendNotif("Unable to ban this user, they don't have a machine ID"); return true; } SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "You have been banned! The reason given was:\n" + MergeParams(Params, 2), false, true); SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false); } catch (Exception e) { Console.WriteLine(e); } } return true; } #endregion #region All around me (:allaroundme) case "allaroundme": { if (Session.GetHabbo().HasCmd("allaroundme")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom == null) { Session.SendNotif("An unknown error occured!"); return true; } Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser Us in users) { if (Session.GetHabbo().Id == Us.userID) continue; Us.MoveTo(User.X, User.Y, true); } if (Params.Length == 2) { if (Params[1] == "override") { foreach (RoomUser Us in users) { if (Session.GetHabbo().Id == Us.userID) continue; Us.AllowOverride = true; Us.MoveTo(User.X, User.Y, true); Us.AllowOverride = false; } } } } return true; } #endregion #region Hotel alert w/link (:hal) case "hal": { if (Session.GetHabbo().HasCmd("hal")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; // Hotel Alert pluss link :hal <link> <message> string Link = Params[1]; string Message = MergeParams(Params, 2); ServerMessage nMessage = new ServerMessage(Outgoing.SendNotif); nMessage.AppendString(LanguageLocale.GetValue("hotelallert.notice") + "\r\n" + Message + "\r\n-" + Session.GetHabbo().Username); nMessage.AppendString(Link); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Message + "]"); } return true; } #endregion #region Staff Alert (:sa) case "sa": { if (Session.GetHabbo().HasCmd("sa")) { string Message = "Message from staff: \n" + Params[1] + "\n - " + Session.GetHabbo().Username; ServerMessage message = new ServerMessage(Outgoing.BroadcastMessage); message.AppendString(Message); SilverwaveEnvironment.GetGame().GetClientManager().StaffAlert(message); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "StaffAlert", "Staff alert [" + Message + "]"); } return true; } #endregion #region Spectators Mode (:invisible) case "invisible": case "spec": case "spectatorsmode": { if (Session.GetHabbo().HasCmd("invisible")) { Session.GetHabbo().SpectatorMode = true; Session.SendNotif("Reload the room to be invisible"); //RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); //User.IsSpectator = true; } return true; } #endregion #region Add Bannable Word (:banword) case "banword": { if (Session.GetHabbo().HasCmd("banword")) { string BannedWord = Params[1]; if (!string.IsNullOrWhiteSpace(BannedWord)) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("INSERT INTO wordfilter (`word`, `addedby`, `bannable`) VALUES " + "(@ban, '" + Session.GetHabbo().Username + "', '0');"); dbClient.addParameter("ban", BannedWord.ToLower()); dbClient.runQuery(); LanguageLocale.InitSwearWord(dbClient); Session.SendNotif("'" + BannedWord + "' has been added to the bannable list"); } } } return true; } #endregion #region Unidle (:unidle) case "unidle": { if (Session.GetHabbo().HasCmd("unidle")) { Habbo Habbo = SilverwaveEnvironment.getHabboForName(Params[1]); if (Habbo == null) return true; RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Habbo.Id); if (User == null) return true; User.UnIdle(); } return true; } #endregion #region Make Public (:public) case "public": { if (Session.GetHabbo().HasCmd("public")) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return true; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) dbClient.runFastQuery("UPDATE rooms SET roomtype='public' WHERE id=" + Room.RoomId + " LIMIT 1"); Room.Type = "public"; Room.RoomData.Type = "public"; Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true); } return true; } #endregion #region Make Private (:private) case "private": { if (Session.GetHabbo().HasCmd("private")) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return true; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) dbClient.runFastQuery("UPDATE rooms SET roomtype='private' WHERE id=" + Room.RoomId + " LIMIT 1"); Room.Type = "private"; Room.RoomData.Type = "private"; Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true); } return true; } #endregion #region Mass Action (:massact) case "massact": { if (Session.GetHabbo().HasCmd("massact")) { try { Room Room = Session.GetHabbo().CurrentRoom; List<RoomUser> Users = Room.GetRoomUserManager().GetRoomUsers(); int Num = Int16.Parse(Params[1]); ServerMessage Message = new ServerMessage(); foreach (RoomUser User in Users) { if (User == null) continue; Room.SendMessage(new ActionComposer(User, Num)); } } catch { } } return true; } #endregion #region Close Alert (:closealert) case "closealert": { if (Session.GetHabbo().HasCmd("closealert")) { int Time = int.Parse(Params[1]); ServerMessage Message = new ServerMessage(Outgoing.ClosingAlert); Message.AppendInt32(Time); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(Message); } return true; } #endregion #endregion } return false; #endregion }
internal RoomData CreateRoom(GameClient Session, string Name, string Desc, string Model, int Category, int MaxVisitors) { // New structure fixed by Finn if (!this.roomModels.ContainsKey(Model)) { Session.SendNotif("Room Model was not found: " + Model); return null; } if (Name.Length < 3) { Session.SendNotif("The Room name is too short..."); return null; } uint RoomId = 0; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("INSERT INTO rooms (roomtype,caption,description,owner,model_name,category,users_max) VALUES ('private', @Caption , @desc , @username , @model , @cat , @usmax)"); dbClient.addParameter("caption", Name); dbClient.addParameter("desc", Desc); dbClient.addParameter("username", Session.GetHabbo().Username); dbClient.addParameter("model", Model); dbClient.addParameter("cat", Category); dbClient.addParameter("usmax", MaxVisitors); RoomId = (uint)dbClient.insertQuery(); } RoomData Data = this.GenerateRoomData(RoomId); Session.GetHabbo().UsersRooms.Add(Data); return Data; }
internal Boolean CheckGroupRights(GameClient Session) { try { if (Group == null) { return false; } if (Group.AdminOnlyDeco == 0) { if (Group.Members.ContainsKey(Session.GetHabbo().Id)) return true; } if (Group.Admins.ContainsKey(Session.GetHabbo().Id)) { Session.SendNotif("Group Admin"); return true; } if (Session.GetHabbo().Username == Owner) { return true; } if (Session.GetHabbo().HasFuse("fuse_admin") || Session.GetHabbo().HasFuse("fuse_any_room_controller")) return true; } catch (Exception e) { Logging.HandleException(e, "Room.CheckGroupRights"); } return false; }
internal List<UserItem> DeliverItems(GameClient Session, Item Item, int Amount, String ExtraData, int limno, int limtot, uint songID = 0) { List<UserItem> result = new List<UserItem>(); switch (Item.Type.ToString()) { case "i": case "s": for (int i = 0; i < Amount; i++) { //uint GeneratedId = GenerateItemId(); switch (Item.InteractionType) { case InteractionType.pet0: string[] PetData = ExtraData.Split('\n'); Pet GeneratedPet = CreatePet(Session.GetHabbo().Id, PetData[0], 0, PetData[1], PetData[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet1: string[] PetData1 = ExtraData.Split('\n'); Pet GeneratedPet1 = CreatePet(Session.GetHabbo().Id, PetData1[0], 1, PetData1[1], PetData1[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet1); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet2: string[] PetData5 = ExtraData.Split('\n'); Pet GeneratedPet5 = CreatePet(Session.GetHabbo().Id, PetData5[0], 2, PetData5[1], PetData5[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet5); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet3: string[] PetData2 = ExtraData.Split('\n'); Pet GeneratedPet2 = CreatePet(Session.GetHabbo().Id, PetData2[0], 3, PetData2[1], PetData2[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet2); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet4: string[] PetData3 = ExtraData.Split('\n'); Pet GeneratedPet3 = CreatePet(Session.GetHabbo().Id, PetData3[0], 4, PetData3[1], PetData3[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet3); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet5: string[] PetData7 = ExtraData.Split('\n'); Pet GeneratedPet7 = CreatePet(Session.GetHabbo().Id, PetData7[0], 5, PetData7[1], PetData7[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet7); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet6: string[] PetData4 = ExtraData.Split('\n'); Pet GeneratedPet4 = CreatePet(Session.GetHabbo().Id, PetData4[0], 6, PetData4[1], PetData4[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet4); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet7: string[] PetData6 = ExtraData.Split('\n'); Pet GeneratedPet6 = CreatePet(Session.GetHabbo().Id, PetData6[0], 7, PetData6[1], PetData6[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet6); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet8: string[] PetData8 = ExtraData.Split('\n'); Pet GeneratedPet8 = CreatePet(Session.GetHabbo().Id, PetData8[0], 8, PetData8[1], PetData8[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet8); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet9: string[] PetData9 = ExtraData.Split('\n'); Pet GeneratedPet9 = CreatePet(Session.GetHabbo().Id, PetData9[0], 9, PetData9[1], PetData9[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet9); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet10: string[] PetData10 = ExtraData.Split('\n'); Pet GeneratedPet10 = CreatePet(Session.GetHabbo().Id, PetData10[0], 10, PetData10[1], PetData10[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet10); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet11: string[] PetData11 = ExtraData.Split('\n'); Pet GeneratedPet11 = CreatePet(Session.GetHabbo().Id, PetData11[0], 11, PetData11[1], PetData11[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet11); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet12: string[] PetData12 = ExtraData.Split('\n'); Pet GeneratedPet12 = CreatePet(Session.GetHabbo().Id, PetData12[0], 12, PetData12[1], PetData12[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet12); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet13: //Caballo - Horse string[] PetData13 = ExtraData.Split('\n'); Pet GeneratedPet13 = CreatePet(Session.GetHabbo().Id, PetData13[0], 13, PetData13[1], PetData13[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet13); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet14: string[] PetData14 = ExtraData.Split('\n'); Pet GeneratedPet14 = CreatePet(Session.GetHabbo().Id, PetData14[0], 14, PetData14[1], PetData14[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet14); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet15: string[] PetData15 = ExtraData.Split('\n'); Pet GeneratedPet15 = CreatePet(Session.GetHabbo().Id, PetData15[0], 15, PetData15[1], PetData15[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet15); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet16: // Mascota Agregada string[] PetData16 = ExtraData.Split('\n'); Pet GeneratedPet16 = CreatePet(Session.GetHabbo().Id, PetData16[0], 16, PetData16[1], PetData16[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet16); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet17: // Mascota Agregada string[] PetData17 = ExtraData.Split('\n'); Pet GeneratedPet17 = CreatePet(Session.GetHabbo().Id, PetData17[0], 17, PetData17[1], PetData17[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet17); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet18: // Mascota Agregada string[] PetData18 = ExtraData.Split('\n'); Pet GeneratedPet18 = CreatePet(Session.GetHabbo().Id, PetData18[0], 18, PetData18[1], PetData18[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet18); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet19: // Mascota Agregada string[] PetData19 = ExtraData.Split('\n'); Pet GeneratedPet19 = CreatePet(Session.GetHabbo().Id, PetData19[0], 19, PetData19[1], PetData19[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet19); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet20: // Mascota Agregada string[] PetData20 = ExtraData.Split('\n'); Pet GeneratedPet20 = CreatePet(Session.GetHabbo().Id, PetData20[0], 20, PetData20[1], PetData20[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet20); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet21: // Mascota Agregada string[] PetData21 = ExtraData.Split('\n'); Pet GeneratedPet21 = CreatePet(Session.GetHabbo().Id, PetData21[0], 21, PetData21[1], PetData21[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet21); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.pet22: // Mascota Agregada string[] PetData22 = ExtraData.Split('\n'); Pet GeneratedPet22 = CreatePet(Session.GetHabbo().Id, PetData22[0], 22, PetData22[1], PetData22[2]); Session.GetHabbo().GetInventoryComponent().AddPet(GeneratedPet22); result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, 320, "0", 0, true, false, 0,0,0)); break; case InteractionType.teleport: UserItem one = Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, "0", 0, true, false, 0,0,0); uint idOne = one.Id; UserItem two = Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, "0", 0, true, false, 0,0,0); uint idTwo = two.Id; result.Add(one); result.Add(two); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("INSERT INTO tele_links (tele_one_id,tele_two_id) VALUES (" + idOne + "," + idTwo + ")"); dbClient.runFastQuery("INSERT INTO tele_links (tele_one_id,tele_two_id) VALUES (" + idTwo + "," + idOne + ")"); } break; case InteractionType.dimmer: { UserItem it = Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, ExtraData, 0, true, false, 0,0,0); uint id = it.Id; result.Add(it); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("INSERT INTO room_items_moodlight (item_id,enabled,current_preset,preset_one,preset_two,preset_three) VALUES (" + id + ",0,1,'#000000,255,0','#000000,255,0','#000000,255,0')"); } } break; case InteractionType.roombg: { UserItem it = Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, ExtraData, 0, true, false, 0,0,0); uint id = it.Id; result.Add(it); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("INSERT INTO room_items_toner VALUES (" + id + ",'0',0,0,0)"); } break; } case InteractionType.musicdisc: { result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, songID.ToString(), 0, true, false, 0,0, songID)); break; } case InteractionType.gld_gate: case InteractionType.gld_item: { result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, "0", Convert.ToUInt32(ExtraData), true, false, 0,0,0)); break; } default: result.Add(Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Item.ItemId, ExtraData, 0, true, false, limno, limtot, songID)); break; } } return result; case "e": for (int i = 0; i < Amount; i++) { Session.GetHabbo().GetAvatarEffectsInventoryComponent().AddEffect(Item.SpriteId, 3600); } return result; case "r": RoomBot GeneratedBot = CreateBot(Session.GetHabbo().Id, "Jon", "hr-3020-34.hd-3091-2.ch-225-92.lg-3058-100.sh-3089-1338.ca-3084-78-108.wa-2005","Beep Beep","m", 0); Session.GetHabbo().GetInventoryComponent().AddBot(GeneratedBot); Session.SendMessage(Session.GetHabbo().GetInventoryComponent().SerializeBotInventory()); return result; default: Session.SendNotif(LanguageLocale.GetValue("catalog.buyerror")); return result; } }
internal void HandlePurchase(GameClient Session, int PageId, int ItemId, string ExtraData, int priceAmount, Boolean IsGift, string GiftUser, string GiftMessage, int GiftSpriteId, int GiftLazo, int GiftColor, bool undef, uint Group) { if (priceAmount < 1 || priceAmount > 100) { priceAmount = 1; } int finalAmount = priceAmount; int limno = 0; int limtot = 0; if (priceAmount >= 6) finalAmount -= 1; if (priceAmount >= 12) finalAmount -= 2; if (priceAmount >= 18) finalAmount -= 2; if (priceAmount >= 24) finalAmount -= 2; if (priceAmount >= 30) finalAmount -= 2; if (priceAmount >= 36) finalAmount -= 2; if (priceAmount >= 42) finalAmount -= 2; if (priceAmount >= 48) finalAmount -= 2; if (priceAmount >= 54) finalAmount -= 2; if (priceAmount >= 60) finalAmount -= 2; if (priceAmount >= 66) finalAmount -= 2; if (priceAmount >= 72) finalAmount -= 2; if (priceAmount >= 78) finalAmount -= 2; if (priceAmount >= 84) finalAmount -= 2; if (priceAmount >= 90) finalAmount -= 2; if (priceAmount >= 96) finalAmount -= 2; if (priceAmount >= 99) finalAmount -= 2; CatalogPage Page; if (!Pages.TryGetValue(PageId, out Page)) return; if (Page == null || !Page.Enabled || !Page.Visible || Session == null || Session.GetHabbo() == null) { return; } if (Page.MinRank > Session.GetHabbo().Rank) { return; } else if (Page.MinSub > 0 && (!Session.GetHabbo().GetSubscriptionManager().HasSubscription || Session.GetHabbo().GetSubscriptionManager().GetSubscription().SubscriptionId < Page.MinSub)) { return; } CatalogItem Item = Page.GetItem(ItemId); if (Item == null) { return; } bool IsPet = false; foreach (uint i in Item.Items) { if (Item.GetBaseItem(i).InteractionType == InteractionType.pet1 || Item.GetBaseItem(i).InteractionType == InteractionType.pet2 || Item.GetBaseItem(i).InteractionType == InteractionType.pet3 || Item.GetBaseItem(i).InteractionType == InteractionType.pet4 || Item.GetBaseItem(i).InteractionType == InteractionType.pet5 || Item.GetBaseItem(i).InteractionType == InteractionType.pet6 || Item.GetBaseItem(i).InteractionType == InteractionType.pet7 || Item.GetBaseItem(i).InteractionType == InteractionType.pet8 || Item.GetBaseItem(i).InteractionType == InteractionType.pet9 || Item.GetBaseItem(i).InteractionType == InteractionType.pet10 || Item.GetBaseItem(i).InteractionType == InteractionType.pet11 || Item.GetBaseItem(i).InteractionType == InteractionType.pet12 || Item.GetBaseItem(i).InteractionType == InteractionType.pet13 || Item.GetBaseItem(i).InteractionType == InteractionType.pet14 || Item.GetBaseItem(i).InteractionType == InteractionType.pet15 || Item.GetBaseItem(i).InteractionType == InteractionType.pet16 || Item.GetBaseItem(i).InteractionType == InteractionType.pet17 || Item.GetBaseItem(i).InteractionType == InteractionType.pet18) { IsPet = true; } } if (!IsPet) { if ((Item.CreditsCost * finalAmount) < 0 || (Item.DucketsCost * finalAmount) < 0 || (Item.BelCreditsCost * finalAmount) < 0) { SilverwaveEnvironment.GetGame().GetBanManager().BanUser(Session, "Server", 788922000, "Account banned due to attempting to exploit in-game", true, false); return; } } if (Item.IsLimited) { finalAmount = 1; priceAmount = 1; if (Item.LimitedStack <= Item.LimitedSelled) { Session.SendNotif("This item has sold out!\n\n" + "Please note, you have not recieved another item (You have also not been charged for it!)"); Session.SendMessage(new ServerMessage(Outgoing.UpdateShop)); Session.SendMessage(new PurchaseOKComposer()); return; } Item.LimitedSelled++; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE catalog_items SET limited_sells = " + Item.LimitedSelled + " WHERE id = " + Item.Id); limno = Item.LimitedSelled; limtot = Item.LimitedStack; } Session.SendMessage(new ServerMessage(Outgoing.UpdateShop)); } else if (IsGift & priceAmount > 1) { finalAmount = 1; priceAmount = 1; } uint GiftUserId = 0; if (Session.GetHabbo().Credits < (Item.CreditsCost * finalAmount)) { return; } if (Session.GetHabbo().ActivityPoints < (Item.DucketsCost * finalAmount)) { return; } if (Session.GetHabbo().ActivityPoints < (Item.BelCreditsCost* finalAmount)) { return; } if (Item.CreditsCost > 0 && !IsGift) { Session.GetHabbo().Credits -= (Item.CreditsCost * finalAmount); Session.GetHabbo().UpdateCreditsBalance(); } if (Item.DucketsCost > 0 && !IsGift) { Session.GetHabbo().ActivityPoints -= (Item.DucketsCost * finalAmount); Session.GetHabbo().UpdateActivityPointsBalance(); } if (Item.BelCreditsCost > 0 && !IsGift) { Session.GetHabbo().BelCredits -= (Item.BelCreditsCost * finalAmount); Session.GetHabbo().UpdateActivityPointsBalance(); } foreach (uint i in Item.Items) { if (IsGift) { if (GiftSpriteId > 186 && GiftSpriteId < 194) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT id FROM furniture WHERE sprite_id='" + GiftSpriteId + "' LIMIT 1"); string id = dbClient.getString(); GiftSpriteId = int.Parse(id); } } if (!Item.GetBaseItem(i).AllowGift && Session.GetHabbo().Rank < 8) { return; } DataRow dRow; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT id FROM users WHERE username = @gift_user"); dbClient.addParameter("gift_user", GiftUser); dRow = dbClient.getRow(); } if (dRow == null) { Session.GetMessageHandler().GetResponse().Init(Outgoing.GiftError); Session.GetMessageHandler().GetResponse().AppendString(GiftUser); Session.GetMessageHandler().SendResponse(); return; } GiftUserId = Convert.ToUInt32(dRow[0]); if (GiftUserId == 0) { Session.GetMessageHandler().GetResponse().Init(Outgoing.GiftError); Session.GetMessageHandler().GetResponse().AppendString(GiftUser); Session.GetMessageHandler().SendResponse(); return; } if (Item.CreditsCost > 0 && IsGift) { Session.GetHabbo().Credits -= (Item.CreditsCost * finalAmount); Session.GetHabbo().UpdateCreditsBalance(); } if (Item.DucketsCost > 0 && IsGift) { Session.GetHabbo().ActivityPoints -= (Item.DucketsCost * finalAmount); Session.GetHabbo().UpdateActivityPointsBalance(); } if (Item.BelCreditsCost > 0 && IsGift) { Session.GetHabbo().ActivityPoints -= (Item.BelCreditsCost * finalAmount); Session.GetHabbo().UpdateActivityPointsBalance(); } } if (IsGift && Item.GetBaseItem(i).Type == 'e') { Session.SendNotif(LanguageLocale.GetValue("catalog.gift.send.error")); return; } switch (Item.GetBaseItem(i).InteractionType) { case InteractionType.none: ExtraData = ""; break; case InteractionType.musicdisc: ExtraData = Item.songID.ToString(); break; #region Pet handling case InteractionType.pet0: case InteractionType.pet1: case InteractionType.pet2: case InteractionType.pet3: case InteractionType.pet4: case InteractionType.pet5: case InteractionType.pet6: case InteractionType.pet7: case InteractionType.pet8: case InteractionType.pet9: case InteractionType.pet10: case InteractionType.pet11: case InteractionType.pet12: case InteractionType.pet13: //Caballo case InteractionType.pet14: case InteractionType.pet15: case InteractionType.pet16: //Mascota agregada case InteractionType.pet17: //Mascota agregada case InteractionType.pet18: //Mascota agregada case InteractionType.pet19: //Mascota agregada case InteractionType.pet20: //Mascota agregada case InteractionType.pet21: //Mascota agregada case InteractionType.pet22: //Mascota agregada try { //uint count = 0; //using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) //{ // dbClient.setQuery("SELECT COUNT(*) FROM user_pets WHERE user_id = " + Session.GetHabbo().Id); // count = uint.Parse(dbClient.getString()); //} //if (count > 5) //{ // Session.SendNotif(LanguageLocale.GetValue("catalog.pets.maxpets")); // return; //} string[] Bits = ExtraData.Split('\n'); string PetName = Bits[0]; string Race = Bits[1]; string Color = Bits[2]; int.Parse(Race); // to trigger any possible errors if (!CheckPetName(PetName)) return; if (Race.Length != 1) return; if (Color.Length != 6) return; SilverwaveEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_PetLover", 1); } catch (Exception e) { Logging.WriteLine(e.ToString()); Logging.HandleException(e, "Catalog.HandlePurchase"); return; } break; #endregion case InteractionType.rentals: ExtraData = Item.ExtraData; break; case InteractionType.roomeffect: Double Number = 0; try { if (string.IsNullOrEmpty(ExtraData)) Number = 0; else Number = Double.Parse(ExtraData, SilverwaveEnvironment.cultureInfo); } catch (Exception e) { Logging.HandleException(e, "Catalog.HandlePurchase: " + ExtraData); } ExtraData = Number.ToString().Replace(',', '.'); break; // maintain extra data // todo: validate case InteractionType.postit: ExtraData = "FFFF33"; break; case InteractionType.dimmer: ExtraData = "1,1,1,#000000,255"; break; case InteractionType.trophy: ExtraData = Session.GetHabbo().Username + Convert.ToChar(9) + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + Convert.ToChar(9) + ExtraData; break; case InteractionType.mannequin: ExtraData = "m" + Convert.ToChar(5) + "ch-215-92.lg-3202-1322-73" + Convert.ToChar(5) + "Default Mannequin"; break; case InteractionType.badge_display: break; case InteractionType.gld_item: case InteractionType.gld_gate: break; default: ExtraData = ""; break; } Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateInventary); Session.GetMessageHandler().SendResponse(); Session.SendMessage(new PurchaseOKComposer(Item, Item.GetBaseItem(i))); if (IsGift) { uint itemID; Item Present = SilverwaveEnvironment.GetGame().GetItemManager().GetItem((uint)GiftSpriteId); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("INSERT INTO items (base_item,user_id,extra_data) VALUES (" + Present.ItemId + ", " + GiftUserId + ",@extra_data)"); dbClient.addParameter("extra_data", Session.GetHabbo().Id + ";!" + GiftMessage + Convert.ToChar(5) + GiftColor + Convert.ToChar(5) + GiftLazo); itemID = (uint)dbClient.insertQuery() + 1; dbClient.runQuery(); dbClient.setQuery("INSERT INTO user_presents (item_id,base_id,amount,extra_data) VALUES (" + itemID + "," + Item.GetBaseItem(i).ItemId + "," + Item.Amount + ",@extra_data)"); dbClient.addParameter("gift_message", "!" + GiftMessage); dbClient.addParameter("extra_data", ExtraData); dbClient.runQuery(); dbClient.runFastQuery("DELETE FROM items WHERE id= " + (itemID - 1) + " LIMIT 1;"); if (Session.GetHabbo().Id != GiftUserId) dbClient.runFastQuery("UPDATE user_stats SET GiftsGiven = GiftsGiven + 1 WHERE id = " + Session.GetHabbo().Id + " LIMIT 1;" + "UPDATE user_stats SET GiftsReceived = GiftsReceived + 1 WHERE id = " + GiftUserId + " LIMIT 1"); } GameClient Receiver = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(GiftUserId); if (Receiver != null) { UserItem u = Receiver.GetHabbo().GetInventoryComponent().AddNewItem(itemID, Present.ItemId, Session.GetHabbo().Id + ";" + GiftMessage + (char)5 + GiftLazo + (char)5 + GiftColor, 0, false, false, 0,0,0); Receiver.GetHabbo().GetInventoryComponent().SendFloorInventoryUpdate(); Receiver.GetMessageHandler().GetResponse().Init(Outgoing.SendPurchaseAlert); Receiver.GetMessageHandler().GetResponse().AppendInt32(1); // items Receiver.GetMessageHandler().GetResponse().AppendInt32(1); // type (gift) == s Receiver.GetMessageHandler().GetResponse().AppendInt32(1); Receiver.GetMessageHandler().GetResponse().AppendInt32(u.Id); Receiver.GetMessageHandler().SendResponse(); if (Item.Badge != "") { Receiver.GetHabbo().GetBadgeComponent().GiveBadge(Item.Badge, true, Session); } InventoryComponent targetInventory = Receiver.GetHabbo().GetInventoryComponent(); if (targetInventory != null) targetInventory.RunDBUpdate(); if (Receiver.GetHabbo().Id != Session.GetHabbo().Id && !string.IsNullOrWhiteSpace(GiftMessage)) { SilverwaveEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_GiftGiver", 1); SilverwaveEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Receiver, "ACH_GiftReceiver", 1); SilverwaveEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, Quests.QuestType.GIFT_OTHERS); } } } else { Session.GetMessageHandler().GetResponse().Init(Outgoing.SendPurchaseAlert); Session.GetMessageHandler().GetResponse().AppendInt32(1); // items int Type = 1; if (Item.GetBaseItem(i).Type.ToString().ToLower().Equals("s")) { if (Item.GetBaseItem(i).InteractionType == InteractionType.pet1 || Item.GetBaseItem(i).InteractionType == InteractionType.pet2 || Item.GetBaseItem(i).InteractionType == InteractionType.pet3 || Item.GetBaseItem(i).InteractionType == InteractionType.pet4 || Item.GetBaseItem(i).InteractionType == InteractionType.pet5 || Item.GetBaseItem(i).InteractionType == InteractionType.pet6 || Item.GetBaseItem(i).InteractionType == InteractionType.pet7 || Item.GetBaseItem(i).InteractionType == InteractionType.pet8 || Item.GetBaseItem(i).InteractionType == InteractionType.pet9 || Item.GetBaseItem(i).InteractionType == InteractionType.pet10 || Item.GetBaseItem(i).InteractionType == InteractionType.pet11 || Item.GetBaseItem(i).InteractionType == InteractionType.pet12 || Item.GetBaseItem(i).InteractionType == InteractionType.pet13 || Item.GetBaseItem(i).InteractionType == InteractionType.pet14 || Item.GetBaseItem(i).InteractionType == InteractionType.pet15 || Item.GetBaseItem(i).InteractionType == InteractionType.pet16 || Item.GetBaseItem(i).InteractionType == InteractionType.pet17 || Item.GetBaseItem(i).InteractionType == InteractionType.pet18) Type = 3; else Type = 1; } Session.GetMessageHandler().GetResponse().AppendInt32(Type); List<UserItem> items = DeliverItems(Session, Item.GetBaseItem(i), (priceAmount * Item.Amount), ExtraData, limno, limtot, Item.songID); Session.GetMessageHandler().GetResponse().AppendInt32(items.Count); foreach (UserItem u in items) Session.GetMessageHandler().GetResponse().AppendInt32(u.Id); Session.GetMessageHandler().SendResponse(); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); if (Item.GetBaseItem(i).InteractionType == InteractionType.pet1 || Item.GetBaseItem(i).InteractionType == InteractionType.pet2 || Item.GetBaseItem(i).InteractionType == InteractionType.pet3 || Item.GetBaseItem(i).InteractionType == InteractionType.pet4 || Item.GetBaseItem(i).InteractionType == InteractionType.pet5 || Item.GetBaseItem(i).InteractionType == InteractionType.pet6 || Item.GetBaseItem(i).InteractionType == InteractionType.pet7 || Item.GetBaseItem(i).InteractionType == InteractionType.pet8 || Item.GetBaseItem(i).InteractionType == InteractionType.pet9 || Item.GetBaseItem(i).InteractionType == InteractionType.pet10 || Item.GetBaseItem(i).InteractionType == InteractionType.pet11 || Item.GetBaseItem(i).InteractionType == InteractionType.pet12 || Item.GetBaseItem(i).InteractionType == InteractionType.pet13 || Item.GetBaseItem(i).InteractionType == InteractionType.pet14 || Item.GetBaseItem(i).InteractionType == InteractionType.pet15 || Item.GetBaseItem(i).InteractionType == InteractionType.pet16 || Item.GetBaseItem(i).InteractionType == InteractionType.pet17 || Item.GetBaseItem(i).InteractionType == InteractionType.pet18) { Session.SendMessage(Session.GetHabbo().GetInventoryComponent().SerializePetInventory()); } } if (Item.Badge != "") { Session.GetHabbo().GetBadgeComponent().GiveBadge(Item.Badge, true, Session); } if (!Item.Name.Contains("rentable_bot") && !String.IsNullOrEmpty(Item.ExtraData)) { if (!Session.GetHabbo().GetBadgeComponent().HasBadge(Item.ExtraData)) { Session.SendNotif("You have just recieved a badge!"); Session.GetHabbo().GetBadgeComponent().GiveBadge(Item.ExtraData, true, Session); } } } }
internal static void KickUser(GameClient ModSession, uint UserId, String Message, Boolean Soft) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client == null || Client.GetHabbo().CurrentRoomId < 1 || Client.GetHabbo().Id == ModSession.GetHabbo().Id) { return; } if (Client.GetHabbo().Rank >= ModSession.GetHabbo().Rank) { ModSession.SendNotif(LanguageLocale.GetValue("moderation.kick.missingrank")); return; } Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Client.GetHabbo().CurrentRoomId); if (Room == null) { return; } Room.GetRoomUserManager().RemoveUserFromRoom(Client, true, false); Client.CurrentRoomUserID = -1; if (!Soft) { Client.SendNotif(Message); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_info SET cautions = cautions + 1 WHERE user_id = " + UserId + ""); } } }
internal static void BanUser(GameClient ModSession, uint UserId, int Length, String Message) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client == null || Client.GetHabbo().Id == ModSession.GetHabbo().Id) { return; } if (Client.GetHabbo().Rank >= ModSession.GetHabbo().Rank) { ModSession.SendNotif(LanguageLocale.GetValue("moderation.ban.missingrank")); return; } Double dLength = Length; SilverwaveEnvironment.GetGame().GetBanManager().BanUser(Client, ModSession.GetHabbo().Username, dLength, Message, false, false); }
internal void Init(GameClient client, UserData data) { this.mClient = client; this.SubscriptionManager = new SubscriptionManager(Id, data); this.BadgeComponent = new BadgeComponent(Id, data); this.InventoryComponent = InventoryGlobal.GetInventory(Id, client, data); this.InventoryComponent.SetActiveState(client); this.AvatarEffectsInventoryComponent = new AvatarEffectsInventoryComponent(Id, client, data); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { if (client.GetHabbo() != null) { dbClient.setQuery("SELECT COUNT(0) FROM items WHERE user_id=@id AND room_id=''"); dbClient.addParameter("id", client.GetHabbo().Id); int lol = dbClient.getInteger(); if (lol >= 5000) client.SendNotif("You are close to the limit for items in your inventory!\n" + "The maximum is currently 8000 items, you have " + lol + " items loaded in your inventory. \nPlease note that we are not responsible for crashing because of too big inventories!"); } } this.quests = data.quests; this.Messenger = new HabboMessenger(Id); this.Messenger.Init(data.friends, data.requests); this.FriendCount = Convert.ToUInt32(data.friends.Count); this.SpectatorMode = false; this.WasSpectator = false; this.Disconnected = false; this.UsersRooms = data.rooms; this.Relationships = data.Relations; }
internal bool SetWallItem(GameClient Session, RoomItem Item) { if (!Item.IsWallItem || mWallItems.ContainsKey(Item.Id)) return false; if (mFloorItems.ContainsKey(Item.Id)) { Session.SendNotif(LanguageLocale.GetValue("room.itemplaced")); return true; } Item.Interactor.OnPlace(Session, Item); if (Item.GetBaseItem().InteractionType == InteractionType.dimmer) { if (room.MoodlightData == null) { room.MoodlightData = new MoodlightData(Item.Id); Item.ExtraData = room.MoodlightData.GenerateExtraData(); } } mWallItems.Add(Item.Id, Item); AddItem(Item); ServerMessage Message = new ServerMessage(Outgoing.AddWallItemToRoom); Item.Serialize(Message); Message.AppendString(room.Owner); room.SendMessage(Message); return true; }
internal bool SetFloorItem(GameClient Session, RoomItem Item, int newX, int newY, int newRot, bool newItem, bool OnRoller, bool sendMessage, bool updateRoomUserStatuses) { bool NeedsReAdd = false; if (!newItem) NeedsReAdd = room.GetGameMap().RemoveFromMap(Item); Dictionary<int, ThreeDCoord> AffectedTiles = Gamemap.GetAffectedTiles(Item.GetBaseItem().Length, Item.GetBaseItem().Width, newX, newY, newRot); if (!room.GetGameMap().ValidTile(newX, newY) || room.GetGameMap().SquareHasUsers(newX, newY) && !Item.GetBaseItem().IsSeat) { if (NeedsReAdd) { AddItem(Item); room.GetGameMap().AddToMap(Item); } return false; } foreach (ThreeDCoord Tile in AffectedTiles.Values) { if (!room.GetGameMap().ValidTile(Tile.X, Tile.Y) || (room.GetGameMap().SquareHasUsers(Tile.X, Tile.Y) && !Item.GetBaseItem().IsSeat)) { if (NeedsReAdd) { AddItem(Item); room.GetGameMap().AddToMap(Item); } return false; } /*if (!newItem) { List<RoomItem> Items = room.GetGameMap().GetRoomItemForSquare(Tile.X, Tile.Y); foreach (RoomItem i in Items) { if (!i.GetBaseItem().Stackable) { room.GetRoomItemHandler().SetFloorItem(Session, Item, Item.GetX, Item.GetY, newRot, false, false, true); return false; } } }*/ } // Start calculating new Z coordinate Double newZ = room.GetGameMap().Model.SqFloorHeight[newX, newY]; if (!OnRoller) { // Is the item trying to stack on itself!? //if (Item.Rot == newRot && Item.GetX == newX && Item.GetY == newY && Item.GetZ != newZ) //{ // if (NeedsReAdd) // AddItem(Item); // return false; //} // Make sure this tile is open and there are no users here if (room.GetGameMap().Model.SqState[newX, newY] != SquareState.OPEN && !Item.GetBaseItem().IsSeat) { if (NeedsReAdd) { AddItem(Item); if (newItem) room.GetGameMap().AddToMap(Item); } return false; } foreach (ThreeDCoord Tile in AffectedTiles.Values) { if (room.GetGameMap().Model.SqState[Tile.X, Tile.Y] != SquareState.OPEN && !Item.GetBaseItem().IsSeat) { if (NeedsReAdd) { AddItem(Item); room.GetGameMap().AddToMap(Item); } return false; } } // And that we have no users if (!Item.GetBaseItem().IsSeat && !Item.IsRoller) { foreach (ThreeDCoord Tile in AffectedTiles.Values) { if (room.GetGameMap().GetRoomUsers(new Point(Tile.X, Tile.Y)).Count > 0) { if (NeedsReAdd) { AddItem(Item); room.GetGameMap().AddToMap(Item); } return false; } } } } // Find affected objects List<RoomItem> ItemsOnTile = GetFurniObjects(newX, newY); List<RoomItem> ItemsAffected = new List<RoomItem>(); List<RoomItem> ItemsComplete = new List<RoomItem>(); foreach (ThreeDCoord Tile in AffectedTiles.Values) { List<RoomItem> Temp = GetFurniObjects(Tile.X, Tile.Y); if (Temp != null) { ItemsAffected.AddRange(Temp); } } ItemsComplete.AddRange(ItemsOnTile); ItemsComplete.AddRange(ItemsAffected); if (!OnRoller) { // Check for items in the stack that do not allow stacking on top of them foreach (RoomItem I in ItemsComplete) { if (I == null) continue; if (I.Id == Item.Id) { continue; } if (I.GetBaseItem() == null) continue; if (!I.GetBaseItem().Stackable) { if (NeedsReAdd) { AddItem(Item); room.GetGameMap().AddToMap(Item); } return false; } } } //if (!Item.IsRoller) { // If this is a rotating action, maintain item at current height if (Item.Rot != newRot && Item.GetX == newX && Item.GetY == newY) { newZ = Item.GetZ; } // Are there any higher objects in the stack!? foreach (RoomItem I in ItemsComplete) { if (I.Id == Item.Id) { continue; // cannot stack on self } if (I.TotalHeight > newZ) { newZ = I.TotalHeight; } } } // Verify the rotation is correct if (newRot != 0 && newRot != 2 && newRot != 4 && newRot != 6 && newRot != 8 && Item.GetBaseItem().InteractionType != InteractionType.mannequin) { newRot = 0; } //Item.GetX = newX; //Item.GetY = newY; //Item.GetZ = newZ; Item.Rot = newRot; int oldX = Item.GetX; int oldY = Item.GetY; Item.SetState(newX, newY, newZ, AffectedTiles); if (!OnRoller && Session != null) Item.Interactor.OnPlace(Session, Item); if (newItem) { if (mFloorItems.ContainsKey(Item.Id)) { if (Session != null) Session.SendNotif(LanguageLocale.GetValue("room.itemplaced")); //Remove from map!!! return true; } /*else if (mFloorItems.ContainsKey(Item.Id) && Item.MagicRemove) { RemoveFurniture(Session, Item.Id); if (mFloorItems.ContainsKey(Item.Id)) { Console.WriteLine("lul?"); mFloorItems.Remove(Item.Id); } }*/ //using (DatabaseClient dbClient = SilverwaveEnvironment.GetDatabase().GetClient()) //{ // dbClient.addParameter("extra_data", Item.ExtraData); // dbClient.runFastQuery("INSERT INTO room_items (id,room_id,base_item,extra_data,x,y,z,rot,wall_pos) VALUES ('" + Item.Id + "','" + RoomId + "','" + Item.BaseItem + "',@extra_data,'" + Item.GetX + "','" + Item.GetY + "','" + Item.GetZ + "','" + Item.Rot + "','')"); //} //if (mRemovedItems.ContainsKey(Item.Id)) // mRemovedItems.Remove(Item.Id); //if (mAddedItems.ContainsKey(Item.Id)) // return false; //mAddedItems.Add(Item.Id, Item); if (Item.IsFloorItem && !mFloorItems.ContainsKey(Item.Id)) mFloorItems.Add(Item.Id, Item); else if (Item.IsWallItem && !mWallItems.ContainsKey(Item.Id)) mWallItems.Add(Item.Id, Item); AddItem(Item); if (sendMessage) { ServerMessage Message = new ServerMessage(Outgoing.AddFloorItemToRoom); Item.Serialize(Message); if (room.Group != null) Message.AppendString(Session.GetHabbo().Username); else Message.AppendString(room.Owner); room.SendMessage(Message); } } else { //using (DatabaseClient dbClient = SilverwaveEnvironment.GetDatabase().GetClient()) //{ // dbClient.runFastQuery("UPDATE room_items SET x = '" + Item.GetX + "', y = '" + Item.GetY + "', z = '" + Item.GetZ + "', rot = '" + Item.Rot + "', wall_pos = '' WHERE id = '" + Item.Id + "' LIMIT 1"); //} UpdateItem(Item); if (!OnRoller && sendMessage) { ServerMessage Message = new ServerMessage(Outgoing.UpdateItemOnRoom); Item.Serialize(Message); //Message.AppendString(room.Owner); room.SendMessage(Message); } if (Item.IsWired) { room.GetWiredHandler().MoveWired(Item); } } room.GetGameMap().AddToMap(Item); if (Item.GetBaseItem().IsSeat) updateRoomUserStatuses = true; if (updateRoomUserStatuses) room.GetRoomUserManager().UpdateUserStatusses(); return true; }
internal RoomData CreateRoom(GameClient Session, string Name, string Model) { if (!roomModels.ContainsKey(Model)) { Session.SendNotif(Model); Session.SendNotif(LanguageLocale.GetValue("room.modelmissing")); return null; } if (Name.Length < 3) { Session.SendNotif(LanguageLocale.GetValue("room.namelengthshort")); return null; } UInt32 RoomId = 0; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("INSERT INTO rooms (roomtype,caption,owner,model_name) VALUES ('private',@caption,@username,@model)"); dbClient.addParameter("caption", Name); dbClient.addParameter("model", Model); dbClient.addParameter("username", Session.GetHabbo().Username); RoomId = (UInt32)dbClient.insertQuery(); } RoomData newRoomData = GenerateRoomData(RoomId); Session.GetHabbo().UsersRooms.Add(newRoomData); return newRoomData; }
public static Boolean Parse(GameClient Session, string Input) { if (!Input.StartsWith(":")) { return false; } Input = Input.Substring(1); string[] Params = Input.Split(' '); #region Commands switch (Params[0].ToLower()) { #region User Commands #region ToDo (:todo) case "todo": Session.SendNotifWithScroll("Lista de tareas:\r\n" + "- Nuevos Wired.\n" + "- Nueva Interfaz MT.\n" + "- Sistema de Guías\n" + "\n" + "¿Algún error encontrado? ¡Contacta con Custom!\r\n" + ""); return true; #endregion #region Commands (:commands) case "commands": case "cmds": { if (Session.GetHabbo().HasCmd("commands")) { DataTable data; StringBuilder builder = new StringBuilder(); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT command,params,description FROM fuse_cmds WHERE rank <= " + Session.GetHabbo().Rank + " ORDER BY command ASC");// LIMIT " + min + ",15");// + max+ ""); data = dbClient.getTable(); } builder.Append("Estos son los comandos disponibles:\n"); foreach (DataRow row in data.Rows) { builder.Append(":" + Convert.ToString(row[0]) + " " + Convert.ToString(row[1]) + "\n - " + Convert.ToString(row[2]) + "\n"); } Session.SendNotifWithScroll(builder.ToString()); } return true; } #endregion #region About (:about) case "about": case "info": { int UsersOnline = SilverwaveEnvironment.GetGame().GetClientManager().ClientCount; int RoomsLoaded = SilverwaveEnvironment.GetGame().GetRoomManager().LoadedRoomsCount; TimeSpan Uptime = DateTime.Now - SilverwaveEnvironment.ServerStarted; Session.SendNotif("<b><font size='15'>PLUS EMULATOR R2</font></b>\n" + "\r\n" + "<b>Estadísticas</b>\r" + "- <b>Uptime: </b> " + Uptime.Minutes + " minutos, " + Uptime.Hours + (Uptime.Hours > 1 ? " horas" : " hora") + " y " + Uptime.Days + (Uptime.Days > 1 ? " días." : " día. \r") + "- <b>Conectados: </b> " + UsersOnline + "\r" + "- <b>Salas: </b> " + RoomsLoaded + "\r\n" + "<u>Greetings to:</u>\n\n" + "- <b>Custom</b> <i>(Dev)</i>\n" + "- <b>AKIIX</b> <i>(Dev)</i>\n" + "- <b>Skyblue</b> <i>(Dev)</i>\n" + "- <b>TDID</b> <i>(Wired)</i>\n" + "- <b>Meth0d</b> <i>(Base)</i>\n" + "\n\nThank you for using <b> Plus Emulator</b>." + ""); return true; } #endregion #region Sit (:sit) case "sit": { if (Session.GetHabbo().HasCmd("sit")) { RoomUser user = null; Room room = Session.GetHabbo().CurrentRoom; if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin")) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Client != null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (user == null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } else { user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } //Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0); if (user.Statusses.ContainsKey("lie") || user.isLying || user.RidingHorse || user.IsWalking) { return true; } if (!user.Statusses.ContainsKey("sit")) { if ((user.RotBody % 2) == 0) { if (user == null) return true; try { user.Statusses.Add("sit", "1.0"); user.Z -= 0.35; user.isSitting = true; user.UpdateNeeded = true; } catch { } } else { user.RotBody--; user.Statusses.Add("sit", "1.0"); user.Z -= 0.35; user.isSitting = true; user.UpdateNeeded = true; } } else if (user.isSitting == true) { user.Z += 0.35; user.Statusses.Remove("sit"); user.Statusses.Remove("1.0"); user.isSitting = false; user.UpdateNeeded = true; } } return true; } #endregion #region Lie (:lie) case "lie": case "lay": { if (Session.GetHabbo().HasCmd("lie")) { RoomUser user = null; Room room = Session.GetHabbo().CurrentRoom; if (Params.Length == 2 && Session.GetHabbo().HasFuse("fuse_admin")) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Client != null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (user == null) user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } else { user = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); } Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(0); if (!room.GetGameMap().ValidTile(user.X + 2, user.Y + 2) && !room.GetGameMap().ValidTile(user.X + 1, user.Y + 1)) { SendChatMessage(Session, "No estás en el lugar correcto para tumbarte."); return true; } if (user.Statusses.ContainsKey("sit") || user.isSitting || user.RidingHorse || user.IsWalking) { return true; } if (!user.Statusses.ContainsKey("lay")) { if ((user.RotBody % 2) == 0) { if (user == null) return true; try { user.Statusses.Add("lay", "1.0 null"); user.Z -= 0.35; user.isLying = true; user.UpdateNeeded = true; } catch { } } else { user.RotBody--; user.Statusses.Add("lay", "1.0 null"); user.Z -= 0.35; user.isLying = true; user.UpdateNeeded = true; } } else { user.Z += 0.35; user.Statusses.Remove("lay"); user.Statusses.Remove("1.0"); user.isLying = false; user.UpdateNeeded = true; } return true; } else { return false; } } #endregion #region Pickall (:pickall) case "pickall": { if (Session.GetHabbo().HasCmd("pickall")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { if (TargetRoom.Group != null) { Session.SendNotif("No está permitido recoger todo en salas de grupo."); return true; } if (TargetRoom.ForSale) { Session.SendNotif("No se permite recoger una sala que está en venta."); return true; } List<RoomItem> RemovedItems = TargetRoom.GetRoomItemHandler().RemoveAllFurniture(Session); if (Session.GetHabbo().GetInventoryComponent() != null) { Session.GetHabbo().GetInventoryComponent().AddItemArray(RemovedItems); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } } else { Session.SendNotif("Ha ocurrido un error."); } } return true; } #endregion #region ejectall (:ejectall) case "ejectall": { if (Session.GetHabbo().HasCmd("ejectall")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { if (TargetRoom.Group == null) { Session.SendNotif("Esto es una sala de grupo."); return true; } if (TargetRoom.ForSale) { Session.SendNotif("No se permite recoger una sala que está en venta."); return true; } List<RoomItem> RemovedItems = TargetRoom.GetRoomItemHandler().RemoveAllFurniture(Session); if (Session.GetHabbo().GetInventoryComponent() != null) { Session.GetHabbo().GetInventoryComponent().AddItemArray(RemovedItems); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } } else { Session.SendNotif("Ha ocurrido un error."); } } return true; } #endregion #region Unload (:unload) case "unload": { if (Session.GetHabbo().HasCmd("unload")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(TargetRoom); TargetRoom.RequestReload(); } } return true; } #endregion #region Set Max (:setmax) case "setmax": { if (Session.GetHabbo().HasCmd("setmax")) { if (Params.Length == 1) { SendChatMessage(Session, "Debes poner un número válido."); return true; } try { int Max = int.Parse(Params[1]); if ((Max > 101 && Session.GetHabbo().Rank < 3)) { Session.SendNotif("El máximo de usuarios por sala son 100."); return true; } else if (Max < 10 && Session.GetHabbo().Rank < 3) { Session.SendNotif("El mínimo de usuarios por sala son 10."); return true; } Room room = Session.GetHabbo().CurrentRoom; room.UsersMax = Max; room.SetMaxUsers(Max); } catch { } } return true; } #endregion #region User Info (:userinfo) case "userinfo": case "ui": { if (Session.GetHabbo().HasCmd("userinfo")) { string username = Params[1]; bool UserOnline = true; if (string.IsNullOrEmpty(username)) { Session.SendNotif("Por favor, introduce un nombre de usuario."); return true; } GameClient tTargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username); if (tTargetClient == null || tTargetClient.GetHabbo() == null) { DataRow Row; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT username, rank, online, id, motto, credits FROM users WHERE username=@user LIMIT 1"); dbClient.addParameter("user", username); Row = dbClient.getRow(); Session.SendNotif("Información de " + username + ":\r" + "Rango: " + Row[1].ToString() + " \r" + "ID: " + Row[3].ToString() + " \r" + "Misión: " + Row[4].ToString() + " \r" + "Créditos: " + Row[5].ToString() + " \r"); } return true; } Habbo User = tTargetClient.GetHabbo(); //Habbo User = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(username).GetHabbo(); StringBuilder RoomInformation = new StringBuilder(); if (User.CurrentRoom != null) { RoomInformation.Append(" - SALA Nº [" + User.CurrentRoom.RoomId + "] - \r"); RoomInformation.Append("Dueño: " + User.CurrentRoom.Owner + "\r"); RoomInformation.Append("Nombre de la sala: " + User.CurrentRoom.Name + "\r"); RoomInformation.Append("Usuarios en la sala: " + User.CurrentRoom.UserCount + "/" + User.CurrentRoom.UsersMax); } Session.SendNotif("Información del usuario " + username + ":\r" + "Rango: " + User.Rank + " \r" + "Conectado: " + UserOnline.ToString() + " \r" + "ID: " + User.Id + " \r" + "Sala Actual: " + User.CurrentRoomId + " \r" + "Misión: " + User.Motto + " \r" + "Créditos: " + User.Credits + " \r" + "Silenciado: " + User.Muted.ToString() + "\r" + "\r\r" + RoomInformation.ToString()); return true; } else { return false; } } #endregion #region Disable Diagonal (:disablediagonal) case "disablediagonal": case "disablediag": case "togglediagonal": { if (Session.GetHabbo().HasCmd("togglediagonal")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { if (TargetRoom.GetGameMap().DiagonalEnabled) TargetRoom.GetGameMap().DiagonalEnabled = false; else TargetRoom.GetGameMap().DiagonalEnabled = true; } return true; } else { return false; } } #endregion #region Freeze (:freeze) case "freeze": { if (Session.GetHabbo().HasCmd("freeze")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]); if (Target != null) Target.Frozen = true; return true; } else { return false; } } #endregion #region unFreeze (:unfreeze) case "unfreeze": { if (Session.GetHabbo().HasCmd("unfreeze")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Params[1]); if (Target != null) Target.Frozen = false; return true; } else { return false; } } #endregion #region SaveFurni (:savefurni) case "savefurni": case "save": { if (Session.GetHabbo().HasCmd("save")) { //using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) //Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SaveFurniture(dbClient); return true; } else { return false; } } #endregion #region Set Speed (:setspeed) case "setspeed": { if (Session.GetHabbo().HasCmd("setspeed")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom != null && TargetRoom.CheckRights(Session, true)) { try { Session.GetHabbo().CurrentRoom.GetRoomItemHandler().SetSpeed(int.Parse(Params[1])); } catch { Session.SendNotif("¡Únicamente introduce valores numéricos!"); } } return true; } else { return false; } } #endregion #region Regenerate maps (:regenmaps) case "regenmaps": case "reloadmaps": case "fixroom": { if (Session.GetHabbo().HasCmd("regenmaps")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (TargetRoom == null) return true; if (!TargetRoom.CheckRights(Session, true)) return true; TargetRoom.GetGameMap().GenerateMaps(); Session.SendNotif("Se ha recargado el mapa de la sala correctamente."); return true; } else { return false; } } #endregion #region Empty Pets (:emptypets) case "emptypets": case "removepets": { if (Session.GetHabbo().HasCmd("emptypets")) { Session.SendNotif("Todas tus mascotas han sido borradas de tu inventario."); return true; } else { return false; } } #endregion #region Redeem Credits (:convertcredits) case "convertcredits": { if (Session.GetHabbo().HasCmd("convertcredits")) { try { Session.GetHabbo().GetInventoryComponent().Redeemcredits(Session); SendChatMessage(Session, "Todos los créditos de tu inventario han sido cangeados para volverse monedas."); } catch (Exception e) { Console.WriteLine(e); } return true; } else { return false; } } #endregion #region Mute Bots (:mutebots) case "mutebots": case "mutepets": { if (Session.GetHabbo().HasCmd("mutebots")) { if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true)) { Room Room = Session.GetHabbo().CurrentRoom; if (Room.MutedBots) Room.MutedBots = false; else Room.MutedBots = true; SendChatMessage(Session, "Los BOT de tu sala han sido silenciados."); } return true; } else { return false; } } #endregion #region Dance (:dance) case "dance": { int DanceId = 1; if (Params.Length > 1) { if (int.TryParse(Params[1], out DanceId)) { DanceId = 1; } } if (DanceId > 4 || DanceId < 0) { Session.SendWhisper("El ID del baile debe de estar comprimido entre 0 y 4."); DanceId = 0; } ServerMessage Response = new ServerMessage(); Response.Init(Outgoing.Dance); Response.AppendInt32(Session.CurrentRoomUserID); Response.AppendInt32(DanceId); Session.GetHabbo().CurrentRoom.SendMessage(Response); return true; } #endregion #region DeleteGroup (:deletegroup) case "deletegroup": { if (Session.GetHabbo().HasCmd("deletegroup")) { Room Room = Session.GetHabbo().CurrentRoom; if (!Room.CheckRights(Session, true, false)) { Session.SendNotif("¡Esta sala no es tuya!"); return true; } if (Params.Length == 1 || Params[1].ToLower() != "yes") { Session.SendNotif("¿Estás seguro de que quieres borrar este grupo?\n" + "Una vez lo hayas borrado no podrás recuperarlo más.\n\n" + "Si estás seguro, escribe ':deletegroup yes' (sin los '')"); return true; } if (Room.Group == null) { Session.SendNotif("Esta sala no contiene ningún grupo."); return true; } Group Group = Room.Group; foreach (GroupUser User in Group.Members.Values) { GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUserID(User.Id); if (Client == null) { continue; } Client.GetHabbo().UserGroups.Remove(User); if (Client.GetHabbo().FavouriteGroup == Group.Id) { Client.GetHabbo().FavouriteGroup = 0; } } Room.RoomData.Group = null; SilverwaveEnvironment.GetGame().GetGroupManager().DeleteGroup(Group.Id); SilverwaveEnvironment.GetGame().GetRoomManager().UnloadRoom(Room); return true; } else { return false; } } #endregion #region UI (:ui) case "changeui": { Session.GetHabbo().NewUISwitcher(); return true; } #endregion #endregion #region VIP Commands #region Moonwalk (:moonwalk) case "moonwalk": { if (Session.GetHabbo().HasFuse("fuse_cmd_moonwalk")) { Room room = Session.GetHabbo().CurrentRoom; if (room == null) return true; RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); roomuser.moonwalkEnabled = !roomuser.moonwalkEnabled; if (roomuser.moonwalkEnabled) SendChatMessage(Session, "¡Moonwalk activado!"); else SendChatMessage(Session, "¡Moonwalk desactivado!"); } else { SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); } return true; } #endregion #region Mimic (:mimic) case "mimic": { if (Session.GetHabbo().HasFuse("fuse_cmd_mimic")) { string copyTarget = Params[1]; RoomUser Target = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(copyTarget); string gender = null; string figure = null; if (Target != null) { gender = Target.GetClient().GetHabbo().Gender; figure = Target.GetClient().GetHabbo().Look; //if (!AntiMutant.ValidateLook(figure, gender)) { //SendChatMessage(Session, "This figure appears to be invalid!"); // return true; } Session.GetHabbo().Gender = gender; Session.GetHabbo().Look = figure; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("UPDATE users SET gender = @gender, look = @look WHERE username = @username LIMIT 1"); dbClient.addParameter("gender", gender); dbClient.addParameter("look", figure); dbClient.addParameter("username", Session.GetHabbo().Username); dbClient.runQuery(); } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return true; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return true; } Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation); Session.GetMessageHandler().GetResponse().AppendInt32(-1); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower()); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto); Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints); Session.GetMessageHandler().SendResponse(); ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendString(Session.GetHabbo().Look); RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendString(Session.GetHabbo().Motto); RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints); Room.SendMessage(RoomUpdate); } } else SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); return true; } #endregion #region Push (:push) case "push": { if (Session.GetHabbo().HasFuse("fuse_cmd_push")) { Room TargetRoom; RoomUser TargetRoomUser; RoomUser TargetRoomUser1; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } if (Params.Length == 1) { SendChatMessage(Session, "Debes introducir un nombre de usuario."); return true; } TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Convert.ToString(Params[1])); if (TargetRoomUser == null) { SendChatMessage(Session, "¡No se ha podido encontrar al usuario!"); return true; } if (TargetRoomUser.GetUsername() == Session.GetHabbo().Username) { SendChatMessage(Session, "¿En serio quieres empujarte a ti mismo? ¡Masoquista!"); return true; } TargetRoomUser1 = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser1 == null || TargetRoomUser.TeleportEnabled) { return true; } //if ((TargetRoomUser.X == TargetRoomUser1.X - 1) || (TargetRoomUser.X == TargetRoomUser1.X + 1) || (TargetRoomUser.Y == TargetRoomUser1.Y - 1) || (TargetRoomUser.Y == TargetRoomUser1.Y + 1)) if (!((Math.Abs((int)(TargetRoomUser.X - TargetRoomUser1.X)) >= 2) || (Math.Abs((int)(TargetRoomUser.Y - TargetRoomUser1.Y)) >= 2))) { if (TargetRoomUser1.RotBody == 4) { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); } if (TargetRoomUser1.RotBody == 0) { TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); } if (TargetRoomUser1.RotBody == 6) { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); } if (TargetRoomUser1.RotBody == 2) { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); } if (TargetRoomUser1.RotBody == 3) { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); } if (TargetRoomUser1.RotBody == 1) { TargetRoomUser.MoveTo(TargetRoomUser.X + 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); } if (TargetRoomUser1.RotBody == 7) { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y - 1); } if (TargetRoomUser1.RotBody == 5) { TargetRoomUser.MoveTo(TargetRoomUser.X - 1, TargetRoomUser.Y); TargetRoomUser.MoveTo(TargetRoomUser.X, TargetRoomUser.Y + 1); } TargetRoomUser.UpdateNeeded = true; TargetRoomUser1.UpdateNeeded = true; TargetRoomUser1.SetRot(Rotation.Calculate(TargetRoomUser1.X, TargetRoomUser1.Y, TargetRoomUser.GoalX, TargetRoomUser.GoalY)); TargetRoom.SendMessage(new ChatComposer(TargetRoomUser1.VirtualId, "*Empuja a " + Params[1] + "*", 0, TargetRoomUser1.LastBubble, -1)); } else { SendChatMessage(Session, Params[1] + " no está lo suficientemente cerca."); } } else SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); return true; } #endregion #region Pull (:pull) case "pull": { if (Session.GetHabbo().HasFuse("fuse_cmd_pull")) { Room room = Session.GetHabbo().CurrentRoom; if (room == null) { return true; } RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomuser == null) { return true; } if (Params.Length == 1) { SendChatMessage(Session, "No se ha podido encontrar el usuario."); return true; } GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Target == null) return true; if (Target.GetHabbo().Id == Session.GetHabbo().Id) { SendChatMessage(Session, "¡No te puedes atraer a ti mismo!"); return true; } RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id); if (TargetUser == null) return true; if (TargetUser.TeleportEnabled) return true; if (!((Math.Abs((int)(roomuser.X - TargetUser.X)) >= 3) || (Math.Abs((int)(roomuser.Y - TargetUser.Y)) >= 3))) { room.SendMessage(new ChatComposer(roomuser.VirtualId, "*Atrae a " + Params[1] + "*", 0, roomuser.LastBubble, -1)); if (roomuser.RotBody % 2 != 0) roomuser.RotBody--; if (roomuser.RotBody == 0) TargetUser.MoveTo(roomuser.X, roomuser.Y - 1); else if (roomuser.RotBody == 2) TargetUser.MoveTo(roomuser.X + 1, roomuser.Y); else if (roomuser.RotBody == 4) TargetUser.MoveTo(roomuser.X, roomuser.Y + 1); else if (roomuser.RotBody == 6) TargetUser.MoveTo(roomuser.X - 1, roomuser.Y); } else { SendChatMessage(Session, "El usuario al que intentas atraer está muy lejos."); return true; } } else SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); return true; } #endregion #region Enable (:enable) case "enable": case "effect": { if (Session.GetHabbo().HasFuse("fuse_cmd_enable")) { if (Params.Length == 1) { SendChatMessage(Session, "Debes de introducir una ID para el efecto."); return true; } RoomUser TargetRoomUser = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (TargetRoomUser.RidingHorse) { SendChatMessage(Session, "¡No puedes activar un efecto mientras estás montando a caballo!"); return true; } else if (TargetRoomUser.team != Team.none) { return true; } else if (TargetRoomUser.isLying) return true; string Effect = Params[1]; double EffectID; bool isNum = double.TryParse(Effect, out EffectID); if (isNum) { //if(EffectID != 97) Session.GetHabbo().GetAvatarEffectsInventoryComponent().ApplyCustomEffect(int.Parse(EffectID.ToString())); } else { SendChatMessage(Session, "¡Escribe números para referirte a los efectos!"); return true; } } else { SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE); } return true; } #endregion #region Change name (:flagme) case "flagme": { /*if (Session.GetHabbo().HasFuse("fuse_cmd_flagme")) { SendChatMessage(Session, "In order to change your name, click yourself and choose \"Change Name\""); SendChatMessage(Session, "You can only change your name every 12 hours."); } else { SendChatMessage(Session, SilverwaveStaticSettings.VIP_MESSAGE_2); } return true;*/ return false; } #endregion #region Empty (:empty) case "emptyitems": case "empty": { if (Session.GetHabbo().HasCmd("emptyitems")) { if (Params.Length == 1) { Session.SendNotif("¿Estás seguro de que quieres vaciar todo tu inventario?\n" + "Para realizar la acción escribe \":emptyitems yes\". \n\nUna vez hecho eso no habrá vuelta atrás.\nSi no quieres vaciarlo sólo cierra esta ventana.\n\n" + "¡ATENCIÓN! Si tienes más de 3000 objetos deberás tener en cuenta que TODOS serán borrados."); return true; } else { if (Params.Length == 2) { if (Params[1].ToString() == "yes") { //GameClient Client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); Session.GetHabbo().GetInventoryComponent().ClearItems(); Session.SendNotif("Has vaciado satisfactoriamente tu inventario\n¡Qué ligero se siente! ¿No?"); return true; } } } return true; } else { return false; } } #endregion #endregion #region Moderation Commands #region Kick (:kick) case "alert": { if (Session.GetHabbo().HasCmd("alert")) { if (Params[1] == null || Params[2] == null) { Session.SendNotif("Has escrito un mensaje demasiado corto."); return true; } string TargetUser = null; GameClient TargetClient = null; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); Room TargetRoom = TargetClient.GetHabbo().CurrentRoom; if (TargetClient == null) { Session.SendNotif("El usuario no se ha podido encontrar."); return true; } TargetClient.SendNotif(Params[2] + " -" + Session.GetHabbo().Username); return true; } else { return false; } } case "kick": { if (Session.GetHabbo().HasCmd("kick")) { string TargetUser = null; GameClient TargetClient = null; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); Room TargetRoom = TargetClient.GetHabbo().CurrentRoom; if (TargetClient == null) { Session.SendNotif("El usuario no se ha podido encontrar."); return true; } if (Session.GetHabbo().Rank <= TargetClient.GetHabbo().Rank) { Session.SendNotif("No se permite expulsar a este usuario, tal vez este tenga un rango superior al tuyo."); return true; } if (TargetClient.GetHabbo().CurrentRoomId < 1) { Session.SendNotif("Este usuario no se encuentra en la sala."); return true; } TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(TargetClient.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } TargetRoom.GetRoomUserManager().RemoveUserFromRoom(TargetClient, true, false); TargetClient.CurrentRoomUserID = -1; if (Params.Length > 2) { TargetClient.SendNotif("Un moderador te ha expulsado de la sala por la siguiente razón: " + MergeParams(Params, 2)); } else { TargetClient.SendNotif("Un moderador te ha expulsado de la sala sin razón."); } return true; } else { return false; } } #endregion #region Room Mute (:roommute) / Room unmute (:roomunmute) case "roommute": { if (Session.GetHabbo().HasCmd("roommute") || Session.GetHabbo().HasCmd("roomunmute")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (!Session.GetHabbo().CurrentRoom.RoomMuted) Session.GetHabbo().CurrentRoom.RoomMuted = true; string Msg = MergeParams(Params, 1); ServerMessage Message = new ServerMessage(); Message.Init(Outgoing.SendNotif); Message.AppendString("Esta sala ha sido silenciada por la siguiente razón:\n" + Msg); Message.AppendString(""); TargetRoom.SendMessage(Message); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "La sala ha sido silenciada.", "La sala ha sido silenciada"); return true; } else { return false; } } case "roomunmute": { if (Session.GetHabbo().HasCmd("roomunmute")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom.RoomMuted) Session.GetHabbo().CurrentRoom.RoomMuted = false; ServerMessage Message = new ServerMessage(); Message.Init(Outgoing.SendNotif); Message.AppendString("¡Ya puedes hablar!"); Message.AppendString(""); TargetRoom.SendMessage(Message); return true; } else { return false; } } #endregion #region Mute (:mute) case "mute": { if (Session.GetHabbo().HasCmd("mute")) { string TargetUser = null; GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendNotif("El usuario no se puede encontrar."); return true; } if (TargetClient.GetHabbo().Rank >= 4) { Session.SendNotif("No tienes suficientes permisos para (des)silenciar a este usuario.."); return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Mute", "Muted user"); TargetClient.GetHabbo().Mute(); return true; } else { return false; } } #endregion #region Flood (:flood) case "flood": { if (Session.GetHabbo().HasCmd("flood")) { string TargetUser = null; GameClient TargetClient = null; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); if (Params.Length != 3) { Session.SendNotif("Debes de incluir un nombre de usuario y una duración para silenciar a un usuario."); return true; } TargetClient.GetHabbo().FloodTime = SilverwaveEnvironment.GetUnixTimestamp() + Convert.ToInt32(Params[2]); ServerMessage Packet = new ServerMessage(Outgoing.FloodFilter); Packet.AppendInt32(Convert.ToInt32(Params[2])); TargetClient.SendMessage(Packet); return true; } else { return false; } } #endregion #region Unmute (:unmute) case "unmute": { if (Session.GetHabbo().HasCmd("unmute")) { string TargetUser = null; GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetUser = Params[1]; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendNotif("No se ha podido encontrar al usuario."); return true; } if (!TargetClient.GetHabbo().Muted) { return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "El usuario ha sido silenciado satisfactoriamente.", "El usuario ha sido desilenciado satisfactoriamente."); TargetClient.GetHabbo().Unmute(); return true; } else { return false; } } #endregion #region Summon (:summon) case "summon": case "come": { if (Session.GetHabbo().HasCmd("summon")) { if (Params.Length < 1) { Session.SendNotif("No has especificado ningún nombre de usuario."); return true; } string username = Params[1]; GameClient client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username); if (client == null) { Session.SendNotif("No existe ningún nombre de usuario conectado bajo el nombre de \"" + username + "\""); return true; } client.SendNotif("Has sido traído a la sala actual por " + Session.GetHabbo().Username); RoomData Room = SilverwaveEnvironment.GetGame().GetRoomManager().GenerateRoomData(Session.GetHabbo().CurrentRoomId); Room.SerializeRoomData(new ServerMessage(), (client.GetHabbo().CurrentRoom == null), client); //client.GetMessageHandler().PrepareRoomForUser(Session.GetHabbo().CurrentRoomId, ""); client.SendMessage(new RoomForwardComposer(false, Session.GetHabbo().CurrentRoomId)); return true; } else { return false; } } #endregion #region Follow (:follow) case "follow": case "stalk": { if (Session.GetHabbo().HasCmd("follow")) { GameClient TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null || TargetClient.GetHabbo() == null) { Session.SendWhisper("No has podido seguir al usuario solicitado porque no está conectado."); return true; } if (TargetClient == null || TargetClient.GetHabbo().CurrentRoom == null || TargetClient.GetHabbo().CurrentRoom == Session.GetHabbo().CurrentRoom) { Session.SendWhisper("El usuario no se encuentra en ninguna sala."); return true; } Session.SendMessage(new RoomForwardComposer(false, TargetClient.GetHabbo().CurrentRoom.RoomId)); //Session.GetMessageHandler().PrepareRoomForUser(TargetClient.GetHabbo().CurrentRoom.RoomId, ""); return true; } else { return false; } } #endregion #region Room kick (:roomkick) case "roomkick": { if (Session.GetHabbo().HasCmd("roomkick")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } string ModMsg = MergeParams(Params, 1); RoomKick kick = new RoomKick(ModMsg, (int)Session.GetHabbo().Rank); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "EXPULSIÓN GENERAL DE LA SALA", "La sala entera ha sido vaciada sin razón."); TargetRoom.QueueRoomKick(kick); return true; } else { return false; } } #endregion #region Super ban (:superban) case "superban": { if (Session.GetHabbo().HasCmd("superban")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendNotif("El usuario solicitado no se ha podido banear ya que no existe."); return true; } if (TargetClient.GetHabbo().Rank >= Session.GetHabbo().Rank) { Session.SendNotif("No tienes los suficientes permisos para banear a ese usuario."); return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Ban", "Long ban forever"); SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetClient, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), false, false); return true; } else { return false; } } #endregion #region Show Whispers (:togglewhisper) case "togglewhisper": { if (Session.GetHabbo().HasCmd("togglewhisper")) { /*if (Session.GetHabbo().ShowRoomWhispers) { Session.GetHabbo().ShowRoomWhispers = false; SendChatMessage(Session, "Room Whispers viewing disabled."); } else { Session.GetHabbo().ShowRoomWhispers = true; SendChatMessage(Session, "Room Whispers viewing enabled."); }*/ return true; } else { return false; } } #endregion #endregion #region Administration Commands #region Fast walk case "fastwalk": { if (Session.GetHabbo().HasCmd("fastwalk")) { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (!User.FastWalking) { User.FastWalking = true; } else { User.FastWalking = false; } return true; } else { return false; } } #endregion #region BelCredits (:BelCredits) case "BelCredits": { if (Session.GetHabbo().Username == "Custom" || Session.GetHabbo().Username == "Custom") { GameClient TargetClient = null; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { int creditsToAdd; if (int.TryParse(Params[2], out creditsToAdd)) { TargetClient.GetHabbo().BelCredits = TargetClient.GetHabbo().BelCredits + creditsToAdd; TargetClient.GetHabbo().UpdateCreditsBalance(); return true; } else { Session.SendWhisper("Introduzca sólo numeros."); return true; } } else { Session.SendWhisper("No se ha podido encontrar el nombre de usuario solicitado."); return true; } } else { return false; } } #endregion #region Promote room case "promoteroom": { if (Session.GetHabbo().HasCmd("promoteroom")) { if (Params[1] == null) { Session.SendNotif("Debes de introducir un nombre y una descripción para el evento."); return true; } int Time; if (!int.TryParse(Params[1], out Time)) { Session.SendNotif("El comando debe de ser ejecutado así: :promoteroom duración (el tiempo de duración del evento))."); return true; } Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); SilverwaveEnvironment.GetGame().GetRoomEvents().AddNewEvent(Room.RoomId, "¡Evento!", "Esta sala está teniendo un evento, ¡pásalo en grande!", Session); return true; } else { return false; } } #endregion #region Mass Dance (:massdance) case "massdance": { if (Session.GetHabbo().HasCmd("massdance") || Session.GetHabbo().Username == "Custom") { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); int DanceId = Convert.ToInt32(Params[1]); if (DanceId > 4) { Session.SendNotif("Esta ID no es correcta."); return true; } if (DanceId > 0 && User.CarryItemID > 0) { User.CarryItem(0); } User.DanceId = DanceId; foreach (RoomUser user in users) { ServerMessage DanceMessage = new ServerMessage(Outgoing.Dance); DanceMessage.AppendInt32(user.VirtualId); DanceMessage.AppendInt32(DanceId); Room.SendMessage(DanceMessage); user.DanceId = DanceId; } return true; } else { return false; } } #endregion #region Go Boom (:goboom) case "goboom": { if (Session.GetHabbo().HasCmd("goboom")) { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser user in users) { user.ApplyEffect(108); } return true; } else { return false; } } #endregion #region Mass Enable (:massenable) case "massenable": { if (Session.GetHabbo().HasCmd("massenable")) { Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser user in users) { if (user.RidingHorse) continue; user.ApplyEffect(Convert.ToInt32(Params[1])); } return true; } else { return false; } } #endregion #region Test case "test": { Session.SendWhisper("¡Este hotel está usando mi puto emulador :o!"); ServerMessage derp; if (Session.GetHabbo().Username == "Custom") { switch (Params[0]) { case "1": derp = new ServerMessage(Outgoing.WiredTrigger); derp.AppendBoolean(false); derp.AppendInt32(5); derp.AppendInt32(0); derp.AppendInt32(5050); derp.AppendInt32(1290); derp.AppendString(""); derp.AppendInt32(0); derp.AppendInt32(11); derp.AppendInt32(0); Session.SendMessage(derp); break; case "2": break; } } return true; } #endregion #region Give Credits (:credits) case "givecredits": case "credits": case "coins": { if (Session.GetHabbo().HasCmd("coins")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { int creditsToAdd; if (int.TryParse(Params[2], out creditsToAdd)) { TargetClient.GetHabbo().Credits = TargetClient.GetHabbo().Credits + creditsToAdd; TargetClient.GetHabbo().UpdateCreditsBalance(); TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("coins.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("coins.awardmessage2")); Session.SendNotif(LanguageLocale.GetValue("coins.updateok")); return true; } else { Session.SendNotif("¡Sólo puedes introducir valores numéricos! (Pueden ser negativos y positivos)"); return true; } } else { Session.SendNotif("No se ha podido encontrar al usuario seleccionado."); return true; } } return true; } #endregion #region Give Pixels (:pixels) case "pixels": case "givepixels": { if (Session.GetHabbo().HasCmd("pixels")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { int creditsToAdd; if (int.TryParse(Params[2], out creditsToAdd)) { TargetClient.GetHabbo().ActivityPoints = TargetClient.GetHabbo().ActivityPoints + creditsToAdd; Session.GetHabbo().NotifyNewPixels(creditsToAdd); TargetClient.GetHabbo().UpdateActivityPointsBalance(); TargetClient.SendNotif(Session.GetHabbo().Username + LanguageLocale.GetValue("pixels.awardmessage1") + creditsToAdd.ToString() + LanguageLocale.GetValue("pixels.awardmessage2")); Session.SendNotif(LanguageLocale.GetValue("pixels.updateok")); return true; } else { Session.SendNotif("¡Sólo puedes introducir valores numéricos! (Pueden ser negativos y positivos)"); return true; } } else { Session.SendNotif("No se ha podido encontrar al usuario seleccionado."); return true; } } return true; } #endregion #region Hotel Alert (:ha) case "ha": if (Session.GetHabbo().HasCmd("ha")) { string Notice = MergeParams(Params, 1); ServerMessage HotelAlert = new ServerMessage(Outgoing.BroadcastMessage); HotelAlert.AppendString(Notice + "\r\n" + "- " + Session.GetHabbo().Username); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(HotelAlert); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Notice + "]"); } else { return false; } return true; #endregion #region Shutdown (:shutdown) case "shutdown": { if (Session.GetHabbo().HasCmd("shutdown")) { Task ShutdownTask = new Task(SilverwaveEnvironment.PerformShutDown); ShutdownTask.Start(); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Shutdown", "Issued shutdown command"); return true; } else { return false; } } #endregion #region Disconnect (:kill) case "disconnect": case "kill": case "dc": { if (Session.GetHabbo().HasCmd("kill")) { GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendNotif("El usuario no ha sido encontrado."); return true; } if (TargetClient.GetHabbo().Rank >= 4 && !Session.GetHabbo().HasFuse("fuse_disconnect_anyone")) { Session.SendNotif("No tienes permisos para desconectar a ese usuario."); return true; } SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Disconnect", "User disconnected by user"); TargetClient.GetConnection().Dispose(); return true; } else { return false; } } #endregion #region Position (:coords) case "coord": case "coords": case "position": { if (Session.GetHabbo().HasCmd("coords")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser TargetRoomUser = null; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return true; } TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser == null) { return true; } Session.SendNotif("X: " + TargetRoomUser.X + "\n - Y: " + TargetRoomUser.Y + "\n - Z: " + TargetRoomUser.Z + "\n - Rotación: " + TargetRoomUser.RotBody + ", sqState: " + TargetRoom.GetGameMap().GameMap[TargetRoomUser.X, TargetRoomUser.Y].ToString() + "\n\n - RoomID: " + Session.GetHabbo().CurrentRoomId); } return true; } #endregion #region Teleport (:teleport) case "teleport": case "tele": { if (Session.GetHabbo().HasCmd("teleport")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; RoomUser TargetRoomUser = null; TargetRoom = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser.RidingHorse) { SendChatMessage(Session, "No te puedes teletransportar mientras montas a caballo."); return true; } if (TargetRoomUser == null) return true; TargetRoomUser.TeleportEnabled = !TargetRoomUser.TeleportEnabled; TargetRoom.GetGameMap().GenerateMaps(); } return true; } #endregion #region Update (:update_x) #region Update Catalog case "update_catalog": case "reload_catalog": case "recache_catalog": case "refresh_catalog": case "update_catalogue": case "reload_catalogue": case "recache_catalogue": case "refresh_catalogue": { if (Session.GetHabbo().HasCmd("update_catalog")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetCatalog().Initialize(dbClient); } SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(new ServerMessage(Outgoing.UpdateShop)); Session.SendNotif("¡El catálogo del hotel ha sido actualizado satisfactoriamente!"); return true; } return true; } #endregion #region Update Items case "update_items": case "reload_items": case "recache_items": case "refresh_items": { if (Session.GetHabbo().HasCmd("update_items")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetItemManager().LoadItems(dbClient); } Session.SendNotif("Las definiciones de los objetos han sido actualizadas satisfactoriamente!"); } return true; } #endregion #region Update Filter case "update_filter": case "reload_filter": case "recache_filter": case "refresh_filter": { if (Session.GetHabbo().HasCmd("update_filter")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { LanguageLocale.InitSwearWord(dbClient); } } return true; } #endregion #region Update Navigator case "update_navigator": case "reload_navigator": case "recache_navigator": case "refresh_navigator": { if (Session.GetHabbo().HasCmd("update_navigator")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetNavigator().Initialize(dbClient); } Session.SendNotif("¡Se ha actualizado satisfactoriamente el navegador del hotel!"); } return true; } #endregion #region Update Ranks case "update_ranks": case "reload_ranks": case "recache_ranks": case "refresh_ranks": { if (Session.GetHabbo().HasCmd("update_ranks")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { SilverwaveEnvironment.GetGame().GetRoleManager().LoadRights(dbClient); } Session.SendNotif("Los rangos del hotel se han actualizado satisfactoriamente."); } return true; } #endregion #region Update Settings case "update_settings": case "reload_settings": case "recache_settings": case "refresh_settings": { if (Session.GetHabbo().HasCmd("update_settings")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) SilverwaveEnvironment.ConfigData = new ConfigData(dbClient); } return true; } #endregion #region Update Groups case "update_groups": case "reload_groups": case "recache_groups": case "refresh_groups": { if (Session.GetHabbo().HasCmd("update_groups")) { SilverwaveEnvironment.GetGame().GetGroupManager().InitGroups(); Session.SendNotif("¡Los grupos han sido cargados de nuevo satisfactoriamente!"); } return true; } #endregion #region Update Bans case "update_bans": { if (Session.GetHabbo().HasCmd("update_bans")) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) SilverwaveEnvironment.GetGame().GetBanManager().LoadBans(dbClient); Session.SendNotif("Los baneos se han actualizado satisfactoriamente."); } return true; } #endregion #region Update Quests case "update_quests": { if (Session.GetHabbo().HasCmd("update_quests")) { SilverwaveEnvironment.GetGame().GetQuestManager().Initialize(SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()); Session.SendNotif("¡Se han actualizado las misiones y los retos satisfactoriamente!"); } return true; } #endregion #endregion #region Super Pull (:spull) case "spull": { if (Session.GetHabbo().HasCmd("spull")) { Room room = Session.GetHabbo().CurrentRoom; if (room == null) { SendChatMessage(Session, "'No se encuentra la sala!"); return true; } RoomUser roomuser = room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (roomuser == null) { SendChatMessage(Session, "¡No se encuentra al usuario!"); return true; } if (Params.Length == 1) { SendChatMessage(Session, "¡No se encuentra al usuario!"); return true; } GameClient Target = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); RoomUser TargetUser = room.GetRoomUserManager().GetRoomUserByHabbo(Target.GetHabbo().Id); if (Target.GetHabbo().Id == Session.GetHabbo().Id) { SendChatMessage(Session, "¡No te puedes atraer a ti mismo!"); return true; } if (TargetUser.TeleportEnabled) return true; if (roomuser.RotBody % 2 != 0) roomuser.RotBody--; room.SendMessage(new ChatComposer(roomuser.VirtualId, "*Atrae a " + Params[1] + "*", 0, roomuser.LastBubble, -1)); if (roomuser.RotBody == 0) TargetUser.MoveTo(roomuser.X, roomuser.Y - 1); else if (roomuser.RotBody == 2) TargetUser.MoveTo(roomuser.X + 1, roomuser.Y); else if (roomuser.RotBody == 4) TargetUser.MoveTo(roomuser.X, roomuser.Y + 1); else if (roomuser.RotBody == 6) TargetUser.MoveTo(roomuser.X - 1, roomuser.Y); } return true; } #endregion #region Global Credits (:globalcredits) case "globalcredits": { if (Session.GetHabbo().HasCmd("globalcredits")) { if (Params.Length == 1) { Session.SendNotif("Debes de introducir una cantidad de créditos."); return true; } try { int Amount = int.Parse(Params[1]); using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) dbClient.runFastQuery("UPDATE users SET credits=credits+" + Amount); SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone in the database"); } catch { } } return true; } #endregion #region Mass Credits (:masscredits) case "masscredits": { if (Session.GetHabbo().HasCmd("masscredits")) { if (Params.Length == 1) { Session.SendNotif("Debes de introducir una cantidad de créditos."); return true; } try { int Amount = int.Parse(Params[1]); SilverwaveEnvironment.GetGame().GetClientManager().QueueCreditsUpdate(Amount); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Mass Credits", "Send [" + Amount + "] credits to everyone online"); } catch { } } return true; } #endregion #region Give Badge (:badge) case "badge": case "givebadge": { if (Session.GetHabbo().HasCmd("badge")) { if (Params.Length != 3) { Session.SendNotif("Debes de introducir un nombre de usuario junto a la placa que quieras dar."); return true; } GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { TargetClient.GetHabbo().GetBadgeComponent().GiveBadge(Params[2], true, TargetClient); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "Badge", "Acabas de darle una placa al usuario [" + Params[2] + "]"); TargetClient.SendNotif("¡Acabas de recibir una placa por parte de un miembro del equipo administrativo del hotel!"); return true; } else { Session.SendNotif("No se encuentra al usuario seleccionado."); return true; } } return true; } #endregion #region Room Badge (:roombadge) case "roombadge": { if (Session.GetHabbo().HasCmd("roombadge")) { if (Params.Length == 1) { Session.SendNotif("¡Debes de introducir la ID de la placa!"); return true; } Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom == null) return true; TargetRoom.QueueRoomBadge(Params[1]); ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString("¡Acabas de recibir una placa por parte de uno de los miembros del Equipo Administrativo del hotel!"); nMessage.AppendString(""); TargetRoom.SendMessage(nMessage); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "La sala [" + TargetRoom.RoomId + "] ha recibido la placa [" + Params[1] + "]"); } return true; } #endregion #region Mass Badge (:massbadge) case "massbadge": { if (Session.GetHabbo().HasCmd("massbadge")) { if (Params.Length == 1) { Session.SendNotif("¡Debes de introducir la ID de la placa!"); return true; } Room TargetRoom = Session.GetHabbo().CurrentRoom; SilverwaveEnvironment.GetGame().GetClientManager().QueueBadgeUpdate(Params[1]); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Badge", "Placa masiva a todo el hotel, ID: [" + Params[1] + "]"); ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString("¡Acabas de recibir una placa por parte de uno de los miembros del Equipo Administrativo del hotel!"); nMessage.AppendString(""); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage); } return true; } #endregion #region All eyes on me (:alleyesonme) case "alleyesonme": { if (Session.GetHabbo().HasCmd("alleyesonme")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom == null) return true; Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser Us in users) { if (Session.GetHabbo().Id == Us.userID) continue; Us.SetRot(Rotation.Calculate(Us.X, Us.Y, User.X, User.Y)); } } return true; } #endregion #region IP Ban (:ipban) case "ipban": case "banip": { if (Session.GetHabbo().HasCmd("ipban")) { if (Params.Length == 1) { Session.SendNotif("¡Debes de introducir un nombre de usuario y una razón!"); } GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString()); if (TargetUser == null) { Session.SendNotif("Ha ocurrido un error inesperado buscando al usuario seleccionado."); return true; } try { SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false); } catch (Exception e) { Console.WriteLine(e); } } return true; } #endregion #region Machine Ban (:machineban) case "machineban": case "banmachine": case "mban": { if (Session.GetHabbo().HasCmd("machineban")) { if (Params.Length == 1) { Session.SendNotif("¡Debes de introducir un nombre de usuario y una razón!"); } GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString()); if (TargetUser == null) { Session.SendNotif("Ha ocurrido un error inesperado buscando al usuario seleccionado."); return true; } if (string.IsNullOrWhiteSpace(TargetUser.MachineId)) { Session.SendNotif("No se ha podido banear a este usuario ya que no se encuentra una ID de su PC."); return true; } try { SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "Has sido baneado bajo la siguiente razón:\n" + MergeParams(Params, 2), false, true); } catch (Exception e) { Console.WriteLine(e); } } return true; } #endregion #region Machine and IP ban (:mip) case "mip": { if (Session.GetHabbo().HasCmd("mip")) { if (Params.Length == 1) { Session.SendNotif("¡Debes de introducir un nombre de usuario y una razón!"); } GameClient TargetUser = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1].ToString()); if (TargetUser == null) { Session.SendNotif("Ha ocurrido un error inesperado buscando al usuario seleccionado."); return true; } try { if (string.IsNullOrWhiteSpace(TargetUser.MachineId)) { Session.SendNotif("No se ha podido banear a este usuario ya que no se encuentra una ID de su PC."); return true; } SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 2678400, "Has sido baneado bajo la siguiente razón:\n" + MergeParams(Params, 2), false, true); SilverwaveEnvironment.GetGame().GetBanManager().BanUser(TargetUser, Session.GetHabbo().Username, 788922000, MergeParams(Params, 2), true, false); } catch (Exception e) { Console.WriteLine(e); } } return true; } #endregion #region All around me (:allaroundme) case "allaroundme": { if (Session.GetHabbo().HasCmd("allaroundme")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; if (Session.GetHabbo().CurrentRoom == null) { Session.SendNotif("Ha ocurrido un error inesperado."); return true; } Room Room = SilverwaveEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); List<RoomUser> users = Room.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser Us in users) { if (Session.GetHabbo().Id == Us.userID) continue; Us.MoveTo(User.X, User.Y, true); } if (Params.Length == 2) { if (Params[1] == "override") { foreach (RoomUser Us in users) { if (Session.GetHabbo().Id == Us.userID) continue; Us.AllowOverride = true; Us.MoveTo(User.X, User.Y, true); Us.AllowOverride = false; } } } } return true; } #endregion #region Hotel alert w/link (:hal) case "hal": { if (Session.GetHabbo().HasCmd("hal")) { Room TargetRoom = Session.GetHabbo().CurrentRoom; // Hotel Alert pluss link :hal <link> <message> string Link = Params[1]; string Message = MergeParams(Params, 2); ServerMessage nMessage = new ServerMessage(Outgoing.SendNotif); nMessage.AppendString(LanguageLocale.GetValue("hotelallert.notice") + "\r\n" + Message + "\r\n-" + Session.GetHabbo().Username); nMessage.AppendString(Link); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Message + "]"); } return true; } #endregion #region Staff Alert (:sa) case "sa": { if (Session.GetHabbo().HasCmd("sa")) { string Message = "<b>Chat Administrativo</b>: \n" + Params[1] + "\n - " + Session.GetHabbo().Username; ServerMessage message = new ServerMessage(Outgoing.BroadcastMessage); message.AppendString(Message); SilverwaveEnvironment.GetGame().GetClientManager().StaffAlert(message); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "StaffAlert", "Staff alert [" + Message + "]"); } return true; } #endregion #region Spectators Mode (:invisible) case "invisible": case "spec": case "spectatorsmode": { if (Session.GetHabbo().HasCmd("invisible")) { if (Session.GetHabbo().SpectatorMode == false) { Session.GetHabbo().SpectatorMode = true; Session.SendNotif("Reinicia la sala para ser invisible."); } else { Session.GetHabbo().SpectatorMode = false; Session.SendNotif("Reinicia la sala para ser visible."); } } return true; } #endregion #region Add Bannable Word (:banword) case "banword": { if (Session.GetHabbo().HasCmd("banword")) { string BannedWord = Params[1]; if (!string.IsNullOrWhiteSpace(BannedWord)) { using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("INSERT INTO wordfilter (`word`, `addedby`, `bannable`) VALUES " + "(@ban, '" + Session.GetHabbo().Username + "', '0');"); dbClient.addParameter("ban", BannedWord.ToLower()); dbClient.runQuery(); LanguageLocale.InitSwearWord(dbClient); Session.SendNotif("La palabra '" + BannedWord + "' ha sido añaida a la lista prohibida."); } } } return true; } #endregion #region Unidle (:unidle) case "unidle": { if (Session.GetHabbo().HasCmd("unidle")) { Habbo Habbo = SilverwaveEnvironment.getHabboForName(Params[1]); if (Habbo == null) return true; RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Habbo.Id); if (User == null) return true; User.UnIdle(); } return true; } #endregion #region Make Public (:public) case "public": { if (Session.GetHabbo().HasCmd("public")) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return true; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) dbClient.runFastQuery("UPDATE rooms SET roomtype='public' WHERE id=" + Room.RoomId + " LIMIT 1"); Room.Type = "public"; Room.RoomData.Type = "public"; Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true); } return true; } #endregion #region Make Private (:private) case "private": { if (Session.GetHabbo().HasCmd("private")) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return true; using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor()) dbClient.runFastQuery("UPDATE rooms SET roomtype='private' WHERE id=" + Room.RoomId + " LIMIT 1"); Room.Type = "private"; Room.RoomData.Type = "private"; Room.RoomData.SerializeRoomData(new ServerMessage(), false, Session, true); } return true; } #endregion #region Mass Action (:massact) case "massact": { if (Session.GetHabbo().HasCmd("massact")) { try { Room Room = Session.GetHabbo().CurrentRoom; List<RoomUser> Users = Room.GetRoomUserManager().GetRoomUsers(); int Num = Int16.Parse(Params[1]); ServerMessage Message = new ServerMessage(); foreach (RoomUser User in Users) { if (User == null) continue; Room.SendMessage(new ActionComposer(User, Num)); } } catch { } } return true; } #endregion #region Close Alert (:closealert) case "closealert": { if (Session.GetHabbo().HasCmd("closealert")) { int Time = int.Parse(Params[1]); ServerMessage Message = new ServerMessage(Outgoing.ClosingAlert); Message.AppendInt32(Time); SilverwaveEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(Message); } return true; } #endregion #endregion } return false; #endregion }