Date: 2015/10/28 19:34:19 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
#-----------------Raw JSON Handler-----------------#
# Valid hoverEvent actions: show_text, others are unsuported.
# Valid clickEvent actions: run_command, suggest_command, change_page, open_url
rtag:
# you can omit hover and/or click event, for text only.
# Usage: <proc[rtag].context[text(|hover_event_action:hover_event_value)(|click_event_action:click_event_value)]>
# exmaples:
# <proc[rtag].context[just text]>
# will determine {text:"just text"}
# <proc[rtag].context[text|show_text:and hover text]>
# will determine "{text:"text",hoverEvent:{action:show_text,value:"and hover text"}}"
# <proc[rtag].context[text||run_command:/teleport Larry]>
# will determine "{text:"text",clickEvent:{action:run_command,value:"/teleport Larry"}}"
type: procedure
debug: false
script:
- define json 'text:"<def[1].unescaped>"'
- if <def[2].is[!=].to[]||false> define json '<def[json]>,hoverEvent:{action:<def[2].before[:]>,value:"<def[2].after[:].unescaped>"}'
else define json '<def[json]>,hoverEvent:{action:show_text,value:""}'
# /\ this is a bug 'fix' to remove misleading hover text
- if <def[3].is[!=].to[]||false> define json '<def[json]>,clickEvent:{action:<def[3].before[:]>,value:"<def[3].after[:].unescaped>"}'
- define json {<def[json]>}
- determine '<def[json]>'
rpage:
# do not include "li@" in context list
# Usage: <proc[rpage].context[rtag1|rtag2|rtag3|ect..]>
# exmaples:
# <proc[rtag].context[<proc[rtag].context[some ]>|<proc[rtag].context[text.]>]>
# will determine [{text:\"some \"},{text:\"text.\"}]
# note: the quotes become Minecraft escaped when put through the rpage procedure
type: procedure
debug: false
script:
- define page "["
- foreach <queue.definitions.exclude[page]> {
- if <queue.definition[<def[value]>].is[==].to[]> || <queue.definition[<def[value]>].is[==].to[li@]> foreach next
- define page '<def[page]>,<queue.definition[<def[value]>]>'
#- narrate "<def[value]>: <queue.definition[<def[value]>].substring[1,10]>"
}
- define page "[<def[page].after[,]>]"
- determine '<def[page].replace[<&dq>].with[\\<&dq>]>'
rbook:
# do not include "li@" in context list
# Usage: <proc[rbook].context[page1|page2|page3|ect..]>
# note: Works just like rpage. just with pages insted of tags.
type: procedure
debug: false
script:
- define book "["
- foreach <queue.definitions.exclude[book]> {
- if <queue.definition[<def[value]>].is[==].to[]> || <queue.definition[<def[value]>].is[==].to[li@]> foreach next
- define book '<def[book]>,"<queue.definition[<def[value]>]>"'
#- narrate "<def[value]>: <queue.definition[<def[value]>].substring[1,10]>"
}
- define info "title:Title,author:KeangDavid"
- execute as_op 'give <player.name> written_book 1 0 {pages:[<def[book].replace[\"].with["]>],<def[info]>}'
- determine "{pages:[<def[book].after[,]>],title:bookScript,author:<player.name>}"
# \/ unsuported! Use new rtag procedure.
ChatButton:
type: procedure
debug: false
script:
- determine "{text: <&dq><def[2].unescaped><&dq>,color: <def[1]>,clickEvent: {action: run_command,value: <&dq><def[4]><&dq>},hoverEvent: {action: show_text,value: <&dq><def[3].unescaped><&dq>}}"
ChatPlayer:
type: procedure
debug: false
script:
- define rank "<yaml[<player.name>].read[prison.rank]||Citizen> of <yaml[<player.name>].read[prison.name]||Server>"
- define playerinfo "<def[rank]>\nNAME: <player.name>\nUUID: <player.uuid>\n\n<aqua>Click to send private message."
- determine "{text: <&dq><blue>[<reset><player.name.display><blue>]<&dq>,hoverEvent: {action: show_text,value: <&dq><def[playerinfo]><&dq>},clickEvent: {action: suggest_command,value:<&dq>/tell <player.name> <&dq>}}"
#-----------------Raw JSON Handler-----------------#