Date: 2018/09/29 06:48:09 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
what_color_is_the_dress:
type: world
debug: false
events:
on player right clicks with diamond_hoe:
- if <player.item_in_hand.durability||0> != 1 && <player.item_in_hand.durability||0> != 2 {
- queue clear
}
- run set_dress_color def:<player.item_in_hand>
- take iteminhand quantity:1
- inventory update
on player walks:
- if !<player.has_flag[dress_color]> {
- queue clear
}
- teleport <player.flag[dress_color]> <player.location.with_pose[0,<player.body_yaw>]>
on player teleports:
- if !<player.has_flag[dress_color]> {
- queue clear
}
- teleport <player.flag[dress_color]> <player.location.with_pose[0,<player.body_yaw>]>
on system time minutely:
- if <queue.exists[dress_loop_queue_magic]> {
- queue q@dress_loop_queue_magic stop
}
- run dress_color_handler id:dress_loop_queue_magic
on player quits:
- if !<player.has_flag[dress_color]> {
- queue clear
}
- remove <player.flag[dress_color]>
- flag player dress_color:!
set_dress_color:
type: task
speed: 0
debug: false
definitions: item
script:
- if <player.has_flag[dress_color]> {
- define old_dress <player.flag[dress_color].replace[e@]>
- if <server.entity_is_spawned[<player.flag[dress_color]>]> {
- remove <player.flag[dress_color]>
}
- flag player dress_color:!
- flag server dress_color.<def[old_dress]>:!
}
- if <def[item].material.name||AIR> == AIR {
- queue clear
}
- spawn armor_stand[visible=false] <player.location> save:dresso
- define dress <entry[dresso].spawned_entities.get[1]||null>
- if !<server.entity_is_spawned[<def[dress]>]> {
- debug error "Failed to spawn dress for <player.name>/<player> - <def[dress]>!"
- queue clear
}
- adjust <def[item]> quantity:1 save:patched_item
- equip <def[dress]> head:<entry[patched_item].result>
- flag server dress_color.<def[dress].uuid>:<player>
- flag player dress_color:e@<def[dress].uuid>
- adjust <def[dress]> attach_to:<player>
dress_color_handler:
type: task
speed: 0
debug: false
script:
- repeat 60:
- wait 1s
- foreach <server.get_online_players_flagged[dress_color]>:
- if !<server.entity_is_spawned[<def[value].flag[dress_color]||null>]> {
- flag server dress_color.<def[value].flag[dress_color].replace[e@]>:!
- flag <def[value]> dress_color:!
}
else if <def[value].flag[dress_color_mode]||off> == off {
- adjust <def[value]> hide_entity:<def[value].flag[dress_color]>
}
else if <def[value].flag[dress_color_mode]||off> == on {
- adjust <def[value]> show_entity:<def[value].flag[dress_color]>
}
else {
- if <def[value].location.distance_squared[<def[value].flag[last_location]||<def[value].location>>]> > 0.5 {
- adjust <def[value]> hide_entity:<def[value].flag[dress_color]>
}
else {
- adjust <def[value]> show_entity:<def[value].flag[dress_color]>
}
- flag <def[value]> last_location:<def[value].location>
}