Update to latest DiamondBank-OG API

This commit is contained in:
NotAlexNoyle committed 2026-05-11 09:33:14 -04:00
1 parent ae0fc7b75e
commit 8d6bf06f97
7 files changed
+120 -19

No files matched your search

@@ -6,7 +6,7 @@ import net.kyori.adventure.text.minimessage.MiniMessage
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
import net.kyori.adventure.text.minimessage.tag.standard.StandardTags
import net.luckperms.api.LuckPerms
import net.trueog.diamondbankog.DiamondBankAPIKotlin
import net.trueog.diamondbankog.api.DiamondBankAPIKotlin
import org.bukkit.Bukkit
import org.bukkit.plugin.Plugin
import org.bukkit.plugin.java.JavaPlugin
@@ -16,6 +16,7 @@ import org.bukkit.persistence.PersistentDataType
class HomesFive : Quest {
private data class Requirements(
val totalShards: Long,
val requiredShards: Long,
val ticksPlayed: Int,
val pigOneCm: Int,
val striderOneCm: Int,
@@ -33,6 +34,10 @@ class HomesFive : Quest {
val duelsWins: Int,
)
private companion object {
const val REQUIRED_DIAMONDS = 2500L
}
val customMobHeadKey = NamespacedKey(QuestsOG.mobHeads, "customMobHead")
private val cutestPredatorAdvancement =
@@ -53,6 +58,10 @@ class HomesFive : Quest {
}
private suspend fun fetchRequirements(player: Player): Requirements? {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return null
}
val totalShards =
QuestsOG.diamondBankAPI.getTotalShards(player.uniqueId).getOrElse {
return null
@@ -93,6 +102,7 @@ class HomesFive : Quest {
return Requirements(
totalShards,
requiredShards,
ticksPlayed,
pigOneCm,
striderOneCm,
@@ -118,7 +128,7 @@ class HomesFive : Quest {
return null
}
return requirements.totalShards >= 2500 * 9 &&
return requirements.totalShards >= requirements.requiredShards &&
requirements.ticksPlayed / 20.0 / 60.0 / 60.0 / 24.0 >= 15 &&
requirements.pigOneCm / 100000.0 >= 5 &&
requirements.striderOneCm / 100000.0 >= 1 &&
@@ -137,8 +147,17 @@ class HomesFive : Quest {
}
override suspend fun consumeQuestItems(player: Player): Boolean {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return false
}
val withdrawResult =
QuestsOG.diamondBankAPI.consumeFromPlayer(player.uniqueId, 2500 * 9, "Homes five quest claimed", null)
QuestsOG.diamondBankAPI.consumeFromPlayer(
player.uniqueId,
requiredShards,
"Home five quest claimed",
"Quests-OG /claimquest",
)
if (withdrawResult.isFailure) {
return false
}
@@ -166,7 +185,7 @@ class HomesFive : Quest {
}
return arrayOf(
ProgressRequirement("Total Shards", requirements.totalShards, 2500L * 9L),
ProgressRequirement("Total Shards", requirements.totalShards, requirements.requiredShards),
ProgressRequirement("Ticks Played", (requirements.ticksPlayed).toLong(), (25920000).toLong()),
ProgressRequirement("Cm Travelled on Pig", (requirements.pigOneCm).toLong(), (500000).toLong()),
ProgressRequirement("Cm Travelled on Strider", (requirements.striderOneCm).toLong(), (100000).toLong()),
@@ -13,6 +13,7 @@ import org.bukkit.entity.Player
class HomesFour : Quest {
private data class Requirements(
val totalShards: Long,
val requiredShards: Long,
val ticksPlayed: Int,
val totalCm: Int,
val hasFuriousCocktail: Boolean,
@@ -22,6 +23,10 @@ class HomesFour : Quest {
val duelsWins: Int,
)
private companion object {
const val REQUIRED_DIAMONDS = 1000L
}
private val furiousCocktailAdvancement =
Bukkit.getServer().advancementIterator().asSequence().single {
it.key.toString() == "minecraft:nether/all_potions"
@@ -32,6 +37,10 @@ class HomesFour : Quest {
}
private suspend fun fetchRequirements(player: Player): Requirements? {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return null
}
val totalShards =
QuestsOG.diamondBankAPI.getTotalShards(player.uniqueId).getOrElse {
return null
@@ -78,6 +87,7 @@ class HomesFour : Quest {
return Requirements(
totalShards,
requiredShards,
ticksPlayed,
totalCm,
furiousCocktailAdvancementProgress.isDone,
@@ -95,7 +105,7 @@ class HomesFour : Quest {
return null
}
return requirements.totalShards >= 1000 * 9 &&
return requirements.totalShards >= requirements.requiredShards &&
requirements.ticksPlayed / 20.0 / 60.0 / 60.0 / 24.0 >= 10 &&
requirements.totalCm / 100.0 >= 200000 &&
requirements.hasFuriousCocktail &&
@@ -106,8 +116,17 @@ class HomesFour : Quest {
}
override suspend fun consumeQuestItems(player: Player): Boolean {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return false
}
val withdrawResult =
QuestsOG.diamondBankAPI.consumeFromPlayer(player.uniqueId, 1000 * 9, "Homes four quest claimed", null)
QuestsOG.diamondBankAPI.consumeFromPlayer(
player.uniqueId,
requiredShards,
"Home four quest claimed",
"Quests-OG /claimquest",
)
if (withdrawResult.isFailure) {
return false
}
@@ -135,7 +154,7 @@ class HomesFour : Quest {
}
return arrayOf(
ProgressRequirement("Total Shards", (requirements.totalShards).toLong(), 1000L * 9L),
ProgressRequirement("Total Shards", requirements.totalShards, requirements.requiredShards),
ProgressRequirement("Ticks Played", (requirements.ticksPlayed).toLong(), (17280000).toLong()),
ProgressRequirement("Total Cm Travelled", (requirements.totalCm).toLong(), (20000000).toLong()),
BooleanRequirement("A Furious Cocktail", requirements.hasFuriousCocktail),
@@ -14,6 +14,7 @@ import org.bukkit.inventory.ItemStack
class HomesSix : Quest {
private data class Requirements(
val totalShards: Long,
val requiredShards: Long,
val ticksPlayed: Int,
val walkOnWaterOneCm: Int,
val walkUnderWaterOneCm: Int,
@@ -27,6 +28,10 @@ class HomesSix : Quest {
val duelsWins: Int,
)
private companion object {
const val REQUIRED_DIAMONDS = 5000L
}
private val neededDiscs =
setOf(
Material.MUSIC_DISC_13,
@@ -45,6 +50,10 @@ class HomesSix : Quest {
)
private suspend fun fetchRequirements(player: Player): Requirements? {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return null
}
val totalShards =
QuestsOG.diamondBankAPI.getTotalShards(player.uniqueId).getOrElse {
return null
@@ -80,6 +89,7 @@ class HomesSix : Quest {
return Requirements(
totalShards,
requiredShards,
ticksPlayed,
walkOnWaterOneCm,
walkUnderWaterOneCm,
@@ -101,7 +111,7 @@ class HomesSix : Quest {
return null
}
return requirements.totalShards >= 5000 * 9 &&
return requirements.totalShards >= requirements.requiredShards &&
requirements.ticksPlayed / 20.0 / 60.0 / 60.0 / 24.0 >= 30 &&
requirements.walkOnWaterOneCm / 100000.0 >= 10 &&
requirements.walkUnderWaterOneCm / 100000.0 >= 10 &&
@@ -115,8 +125,17 @@ class HomesSix : Quest {
}
override suspend fun consumeQuestItems(player: Player): Boolean {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return false
}
val withdrawResult =
QuestsOG.diamondBankAPI.consumeFromPlayer(player.uniqueId, 5000 * 9, "Homes six quest claimed", null)
QuestsOG.diamondBankAPI.consumeFromPlayer(
player.uniqueId,
requiredShards,
"Home six quest claimed",
"Quests-OG /claimquest",
)
if (withdrawResult.isFailure) {
return false
}
@@ -157,7 +176,7 @@ class HomesSix : Quest {
}
return arrayOf(
ProgressRequirement("Total Shards", (requirements.totalShards).toLong(), 5000L * 9L),
ProgressRequirement("Total Shards", requirements.totalShards, requirements.requiredShards),
ProgressRequirement("Ticks Played", (requirements.ticksPlayed).toLong(), (51840000).toLong()),
ProgressRequirement("Cm Walked on Water", (requirements.walkOnWaterOneCm).toLong(), (1000000).toLong()),
ProgressRequirement(
@@ -13,6 +13,7 @@ import org.bukkit.entity.Player
class HomesThree : Quest {
private data class Requirements(
val totalShards: Long,
val requiredShards: Long,
val ticksPlayed: Int,
val totalCm: Int,
val hasBeaconator: Boolean,
@@ -20,12 +21,20 @@ class HomesThree : Quest {
val duelsWins: Int,
)
private companion object {
const val REQUIRED_DIAMONDS = 250L
}
private val beaconatorAdvancement =
Bukkit.getServer().advancementIterator().asSequence().single {
it.key.toString() == "minecraft:nether/create_full_beacon"
}
private suspend fun fetchRequirements(player: Player): Requirements? {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return null
}
val totalShards =
QuestsOG.diamondBankAPI.getTotalShards(player.uniqueId).getOrElse {
return null
@@ -65,7 +74,15 @@ class HomesThree : Quest {
val duelsWins = QuestsOG.duels.userManager.get(player.uniqueId)?.wins ?: 0
return Requirements(totalShards, ticksPlayed, totalCm, advancementProgress.isDone, player.level, duelsWins)
return Requirements(
totalShards,
requiredShards,
ticksPlayed,
totalCm,
advancementProgress.isDone,
player.level,
duelsWins,
)
}
override suspend fun isEligible(player: Player): Boolean? {
@@ -75,7 +92,7 @@ class HomesThree : Quest {
return null
}
return requirements.totalShards >= 250 * 9 &&
return requirements.totalShards >= requirements.requiredShards &&
requirements.ticksPlayed / 20.0 / 60.0 / 60.0 / 24.0 >= 5 &&
requirements.totalCm / 100.0 >= 50000 && // 100k?
requirements.hasBeaconator &&
@@ -84,8 +101,17 @@ class HomesThree : Quest {
}
override suspend fun consumeQuestItems(player: Player): Boolean {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return false
}
val withdrawResult =
QuestsOG.diamondBankAPI.consumeFromPlayer(player.uniqueId, 250 * 9, "Homes three quest claimed", null)
QuestsOG.diamondBankAPI.consumeFromPlayer(
player.uniqueId,
requiredShards,
"Home three quest claimed",
"Quests-OG /claimquest",
)
if (withdrawResult.isFailure) {
return false
}
@@ -113,7 +139,7 @@ class HomesThree : Quest {
}
return arrayOf(
ProgressRequirement("Total Shards", (requirements.totalShards).toLong(), 250L * 9L),
ProgressRequirement("Total Shards", requirements.totalShards, requirements.requiredShards),
ProgressRequirement("Ticks Played", (requirements.ticksPlayed).toLong(), (8640000).toLong()),
ProgressRequirement("Total Cm Travelled", (requirements.totalCm).toLong(), (5000000).toLong()),
BooleanRequirement("Beaconator", requirements.hasBeaconator),
@@ -11,13 +11,22 @@ import org.bukkit.entity.Player
class HomesTwo : Quest {
private data class Requirements(
val totalShards: Long,
val requiredShards: Long,
val ticksPlayed: Int,
val totalCm: Int,
val levels: Int,
val duelsWins: Int,
)
private companion object {
const val REQUIRED_DIAMONDS = 100L
}
private suspend fun fetchRequirements(player: Player): Requirements? {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return null
}
val totalShards =
QuestsOG.diamondBankAPI.getTotalShards(player.uniqueId).getOrElse {
return null
@@ -55,7 +64,7 @@ class HomesTwo : Quest {
val duelsWins = QuestsOG.duels.userManager.get(player.uniqueId)?.wins ?: 0
return Requirements(totalShards, ticksPlayed, totalCm, player.level, duelsWins)
return Requirements(totalShards, requiredShards, ticksPlayed, totalCm, player.level, duelsWins)
}
override suspend fun isEligible(player: Player): Boolean? {
@@ -65,7 +74,7 @@ class HomesTwo : Quest {
return null
}
return requirements.totalShards >= 100 * 9 &&
return requirements.totalShards >= requirements.requiredShards &&
requirements.ticksPlayed / 20.0 / 60.0 / 60.0 >= 24 &&
requirements.totalCm / 100.0 >= 10000 &&
requirements.levels >= 50 &&
@@ -73,8 +82,17 @@ class HomesTwo : Quest {
}
override suspend fun consumeQuestItems(player: Player): Boolean {
val requiredShards =
QuestsOG.diamondBankAPI.diamondsToShards(REQUIRED_DIAMONDS.toDouble()).getOrElse {
return false
}
val withdrawResult =
QuestsOG.diamondBankAPI.consumeFromPlayer(player.uniqueId, 100 * 9, "Homes two quest claimed", null)
QuestsOG.diamondBankAPI.consumeFromPlayer(
player.uniqueId,
requiredShards,
"Home two quest claimed",
"Quests-OG /claimquest",
)
if (withdrawResult.isFailure) {
return false
}
@@ -98,7 +116,7 @@ class HomesTwo : Quest {
}
return arrayOf(
ProgressRequirement("Total Shards", (requirements.totalShards).toLong(), 100L * 9L),
ProgressRequirement("Total Shards", requirements.totalShards, requirements.requiredShards),
ProgressRequirement("Ticks Played", (requirements.ticksPlayed).toLong(), (1728000).toLong()),
ProgressRequirement("Total Cm Travelled", (requirements.totalCm).toLong(), (1000000).toLong()),
)