lottery_command: type: command name: Lottery description: Main command for Lottery plugin usage: "/lottery help" script: - define opt - if li@gui|buy|credits| !contains { - define opt help } - inject locally path: help: - narrate "<&6>Lottery help - Commands:" - ^narrate "<&6>/lottery help - <&7>Displays this page" - ^narrate "<&6>/lottery gui - <&7>Opens lottery inventory GUI" - ^narrate "<&6>/lottery buy (amount) - <&7>Buy lottery credits" - ^narrate "<&7> 1 credit = 10$" - ^narrate "<&6>/lottery credits - <&7>Check your credits balance" gui: - inventory open d:in@lottery_gui credits: - narrate "<&6>[<&b>Lottery<&6>] <&e>You have <&6> <&e>credits." buy: - if ! || >= 4 { - narrate "<&6>[<&b>Lottery<&6>] <&e>You didn't specify an amount, or the specified was either invalid or too big" - queue clear } - if >= { - execute as_op "eco take " - flag player credits:+: - narrate "<&6>[<&b>Lottery<&6>] <&6> <&e>credits has been added to your account." - if { - flag player extracredits:1 } else if { - determine passively cancelled } - queue clear } else { - narrate "<&6>[<&b>Lottery<&6>] <&e>You don't have enough money" - determine cancelled } extracredits_handler: type: world events: on system time hourly: - if >= 3 { - define randomplayer - flag credits:+:10 - announce "<&6>[<&b>Lottery<&6>] <&e> recieved 10 extra credits!" - foreach { - flag extracredits:! } } rtd_gui_task: type: task debug: false speed: 0 prefix: '&ss1&ss2&ss1&ss5&ss2&ss0&ss2&ss0&ss0&ss5&ss1&ss8&ss2&ss5&ss0&ss7&ss2&ss1&ss0&ss9&ssr' script: - define base_inv '' #- define base_inv 'in@generic[title=<&6><&l>Lottery GUI;size=27;contents=li@i@air]' - inventory open 'd:in@generic[title=<&6><&l>Lottery GUI;size=27]' - wait 1t - repeat 50 { - define rng '' - if < 30 { - define item 'i@iron_sword[display_name=&sseLottery Sword;lore=&ss6Whippity whoopity, you now have a sword!;enchantments=DURABILITY,2|DAMAGE_ALL,3]' } else if < 40 { - define item 'i@largetoken' } else if < 60 { - define item 'i@diamond_chestplate[display_name=&ssaLottery Chestplate;nbt_attributes=generic.armor/chest/0/1]' } else if < 85 { - define item 'i@lootpot' } else if < 110 { - define item 'i@FartPotion' } else if < 140 { - define item 'i@lifegem' } else if < 145 { - define item 'i@relic' } else if < 165 { - define item 'i@smalltoken' } else if < 175 { - define item 'i@mediumtoken' } else if < 190 { - define item 'i@dirt[display_name=<&6>Dertt :c]' } else if < 210 { - define item 'i@cobblestone[display_name=<&c>Better luck next time...]' } else if < 230 { - define item 'i@diamond[display_name=<&b>Diamond]' } else if < 250 { - define item 'i@Golden_Apple[display_name=<&b>Golden Apple]' } else if < 270 { - define item 'i@totem[display_name=<&d>Totem of Undying]' } else if < 285 { - define item 'i@saddle[display_name=<&d>Saddle!]' } else { - define item 'i@LuckyTag' } - if != { - inventory open 'd:in@generic[title=<&6><&l>Lottery GUI;size=27;contents=li@i@air|i@air|i@air|i@air|i@air|i@air|i@air|i@air|i@air|i@air|i@air|i@air|i@air|]' } - define prev_item '' - wait ].round_up>t } - wait 1s - narrate "<&6>[<&b>Lottery<&6>] <&e>Congratulations! You got !" - give - flag player can_close_inv - inventory close rtd_gui_evts: type: world debug: false events: on player closes inventory: - if { - if ! { - determine cancelled } - flag player can_close_inv:! } runscript: type: item material: i@diamond[flags=HIDE_ATTRIBUTES|HIDE_ENCHANTS;enchantments=ARROW_DAMAGE,1] display name: <&d>Play lottery for 20 credits! lottery_gui: type: inventory title: Lottery size: 27 slots: - "[wgs] [wgs] [bal] [] [] [] [bal] [wgs] [wgs]" - "[wgs] [lcredits] [] [] [runscript] [] [] [lcredits] [wgs]" - "[wgs] [wgs] [bal] [] [] [] [bal] [wgs] [wgs]" definitions: wgs: i@black_stained_glass_pane lcredits: i@white_stained_glass_pane[display_name=<&d>Credits:;lore=<&f>] bal: i@white_stained_glass_pane[display_name=<&d>Your money:;lore=<&f>$] roll_handler: type: world events: on player clicks in lottery_gui: - determine cancelled on player drags in lottery_gui: - determine cancelled on player clicks runscript in lottery_gui: - if < 20 { - inventory close - narrate "<&6>[<&b>Lottery<&6>] <&e>You don't have enough credits!" - queue clear } - if { - inventory close - narrate "<&6>[<&b>Lottery<&6>] <&e>You need to wait minutes to play again!" - queue clear } - if { - inventory close - narrate "<&6>[<&b>Lottery<&6>] <&e>You can't play lottery, inventory is full!" - queue clear } - inventory close - flag player credits:-:20 - flag player limit:1 d:10m - run rtd_gui_task instantly player: