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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
|
---
title: Quest progress in scoreboard
parent: Guides
---
# Quest progress in scoreboard
This guide will show you how to show quest progress in a scoreboard. The
plugin
[<https://www.spigotmc.org/resources/animatedscoreboard.20848/>](AnimatedScoreboard "wikilink")
will provide this scoreboard, however this will work for any plugin
accepting PlaceholderAPI.
**This utilises three features from Quests:**
- tracking quests
- PlaceholderAPI integration
- local quest placeholders
The final result will look like this:
<img src="https://i.imgur.com/NkcZTB2.png"> <img src="https://i.imgur.com/EIWAwb2.png">
## Adding local quest placeholders
Local quest placeholders are used here to provide the progress of the
quest and to provide a breif description of the quest. We will use a
simple blockbreak quest as our base here, where we must break 30 blocks
to complete the quest.
/Quests/quests/example1.yml
``` yaml
...
placeholders:
description: "&7Break &f30 blocks &7of any type."
progress: " &8- &f{mining:progress}&7/30 broken"
...
```
These placeholders will be called using PlaceholderAPI using the
AnimatedScoreboard plugin. For example, using the placeholder
`%quests_q:example1_p:description%` with PlaceholderAPI will return
`&7Break &f30 blocks &7of any type.`. These are known as [local quest
placeholders](../tools/placeholderapi#quest-details).
Our `description` placeholder provides a description of the quest. The
\`progress\` placeholder will show the players progression with the
quest.
**You can create any placeholders here, and decide the names for
yourself.** These are designed for you to be able to access information
about a quest with PlaceholderAPI. Avoid using underscores and spaces,
this may cause issues when referencing them using placeholders.
To see the full quest (with comments), click
[here](https://github.com/LMBishop/Quests/blob/master/src/main/resources/resources/bukkit/quests/example1.yml "wikilink").
## Configuring AnimatedScoreboard
{: .note }
This guide assumes you have a basic understanding of the plugin
[AnimatedScoreboard](https://www.spigotmc.org/resources/animatedscoreboard.20848/).
For our config with AnimatedScoreboard, we will create two seperate
scoreboards: one with tracked quest information and one informing the
user that they are not tracking a quest.
/AnimatedScoreboard/scoreboards/questtrack.yml
``` yaml
display:
title:
text:
- "&6&lAmazing Server"
line-1:
text:
- "&7"
score: 5
line-2:
text:
- "&e&lTracked Quest:"
score: 4
line-3:
text:
- "&e%quests_tracked%"
score: 3
line-4:
text:
- "&7%quests_tracked_p:description%"
score: 2
line-5:
text:
- "&7%quests_tracked_p:progress%"
score: 1
line-6:
text:
- "&7"
score: 0
```
The placeholder `%quests_tracked<...>%` will access the players tracked
quest. In order to track a quest you must middle-click in-game on the
quest within the GUI. By default, when you start a quest it is
automatically tracked.
Simply put, we are accessing the placeholders called `description` and
`progress` which we made earlier in the player's tracked quest.
Now, we are going to create a default scoreboard for when there is no
tracked quest.
/AnimatedScoreboard/scoreboards/defaultscoreboard.yml
``` yaml
display:
title:
text:
- "&6&lAmazing Server"
line-1:
text:
- "&7"
score: 3
line-2:
text:
- "&e&lTracked Quest:"
score: 2
line-3:
text:
- "&7You are not tracking a quest."
score: 1
line-4:
text:
- "&7"
score: 0
```
This is a simple static scoreboard. Finally, we must add a trigger to
switch between the two scoreboards.
Triggers must first be enabled within AnimatedScoreboard:
/AnimatedScoreboard/config.yml
``` yaml
...
enable-triggers: true
...
```
Then, the server must be restarted. There should be a new folder called
`triggers`.
Now, we must create two files `ontrack.yml` and `ontrackend.yml`. This
will switch between the two scoreboard whenever the player tracks /
stops tracking a quest.
/AnimatedScoreboard/triggers/ontrack.yml
``` yaml
event: com.leonardobishop.quests.bukkit.api.event.PlayerStartTrackQuestEvent
target-player: getPlayer
trigger-scoreboard: questtrack
```
This will switch to the \`questtrack\` scoreboard when a quest is
tracked.
/AnimatedScoreboard/triggers/ontrackend.yml
``` yaml
event: com.leonardobishop.quests.bukkit.api.event.PlayerStopTrackQuestEvent
target-player: getPlayer
trigger-scoreboard: defaultscoreboard
```
This will switch to the \`defaultscoreboard\` scoreboard when a quest is
no longer tracked.
That's it! Restart the server and you should be able to see the progress
update in the scoreboard. Please note, you will have to include local
quest placeholders for every quest.
## Further reading
- [Creating a quest](../configuration/creating-a-quest)
|