Date: 2024/03/22 06:14:16 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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
ah_command:
type: command
name: ah
debug: false
description: Buy and Sell player items!
usage: /ah sell (price)
tab completions:
1: sell
script:
- if <context.args.size> > 0:
- choose <context.args.get[1]>:
- case sell:
- define item <player.item_in_hand>
- define quantity <[item].quantity>
- define lore <[item].lore.if_null[]>
- define item <[item].with_flag[auction_item].with_flag[seller:<player>]>
- define item <[item].with_flag[price:<[price]>]>
- define rank <player.luckperms_primary_group.group_name>
- if <[rank]> == default:
- define duration 1m
- else if <[rank]> == syfon:
- define duration 18h
- else:
- define duration 24h
#Should I add a tax system? :thinking:
- define item <[item].with_flag[expire_after].duration[<[duration]>]>
- define seller <[item].flag[seller]>
- define price <[item].flag[price]>
- define time <[item].flag_expiration[expire_after].from_now.formatted>
- define info "<&nl><&a>Price: <&e><&l><[price]><&nl><&a>Seller: <&e><&l><[seller].name><&nl><&a>Time Left: <&e><&l><[time]>"
- adjust def:item "lore:<[lore]> <[info]>"
- flag server ah.items:->:<[item]>
- take iteminhand quantity:<[quantity]>
test_script:
type: world
debug: false
events:
after player clicks item_flagged:auction_item in auction_player_lists:
- define item <context.item>
- define inventory <inventory[auction_player_lists]>
- define time <[item].flag_expiration[expire_after].if_null[null]>
- define seller <[item].flag[seller]>
- if <[item].has_flag[expired]>:
- determine cancelled
- define lore <[item].lore>
- define lore <[lore].reverse.remove[1|2|3|4].reverse>
- flag server ah.items:<-:<[item]>
- adjust def:item lore:<[lore]>
- give <[item].with_flag[auction_item:!].with_flag[seller:!].with_flag[price:!].with_flag[expire_after:!]>
- run auctionshop_pages def.page:1 def.category:player
#- narrate <[time].format[dd/MM/yyyy : HH:mm:SS].if_null[<&c>Nothing here]>
after player clicks item_flagged:expired in auction_player_lists:
- define item <context.item>
- define inventory <inventory[auction_player_lists]>
- define time <[item].flag_expiration[expire_after].if_null[null]>
- define seller <[item].flag[seller]>
- define lore <[item].lore>
- define lore <[lore].reverse.remove[1|2|3|4].reverse>
- flag server ah.items:<-:<[item]>
- adjust def:item lore:<[lore]>
- give <[item].with_flag[auction_item:!].with_flag[seller:!].with_flag[price:!].with_flag[expire_after:!].with_flag[expired:!]>
- run auctionshop_pages def.page:1 def.category:player
#test_script:
auction_player:
type: procedure
debug: false
script:
- define ah_items <server.flag[ah.items].if_null[<item[filler_item].repeat_as_list[1]>]>
- foreach <[ah_items]> as:item:
- define seller <[item].flag[seller].if_null[<item[filler_item].repeat_as_list[1]>]>
- if !<[item].has_flag[expire_after]>:
- define item <[item].with_flag[expired:done]>
- define lore <[item].lore>
- define lore <[lore].reverse.remove[1].reverse>
- adjust def:item lore:<[lore].include[<&c>Item has Expired!]>
- if <[seller]> == <player>:
- define items:->:<[item]>
- determine <[items].reverse.if_null[<item[filler_item].repeat_as_list[1]>]>
auction_all:
type: procedure
debug: false
script:
- define ah_items <server.flag[ah.items].if_null[<item[filler_item].repeat_as_list[1]>]>
- foreach <[ah_items]> as:item:
- if !<[item].has_flag[expire_after]>:
- foreach next
- define items:->:<[item]>
- determine <[items].reverse.if_null[<item[filler_item].repeat_as_list[1]>]>