示例#1
0
        public static void RaffleInfo(CommandArgs args)
        {
            if (!args.Player.RealPlayer || args.Player.UserAccountName.IsNullOrEmptyTrim())
            {
                args.Player.SendMessage("You must be logged in to use this command.");
                return;
            }

            RaffleManager manager = new RaffleManager(TShock.DB);

            var raffle  = manager.GetCurrentRaffle();
            var tickets = manager.GetRaffleTickets(args.Player.UserAccountName, raffle.RaffleID);

            TimeSpan nextRaffle = RaffleHandler.NextRaffleTime - DateTime.Now;

            args.Player.SendMessage(string.Format("Ticket cost: {0} Current tickets: {1} Next raffle: {2} minute(s) {4} second(s) Current pot: {3}", ExtendedAdmin.Config.RaffleTicketCost, tickets.TicketCount, (int)nextRaffle.TotalMinutes, raffle.Pot, nextRaffle.Seconds), Color.Green);
        }
示例#2
0
        public static void BuyRaffleTicket(CommandArgs args)
        {
            if (!args.Player.RealPlayer || args.Player.UserAccountName.IsNullOrEmptyTrim())
            {
                args.Player.SendMessage("You must be logged in to use this command.", Color.Red);
                return;
            }

            if (args.Parameters.Count > 0 && args.Parameters[0].ToIntegerOrDefault(-1) < 1)
            {
                args.Player.SendMessage("Invalid syntax! Proper syntax /buyraffleticket <amount>", Color.Red);
                return;
            }

            RaffleManager manager = new RaffleManager(TShock.DB);

            //var account = manager.GetServerPointAccounts(args.Player.UserAccountName);
            var ePlayer = ServerPointSystem.ServerPointSystem.EPRPlayers.Single(p => p.TSPlayer == args.Player);

            if (ePlayer == null)
            {
                args.Player.SendMessage("You do not have any shards.");
                return;
            }

            int amount;

            if (args.Parameters.Count > 0)
            {
                amount = args.Parameters[0].ToIntegerOrDefault(0);
            }
            else
            {
                amount = 1;
            }

            int totalCost = amount * ExtendedAdmin.Config.RaffleTicketCost;

            if (ePlayer.DisplayAccount < totalCost)
            {
                args.Player.SendMessage(string.Format("You do not have enough shards to buy {0} tickets.", amount), Color.Red);
                return;
            }

            var raffle  = manager.GetCurrentRaffle();
            var tickets = manager.GetRaffleTickets(args.Player.UserAccountName, raffle.RaffleID);

            if (tickets.TicketCount + amount > ExtendedAdmin.Config.MaxRaffleTickets)
            {
                args.Player.SendMessage(string.Format("You cannot have over {0} tickets.  You currently have {1}.", ExtendedAdmin.Config.MaxRaffleTickets, tickets.TicketCount), Color.Red);
                return;
            }

            if (manager.BuyTicket(args.Player, amount, totalCost))
            {
                tickets = manager.GetRaffleTickets(args.Player.UserAccountName, raffle.RaffleID);

                args.Player.SendMessage(string.Format("Successfully bought tickets. You now have {0} tickets.", tickets.TicketCount), Color.Green);
            }
            else
            {
                args.Player.SendMessage("Ticket purchase failed, please try again later.", Color.Red);
            }
        }