public bool Execute(params object[] Params) { var player = (Habbo)Params[0]; if (player == null || player.CurrentRoom == null || !player.InRoom) { return(false); } var user = player.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(player.Username); if (user == null) { return(false); } if (BoolData && Instance.OwnerId != player.Id || string.IsNullOrWhiteSpace(StringData)) { return(false); } IChatCommand chatCommand = null; if (!PlusEnvironment.GetGame().GetChatManager().GetCommands() .TryGetCommand(StringData.Replace(":", "").ToLower(), out chatCommand)) { return(false); } if (player.ChatCommand == chatCommand) { player.WiredInteraction = true; var effects = Instance.GetWired().GetEffects(this); var conditions = Instance.GetWired().GetConditions(this); foreach (var condition in conditions.ToList()) { if (!condition.Execute(player)) { return(false); } Instance.GetWired().OnEvent(condition.Item); } player.GetClient().SendPacket(new WhisperComposer(user.VirtualId, StringData, 0, 0)); //Check the ICollection to find the random addon effect. var hasRandomEffectAddon = effects.Count(x => x.Type == WiredBoxType.AddonRandomEffect) > 0; if (hasRandomEffectAddon) { //Okay, so we have a random addon effect, now lets get the IWiredItem and attempt to execute it. var randomBox = effects.FirstOrDefault(x => x.Type == WiredBoxType.AddonRandomEffect); if (!randomBox.Execute()) { return(false); } //Success! Let's get our selected box and continue. var selectedBox = Instance.GetWired().GetRandomEffect(effects.ToList()); if (!selectedBox.Execute()) { return(false); } //Woo! Almost there captain, now lets broadcast the update to the room instance. if (Instance != null) { Instance.GetWired().OnEvent(randomBox.Item); Instance.GetWired().OnEvent(selectedBox.Item); } } else { foreach (var effect in effects.ToList()) { if (!effect.Execute(player)) { return(false); } Instance.GetWired().OnEvent(effect.Item); } } return(true); } return(false); }
public bool Execute(params object[] Params) { Habbo Player = (Habbo)Params[0]; if (Player == null || Player.CurrentRoom == null || !Player.InRoom) { return(false); } RoomUser User = Player.CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Player.Username); if (User == null) { return(false); } if ((BoolData && Instance.OwnerId != Player.Id) || string.IsNullOrWhiteSpace(StringData)) { return(false); } if (!NeonEnvironment.GetGame().GetChatManager().GetCommands().TryGetCommand(StringData.Replace(":", "").ToLower(), out IChatCommand ChatCommand)) { return(false); } if (Player.IChatCommand == ChatCommand) { Player.WiredInteraction = true; ICollection <IWiredItem> Effects = Instance.GetWired().GetEffects(this); ICollection <IWiredItem> Conditions = Instance.GetWired().GetConditions(this); foreach (IWiredItem Condition in Conditions.ToList()) { if (!Condition.Execute(Player)) { return(false); } Instance.GetWired().OnEvent(Condition.Item); } Player.GetClient().SendMessage(new WhisperComposer(User.VirtualId, StringData, 0, 0)); //Check the ICollection to find the random addon effect. bool HasRandomEffectAddon = Effects.Where(x => x.Type == WiredBoxType.AddonRandomEffect).ToList().Count() > 0; if (HasRandomEffectAddon) { //Okay, so we have a random addon effect, now lets get the IWiredItem and attempt to execute it. IWiredItem RandomBox = Effects.FirstOrDefault(x => x.Type == WiredBoxType.AddonRandomEffect); if (!RandomBox.Execute()) { return(false); } //Success! Let's get our selected box and continue. IWiredItem SelectedBox = Instance.GetWired().GetRandomEffect(Effects.ToList()); if (!SelectedBox.Execute()) { return(false); } //Woo! Almost there captain, now lets broadcast the update to the room instance. if (Instance != null) { Instance.GetWired().OnEvent(RandomBox.Item); Instance.GetWired().OnEvent(SelectedBox.Item); } } else { foreach (IWiredItem Effect in Effects.ToList()) { if (!Effect.Execute(Player)) { return(false); } Instance.GetWired().OnEvent(Effect.Item); } } return(true); } return(false); }