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); }
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); } }