Menu
Forums
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Trending
What's new
New posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Search profile posts
Upgrades
Log in
Register
What's new
Search
Search
Search titles only
By:
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
Server Development
Habbo Retros
Habbo Q&A
[Plus EMU] Adding Commands
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="l0r3m" data-source="post: 449765" data-attributes="member: 83633"><p>I'd like to bring this back up as I'm new to some of this; I'm running into the same issue and although I've gotten some good guidance from this thread alone, I'm running into this issue now:</p><p></p><p>[CODE]***\CommandManager.cs(172,29,172,39): error CS0246: The type or namespace name 'hugCommand' could not be found (are you missing a using directive or an assembly reference?)[/CODE]</p><p></p><p>CommandManager.cs contents:</p><p>[CODE=csharp]using System;</p><p>using System.Linq;</p><p>using System.Text;</p><p>using System.Collections.Generic;</p><p></p><p>using Plus.Utilities;</p><p>using Plus.HabboHotel.Rooms;</p><p>using Plus.HabboHotel.GameClients;</p><p></p><p>using Plus.HabboHotel.Rooms.Chat.Commands.User;</p><p>using Plus.HabboHotel.Rooms.Chat.Commands.User.Fun;</p><p>using Plus.HabboHotel.Rooms.Chat.Commands.Moderator;</p><p>using Plus.HabboHotel.Rooms.Chat.Commands.Moderator.Fun;</p><p>using Plus.HabboHotel.Rooms.Chat.Commands.Administrator;</p><p></p><p>using Plus.Communication.Packets.Outgoing.Rooms.Chat;</p><p>using Plus.Communication.Packets.Outgoing.Notifications;</p><p>using Plus.Database.Interfaces;</p><p>using Plus.HabboHotel.Rooms.Chat.Commands.Events;</p><p>using Plus.HabboHotel.Items.Wired;</p><p></p><p></p><p>namespace Plus.HabboHotel.Rooms.Chat.Commands</p><p>{</p><p> public class CommandManager</p><p> {</p><p> /// <summary></p><p> /// Command Prefix only applies to custom commands.</p><p> /// </summary></p><p> private string _prefix = ":";</p><p></p><p> /// <summary></p><p> /// Commands registered for use.</p><p> /// </summary></p><p> private readonly Dictionary<string, IChatCommand> _commands;</p><p></p><p> /// <summary></p><p> /// The default initializer for the CommandManager</p><p> /// </summary></p><p> public CommandManager(string Prefix)</p><p> {</p><p> this._prefix = Prefix;</p><p> this._commands = new Dictionary<string, IChatCommand>();</p><p></p><p> this.RegisterVIP();</p><p> this.RegisterUser();</p><p> this.RegisterEvents();</p><p> this.RegisterModerator();</p><p> this.RegisterAdministrator();</p><p> }</p><p></p><p> /// <summary></p><p> /// Request the text to parse and check for commands that need to be executed.</p><p> /// </summary></p><p> /// <param name="Session">Session calling this method.</param></p><p> /// <param name="Message">The message to parse.</param></p><p> /// <returns>True if parsed or false if not.</returns></p><p> public bool Parse(GameClient Session, string Message)</p><p> {</p><p> if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentRoom == null)</p><p> return false;</p><p></p><p> if (!Message.StartsWith(_prefix))</p><p> return false;</p><p></p><p> if (Message == _prefix + "commands")</p><p> {</p><p> StringBuilder List = new StringBuilder();</p><p> List.Append("This is the list of commands you have available:\n");</p><p> foreach (var CmdList in _commands.ToList())</p><p> {</p><p> if (!string.IsNullOrEmpty(CmdList.Value.PermissionRequired))</p><p> {</p><p> if (!Session.GetHabbo().GetPermissions().HasCommand(CmdList.Value.PermissionRequired))</p><p> continue;</p><p> }</p><p></p><p> List.Append(":" + CmdList.Key + " " + CmdList.Value.Parameters + " - " + CmdList.Value.Description + "\n");</p><p> }</p><p> Session.SendMessage(new MOTDNotificationComposer(List.ToString()));</p><p> return true;</p><p> }</p><p></p><p> Message = Message.Substring(1);</p><p> string[] Split = Message.Split(' ');</p><p></p><p> if (Split.Length == 0)</p><p> return false;</p><p></p><p> IChatCommand Cmd = null;</p><p> if (_commands.TryGetValue(Split[0].ToLower(), out Cmd))</p><p> {</p><p> if (Session.GetHabbo().GetPermissions().HasRight("mod_tool"))</p><p> this.LogCommand(Session.GetHabbo().Id, Message, Session.GetHabbo().MachineId);</p><p></p><p> if (!string.IsNullOrEmpty(Cmd.PermissionRequired))</p><p> {</p><p> if (!Session.GetHabbo().GetPermissions().HasCommand(Cmd.PermissionRequired))</p><p> return false;</p><p> }</p><p></p><p></p><p> Session.GetHabbo().IChatCommand = Cmd;</p><p> Session.GetHabbo().CurrentRoom.GetWired().TriggerEvent(WiredBoxType.TriggerUserSaysCommand, Session.GetHabbo(), this);</p><p></p><p> Cmd.Execute(Session, Session.GetHabbo().CurrentRoom, Split);</p><p> return true;</p><p> }</p><p> return false;</p><p> }</p><p></p><p> /// <summary></p><p> /// Registers the VIP set of commands.</p><p> /// </summary></p><p> private void RegisterVIP()</p><p> {</p><p> this.Register("spull", new SuperPullCommand());</p><p> }</p><p></p><p> /// <summary></p><p> /// Registers the Events set of commands.</p><p> /// </summary></p><p> private void RegisterEvents()</p><p> {</p><p> this.Register("eha", new EventAlertCommand());</p><p> this.Register("eventalert", new EventAlertCommand());</p><p> }</p><p></p><p> /// <summary></p><p> /// Registers the default set of commands.</p><p> /// </summary></p><p> private void RegisterUser()</p><p> {</p><p> this.Register("about", new InfoCommand());</p><p> this.Register("pickall", new PickAllCommand());</p><p> this.Register("ejectall", new EjectAllCommand());</p><p> this.Register("lay", new LayCommand());</p><p> this.Register("sit", new SitCommand());</p><p> this.Register("stand", new StandCommand());</p><p> this.Register("mutepets", new MutePetsCommand());</p><p> this.Register("mutebots", new MuteBotsCommand());</p><p></p><p> this.Register("mimic", new MimicCommand());</p><p> this.Register("dance", new DanceCommand());</p><p> this.Register("push", new PushCommand());</p><p> this.Register("pull", new PullCommand());</p><p> this.Register("enable", new EnableCommand());</p><p> this.Register("follow", new FollowCommand());</p><p> this.Register("faceless", new FacelessCommand());</p><p> this.Register("moonwalk", new MoonwalkCommand());</p><p></p><p> this.Register("unload", new UnloadCommand());</p><p> this.Register("regenmaps", new RegenMaps());</p><p> this.Register("emptyitems", new EmptyItems());</p><p> this.Register("setmax", new SetMaxCommand());</p><p> this.Register("setspeed", new SetSpeedCommand());</p><p> this.Register("disablediagonal", new DisableDiagonalCommand());</p><p> this.Register("flagme", new FlagMeCommand());</p><p></p><p> this.Register("stats", new StatsCommand());</p><p> this.Register("kickpets", new KickPetsCommand());</p><p> this.Register("kickbots", new KickBotsCommand());</p><p></p><p> this.Register("room", new RoomCommand());</p><p> this.Register("dnd", new DNDCommand());</p><p> this.Register("disablegifts", new DisableGiftsCommand());</p><p> this.Register("convertcredits", new ConvertCreditsCommand());</p><p> this.Register("disablewhispers", new DisableWhispersCommand());</p><p> this.Register("disablemimic", new DisableMimicCommand()); ;</p><p></p><p> // this.Register("pay", new PayCommand());</p><p> this.Register("hug", new hugCommand());</p><p> this.Register("pet", new PetCommand());</p><p> this.Register("spush", new SuperPushCommand());</p><p> this.Register("superpush", new SuperPushCommand());</p><p></p><p> }</p><p></p><p> /// <summary></p><p> /// Registers the moderator set of commands.</p><p> /// </summary></p><p> private void RegisterModerator()</p><p> {</p><p> this.Register("ban", new BanCommand());</p><p> this.Register("mip", new MIPCommand());</p><p> this.Register("ipban", new IPBanCommand());</p><p></p><p> this.Register("ui", new UserInfoCommand());</p><p> this.Register("userinfo", new UserInfoCommand());</p><p> this.Register("sa", new StaffAlertCommand());</p><p> this.Register("roomunmute", new RoomUnmuteCommand());</p><p> this.Register("roommute", new RoomMuteCommand());</p><p> this.Register("roombadge", new RoomBadgeCommand());</p><p> this.Register("roomalert", new RoomAlertCommand());</p><p> this.Register("roomkick", new RoomKickCommand());</p><p> this.Register("mute", new MuteCommand());</p><p> this.Register("smute", new MuteCommand());</p><p> this.Register("unmute", new UnmuteCommand());</p><p> this.Register("massbadge", new MassBadgeCommand());</p><p> this.Register("massgive", new MassGiveCommand());</p><p> this.Register("globalgive", new GlobalGiveCommand());</p><p> this.Register("kick", new KickCommand());</p><p> this.Register("skick", new KickCommand());</p><p> this.Register("ha", new HotelAlertCommand());</p><p> this.Register("hotelalert", new HotelAlertCommand());</p><p> this.Register("hal", new HALCommand());</p><p> this.Register("give", new GiveCommand());</p><p> this.Register("givebadge", new GiveBadgeCommand());</p><p> this.Register("dc", new DisconnectCommand());</p><p> this.Register("kill", new DisconnectCommand());</p><p> this.Register("disconnect", new DisconnectCommand());</p><p> this.Register("alert", new AlertCommand());</p><p> this.Register("tradeban", new TradeBanCommand());</p><p></p><p> this.Register("teleport", new TeleportCommand());</p><p> this.Register("summon", new SummonCommand());</p><p> this.Register("override", new OverrideCommand());</p><p> this.Register("massenable", new MassEnableCommand());</p><p> this.Register("massdance", new MassDanceCommand());</p><p> this.Register("freeze", new FreezeCommand());</p><p> this.Register("unfreeze", new UnFreezeCommand());</p><p> this.Register("fastwalk", new FastwalkCommand());</p><p> this.Register("superfastwalk", new SuperFastwalkCommand());</p><p> this.Register("coords", new CoordsCommand());</p><p> this.Register("alleyesonme", new AllEyesOnMeCommand());</p><p> this.Register("allaroundme", new AllAroundMeCommand());</p><p> this.Register("forcesit", new ForceSitCommand());</p><p></p><p> this.Register("ignorewhispers", new IgnoreWhispersCommand());</p><p> this.Register("forced_effects", new DisableForcedFXCommand());</p><p></p><p> this.Register("makesay", new MakeSayCommand());</p><p> this.Register("flaguser", new FlagUserCommand());</p><p> }</p><p></p><p> /// <summary></p><p> /// Registers the administrator set of commands.</p><p> /// </summary></p><p> private void RegisterAdministrator()</p><p> {</p><p> this.Register("bubble", new BubbleCommand());</p><p> this.Register("update", new UpdateCommand());</p><p> this.Register("deletegroup", new DeleteGroupCommand());</p><p> this.Register("carry", new CarryCommand());</p><p> this.Register("goto", new GOTOCommand());</p><p> }</p><p></p><p> /// <summary></p><p> /// Registers a Chat Command.</p><p> /// </summary></p><p> /// <param name="CommandText">Text to type for this command.</param></p><p> /// <param name="Command">The command to execute.</param></p><p> public void Register(string CommandText, IChatCommand Command)</p><p> {</p><p> this._commands.Add(CommandText, Command);</p><p> }</p><p></p><p> public static string MergeParams(string[] Params, int Start)</p><p> {</p><p> var Merged = new StringBuilder();</p><p> for (int i = Start; i < Params.Length; i++)</p><p> {</p><p> if (i > Start)</p><p> Merged.Append(" ");</p><p> Merged.Append(Params[i]);</p><p> }</p><p></p><p> return Merged.ToString();</p><p> }</p><p></p><p> public void LogCommand(int UserId, string Data, string MachineId)</p><p> {</p><p> using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())</p><p> {</p><p> dbClient.SetQuery("INSERT INTO `logs_client_staff` (`user_id`,`data_string`,`machine_id`, `timestamp`) VALUES (@UserId,@Data,@MachineId,@Timestamp)");</p><p> dbClient.AddParameter("UserId", UserId);</p><p> dbClient.AddParameter("Data", Data);</p><p> dbClient.AddParameter("MachineId", MachineId);</p><p> dbClient.AddParameter("Timestamp", PlusEnvironment.GetUnixTimestamp());</p><p> dbClient.RunQuery();</p><p> }</p><p> }</p><p></p><p> public bool TryGetCommand(string Command, out IChatCommand IChatCommand)</p><p> {</p><p> return this._commands.TryGetValue(Command, out IChatCommand);</p><p> }</p><p> }</p><p>}</p><p>[/CODE]</p><p></p><p>The hug command is what's posted above, but also in this reply for reference.</p><p>[CODE=csharp]using System;</p><p>using System.Linq;</p><p>using System.Text;</p><p>using System.Collections.Generic;</p><p>using Plus.HabboHotel.GameClients;</p><p>using Plus.HabboHotel.Rooms;</p><p>using Plus.Communication.Packets.Outgoing.Rooms.Chat;</p><p></p><p>namespace Plus.HabboHotel.Rooms.Chat.Commands.User.Fun</p><p>{</p><p> class hugCommand : IChatCommand</p><p> {</p><p> public string PermissionRequired</p><p> {</p><p> get { return "command_rp_hug"; }</p><p> }</p><p></p><p> public string Parameters</p><p> {</p><p> get { return "%target%"; }</p><p> }</p><p></p><p> public string Description</p><p> {</p><p> get { return "Give a virtual hug to a friend!"; }</p><p> }</p><p></p><p> public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)</p><p> {</p><p> if (Params.Length == 1)</p><p> {</p><p> Session.SendWhisper("Tell us who you'd like to hug.");</p><p> return;</p><p> }</p><p></p><p> GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);</p><p> RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Id);</p><p> RoomUser CurrentUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);</p><p> if (TargetUser == null)</p><p> return;</p><p></p><p> if (((Math.Abs(TargetUser.X - CurrentUser.X) >= 2) || (Math.Abs(TargetUser.Y - CurrentUser.Y) >= 2)))</p><p> {</p><p> Session.SendWhisper("You must be close to the user in order to hug them.");</p><p> return;</p><p> }</p><p></p><p> TargetClient.GetHabbo().Effects().ApplyEffect(9);</p><p> Session.GetHabbo().Effects().ApplyEffect(9);</p><p></p><p> Room.SendMessage(new ChatComposer(CurrentUser.VirtualId, "*Hugs " + TargetUser.GetUsername() + "*", 0, CurrentUser.LastBubble));</p><p> Room.SendMessage(new ChatComposer(TargetUser.VirtualId, "*Hugs " + CurrentUser.GetUsername() + "*", 0, TargetUser.LastBubble));</p><p></p><p> }</p><p> }</p><p>}[/CODE]</p></blockquote><p></p>
[QUOTE="l0r3m, post: 449765, member: 83633"] I'd like to bring this back up as I'm new to some of this; I'm running into the same issue and although I've gotten some good guidance from this thread alone, I'm running into this issue now: [CODE]***\CommandManager.cs(172,29,172,39): error CS0246: The type or namespace name 'hugCommand' could not be found (are you missing a using directive or an assembly reference?)[/CODE] CommandManager.cs contents: [CODE=csharp]using System; using System.Linq; using System.Text; using System.Collections.Generic; using Plus.Utilities; using Plus.HabboHotel.Rooms; using Plus.HabboHotel.GameClients; using Plus.HabboHotel.Rooms.Chat.Commands.User; using Plus.HabboHotel.Rooms.Chat.Commands.User.Fun; using Plus.HabboHotel.Rooms.Chat.Commands.Moderator; using Plus.HabboHotel.Rooms.Chat.Commands.Moderator.Fun; using Plus.HabboHotel.Rooms.Chat.Commands.Administrator; using Plus.Communication.Packets.Outgoing.Rooms.Chat; using Plus.Communication.Packets.Outgoing.Notifications; using Plus.Database.Interfaces; using Plus.HabboHotel.Rooms.Chat.Commands.Events; using Plus.HabboHotel.Items.Wired; namespace Plus.HabboHotel.Rooms.Chat.Commands { public class CommandManager { /// <summary> /// Command Prefix only applies to custom commands. /// </summary> private string _prefix = ":"; /// <summary> /// Commands registered for use. /// </summary> private readonly Dictionary<string, IChatCommand> _commands; /// <summary> /// The default initializer for the CommandManager /// </summary> public CommandManager(string Prefix) { this._prefix = Prefix; this._commands = new Dictionary<string, IChatCommand>(); this.RegisterVIP(); this.RegisterUser(); this.RegisterEvents(); this.RegisterModerator(); this.RegisterAdministrator(); } /// <summary> /// Request the text to parse and check for commands that need to be executed. /// </summary> /// <param name="Session">Session calling this method.</param> /// <param name="Message">The message to parse.</param> /// <returns>True if parsed or false if not.</returns> public bool Parse(GameClient Session, string Message) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentRoom == null) return false; if (!Message.StartsWith(_prefix)) return false; if (Message == _prefix + "commands") { StringBuilder List = new StringBuilder(); List.Append("This is the list of commands you have available:\n"); foreach (var CmdList in _commands.ToList()) { if (!string.IsNullOrEmpty(CmdList.Value.PermissionRequired)) { if (!Session.GetHabbo().GetPermissions().HasCommand(CmdList.Value.PermissionRequired)) continue; } List.Append(":" + CmdList.Key + " " + CmdList.Value.Parameters + " - " + CmdList.Value.Description + "\n"); } Session.SendMessage(new MOTDNotificationComposer(List.ToString())); return true; } Message = Message.Substring(1); string[] Split = Message.Split(' '); if (Split.Length == 0) return false; IChatCommand Cmd = null; if (_commands.TryGetValue(Split[0].ToLower(), out Cmd)) { if (Session.GetHabbo().GetPermissions().HasRight("mod_tool")) this.LogCommand(Session.GetHabbo().Id, Message, Session.GetHabbo().MachineId); if (!string.IsNullOrEmpty(Cmd.PermissionRequired)) { if (!Session.GetHabbo().GetPermissions().HasCommand(Cmd.PermissionRequired)) return false; } Session.GetHabbo().IChatCommand = Cmd; Session.GetHabbo().CurrentRoom.GetWired().TriggerEvent(WiredBoxType.TriggerUserSaysCommand, Session.GetHabbo(), this); Cmd.Execute(Session, Session.GetHabbo().CurrentRoom, Split); return true; } return false; } /// <summary> /// Registers the VIP set of commands. /// </summary> private void RegisterVIP() { this.Register("spull", new SuperPullCommand()); } /// <summary> /// Registers the Events set of commands. /// </summary> private void RegisterEvents() { this.Register("eha", new EventAlertCommand()); this.Register("eventalert", new EventAlertCommand()); } /// <summary> /// Registers the default set of commands. /// </summary> private void RegisterUser() { this.Register("about", new InfoCommand()); this.Register("pickall", new PickAllCommand()); this.Register("ejectall", new EjectAllCommand()); this.Register("lay", new LayCommand()); this.Register("sit", new SitCommand()); this.Register("stand", new StandCommand()); this.Register("mutepets", new MutePetsCommand()); this.Register("mutebots", new MuteBotsCommand()); this.Register("mimic", new MimicCommand()); this.Register("dance", new DanceCommand()); this.Register("push", new PushCommand()); this.Register("pull", new PullCommand()); this.Register("enable", new EnableCommand()); this.Register("follow", new FollowCommand()); this.Register("faceless", new FacelessCommand()); this.Register("moonwalk", new MoonwalkCommand()); this.Register("unload", new UnloadCommand()); this.Register("regenmaps", new RegenMaps()); this.Register("emptyitems", new EmptyItems()); this.Register("setmax", new SetMaxCommand()); this.Register("setspeed", new SetSpeedCommand()); this.Register("disablediagonal", new DisableDiagonalCommand()); this.Register("flagme", new FlagMeCommand()); this.Register("stats", new StatsCommand()); this.Register("kickpets", new KickPetsCommand()); this.Register("kickbots", new KickBotsCommand()); this.Register("room", new RoomCommand()); this.Register("dnd", new DNDCommand()); this.Register("disablegifts", new DisableGiftsCommand()); this.Register("convertcredits", new ConvertCreditsCommand()); this.Register("disablewhispers", new DisableWhispersCommand()); this.Register("disablemimic", new DisableMimicCommand()); ; // this.Register("pay", new PayCommand()); this.Register("hug", new hugCommand()); this.Register("pet", new PetCommand()); this.Register("spush", new SuperPushCommand()); this.Register("superpush", new SuperPushCommand()); } /// <summary> /// Registers the moderator set of commands. /// </summary> private void RegisterModerator() { this.Register("ban", new BanCommand()); this.Register("mip", new MIPCommand()); this.Register("ipban", new IPBanCommand()); this.Register("ui", new UserInfoCommand()); this.Register("userinfo", new UserInfoCommand()); this.Register("sa", new StaffAlertCommand()); this.Register("roomunmute", new RoomUnmuteCommand()); this.Register("roommute", new RoomMuteCommand()); this.Register("roombadge", new RoomBadgeCommand()); this.Register("roomalert", new RoomAlertCommand()); this.Register("roomkick", new RoomKickCommand()); this.Register("mute", new MuteCommand()); this.Register("smute", new MuteCommand()); this.Register("unmute", new UnmuteCommand()); this.Register("massbadge", new MassBadgeCommand()); this.Register("massgive", new MassGiveCommand()); this.Register("globalgive", new GlobalGiveCommand()); this.Register("kick", new KickCommand()); this.Register("skick", new KickCommand()); this.Register("ha", new HotelAlertCommand()); this.Register("hotelalert", new HotelAlertCommand()); this.Register("hal", new HALCommand()); this.Register("give", new GiveCommand()); this.Register("givebadge", new GiveBadgeCommand()); this.Register("dc", new DisconnectCommand()); this.Register("kill", new DisconnectCommand()); this.Register("disconnect", new DisconnectCommand()); this.Register("alert", new AlertCommand()); this.Register("tradeban", new TradeBanCommand()); this.Register("teleport", new TeleportCommand()); this.Register("summon", new SummonCommand()); this.Register("override", new OverrideCommand()); this.Register("massenable", new MassEnableCommand()); this.Register("massdance", new MassDanceCommand()); this.Register("freeze", new FreezeCommand()); this.Register("unfreeze", new UnFreezeCommand()); this.Register("fastwalk", new FastwalkCommand()); this.Register("superfastwalk", new SuperFastwalkCommand()); this.Register("coords", new CoordsCommand()); this.Register("alleyesonme", new AllEyesOnMeCommand()); this.Register("allaroundme", new AllAroundMeCommand()); this.Register("forcesit", new ForceSitCommand()); this.Register("ignorewhispers", new IgnoreWhispersCommand()); this.Register("forced_effects", new DisableForcedFXCommand()); this.Register("makesay", new MakeSayCommand()); this.Register("flaguser", new FlagUserCommand()); } /// <summary> /// Registers the administrator set of commands. /// </summary> private void RegisterAdministrator() { this.Register("bubble", new BubbleCommand()); this.Register("update", new UpdateCommand()); this.Register("deletegroup", new DeleteGroupCommand()); this.Register("carry", new CarryCommand()); this.Register("goto", new GOTOCommand()); } /// <summary> /// Registers a Chat Command. /// </summary> /// <param name="CommandText">Text to type for this command.</param> /// <param name="Command">The command to execute.</param> public void Register(string CommandText, IChatCommand Command) { this._commands.Add(CommandText, Command); } public static string MergeParams(string[] Params, int Start) { var Merged = new StringBuilder(); for (int i = Start; i < Params.Length; i++) { if (i > Start) Merged.Append(" "); Merged.Append(Params[i]); } return Merged.ToString(); } public void LogCommand(int UserId, string Data, string MachineId) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `logs_client_staff` (`user_id`,`data_string`,`machine_id`, `timestamp`) VALUES (@UserId,@Data,@MachineId,@Timestamp)"); dbClient.AddParameter("UserId", UserId); dbClient.AddParameter("Data", Data); dbClient.AddParameter("MachineId", MachineId); dbClient.AddParameter("Timestamp", PlusEnvironment.GetUnixTimestamp()); dbClient.RunQuery(); } } public bool TryGetCommand(string Command, out IChatCommand IChatCommand) { return this._commands.TryGetValue(Command, out IChatCommand); } } } [/CODE] The hug command is what's posted above, but also in this reply for reference. [CODE=csharp]using System; using System.Linq; using System.Text; using System.Collections.Generic; using Plus.HabboHotel.GameClients; using Plus.HabboHotel.Rooms; using Plus.Communication.Packets.Outgoing.Rooms.Chat; namespace Plus.HabboHotel.Rooms.Chat.Commands.User.Fun { class hugCommand : IChatCommand { public string PermissionRequired { get { return "command_rp_hug"; } } public string Parameters { get { return "%target%"; } } public string Description { get { return "Give a virtual hug to a friend!"; } } public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Tell us who you'd like to hug."); return; } GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Id); RoomUser CurrentUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (TargetUser == null) return; if (((Math.Abs(TargetUser.X - CurrentUser.X) >= 2) || (Math.Abs(TargetUser.Y - CurrentUser.Y) >= 2))) { Session.SendWhisper("You must be close to the user in order to hug them."); return; } TargetClient.GetHabbo().Effects().ApplyEffect(9); Session.GetHabbo().Effects().ApplyEffect(9); Room.SendMessage(new ChatComposer(CurrentUser.VirtualId, "*Hugs " + TargetUser.GetUsername() + "*", 0, CurrentUser.LastBubble)); Room.SendMessage(new ChatComposer(TargetUser.VirtualId, "*Hugs " + CurrentUser.GetUsername() + "*", 0, TargetUser.LastBubble)); } } }[/CODE] [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
Server Development
Habbo Retros
Habbo Q&A
[Plus EMU] Adding Commands
Top