diff --git a/gradle.properties b/gradle.properties index 79a62715..b959ba08 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,7 +13,7 @@ org.gradle.jvmargs=-Xmx1G loom_version=0.5-SNAPSHOT # Mod Properties - mod_version = 1.1.1 + mod_version = 1.1.2 maven_group = net.barribob archives_base_name = BOMD diff --git a/src/main/kotlin/net/barribob/boss/Main.kt b/src/main/kotlin/net/barribob/boss/Main.kt index 1845c119..16842f58 100644 --- a/src/main/kotlin/net/barribob/boss/Main.kt +++ b/src/main/kotlin/net/barribob/boss/Main.kt @@ -36,6 +36,8 @@ object Mod { @Suppress("unused") fun init() { AutoConfig.register(ModConfig::class.java, ::JanksonConfigSerializer) + AutoConfig.getConfigHolder(ModConfig::class.java).config.postInit() + AutoConfig.getConfigHolder(ModConfig::class.java).save() GeckoLib.initialize() diff --git a/src/main/kotlin/net/barribob/boss/config/LichConfig.kt b/src/main/kotlin/net/barribob/boss/config/LichConfig.kt index 49abc927..f6681c19 100644 --- a/src/main/kotlin/net/barribob/boss/config/LichConfig.kt +++ b/src/main/kotlin/net/barribob/boss/config/LichConfig.kt @@ -38,22 +38,8 @@ class LichConfig { data class SummonMechanic( val isEnabled: Boolean = true, - val entitiesThatCountToSummonCounter: MutableList = mutableListOf( - "minecraft:zombie", - "minecraft:skeleton", - "minecraft:drowned", - "minecraft:giant", - "minecraft:husk", - "minecraft:phantom", - "minecraft:skeleton_horse", - "minecraft:stray", - "minecraft:wither", - "minecraft:wither_skeleton", - "minecraft:zoglin", - "minecraft:zombie_horse", - "minecraft:zombie_villager", - "minecraft:zombified_piglin" - ), + + var entitiesThatCountToSummonCounter: MutableList? = null, @ConfigEntry.BoundedDiscrete(min = 1, max = 1000) val numEntitiesKilledToDropSoulStar: Int = 50 diff --git a/src/main/kotlin/net/barribob/boss/config/ModConfig.kt b/src/main/kotlin/net/barribob/boss/config/ModConfig.kt index 20b38b7f..3dcb5bd7 100644 --- a/src/main/kotlin/net/barribob/boss/config/ModConfig.kt +++ b/src/main/kotlin/net/barribob/boss/config/ModConfig.kt @@ -19,4 +19,31 @@ class ModConfig : ConfigData { @ConfigEntry.Category("Gauntlet") @TransitiveObject val gauntletConfig = GauntletConfig() + + fun postInit() { + val entitiesThatCountToSummonCounter = lichConfig.summonMechanic.entitiesThatCountToSummonCounter + if (entitiesThatCountToSummonCounter == null) { + val defaultEntities = mutableListOf( + "minecraft:zombie", + "minecraft:skeleton", + "minecraft:drowned", + "minecraft:giant", + "minecraft:husk", + "minecraft:phantom", + "minecraft:skeleton_horse", + "minecraft:stray", + "minecraft:wither", + "minecraft:wither_skeleton", + "minecraft:zoglin", + "minecraft:zombie_horse", + "minecraft:zombie_villager", + "minecraft:zombified_piglin" + ) + lichConfig.summonMechanic.entitiesThatCountToSummonCounter = defaultEntities.toMutableList() + } + else { + lichConfig.summonMechanic.entitiesThatCountToSummonCounter = + entitiesThatCountToSummonCounter.toSet().toMutableList() + } + } } \ No newline at end of file diff --git a/src/main/kotlin/net/barribob/boss/mob/mobs/lich/LichKillCounter.kt b/src/main/kotlin/net/barribob/boss/mob/mobs/lich/LichKillCounter.kt index fd006c9d..695bf9d1 100644 --- a/src/main/kotlin/net/barribob/boss/mob/mobs/lich/LichKillCounter.kt +++ b/src/main/kotlin/net/barribob/boss/mob/mobs/lich/LichKillCounter.kt @@ -15,7 +15,7 @@ import net.minecraft.util.Identifier import net.minecraft.util.registry.Registry class LichKillCounter(private val config: LichConfig.SummonMechanic) : ServerEntityCombatEvents.AfterKilledOtherEntity { - private val countedEntities = config.entitiesThatCountToSummonCounter.map { Registry.ENTITY_TYPE[Identifier(it)] } + private val countedEntities = config.entitiesThatCountToSummonCounter?.map { Registry.ENTITY_TYPE[Identifier(it)] } ?: listOf() override fun afterKilledOtherEntity(sWorld: ServerWorld, entity: Entity, killedEntity: LivingEntity) { if (entity is ServerPlayerEntity && killedEntity.type in countedEntities) { diff --git a/src/main/kotlin/net/barribob/boss/utils/InGameTests.kt b/src/main/kotlin/net/barribob/boss/utils/InGameTests.kt index c1342ecb..d08729a9 100644 --- a/src/main/kotlin/net/barribob/boss/utils/InGameTests.kt +++ b/src/main/kotlin/net/barribob/boss/utils/InGameTests.kt @@ -160,7 +160,6 @@ class InGameTests(private val debugPoints: DebugPointsNetworkHandler) { val zombie = EntityType.ZOMBIE.create(source.world) ?: return val pos = source.player.pos.add(VecUtils.yAxis.multiply(-5.0)) zombie.setPos(pos) - if(source.world.getBlockState(BlockPos(pos).up()).block != Blocks.LAVA.defaultState) source.world.setBlockState(BlockPos(pos).up(), Blocks.LAVA.defaultState) source.world.spawnEntity(zombie) ModComponents.getWorldEventScheduler(source.world).addEvent(TimedEvent({ zombie.damage(DamageSource.player(source.player), 30f)