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 - 2.5 \n\r @forum.ragezone.com \n\r"); Session.SendBroadcastMessage(About.ToString()); } return true; } #endregion #region temporal case "gotoroom": { if (Params.Length < 2) { Session.SendNotif("You have not specified the user and / or the id of the room"); return true; } string username = Params[1]; GameClient client = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(username); if (client == null) { Session.SendNotif("Could not find the user : \"" + username + "\""); return true; } client.GetHabbo().CurrentRoomId = uint.Parse(Params[2]); RoomData Room = SilverwaveEnvironment.GetGame().GetRoomManager().GenerateRoomData(client.GetHabbo().CurrentRoomId); Room.SerializeRoomData(new ServerMessage(), true, client, true); //client.GetMessageHandler().PrepareRoomForUser(Session.GetHabbo().CurrentRoomId, ""); client.SendMessage(new RoomForwardComposer(false, client.GetHabbo().CurrentRoomId)); 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 Fly (:fly) case "fly": { if (Session.GetHabbo().HasCmd("fly")) { 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) { roomUserByHabbo.isFlying = 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 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; } else { return false; } } #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) #region Empty (:empty) case "emptyitems": case "empty": { if (Session.GetHabbo().HasCmd("emptyitems")) { if (Params.Length == 1) { Session.SendNotif("You really want to delete your stuff? Please answer with emptyitems yes to confirm!"); 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 furni has been deleted from your inventory!"); 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, "Debes incluir un precio!"); return true; } string toll = Params[1]; double Price; bool isNum = double.TryParse(toll, out Price); if (!isNum) { SendChatMessage(Session, "El precio debe ser un numero!"); return true; } else if (Price < 0) { SendChatMessage(Session, "El precio no debe ser negativo."); 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, "No se pudo encontrar ningun item en el cuado indicado!"); 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, "El precio ha sido ajutado a " + Price + " creditos!"); } } } } } 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, "Debes ingresar un nombre"); return true; } TargetRoomUser = TargetRoom.GetRoomUserManager().GetRoomUserByHabbo(Convert.ToString(Params[1])); if (TargetRoomUser == null) { SendChatMessage(Session, "No se pudo encontrar el usuario!"); return true; } if (TargetRoomUser.GetUsername() == Session.GetHabbo().Username) { SendChatMessage(Session, "Vamos, estoy seguro que no quieres herirte a ti mismo!"); 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: Desactivado!"); } else { roomUserByHabbo.AllowOverride = true; SendChatMessage(Session, "Override Activado!"); } 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; } 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 muteada por la siguiente razon:\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("Ha sido des-muteado."); 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; } 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("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; } 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("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; } else { return false; } } #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; } 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.SendNotif("User not 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; } 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("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; } 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; } #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 #region Alert (:alert) 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 #region GiveBelCredits case "givebelcredits": { if (Session.GetHabbo().Rank > SilverwaveEnvironment.MaxRank-1) { 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("Only Numbers!"); return true; } } else { Session.SendNotif("User is not found."); return true; } } return true; } #endregion #region Promote room case "promoteroom": { if (Session.GetHabbo().HasCmd("promoteroom")) { if (Params[1] == null) { Session.SendNotif("Description is missing."); return true; } int Time; if (!int.TryParse(Params[1], out Time)) { Session.SendNotif("Error 305"); 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 || DanceId < 0) { 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 + "]"); } 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 Restart (:restart) case "restart": { if (Session.GetHabbo().Rank == SilverwaveEnvironment.MaxRank) { Task ShutdownTask = new Task(SilverwaveEnvironment.PerformRestart); ShutdownTask.Start(); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Restart", "Uso el comando Restart"); 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; } 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 - 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 Remove Badge (:removebadge) case "removebadge": { if (Session.GetHabbo().HasCmd("removebadge")) { if (Params.Length != 3) { Session.SendNotif("Error wrong input!"); return true; } GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = SilverwaveEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient != null) { TargetClient.GetHabbo().GetBadgeComponent().RemoveBadge(Params[2], true, TargetClient); SilverwaveEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "RemoveBadge", "Placa eliminada a [" + Params[2] + "]"); return true; } else { Session.SendNotif("Could not find that user!"); return true; } } 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")) { if (Session.GetHabbo().SpectatorMode == false) { Session.GetHabbo().SpectatorMode = true; Session.SendNotif("Reload the room to be invisible"); } else { Session.GetHabbo().SpectatorMode = false; Session.SendNotif("Je bent weer zichtbaar"); } } 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 }