Achievables
Powering Daily Challenges and Achievements on MCParks
achievement {
syntaxVersion 0
name "Magic Kingdom Mountaineer"
description "Ride the three mountains of Magic Kingdom without warping or teleporting"
icon "IRON_SPADE:20"
reward "MONEY:500"
state {
rodeSpaceMountain = false
rodeBigThunderMountain = false
rodeSplashMountain = false
warpedOrTeleported = false
}
activators {
(state.rodeSpaceMountain == true) && (state.rodeSplashMountain == true) && (state.rodeBigThunderMountain == true)
}
deactivators {
state.warpedOrTeleported == true
}
events {
on("CompleteRideEvent") {
if (event.rideId == 32) {
state.rodeSpaceMountain = true
}
if (event.rideId == 7) {
state.rodeBigThunderMountain = true
}
if (event.rideId == 9) {
state.rodeSplashMountain = true
}
}
on("TeleportPlayerToPlayerEvent") {
state.warpedOrTeleported = true
}
on("PlayerWarpEvent") {
state.warpedOrTeleported = true
}
}
}A Java library for defining “Achievables,” a system that can be used to define Achievements, Daily Challenges, Quests, and other things a player can “achieve” in a video game-like setting. If your world has events, you can use Achievables!
This also includes an extensible Groovy-based programming language called BIGAL (BigAl’s Integrated Groovy Achievement Language) that allows you to define Achievables (with other metadata necessary to define an Achievement) in a human-readable and version-controllable format.
We use Achievables on MCParks to power Daily Challenges and Achievements!
