Date: 2020/05/17 23:54:06 UTC-07:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
ottery_command:
type: command
name: lottery
description: Main command for Lottery plugin
usage: "/lottery help"
script:
- define opt <context.args.get[1]>
- if <list[help|buy|tickets|time]> !contains <def[opt]>:
- define opt help
- inject locally path:<def[opt]>
help:
- narrate "<&e><&l>Lottery help"
- narrate "<&e>/lottery help - <&7>Displays this page"
- narrate "<&e>/lottery tickets - <&7>Displays the amount of tickets you currently have"
- narrate "<&e>/lottery buy (amount) - <&7>Buy lottery tickets"
- narrate "<&e> 1 ticket = 100$"
- narrate "<&e>/lottery time - <&7>The time until the lottery starts"
buy:
- if !<context.args.get[2].matches[[0-9]+]||false>:
- narrate "<&e><&l>Lottery > <&7>Please specify a number input."
- stop
- if <context.args.get[2]> > 100:
- narrate "<&e><&l>Lottery > <&7>The max amount of tickets you can buy is 100."
- stop
- if <context.args.get[2].mul[100]> > <player.money>:
- narrate "<&e><&l>Lottery > <&7>You don't have enough money to buy <context.args.get[2]>"
- stop
- if <player.flag[tickets]||0> >= 100:
- narrate "<&e><&l>Lottery > <&7>You already have the max amount of tickets. (<player.flag[tickets]>)"
- stop
- flag player tickets:++:<context.args.get[2]>
- money take quantity:<context.args.get[2].mul[100]> from:<player>
- narrate "<&e><&l>Lottery > <&7>You bought <context.args.get[2]> tickets."
tickets:
- narrate "<&e><&l>Lottery > <&7>You have <&a><player.flag[tickets]||0> <&7>tickets."
time:
- narrate "to do yet"
loterry_events:
type: world
debug: false
events:
on lst command:
- define tickets <list[]>
- foreach <server.list_players.filter[has_flag[tickets]]>:
- define tickets <def[tickets].include[<def[value]>/<def[value.as_player.flag[tickets]>]>
- define sorted <def[tickets].sort_by_number[after[/]].reverse>
- if <def[sorted].is_empty>:
- announce "<&e><&l>Lottery > <&7>The Lottery had no winner."
- stop
- if <def[sorted].filter[after[/].is[or_more].than[<def[sorted].get_sub_items[2].get[1]>]].size> > 1:
- define winner <def[sorted].filter[after[/].is[or_more].than[<def[sorted].get_sub_items[2].get[1]>]].random[1]>
- else:
- define winner <def[sorted].get_sub_items[1].get[1].as_player>
- announce "<&e><&l>Lottery > <&a><&l><def[winner].name> <&7>has won the lottery and won <&e><def[winner].flag[tickets].mul[130]>$"
- money give quantity:<def[winner].flag[tickets].mul[150]> to:<def[winner]>
- narrate "<&e><&l>Lottery > <&7>You have won the lottery and received <&a><def[winner].flag[tickets].mul[130]><&7>." targets:<def[winner]>
- narrate "<&e><&l>Lottery > <&7>New balance: <&a><player.money>" targets:<def[winner]>
- flag <def[winner]> tickets:0