using System; using System.Collections.Generic; using System.Text; using Uber.HabboHotel.Items; using Uber.HabboHotel.GameClients; using Uber.Messages; using Uber.HabboHotel.Rooms; using Uber.Storage; using System.Data; namespace Uber.HabboHotel.Misc { class ChatCommandHandler { public static Boolean Parse(GameClient Session, string Input) { string[] Params = Input.Split(' '); string TargetUser = null; GameClient TargetClient = null; Room TargetRoom = null; RoomUser TargetRoomUser = null; try { int creditsToAdd; bool GenericMsg; string Msg; switch (Params[0].ToLower()) { #region Debugging/Development case "update_inventory": if (Session.GetHabbo().HasFuse("fuse_admin")) { Session.GetHabbo().GetInventoryComponent().UpdateItems(true); return true; } return false; case "update_bots": if (Session.GetHabbo().HasFuse("fuse_admin")) { UberEnvironment.GetGame().GetBotManager().LoadBots(); return true; } return false; case "update_catalog": if (Session.GetHabbo().HasFuse("fuse_admin")) { UberEnvironment.GetGame().GetCatalog().Initialize(); UberEnvironment.GetGame().GetClientManager().BroadcastMessage(new ServerMessage(441)); return true; } return false; case "idletime": if (Session.GetHabbo().HasFuse("fuse_admin")) { TargetRoom = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); TargetRoomUser = TargetRoom.GetRoomUserByHabbo(Session.GetHabbo().Id); TargetRoomUser.IdleTime = 600; return true; } return false; case "t": if (Session.GetHabbo().HasFuse("fuse_admin")) { TargetRoom = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return false; } TargetRoomUser = TargetRoom.GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser == null) { return false; } Session.SendNotif("X: " + TargetRoomUser.X + " - Y: " + TargetRoomUser.Y + " - Z: " + TargetRoomUser.Z + " - Rot: " + TargetRoomUser.RotBody); return true; } return false; case "override": if (Session.GetHabbo().HasFuse("fuse_admin")) { TargetRoom = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return false; } TargetRoomUser = TargetRoom.GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser == null) { return false; } if (TargetRoomUser.AllowOverride) { TargetRoomUser.AllowOverride = false; Session.SendNotif("Walking override disabled."); } else { TargetRoomUser.AllowOverride = true; Session.SendNotif("Walking override enabled."); } return true; } return false; case "update_defs": if (!Session.GetHabbo().HasFuse("fuse_sysadmin")) { return false; } UberEnvironment.GetGame().GetItemManager().LoadItems(); Session.SendNotif("Item defenitions reloaded successfully."); return true; case "drink": if (Session.GetHabbo().HasFuse("fuse_admin")) { TargetRoom = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) { return false; } TargetRoomUser = TargetRoom.GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetRoomUser == null) { return false; } try { TargetRoomUser.CarryItem(int.Parse(Params[1])); } catch (Exception) { } return true; } return false; case "coins": case "credits": if (!Session.GetHabbo().HasFuse("fuse_sysadmin")) { return false; } TargetClient = UberEnvironment.GetGame().GetClientManager().GetClientByHabbo(Params[1]); if (TargetClient == null) { goto Label_075E; } if (!int.TryParse(Params[2], out creditsToAdd)) { goto Label_0749; } TargetClient.GetHabbo().Credits += creditsToAdd; TargetClient.GetHabbo().UpdateCreditsBalance(true); TargetClient.SendNotif(Session.GetHabbo().Username + " has awarded you " + creditsToAdd.ToString() + " credits!"); Session.SendNotif("Credit balance updated successfully."); return true; #endregion #region General Commands case "whoson": case "whosonline": case "online": { DataTable onlineData = new DataTable("online"); string message = "Users online:\r"; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { onlineData = dbClient.ReadDataTable("SELECT SQL_NO_CACHE username FROM users WHERE online = '1';"); } foreach (DataRow user in onlineData.Rows) { message = message + user["username"] + "\r"; } Session.SendNotif(message); return true; } case "commands": String allowedCommands = "Your Commands:\r"; if (Session.GetHabbo().Rank >= 7) { allowedCommands += ":update_inventory\r" + ":update_defs -Reload Item settings\r" + ":update_bots\r" + ":update_catalog\r" + ":idletime - Lag?\r" + ":t - Debugging\r" + ":refresh_publics\r" + ":unload \r" + ":coins/:credits \r" + ":pixels \r" + ":givebadge \r" + ":poll - Cause im epic ;)\r"; } if (Session.GetHabbo().Rank >= 6) { allowedCommands += ":override - Walking Override\r" + ":drink \r" + ":ha \r" + ":superban \r" + ":roomkick \r"; } if (Session.GetHabbo().Rank >= 5) { allowedCommands += ":ban