diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectAcceleratedEscape.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectAcceleratedEscape.kt index 872b7c3..11b4044 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectAcceleratedEscape.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectAcceleratedEscape.kt @@ -19,6 +19,10 @@ class EffectAcceleratedEscape: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBountifulHarvest.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBountifulHarvest.kt index f3bb1f7..0456e93 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBountifulHarvest.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBountifulHarvest.kt @@ -35,6 +35,10 @@ class EffectBountifulHarvest : Effect( @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) fun handle(event: BlockDropItemEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + if (noRepeat.contains(event)) { return } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBravery.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBravery.kt index a10491a..f54854a 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBravery.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectBravery.kt @@ -22,6 +22,10 @@ class EffectBravery: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectCraftsmanship.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectCraftsmanship.kt index 4e7ea40..66de72f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectCraftsmanship.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectCraftsmanship.kt @@ -16,6 +16,10 @@ class EffectCraftsmanship : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: PlayerItemDamageEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.player.world.name)) { + return + } + val player = event.player if (!event.item.type.toString().lowercase().contains("axe")) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDazzle.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDazzle.kt index bd2b7fd..4a96dcf 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDazzle.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDazzle.kt @@ -23,6 +23,10 @@ class EffectDazzle : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.damager.tryAsPlayer() ?: return val victim = if (event.entity is LivingEntity) event.entity as LivingEntity else return diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDodging.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDodging.kt index cbc5a2e..d4de496 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDodging.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDodging.kt @@ -17,6 +17,10 @@ class EffectDodging: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDynamicMining.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDynamicMining.kt index dacd006..a10b3a6 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDynamicMining.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectDynamicMining.kt @@ -22,6 +22,10 @@ class EffectDynamicMining : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: BlockBreakEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + val player = event.player val level = player.getEffectLevel(this) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEfficientBrewing.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEfficientBrewing.kt index 086d09b..97a51c4 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEfficientBrewing.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEfficientBrewing.kt @@ -21,6 +21,10 @@ class EffectEfficientBrewing : Effect( fun handle(event: InventoryClickEvent) { val player = event.whoClicked + if (this.config.getStrings("disabled-worlds").contains(player.world.name)) { + return + } + if (player !is Player) { return } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEndangering.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEndangering.kt index 81d86b1..f0f002a 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEndangering.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEndangering.kt @@ -19,6 +19,10 @@ class EffectEndangering : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.damager.tryAsPlayer() ?: return val victim = if (event.entity is LivingEntity) event.entity as LivingEntity else return diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEyeOfTheDepths.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEyeOfTheDepths.kt index fdcc46d..e414b03 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEyeOfTheDepths.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectEyeOfTheDepths.kt @@ -18,6 +18,10 @@ class EffectEyeOfTheDepths: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: PlayerFishEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.player.world.name)) { + return + } + val player = event.player if (event.state != PlayerFishEvent.State.CAUGHT_FISH) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectGoldenYield.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectGoldenYield.kt index a284a05..8b03d97 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectGoldenYield.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectGoldenYield.kt @@ -19,6 +19,10 @@ class EffectGoldenYield: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: BlockDropItemEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + val block = event.block val player = event.player diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectInfernalResistance.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectInfernalResistance.kt index c4ebc70..393f03c 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectInfernalResistance.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectInfernalResistance.kt @@ -17,6 +17,10 @@ class EffectInfernalResistance: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt index 851f8fa..3d199a2 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMagneticRod.kt @@ -16,6 +16,10 @@ class EffectMagneticRod : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: PlayerFishEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.player.world.name)) { + return + } + if (!(event.state == PlayerFishEvent.State.CAUGHT_FISH || event.state == PlayerFishEvent.State.CAUGHT_ENTITY)) { return } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMasterLumberjack.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMasterLumberjack.kt index a746592..847cac1 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMasterLumberjack.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMasterLumberjack.kt @@ -35,6 +35,10 @@ class EffectMasterLumberjack : Effect( @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) fun handle(event: BlockDropItemEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + if (noRepeat.contains(event)) { return } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMysticResilience.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMysticResilience.kt index 3dfdb89..84af8ea 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMysticResilience.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectMysticResilience.kt @@ -18,6 +18,10 @@ class EffectMysticResilience : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityPotionEffectEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectOvercompensation.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectOvercompensation.kt index 135f23d..073560b 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectOvercompensation.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectOvercompensation.kt @@ -19,6 +19,10 @@ class EffectOvercompensation : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handleLevelling(event: EnchantItemEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.enchanter.world.name)) { + return + } + val player = event.enchanter val cost = event.whichButton() + 1 diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectPotionmaster.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectPotionmaster.kt index 93d7ae7..ef58dc2 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectPotionmaster.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectPotionmaster.kt @@ -27,6 +27,10 @@ class EffectPotionmaster : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: BrewEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + val player = event.contents.viewers.filterIsInstance().firstOrNull() ?: return if (player.getEffectLevel(this) == 0) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectReimbursement.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectReimbursement.kt index 1259fe3..38c8c31 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectReimbursement.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectReimbursement.kt @@ -16,6 +16,10 @@ class EffectReimbursement : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handleLevelling(event: EnchantItemEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.enchanter.world.name)) { + return + } + val player = event.enchanter val cost = event.whichButton()+1 diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSatiation.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSatiation.kt index a639266..7298d6e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSatiation.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSatiation.kt @@ -17,6 +17,10 @@ class EffectSatiation: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: FoodLevelChangeEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSeamlessMovement.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSeamlessMovement.kt index fa97743..637597e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSeamlessMovement.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSeamlessMovement.kt @@ -17,6 +17,10 @@ class EffectSeamlessMovement: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSecondChance.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSecondChance.kt index 0736432..1e49fd6 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSecondChance.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSecondChance.kt @@ -17,6 +17,10 @@ class EffectSecondChance: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: PlayerItemDamageEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.player.world.name)) { + return + } + val player = event.player val item = event.item val meta = item.itemMeta diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSerratedStrikes.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSerratedStrikes.kt index 4000320..a390fdd 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSerratedStrikes.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSerratedStrikes.kt @@ -20,6 +20,10 @@ class EffectSerratedStrikes : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.damager.tryAsPlayer() ?: return val victim = if (event.entity is LivingEntity) event.entity as LivingEntity else return diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectShamanism.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectShamanism.kt index b7f089e..283974f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectShamanism.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectShamanism.kt @@ -17,6 +17,10 @@ class EffectShamanism: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityRegainHealthEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSpelunking.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSpelunking.kt index b62f506..1f2e202 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSpelunking.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectSpelunking.kt @@ -35,6 +35,10 @@ class EffectSpelunking : Effect( @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) fun handle(event: BlockDropItemEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + if (noRepeat.contains(event)) { return } diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectStrongImpact.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectStrongImpact.kt index c30640a..b92c59f 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectStrongImpact.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectStrongImpact.kt @@ -18,6 +18,10 @@ class EffectStrongImpact : Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.damager.tryAsPlayer() ?: return val level = player.getEffectLevel(this) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectVersatileTools.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectVersatileTools.kt index e786d4a..62ecaa7 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectVersatileTools.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/effects/effects/EffectVersatileTools.kt @@ -17,6 +17,10 @@ class EffectVersatileTools: Effect( @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) fun handle(event: EntityDamageByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.damager if (player !is Player) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksItemsAdder.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksItemsAdder.kt new file mode 100644 index 0000000..13f65a3 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksItemsAdder.kt @@ -0,0 +1,9 @@ +package com.willfp.ecoskills.integrations.customblocks + +import dev.lone.itemsadder.api.CustomBlock + +class CustomBlocksItemsAdder: CustomBlocksWrapper { + override fun exists(id: String): Boolean { + return CustomBlock.getInstance(id) != null + } +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksManager.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksManager.kt new file mode 100644 index 0000000..1095596 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksManager.kt @@ -0,0 +1,4 @@ +package com.willfp.ecoskills.integrations.customblocks + +class CustomBlocksManager { +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksWrapper.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksWrapper.kt new file mode 100644 index 0000000..9ccad31 --- /dev/null +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/integrations/customblocks/CustomBlocksWrapper.kt @@ -0,0 +1,10 @@ +package com.willfp.ecoskills.integrations.customblocks + +interface CustomBlocksWrapper { + /** + * Get if a custom block with that id exists. + * + * @returns true if a custom block with that ID exists, false otherwise. + */ + fun exists(id: String): Boolean +} \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillAlchemy.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillAlchemy.kt index d53b7ce..aa1dc89 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillAlchemy.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillAlchemy.kt @@ -32,6 +32,10 @@ class SkillAlchemy : Skill( @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) fun handleLevelling(event: BrewEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + val player = event.contents.viewers.filterIsInstance().firstOrNull() ?: return if (player.gameMode == GameMode.CREATIVE || player.gameMode == GameMode.SPECTATOR) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillArmory.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillArmory.kt index de21436..b744972 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillArmory.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillArmory.kt @@ -14,6 +14,10 @@ class SkillArmory : Skill( ) { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) fun handleLevelling(event: EntityDamageByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.entity.world.name)) { + return + } + val player = event.entity if (player !is Player) { return diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillCombat.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillCombat.kt index 4597833..84f11f3 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillCombat.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillCombat.kt @@ -15,6 +15,10 @@ class SkillCombat : Skill( ) { @EventHandler(priority = EventPriority.MONITOR) fun handleLevelling(event: EntityDeathByEntityEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.killer.world.name)) { + return + } + val player = event.killer.tryAsPlayer() ?: return if (player.gameMode == GameMode.CREATIVE || player.gameMode == GameMode.SPECTATOR) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillEnchanting.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillEnchanting.kt index 6139f6c..1786870 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillEnchanting.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillEnchanting.kt @@ -13,6 +13,9 @@ class SkillEnchanting : Skill( ) { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) fun handleLevelling(event: EnchantItemEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.enchanter.world.name)) { + return + } val player = event.enchanter val cost = event.expLevelCost diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillExploration.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillExploration.kt index 966f8d7..8c9cec1 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillExploration.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillExploration.kt @@ -16,6 +16,10 @@ class SkillExploration : Skill( ) { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) fun handleLevelling(event: PlayerMoveEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.player.world.name)) { + return + } + val player = event.player if (player.gameMode == GameMode.CREATIVE || player.gameMode == GameMode.SPECTATOR) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFarming.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFarming.kt index 674bbfe..67867dc 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFarming.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFarming.kt @@ -32,6 +32,10 @@ class SkillFarming : Skill( @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) fun handleLevelling(event: BlockBreakEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + val type = event.block.type val player = event.player diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFishing.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFishing.kt index 9a22288..ccaa842 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFishing.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillFishing.kt @@ -13,6 +13,10 @@ class SkillFishing : Skill( ) { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) fun handleLevelling(event: PlayerFishEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.player.world.name)) { + return + } + val player = event.player if (player.gameMode == GameMode.CREATIVE || player.gameMode == GameMode.SPECTATOR) { diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillMining.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillMining.kt index a1aef0d..f6c7209 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillMining.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillMining.kt @@ -31,6 +31,10 @@ class SkillMining : Skill( @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) fun handleLevelling(event: BlockBreakEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + val type = event.block.type val player = event.player diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillWoodcutting.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillWoodcutting.kt index 24c2048..8f87f2e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillWoodcutting.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/skills/skills/SkillWoodcutting.kt @@ -31,6 +31,10 @@ class SkillWoodcutting : Skill( @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) fun handleLevelling(event: BlockBreakEvent) { + if (this.config.getStrings("disabled-worlds").contains(event.block.world.name)) { + return + } + val type = event.block.type val player = event.player diff --git a/eco-core/core-plugin/src/main/resources/effects.yml b/eco-core/core-plugin/src/main/resources/effects.yml index f1ab4cf..c0b8ad3 100644 --- a/eco-core/core-plugin/src/main/resources/effects.yml +++ b/eco-core/core-plugin/src/main/resources/effects.yml @@ -5,11 +5,15 @@ bountiful_harvest: # with a chance to get triple drops. Same goes if above 200, but then it will always be triple with a chance # for quadruple. chance-per-level: 8 + # Disabled worlds + disabled-worlds: [] versatile_tools: description: "&8Deal &a%percent_more%%&8 more damage with pickaxes" # The percent (%) more damage to deal with a pickaxe for each level of the effect. percent-more-per-level: 4 + # Disabled worlds + disabled-worlds: [] eye_of_the_depths: description: "&a%chance%%&8 chance to get rare drops from fishing" @@ -23,6 +27,9 @@ eye_of_the_depths: # etc # For example, a reaper scythe with Razor 4 and Criticals 3 would be: # ecoweapons:reaper_scythe razor:4 criticals:3 + + # Disabled worlds + disabled-worlds: [] rare-loot-items: - enchanted_book confusion:1 - enchanted_book confusion:2 @@ -43,11 +50,15 @@ serrated_strikes: bleed-tick-spacing: 15 # The amount of bleed ticks to give bleed-ticks: 4 + # Disabled worlds + disabled-worlds: [] seamless_movement: description: "&a%chance%%&8 chance to ignore fall damage" # The chance to ignore fall damage, as a percentage chance-per-level: 2 + # Disabled worlds + disabled-worlds: [] potionmaster: description: "&8Brewed potions last &a%percent_more%%&8 longer" @@ -59,16 +70,25 @@ potionmaster: - "" - "&fPotionmaster Buff:" - "&8ยป &f+&e%seconds%&f Seconds" + + # Disabled worlds + disabled-worlds: [] shamanism: description: "&8Heal &a%percent_faster%%&8 faster" # The percent faster regen for each level of the effect percent-faster-per-level: 4 + + # Disabled worlds + disabled-worlds: [] craftsmanship: description: "&8Axes take &a%percent_less%%&8 less durability damage" # 100% is unbreakable percent-less-per-level: 2 + + # Disabled worlds + disabled-worlds: [] second_chance: description: "&8Items have a &a%chance%%&8 chance to instantly repair below &a30&8 durability" @@ -78,21 +98,33 @@ second_chance: # This will follow a binomial distribution where the amount of trials is the durability check (30 by default, see above) # Since this chance will be called many times, it would be best to have this be low. chance-per-level: 0.1 + + # Disabled worlds + disabled-worlds: [] efficient_brewing: description: "&8Potions take &a%seconds_less%&8 less seconds to brew" # The ticks faster brewing time for each level (default is 400) ticks-less-per-level: 6 + + # Disabled worlds + disabled-worlds: [] mystic_resilience: description: "&a%chance%%&8 chance to ignore negative potion effects" # Chance per level as a percentage chance-per-level: 0.1 + + # Disabled worlds + disabled-worlds: [] satiation: description: "&8Lose &a%percent_less%%&8 less hunger" # 100% is no hunger percent-less-hunger-per-level: 2 + + # Disabled worlds + disabled-worlds: [] golden_yield: description: "&a%chance%%&8 chance to get &a5x&8 drops" @@ -101,11 +133,17 @@ golden_yield: # The amount more drops to give drop-multiplier: 5 + + # Disabled worlds + disabled-worlds: [] dodging: description: "&a%chance%%&8 chance to ignore incoming damage" # The chance to ignore damage, as a percentage chance-per-level: 0.5 + + # Disabled worlds + disabled-worlds: [] accelerated_escape: description: "&8Run &a%percent_faster%%&8 faster for &a1.5&8 seconds after taking damage" @@ -114,16 +152,25 @@ accelerated_escape: # The duration to go faster for, in ticks ticks: 30 + + # Disabled worlds + disabled-worlds: [] infernal_resistance: description: "&a%chance%%&8 chance to ignore fire damage" # The chance to ignore damage, as a percentage chance-per-level: 2 + + # Disabled worlds + disabled-worlds: [] bravery: description: "&8Take &a%percent_less%%&8 less damage from bosses" # The percent less damage to take percent-less-per-level: 1.5 + + # Disabled worlds + disabled-worlds: [] dazzle: description: "&a%chance%%&8 chance to give your opponent nausea for &a%seconds%&8 seconds" @@ -133,6 +180,8 @@ dazzle: ticks-per-level: 2 # The chance to give nausea per level, as a percentage chance-per-level: 1.5 + # Disabled worlds + disabled-worlds: [] strong_impact: description: "&a%chance%%&8 chance to deal &a3x&8 damage" @@ -140,11 +189,15 @@ strong_impact: multiplier: 3 # The chance to deal 3x damage, per level chance-per-level: 0.2 + # Disabled worlds + disabled-worlds: [] endangering: description: "&a%chance%%&8 chance to remove your opponents invulnerability frame" # The chance as a percentage chance-per-level: 3 + # Disabled worlds + disabled-worlds: [] spelunking: description: "&a%chance%%&8 to get &a%multiplier%x&8 drops from ores" @@ -172,6 +225,8 @@ spelunking: # with a chance to get triple drops. Same goes if above 200, but then it will always be triple with a chance # for quadruple. chance-per-level: 8 + # Disabled worlds + disabled-worlds: [] dynamic_mining: description: "&a%chance%%&8 chance to get Haste III for &a%seconds%&8 seconds when breaking blocks" @@ -183,16 +238,22 @@ dynamic_mining: chance-per-level: 0.1 # The level of haste to give level: 3 + # Disabled worlds + disabled-worlds: [] reimbursement: description: "&a%chance%%&8 chance to get experience back after enchanting" # The chance to get experience back, as a percentage chance-per-level: 0.5 + # Disabled worlds + disabled-worlds: [] overcompensation: description: "&a%chance%%&8 chance to get lapis back after enchanting" # The chance to get experience back, as a percentage chance-per-level: 0.75 + # Disabled worlds + disabled-worlds: [] master_lumberjack: description: "&a%chance%%&8 to get &a%multiplier%x&8 drops from trees" @@ -217,8 +278,12 @@ master_lumberjack: # with a chance to get triple drops. Same goes if above 200, but then it will always be triple with a chance # for quadruple. chance-per-level: 6 + # Disabled worlds + disabled-worlds: [] magnetic_rod: description: "&8Increases fishing speed by &a%percentage%%" # Speed is as a percentage. - speed-per-level: 5 \ No newline at end of file + speed-per-level: 5 + # Disabled worlds + disabled-worlds: [] \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/skills/alchemy.yml b/eco-core/core-plugin/src/main/resources/skills/alchemy.yml index cf2ecf6..42ea4d9 100644 --- a/eco-core/core-plugin/src/main/resources/skills/alchemy.yml +++ b/eco-core/core-plugin/src/main/resources/skills/alchemy.yml @@ -1,6 +1,7 @@ name: "Alchemy" description: "Brew potions to earn Alchemy XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTExYTNjZWM3YWFmOTA0MjEyY2NmOTNiYjY3YTNjYWYzZDY0OTc4M2JhOTBiOGI2MGJiNjNjNzY4N2ViMzlmIn19fQ==' diff --git a/eco-core/core-plugin/src/main/resources/skills/armory.yml b/eco-core/core-plugin/src/main/resources/skills/armory.yml index 29f3c57..1e965bc 100644 --- a/eco-core/core-plugin/src/main/resources/skills/armory.yml +++ b/eco-core/core-plugin/src/main/resources/skills/armory.yml @@ -1,6 +1,7 @@ name: "Armory" description: "Take damage to earn Armory XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTI2Yjc3MjMyOWNmMzJmODY0M2M0OTI4NjI2YjZhMzI1MjMzZmY2MWFhOWM3NzI1ODczYTRiZDY2ZGIzZDY5MiJ9fX0=' diff --git a/eco-core/core-plugin/src/main/resources/skills/combat.yml b/eco-core/core-plugin/src/main/resources/skills/combat.yml index 479a37c..3fe6d29 100644 --- a/eco-core/core-plugin/src/main/resources/skills/combat.yml +++ b/eco-core/core-plugin/src/main/resources/skills/combat.yml @@ -1,6 +1,8 @@ name: "Combat" description: "Kill mobs to earn Combat XP" max-level: 50 +disabled-worlds: [] +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGVlYmI4YjAzY2QyN2QzNDM1ZTExNTYxNmI4ZWQzNWRjYjQyN2FmNWIwYjFjYzUyNmQzMjY1YTcyZDQ5M2UifX19' diff --git a/eco-core/core-plugin/src/main/resources/skills/enchanting.yml b/eco-core/core-plugin/src/main/resources/skills/enchanting.yml index ba8face..5ab5e4c 100644 --- a/eco-core/core-plugin/src/main/resources/skills/enchanting.yml +++ b/eco-core/core-plugin/src/main/resources/skills/enchanting.yml @@ -1,6 +1,7 @@ name: "Enchanting" description: "Enchant items to earn Enchanting XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjI2NzJjODdlZWY2ODE4ODI4OTE4ZGQzY2EwMzg1NmNjYjQzNjZlN2M5YWMyNjI0YTk0MmYwZGI3ZTk2YSJ9fX0=' diff --git a/eco-core/core-plugin/src/main/resources/skills/exploration.yml b/eco-core/core-plugin/src/main/resources/skills/exploration.yml index 5e166c2..8851f47 100644 --- a/eco-core/core-plugin/src/main/resources/skills/exploration.yml +++ b/eco-core/core-plugin/src/main/resources/skills/exploration.yml @@ -1,6 +1,7 @@ name: "Exploration" description: "Move to earn Exploration XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODQ0OWI5MzE4ZTMzMTU4ZTY0YTQ2YWIwZGUxMjFjM2Q0MDAwMGUzMzMyYzE1NzQ5MzJiM2M4NDlkOGZhMGRjMiJ9fX0=' diff --git a/eco-core/core-plugin/src/main/resources/skills/farming.yml b/eco-core/core-plugin/src/main/resources/skills/farming.yml index 87482ca..0861885 100644 --- a/eco-core/core-plugin/src/main/resources/skills/farming.yml +++ b/eco-core/core-plugin/src/main/resources/skills/farming.yml @@ -1,6 +1,7 @@ name: "Farming" description: "Harvest crops to earn Farming XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjdjMzNjZDBjMTRiYTgzMGRhMTQ5OTA3ZjdhNmFhZTgzNWI2YTM1YWVhMDFlMGNlMDczZmIzYzU5Y2M0NjMyNiJ9fX0=' diff --git a/eco-core/core-plugin/src/main/resources/skills/fishing.yml b/eco-core/core-plugin/src/main/resources/skills/fishing.yml index 9198536..6d90936 100644 --- a/eco-core/core-plugin/src/main/resources/skills/fishing.yml +++ b/eco-core/core-plugin/src/main/resources/skills/fishing.yml @@ -1,6 +1,7 @@ name: "Fishing" description: "Fish to earn Fishing XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRhNzcwYjY4NzRmYWJkMjhhNzM0NTI2YzU3MzlmMGNkNmI2YTk1NDhjYjlkZGI1NmZiMmRjMjVmODQ5NWMxIn19fQ==' diff --git a/eco-core/core-plugin/src/main/resources/skills/mining.yml b/eco-core/core-plugin/src/main/resources/skills/mining.yml index 26680f9..b9dbbf9 100644 --- a/eco-core/core-plugin/src/main/resources/skills/mining.yml +++ b/eco-core/core-plugin/src/main/resources/skills/mining.yml @@ -1,6 +1,7 @@ name: "Mining" description: "Break blocks to earn Mining XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmIxYzI2OGVmZWM4ZDdkODhhMWNiODhjMmJmYTA5N2ZhNTcwMzc5NDIyOTlmN2QyMDIxNTlmYzkzY2QzMDM2ZCJ9fX0=' diff --git a/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml b/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml index 6cb5252..0911072 100644 --- a/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml +++ b/eco-core/core-plugin/src/main/resources/skills/woodcutting.yml @@ -1,6 +1,7 @@ name: "Woodcutting" description: "Cut down trees to earn Woodcutting XP" max-level: 50 +disabled-worlds: [] gui: item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjBjZDEzMjIzYThkOWMxNzNjZWRjZTZjNGJlYmViYTA2YTI0YTFiYTI3NWRkM2ViNWM3OTMzZjlhNzRiYTAxMSJ9fX0='