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 '' # 10% chance - if < 0.1 { - define item 'i@iron_sword[display_name=&sseLottery Sword;lore=&ss6Whippity whoopity, you now have a sword!;enchantments=DURABILITY,2|DAMAGE_ALL,3]' } # 25% chance else if < 0.35 { - define item 'i@magma_cream[display_name=<&e>Relic;lore=<&8>Screams can be heard within|<&8> » <&7>Right-click while holding|<&8> » <&7>this to reveal!;enchantments=DURABILITY,10]' } # 20% chance else if < 0.55 { - define item 'i@diamond_chestplate[display_name=&ssaLottery Chestplate;nbt_attributes=generic.armor/chest/0/1]' } # 15% chance else if < 0.7 { - define item 'i@glass_bottle[display_name=<&7>[<&5>+<&7>] <&5>Token of Insight <&7>[<&5>+<&7>];lore=<&5>• <&7>Right-click to recieve a random item!|<&e>• <&e>Small chance of recieving an OP item!||<&3><&o>Legendary Artifact]' } # 10% chance else if < 0.8 { - define item 'i@potion[display_name=<&7>Fart Potion;lore=<&f>Why would anyone drink this?;potion_effects=jump,false,true;flags=li@HIDE_POTION_EFFECTS]' } # 5% chance else if < 0.85 { - define item 'i@gold_nugget[displayname=<&e>Lesser Lifegem <&7>(Right-Click);lore=<&7>Regenerate 10 health|<&7>over 25 seconds||<&d><&o>Rare Artifact]' } # 15% chance else { - define item 'i@paper[display_name=<&8>(<&e><&l>Lucky<&8>);lore=<&8> » <&7>Right click to redeem title;enchantments=DURABILITY,10]' } - 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>!" - 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 10 credits! lottery_gui: type: inventory title: Lottery size: 27 slots: - "[wgs] [wgs] [] [] [] [] [] [wgs] [wgs]" - "[wgs] [] [] [] [runscript] [] [] [] [wgs]" - "[wgs] [wgs] [] [] [] [] [] [wgs] [wgs]" definitions: wgs: i@black_stained_glass_pane 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 >= 10 { - inventory close - flag player credits:-:10 - run rtd_gui_task instantly player: } else if < 10 { - inventory close - narrate "<&6>[<&b>Lottery<&6>] <&e>You don't have enough credits!" }