9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2025-12-31 12:56:31 +00:00

Merge pull request #27

Added disabled-worlds option for all skills and effects
This commit is contained in:
Will FP
2022-01-03 13:18:57 +00:00
committed by GitHub
48 changed files with 238 additions and 1 deletions

View File

@@ -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) {

View File

@@ -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
}

View File

@@ -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) {

View File

@@ -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")) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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)

View File

@@ -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
}

View File

@@ -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

View File

@@ -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) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -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) {

View File

@@ -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

View File

@@ -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<Player>().firstOrNull() ?: return
if (player.getEffectLevel(this) == 0) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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) {

View File

@@ -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

View File

@@ -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

View File

@@ -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) {

View File

@@ -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
}

View File

@@ -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)

View File

@@ -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) {

View File

@@ -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
}
}

View File

@@ -0,0 +1,4 @@
package com.willfp.ecoskills.integrations.customblocks
class CustomBlocksManager {
}

View File

@@ -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
}

View File

@@ -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<Player>().firstOrNull() ?: return
if (player.gameMode == GameMode.CREATIVE || player.gameMode == GameMode.SPECTATOR) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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

View File

@@ -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) {

View File

@@ -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

View File

@@ -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

View File

@@ -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:
# <item> <enchantment:level> <enchantment:level> 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
speed-per-level: 5
# Disabled worlds
disabled-worlds: []

View File

@@ -1,6 +1,7 @@
name: "Alchemy"
description: "Brew potions to earn Alchemy XP"
max-level: 50
disabled-worlds: []
gui:
item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTExYTNjZWM3YWFmOTA0MjEyY2NmOTNiYjY3YTNjYWYzZDY0OTc4M2JhOTBiOGI2MGJiNjNjNzY4N2ViMzlmIn19fQ=='

View File

@@ -1,6 +1,7 @@
name: "Armory"
description: "Take damage to earn Armory XP"
max-level: 50
disabled-worlds: []
gui:
item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTI2Yjc3MjMyOWNmMzJmODY0M2M0OTI4NjI2YjZhMzI1MjMzZmY2MWFhOWM3NzI1ODczYTRiZDY2ZGIzZDY5MiJ9fX0='

View File

@@ -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'

View File

@@ -1,6 +1,7 @@
name: "Enchanting"
description: "Enchant items to earn Enchanting XP"
max-level: 50
disabled-worlds: []
gui:
item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNjI2NzJjODdlZWY2ODE4ODI4OTE4ZGQzY2EwMzg1NmNjYjQzNjZlN2M5YWMyNjI0YTk0MmYwZGI3ZTk2YSJ9fX0='

View File

@@ -1,6 +1,7 @@
name: "Exploration"
description: "Move to earn Exploration XP"
max-level: 50
disabled-worlds: []
gui:
item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODQ0OWI5MzE4ZTMzMTU4ZTY0YTQ2YWIwZGUxMjFjM2Q0MDAwMGUzMzMyYzE1NzQ5MzJiM2M4NDlkOGZhMGRjMiJ9fX0='

View File

@@ -1,6 +1,7 @@
name: "Farming"
description: "Harvest crops to earn Farming XP"
max-level: 50
disabled-worlds: []
gui:
item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjdjMzNjZDBjMTRiYTgzMGRhMTQ5OTA3ZjdhNmFhZTgzNWI2YTM1YWVhMDFlMGNlMDczZmIzYzU5Y2M0NjMyNiJ9fX0='

View File

@@ -1,6 +1,7 @@
name: "Fishing"
description: "Fish to earn Fishing XP"
max-level: 50
disabled-worlds: []
gui:
item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGRhNzcwYjY4NzRmYWJkMjhhNzM0NTI2YzU3MzlmMGNkNmI2YTk1NDhjYjlkZGI1NmZiMmRjMjVmODQ5NWMxIn19fQ=='

View File

@@ -1,6 +1,7 @@
name: "Mining"
description: "Break blocks to earn Mining XP"
max-level: 50
disabled-worlds: []
gui:
item: 'player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmIxYzI2OGVmZWM4ZDdkODhhMWNiODhjMmJmYTA5N2ZhNTcwMzc5NDIyOTlmN2QyMDIxNTlmYzkzY2QzMDM2ZCJ9fX0='

View File

@@ -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='