Inactive [FUN] Lottery 0.6.3 - Let your users buy tickets to a lottery - [superPerms] [1060]

Discussion in 'Inactive/Unsupported Plugins' started by Erbros, Mar 14, 2011.

  1. Offline

    Erbros

    Lottery - The Lottery Plugin:

    I will only be using the BukkitDev website from now on. Please ask for help, submit bugs or enchantments and download the plugin from my page there (LINK).

    This thread is no longer updated - check my page on BukkitDev.


    Beware: Now only supporting superPerms from 0.6.2 and onwards!

    Version: v 0.6.2

    This plugin lets your users buy tickets for a price you decide to a lottery drawing.

    Features:
    • Users buy a ticket and can win the money of everyone that have bought a ticket.
    • Configurable price, material (including money/coins) and hours between lottery drawings.
    • Supports iConomy v4, iConomy v5, iConomy v6, BOSEconomy v6, BOSEconomy v7, Eco Essentials and MultiCurrency. Thanks to @KHobbits
    • Permission nodes supporting superPerms (Bukkits default permission system)
    Download:

    The Lottery Plugin v. 0.6.2

    Old releases:
    Source Code (This is my first project ever in java, so I would appreciate any advice in

    how to improve my coding very much)

    Configuration:

    In the configuration that is made when the plugin is run the first time, you don't get comments about the different options. Here you do!


    Code:
    #How many hours between every lottery drawing? Only whole numbers above 0 (like 1 or 2 or 3.... 24 or 25...)
    hours: '24'
    # The next execution option is really not to be touched. Its time in millisecs since 1. January 1970.
    nextexec: 1300368259883
    # Cost is the amount the buyer got to pay to buy a ticket. This applies both to iConomy coins and material. Only whole numbers. Negative numbers will probably work, but I don't see the point.
    cost: '5'
    #The material setting lets you choose which Material Value your users got to pay with, and get if they win. (its the "dec(imal)", value)
    material: '266'
    # If you want to use iConomy coins, set it to "true". If you want to choose your own material (block or item), set it to false.
    useiConomy: 'false'
    # If broadcastBuying is set to false, there will not be sent a message to every player when somebody buys a ticket.
    broadcastBuying: 'true'
    # welcomeMessage decides if there should be sent a message to the player on join about time until draw.
    welcomeMessage: 'true'
    #extraInPot just holds the amount of extra winnings in the pot has been added with /lottery addtopot
    extraInPot: 0
    #clearExtraInPot decides whether the plugin set extraInPot=0 after lottery draw, or if the same amount will stay until somebody changes it with /lottery addtopot <+/-> <amount>
    clearExtraInPot: true
    #netPayout is the percentage of the total pot that is being paid out to the winner. This can be as large as you wish, but not lower than 1 (one). 100 = 100%, which means the winner will get exactly as much as the players have paid in while buying tickets.
    netPayout: 100
    #maxTicketsEachUser sets the max amount of tickets each player can buy
    maxTicketsEachUser: 1
    #debug - This won't show up by itself, and there is really no reason for you to have this unless there is something wrong with your install of the plugin.
    debug: false
    Commands:
    /lottery : Basic information
    /lottery buy <number> : Buy one or <number> of tickets.
    /lottery help : Help pages
    /lottery winners : List over 10 last winners
    /lottery draw : Force the drawing to happen. Op only if not permission plugin.
    /lottery addtopot : Adds extra money/items to the pot. Op only if not permission plugin.
    /lottery config <cost/hours/max/maxTicketsEachUser/reload> : Change/reload the config ingame.

    Permissions:
    If you have Permission plugin installed you must add the nodes you need to the config.

    lottery.buy : Gives you all the basic rights /lottery (buy, help, winners).
    Given to all players by default, remove from users/groups if you want to deny them.
    lottery.admin.draw : Gives the group/user access to the /lottery draw command.
    Given to OP's.
    lottery.admin.addtopot : Gives the group/user access to the /lottery addtopot command
    Given to OP's.
    lottery.admin.editconfig : Grant access to edit/reload the lottery config ingame NEW
    Given to OP's.

    Changelog:
    Version 0.6.3:
    • Fixed ClassCastException when using commands from console.
    Version 0.6.2:
    • Supporting superPerms.
    • Removed support for any other permission system.
    • Fixing plugin.yml, so even those not using superperms will have basic lottery.buy given to all users by default, and all OP's will get admin commands.
    Version 0.6.1:
    • Removed showing days in time until draw.
    Version 0.6.0:
    • Adding ability to reload config ingame.
    • Edit the config variables cost, hours and maxTicketsEachUser ingame.
    • Debugging information.
    Old Changelogs (open)


    Version 0.5.6:
    • Hopefully fixed lottery not drawing when it should..
    Version 0.5.5:

    • Fixing users able to buy negative amount of tickets (and again... very stupid mistake by me....)
    Version 0.5.4:

    • Fixing users able to buy negative amount of tickets (again since I forgot to re-add it after merge).
    • Giving users the remaining tickets they can buy if they try to buy too many.
    Version 0.5.3:

    • Max number of tickets a user can buy.
    • Typos
    Version 0.5.2:

    • Implemented a lot of changes by @KHobbits
      • Now supporting iConomy4, iConomy5, iConomy6, BOSEconomy6, BOSEconomy6, MultiCurrency, EcoEssentials
      • Code cleanup
    Version 0.5.1:

    • Don't let players buy a negative amount of tickets... Stupid error...
    Version 0.5.0:

    • Users can buy more than one ticket each now.
    Version 0.4.5:
    • Fixed so correct lottery amount is shown everywhere, WinningAmount() implementing netPayout;
    • Ability to let the plugin remember the money that is added to extraInPot.
    • Fixed NPE when "/lottery addtopot" wasn't followed by a number.
    Version 0.4.4:

    • Added payout percentage configuration.
    • Attempt to fix some of the "waiting for draw to occur" on servers with slight lag.
    Version 0.4.3:

    • Updated for iConomy v5. Not working with v4 anymore.
    • Fixed a new system for timers, it shouldn't take that much time to do a draw even on a laggy server.
    • If time is set to lower in config than is remaining on countdown, set to new value.
    Version 0.4.2:

    • Not setting extraInPot to 0 after draw, only saving it to config.
    • Draw in: -51 seconds no longer occur, now its "Draw in: Draw will occur soon"
    Version 0.4.1:

    • Fixed: Not saving config after updating extraInPot.
    Version 0.4:

    • Permission support
    • Command to add extra money in pot.
    Version 0.3.1:

    • Fixed timers not closing properly. Possible memory leak! Important update!
    Version 0.3:

    • Info about pot size in /lottery
    • Choose if you want players to get time until draw message on join.
    Version 0.2.4:

    • Fixed the same problem as in last release, just properly this time.
    Version 0.2.3:

    • Changed from onPluginEnable to PluginEnableEvent.
    Version 0.2.2:

    • Option to broadcast public to the whole server when somebody buys a ticket.
    • Added colors to the lottery chat messages.
    Version 0.2.1:

    • Formatting material names. GOLD_INGOT -> Gold ingot
    Version 0.2

    • Added commands: /lottery (help, winners, claim, draw)
    • Added material support.
    • List over 10 last winners with /lottery winners
    Version 0.1

    • Lottery plugin is released.



    Tutorial:


    Video by @ValBGaming

    PS: The /lottery claim command is used when you are using material and you win, since blocks/items can only be given to online players :)

    Todo:

    • A set number of tickets available, and let the user choose which one to buy. If nobody had the right ticket, add money to jackpot for next drawing. (low)
    • Using configurable array of prize items instead of getting whats in the pot. (low)
    • Show time left when it's 2 hours left, 1 hour left etc. Configurable. (low)
    • Let admins give out free tickets. (normal)
     
  2. Offline

    Erbros

    Good! :)
    You define the item/block used as "coins" and the cost (number of items/blocks) for each ticket. It then works just like a lottery with coins, except that the winner will have to do "/lottery claim" to get the blocks/items he won.

    The winner win as much items/blocks:

    cost * number of tickets bought * netPayout / 100 = winning amount of blocks / items

    Just test it out on a test server to get to know the variables etc. ;)

    Thanks for the feedback :)

    Thanks! :D
     
  3. Offline

    thestriker095

    Welcome Message setting not working for me?
     
  4. Offline

    jamietech

    Does this alert the player on their next join if they won the lottery?
     
  5. Offline

    Erbros

    No, I'll add it to todo list.
    The players don't get any notice? Show me your config.yml + server startup log from server.log

    Thank you :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 12, 2016
  6. Offline

    thestriker095

    well its not that they cant see it its that i cant disable it when it is set to false the message still appears upon joining.
     
  7. Offline

    jamietech

    woo :D
     
  8. Offline

    prelude85

    Nice plugin mate! I like the idea and think its great to add to my server. I have just 1 prop. :) Can i configure the Min. ammount of players?

    Expecialy when its not known you can join the lottery i see it happen 1 or 2 ppl keep placing bets.

    In my case, i want to stimulate economy for people who have little experiance, so i want to set the payout to 150% or 200% even.

    Even better is that you allow the option to set a fixed POT price.

    e.g. 1000 bucks.

    People buy tickets for 50 each.

    Min participants 10
    Days before drawing: 72 hours

    And maybe add some type of reporting like


    Like "7 people are playing for the next drawing on 18-08-2011, the price pot is 1000 bucks (or 150% of deposit). 3 more players are needed for the next drawing"

    Then in case theres not enough players, it will renew with 72 hours.
     
  9. Offline

    Bronski

    .6.0 Seems to be reporting itself as .5.5. Just FYI.
     
  10. Offline

    Erbros

    Ah, I'll check it out! :) Thanks.
     
  11. Offline

    Jdbye

    The plugin still says it's version 0.5.5, which confuses my plugin update checker script. Please fix.
     
  12. Offline

    Erbros

    Done.
     
  13. Offline

    zipfe

    Works great, it's just that welcomeMessage: true gets rewritten upon restarting the server. Setting it to false will not work, the welcome message always gets displayed, and config.yml has welcomeMessage: set to true again after a restart.
     
  14. Offline

    Erbros

    And doing "/lottery config reload" ingame after editing the config won't work?

    I will be using BukkitDev from now on.

    http://dev.bukkit.org/server-mods/lottery/

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 12, 2016
  15. Offline

    Snock

    damn i have had lots of plugins not work because of permissions, i have yeti permissions, bukkitpermissions, and superpermsbridge, and when i try to use certain plugins i get some kind of "you dont have permission" response. ill try to explain my permissions setup:

    BukkitPermissions- (config.yml)​
    i have "lottery.admin.* = true" under admin's permissions and "lottery.buy = true" under defaults, which i inherit.

    Permissions(Yeti)- (groups.yml)
    i have " - 'lottery.*' " under admin's permissions and " - 'lottery.buy' "

    it gives me the message "[LOTTERY] You don't have access to that command!" when i type /lottery

    the server says it is enabled and found iConomy, btw.

    i had permissions(yeti) before i got bukkitperms if that helps
     
  16. Offline

    Tanite

    i believe bukkitperms uses a structure more like this for nodes:

    permissions.example: true

    no equals sign. i think :)
     
    Erbros and royfort like this.
  17. Offline

    PassedPerson

    I want to make more kind of Lottery.. Can I set multiple kind of lottery?

    Such as Lottery_1 's cost is 5, Lottery_2's cost is 10.. etc
     
  18. Offline

    andrewkm

    @Erbros
    Im looking to switch to bpermissions/PEX - bukkit permissions, very soon as opposed to permissions 3.1.6
    Wondering if this plugin works with it? Sorry If I missed it on the first page.
     
  19. Offline

    Erbros

    Not possible unless you edit the source and compile your own jar. :)

    I will implement it as soon as I get some free time. :)
     
  20. Offline

    erickingsr

    I'm using lottery on PEX - no issues.
     
    andrewkm likes this.
  21. Offline

    andrewkm

    Thanks :)
     
  22. Offline

    monir

    amazing plugin love it =)
     
  23. Offline

    Erbros

    Thank you :)
     
  24. Offline

    andrewkm

    @Erbros
    Headsup.
    Try your plugin on build 1089 CB.
    No matter what, even if OP, it fails.
    "Im sorry, Dave. I'm afraid I can't do that."
    -
    LWC Had the same issue, but it was fixed after going from the old permissions to the new PEX system.
    Yours unfortunately doesnt work with the old perms, NOR with PEX.
    -
    Please look into fixing, and maybe provide a dev build, I would be glad to do some testing.
    PS: If you need me im on esper on every major channel :)
     
    Erbros likes this.
  25. Offline

    saberstormer

    hey for some reason as admin/owner i always win the lottery if i compete. why is that?
    i won at least 12 times in a row
     
  26. Offline

    Erbros

    This don't happen to me, I've only won a few times. Are there many players in the draw? How many tickets are sold? How many tickets do you buy?

    Okay, I'll try to do some testing with CB 1089, even tho it isn't a RB. Thanks for the heads up :)
     
    andrewkm likes this.
  27. Offline

    saberstormer

    3 players mostly. 3 tickets. i've set it to only buy 1 ticket
    Maybe i was very lucky??
     
  28. Offline

    Erbros

    Thanks to the help you provided, I was able to fix this in a matter of minutes :) I now only support superPerms, but it should work fairly well anyway because of the default permissions.
     
    andrewkm likes this.
  29. Offline

    andrewkm

    @Erbros
    :) Thank you very much, will be testing soon :D
     
  30. Offline

    andrewkm

    @Erbros
    Running command "lottery" in console gives off:
    Code:
    2011-09-12 16:57:35 [INFO] [LOTTERY] Draw in: 1 hour, 25 minutes and 58 seconds.
    2011-09-12 16:57:35 [INFO] [LOTTERY] Buy a ticket for $1000 with /lottery buy
    2011-09-12 16:57:35 [INFO] [LOTTERY] There is currently $1000 in the pot.
    2011-09-12 16:57:35 [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'lottery' in plugin Lottery v0.6.2
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:344)
     at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:488)
     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:467)
     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:363)
     at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.command.ColouredConsoleSender cannot be cast to org.bukkit.entity.Player
     at net.erbros.Lottery.Lottery$1.onCommand(Lottery.java:147)
     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
     ... 6 more
    Using .ottery 0.6.2
    other commands work fine (Such as "lottery winners")
     
  31. Offline

    Erbros

    Last edited by a moderator: May 12, 2016

Share This Page