Example #1
0
 public Fisher(BaseBot Bot, Command command, _userInfo User, CurrencyConfig currency)
 {
     this.Bot      = Bot;
     this.command  = command;
     this.User     = User;
     this.currency = currency;
 }
Example #2
0
 public static bool AddFisher(BaseBot Bot, Command command, _userInfo User, CurrencyConfig currency)
 {
     if (FisherMen.Count(x => x.Key.User.user.user.Equals(User.user.user) && x.Key.currency.Id == currency.Id) == 0)
     {
         FisherMen.Add(new Fisher(Bot, command, User, currency), DateTime.Now); return(true);
     }
     return(false);
 }
Example #3
0
        public static void MessageRewardUser(_userInfo User)
        {
            CurrencyConfig C = CacheHandler.FindCurrency(User.currency);

            if (CanReward(User, C))
            {
                User.balance += C.MessageReward;
                User.Update();
            }
        }
Example #4
0
        private static bool CanReward(_userInfo User, CurrencyConfig currency)
        {
            KeyValuePair <_userInfo, DateTime>[] U = MessageRewards.Where(x => x.Key.user.Equals(User.user) && x.Key.currency == User.currency).ToArray();

            if (U.Length == 0)
            {
                MessageRewards.Add(User, DateTime.Now); return(true);
            }
            else if ((DateTime.Now - U[0].Value).TotalSeconds > currency.MessageRewardDelay)
            {
                MessageRewards[U[0].Key] = DateTime.Now; return(true);
            }

            return(false);
        }
Example #5
0
        public static async Task HandleMessage(Message message, BaseBot Bot, CurrencyConfig currency)
        {
            _userInfo bank = CacheHandler.FindUser(message.sender, currency);

            Rewards.MessageRewardUser(bank);

            string[] iams = { "i am", "i'm", "im" };
            int      index;

            string msg = message.body.ToLower();

            foreach (string iam in iams)
            {
                if (msg.Contains(iam))
                {
                    index = msg.IndexOf(iam) + iam.Length;
                    string newMsg = msg.Substring(index, msg.Length - index).Trim();

                    await Bot.SendMessage(message, $"Hi {newMsg}, Im Dad", currency);

                    break;
                }
            }
        }
Example #6
0
        public static async Task HandleCommand(Command command, BaseBot Bot, CurrencyConfig currency)
        {
            _userInfo[] tBanks = CacheHandler.FindUsers(command.mentions, currency);
            _userInfo   bank   = CacheHandler.FindUser(command.sender, currency);

            switch (command.commandStr)
            {
            //case "echo":
            //    await Bot.SendMessage(command.channel, command.commandArgString, command.Source, currency);
            //    break;

            //case "echodm":
            //    await Bot.SendDM(command.sender, command.commandArgString, command.Source, currency);
            //    break;

            //case "wtf":
            //    new Thread(async() => await Bot.SendMessage(command, "{User} this was sent from another thread", currency)).Start();
            ////    //Streamlabs.CreateDonation("Jamm", 1, botConfig.Streamlabs);
            ////    await Bot.SendMessage(command.channel, Streamlabs.GetDonations(botConfig.Streamlabs).ToString());
            //    break;

            //case null when currency.BalanceCommands.Contains(command.commandStr):
            //    break;

            case string S when currency.BalanceCommands.Contains(command.commandStr):

                if (command.mentions.Length == 0)
                {
                    await Bot.SendMessage(command, "{User} You Have {Value} {Currency}", currency, bank.balance);
                }
                else
                {
                    await Bot.SendMessage(command, "{User} {User0} Has {Value} {Currency}", currency, tBanks[0].balance);
                }
                break;

            case string S when currency.PayCommands.Contains(command.commandStr):
                if (command.mentions.Length > 0 && command.values.Length > 0)
                {
                    if (bank.balance >= command.values[0])
                    {
                        bank.balance      -= command.values[0];
                        tBanks[0].balance += command.values[0];
                        bank.Update();
                        tBanks[0].Update();
                        await Bot.SendMessage(command, "{User} Paid {Value0} {Currency} To {User0}", currency);
                    }
                    else
                    {
                        await Bot.SendMessage(command, "{User} You Only Have {Value} {Currency}", currency, bank.balance);
                    }
                }

                else
                {
                    await Bot.SendMessage(command, "{User} You Havent Specifided Who And/Or How Much To Pay", currency);
                }
                break;

            case string S when currency.FishCommands.Contains(command.commandStr):
                if (Rewards.AddFisher(Bot, command, bank, currency))
                {
                    await Bot.SendMessage(command, "{User} You Started Fishing", currency); bank.balance -= currency.FishCost; bank.Update();
                }

                else
                {
                    await Bot.SendMessage(command, "{User} You Are Already Fishing!", currency);
                }
                break;


            case string S when currency.GambleCommands.Contains(command.commandStr):
                if (command.values.Length > 0)
                {
                    int Num = Controller.rnd.Next(0, 100);

                    if (currency.GambleOdds > Num)
                    {
                        bank.balance += command.values[0];
                        bank.Update();
                        await Bot.SendMessage(command, "{User} You Won {Value} {Currency}", currency, command.values[0]);
                    }
                    else
                    {
                        bank.balance -= command.values[0];
                        bank.Update();
                        await Bot.SendMessage(command, "{User} You Lost {Value} {Currency}", currency, command.values[0]);
                    }
                }

                else
                {
                    await Bot.SendMessage(command, "{User} You Didnt Specify a Value", currency);
                }
                break;

            default:
                if (currency.SimpleResponses.ContainsKey(command.commandStr))
                {
                    await Bot.SendMessage(command, currency.SimpleResponses[command.commandStr], currency);
                }
                break;
            }
        }