From ee5c987734323031eecdea131651960656615f43 Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Mon, 7 Oct 2024 17:30:33 -0500 Subject: [PATCH 1/8] v4.1.4 b69 * fix issue with chested animals looting all loot upon death --- gradle.properties | 2 +- .../listeners/EntityDeathListener.kt | 30 +-- .../levelledmobs/managers/LevelManager.kt | 180 +++++------------- 3 files changed, 60 insertions(+), 152 deletions(-) diff --git a/gradle.properties b/gradle.properties index 15bd03e2..ca9fce3a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 4.1.3 b68 +version = 4.1.4 b69 description = The Ultimate RPG Mob Levelling Solution \ No newline at end of file diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt index 37982875..f76a9efb 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt @@ -45,12 +45,8 @@ class EntityDeathListener : Listener { damageMappings.remove(event.entity.uniqueId) } - if (event.entity is Player) { - return - } - if (bypassEntity.contains(event.entityType)) { - return - } + if (event.entity is Player) return + if (bypassEntity.contains(event.entityType)) return val main = LevelledMobs.instance val killer = damagingPlayer ?: event.entity.killer @@ -64,9 +60,7 @@ class EntityDeathListener : Listener { lmEntity.associatedPlayer = killer val damage = lmEntity.livingEntity.lastDamageCause - if (damage != null) { - lmEntity.deathCause = damage.cause - } + if (damage != null) lmEntity.deathCause = damage.cause if (killer != null && main.placeholderApiIntegration != null) { main.placeholderApiIntegration!!.putPlayerOrMobDeath( @@ -89,12 +83,8 @@ class EntityDeathListener : Listener { event.drops.clear() disableXpDrops = true } - if (opts.getDisableItemBoost()) { - doNotMultiplyDrops = true - } - if (opts.getDisableXpDrops()) { - doNotBoostXp = true - } + if (opts.getDisableItemBoost()) doNotMultiplyDrops = true + if (opts.getDisableXpDrops()) doNotBoostXp = true } } @@ -120,12 +110,11 @@ class EntityDeathListener : Listener { main.levelManager.setLevelledItemDrops(lmEntity, event.drops, doNotMultiplyDrops) // Set levelled exp drops - if (disableXpDrops) { + if (disableXpDrops) event.droppedExp = 0 - } else if (!doNotBoostXp) { - if (event.droppedExp > 0) { + else if (!doNotBoostXp) { + if (event.droppedExp > 0) event.droppedExp = main.levelManager.getLevelledExpDrops(lmEntity, event.droppedExp.toDouble()) - } } } else if (lmEntity.lockedCustomDrops != null || main.rulesManager.getRuleUseCustomDropsForMob(lmEntity).useDrops) { val drops = mutableListOf() @@ -133,9 +122,8 @@ class EntityDeathListener : Listener { lmEntity, drops, false ) - if (result.hasOverride) { + if (result.hasOverride) main.levelManager.removeVanillaDrops(lmEntity, event.drops) - } event.drops.addAll(drops) } diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt index 4badc3ee..c8a4dfe0 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt @@ -289,24 +289,22 @@ class LevelManager : LevelInterface2 { lmEntity: LivingEntityWrapper, variableToUse: String ): PlayerLevelSourceResult { - if (player == null) { - return PlayerLevelSourceResult(1f) - } + if (player == null) return PlayerLevelSourceResult(1f) val origLevelSource: Float var homeNameUsed = "spawn" - if ("%level%".equals(variableToUse, ignoreCase = true)) { + if ("%level%".equals(variableToUse, ignoreCase = true)) origLevelSource = player.level.toFloat() - } else if ("%exp%".equals(variableToUse, ignoreCase = true)) { + else if ("%exp%".equals(variableToUse, ignoreCase = true)) origLevelSource = player.exp - } else if ("%exp-to-level%".equals(variableToUse, ignoreCase = true)) { + else if ("%exp-to-level%".equals(variableToUse, ignoreCase = true)) origLevelSource = player.expToLevel.toFloat() - } else if ("%total-exp%".equals(variableToUse, ignoreCase = true)) { + else if ("%total-exp%".equals(variableToUse, ignoreCase = true)) origLevelSource = player.totalExperience.toFloat() - } else if ("%world-time-ticks%".equals(variableToUse, ignoreCase = true)) { + else if ("%world-time-ticks%".equals(variableToUse, ignoreCase = true)) origLevelSource = player.world.time.toFloat() - } else if ("%home-distance%".equals(variableToUse, ignoreCase = true) + else if ("%home-distance%".equals(variableToUse, ignoreCase = true) || "%home-distance-with-bed%".equals(variableToUse, ignoreCase = true) ) { val allowBed = "%home-distance-with-bed%".equals(variableToUse, ignoreCase = true) @@ -314,26 +312,23 @@ class LevelManager : LevelInterface2 { val result = ExternalCompatibilityManager.getPlayerHomeLocation( player, allowBed ) - if (result.homeNameUsed != null) { + if (result.homeNameUsed != null) homeNameUsed = result.homeNameUsed!! - } var useLocation = result.location if (useLocation == null || useLocation.world != player.world) { netherOrWorldSpawnResult = Utils.getPortalOrWorldSpawn(player) useLocation = netherOrWorldSpawnResult.location - homeNameUsed = if (netherOrWorldSpawnResult.isWorldPortalLocation) { + homeNameUsed = if (netherOrWorldSpawnResult.isWorldPortalLocation) "world-portal" - } else if (netherOrWorldSpawnResult.isNetherPortalLocation) { + else if (netherOrWorldSpawnResult.isNetherPortalLocation) "nether-portal" - } else { + else "spawn" - } } - if (result.resultMessage != null) { + if (result.resultMessage != null) DebugManager.log(DebugType.PLAYER_LEVELLING, lmEntity) { result.resultMessage } - } origLevelSource = useLocation!!.distance(player.location).toFloat() } else if ("%bed-distance%".equals(variableToUse, ignoreCase = true)) { @@ -341,17 +336,14 @@ class LevelManager : LevelInterface2 { homeNameUsed = "bed" if (useLocation == null || useLocation.world !== player.world) { - val result: PlayerNetherOrWorldSpawnResult = Utils.getPortalOrWorldSpawn( - player - ) + val result = Utils.getPortalOrWorldSpawn(player) useLocation = result.location - homeNameUsed = if (result.isWorldPortalLocation) { + homeNameUsed = if (result.isWorldPortalLocation) "world-portal" - } else if (result.isNetherPortalLocation) { + else if (result.isNetherPortalLocation) "nether-portal" - } else { + else "spawn" - } } origLevelSource = useLocation!!.distance(player.location).toFloat() @@ -369,9 +361,7 @@ class LevelManager : LevelInterface2 { usePlayerLevel = true } } else { - Log.war( - "PlaceHolderAPI is not installed, unable to get variable $variableToUse" - ) + Log.war("PlaceHolderAPI is not installed, unable to get variable $variableToUse" ) usePlayerLevel = true } @@ -405,9 +395,8 @@ class LevelManager : LevelInterface2 { if (maxRandomVariance != null) { sourceResult.randomVarianceResult = ThreadLocalRandom.current().nextInt(0, maxRandomVariance.toInt() + 1).toFloat() - if (ThreadLocalRandom.current().nextBoolean()) { + if (ThreadLocalRandom.current().nextBoolean()) sourceResult.randomVarianceResult = sourceResult.randomVarianceResult!! * -1 - } } sourceResult.homeNameUsed = homeNameUsed @@ -419,7 +408,6 @@ class LevelManager : LevelInterface2 { // if called from summon command then lmEntity is null val main = LevelledMobs.instance - //if (lmInterface is LivingEntityWrapper) lmInterface.invalidateCache() var minLevel = main.rulesManager.getRuleMobMinLevel(lmInterface) var maxLevel = main.rulesManager.getRuleMobMaxLevel(lmInterface) @@ -432,13 +420,14 @@ class LevelManager : LevelInterface2 { // This sets the levelled currentDrops on a levelled mob that just died. fun setLevelledItemDrops( lmEntity: LivingEntityWrapper, - currentDrops: MutableList, disableItemBoost: Boolean + currentDrops: MutableList, + disableItemBoost: Boolean ) { val vanillaDrops = currentDrops.size // this accomodates chested animals, saddles and armor on ridable creatures - val dropsToMultiply = getDropsToMultiply(lmEntity, currentDrops) + //val dropsToMultiply = getDropsToMultiply(lmEntity, currentDrops) val customDrops = mutableListOf() - currentDrops.clear() + //currentDrops.clear() val main = LevelledMobs.instance val doNotMultiplyDrops = disableItemBoost || @@ -453,22 +442,18 @@ class LevelManager : LevelInterface2 { ) val mmInfo = MythicMobUtils.getMythicMobInfo(lmEntity) - if (mmInfo != null && mmInfo.preventOtherDrops) { + if (mmInfo != null && mmInfo.preventOtherDrops) hasOverride = true - } - if (dropResult.hasOverride) { - hasOverride = true - } + if (dropResult.hasOverride) hasOverride = true + //if (hasOverride) removeVanillaDrops(lmEntity) + if (hasOverride) removeVanillaDrops(lmEntity, currentDrops) - if (hasOverride) { - removeVanillaDrops(lmEntity, dropsToMultiply) - } } var additionUsed = 0 - if (!doNotMultiplyDrops && dropsToMultiply.isNotEmpty()) { + if (!doNotMultiplyDrops && currentDrops.isNotEmpty()) { // Get currentDrops added per level valu val additionValue = main.mobDataManager.getAdditionsForLevel( lmEntity, @@ -478,7 +463,7 @@ class LevelManager : LevelInterface2 { DebugManager.log(DebugType.SET_LEVELLED_ITEM_DROPS, lmEntity) { "removing any drops present" } - currentDrops.clear() + removeVanillaDrops(lmEntity, currentDrops) return } @@ -487,11 +472,11 @@ class LevelManager : LevelInterface2 { if (lmEntity.livingEntity.equipment != null){ // make sure we don't multiply anything it has picked up - itemsToNotMultiply.addAll(removePickedUpItems(lmEntity, dropsToMultiply)) + itemsToNotMultiply.addAll(removePickedUpItems(lmEntity, currentDrops)) } // Modify current drops - for (currentDrop in dropsToMultiply) { + for (currentDrop in currentDrops) { var skipItem = false val iterator = itemsToNotMultiply.iterator() while (iterator.hasNext()){ @@ -506,12 +491,8 @@ class LevelManager : LevelInterface2 { } } - if (customDrops.isNotEmpty()) { - currentDrops.addAll(customDrops) - } - if (dropsToMultiply.isNotEmpty()) { - currentDrops.addAll(dropsToMultiply) - } + if (customDrops.isNotEmpty()) currentDrops.addAll(customDrops) + val nameWithOverride = if (hasOverride) " (override), " else "" val additionUsedFinal = additionUsed DebugManager.log(DebugType.SET_LEVELLED_ITEM_DROPS, lmEntity) { @@ -530,10 +511,9 @@ class LevelManager : LevelInterface2 { } val oldAmount = currentDrop.amount - var useAmount = (currentDrop.amount + (currentDrop.amount.toFloat() * addition)).roundToInt() - if (useAmount > currentDrop.maxStackSize) { - useAmount = currentDrop.maxStackSize - } + val useAmount = ((currentDrop.amount + (currentDrop.amount.toFloat() * addition)).roundToInt()) + .coerceAtMost(currentDrop.maxStackSize) + currentDrop.amount = useAmount DebugManager.log(DebugType.SET_LEVELLED_ITEM_DROPS, lmEntity) { "&7Drop: &b${currentDrop.type}&7, old amount: &b$oldAmount&7, addition value: &b$addition&7, " + @@ -541,48 +521,6 @@ class LevelManager : LevelInterface2 { } } - private fun getDropsToMultiply( - lmEntity: LivingEntityWrapper, - drops: MutableList - ): MutableList { - val results = mutableListOf() - results.addAll(drops) - - // we only need to check for chested animals and 'vehicles' since they can have saddles and armor - // those items shouldn't get multiplied - if (lmEntity.livingEntity is ChestedHorse - && (lmEntity.livingEntity as ChestedHorse).isCarryingChest - ) { - val inv = (lmEntity.livingEntity as ChestedHorse).inventory - val chestItems = inv.contents - // look thru the animal's inventory for leather. That is the only item that will get duplicated - for (item in chestItems) { - if (item != null && item.type == Material.LEATHER) { - return mutableListOf(item) - } - } - - // if we made it here it didn't drop leather so don't return anything - results.clear() - return results - } - - if (lmEntity.livingEntity !is Vehicle) { - return results - } - - for (i in results.indices.reversed()) { - // remove horse armor or saddles - val item = results[i] - if (vehicleNoMultiplierItems.contains(item.type)) // saddle or horse armor - { - results.removeAt(i) - } - } - - return results - } - private fun removePickedUpItems( lmEntity: LivingEntityWrapper, drops: MutableList @@ -619,8 +557,10 @@ class LevelManager : LevelInterface2 { && (lmEntity.livingEntity as ChestedHorse).isCarryingChest ) { val inv = (lmEntity.livingEntity as ChestedHorse).inventory - inv.contents.plus(itemsToKeep) itemsToKeep.add(ItemStack(Material.CHEST)) + for (item in inv.contents){ + if (item != null) itemsToKeep.add(item) + } } else if (lmEntity.livingEntity is Vehicle) { for (itemStack in drops) { if (itemStack.type == Material.SADDLE) { @@ -631,23 +571,13 @@ class LevelManager : LevelInterface2 { } if (LevelledMobs.instance.ver.isRunningPaper) { - val pickedUpItems: List = PickedUpEquipment(lmEntity).getMobPickedUpItems() - - for (mobItem in drops) { - for (foundItem in pickedUpItems) { - if (mobItem.isSimilar(foundItem)) { - itemsToKeep.add(mobItem) - break - } - } - } + val pickedUpItems = PickedUpEquipment(lmEntity).getMobPickedUpItems() + itemsToKeep.addAll(pickedUpItems) } drops.clear() drops.addAll(itemsToKeep) - if (hadSaddle) { - drops.add(ItemStack(Material.SADDLE)) - } + if (hadSaddle) drops.add(ItemStack(Material.SADDLE)) } //Calculates the XP dropped when a levellable creature dies. @@ -669,18 +599,16 @@ class LevelManager : LevelInterface2 { return 0 } - if (dropAddition > -1) { - newXp = Math.round(xp + (xp * dropAddition)).toDouble() - } + if (dropAddition > -1) newXp = Math.round(xp + (xp * dropAddition)).toDouble() val newXpFinal = newXp.toInt() DebugManager.log(DebugType.SET_LEVELLED_XP_DROPS, lmEntity) { "xp-vanilla: &b$xp&7, new-xp: &b$newXpFinal&7" } return newXp.toInt() - } else { - return xp.toInt() } + else + return xp.toInt() } fun getNametag( @@ -734,16 +662,14 @@ class LevelManager : LevelInterface2 { val useCustomNameForNametags = main.helperSettings.getBoolean( "use-customname-for-mob-nametags" ) - return if (useCustomNameForNametags) { + return if (useCustomNameForNametags) NametagResult(lmEntity.typeName) - } else { + else { @Suppress("DEPRECATION") NametagResult(lmEntity.livingEntity.customName) // CustomName can be null, that is meant to be the case. } } - if (!lmEntity.isLevelled) { - nametag.text = "" - } + if (!lmEntity.isLevelled) nametag.text = "" return updateNametag(lmEntity, nametag, usePreserveMobName, customDeathMessage) } @@ -786,9 +712,8 @@ class LevelManager : LevelInterface2 { nametag.replace("%health-indicator%", indicatorStr) nametag.replace("%health-indicator-color%", colorOnly) - if (nametag.text.contains("%") && ExternalCompatibilityManager.hasPapiInstalled) { + if (nametag.text.contains("%") && ExternalCompatibilityManager.hasPapiInstalled) nametag.text = ExternalCompatibilityManager.getPapiPlaceholder(lmEntity.associatedPlayer, nametag.text) - } val result = NametagResult(nametag.text) // this field is only used for sending nametags to client @@ -1402,13 +1327,8 @@ class LevelManager : LevelInterface2 { ) { // mob is tamed with a level but the rules don't allow it, remove the level main.levelInterface.removeLevel(lmEntity) - } else if (lmEntity.livingEntity.isValid && - !main.helperSettings.getBoolean( - "use-customname-for-mob-nametags",false - ) && location.world != null && location.world == lmEntity.world && lmEntity.location.distanceSquared( - location - ) <= maxDistance - ) { + } else if (lmEntity.livingEntity.isValid && location.world != null && location.world == lmEntity.world + && lmEntity.location.distanceSquared(location) <= maxDistance) { //if within distance, update nametag. val nametag = main.levelManager.getNametag(lmEntity, isDeathNametag = false, preserveMobName = true) main.nametagQueueManager.addToQueue( From 7833d212899f2a256e14b109437b41758d710a96 Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Sat, 12 Oct 2024 11:24:51 -0500 Subject: [PATCH 2/8] v4.1.4 b70 * fix folia error on startup with 1.21 version * update mappings to support minecraft 1.21.2 --- gradle.properties | 2 +- .../levelledmobs/managers/LevelManager.kt | 4 +-- .../levelledmobs/nametag/Definitions.kt | 26 +++++++++++++++---- 3 files changed, 24 insertions(+), 8 deletions(-) diff --git a/gradle.properties b/gradle.properties index ca9fce3a..84c59b2f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 4.1.4 b69 +version = 4.1.4 b70 description = The Ultimate RPG Mob Levelling Solution \ No newline at end of file diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt index c8a4dfe0..9814c1a2 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt @@ -1062,7 +1062,7 @@ class LevelManager : LevelInterface2 { for (player in Bukkit.getOnlinePlayers()) { if (LevelledMobs.instance.ver.isRunningFolia) { - val test = Runnable { + val runnable = Runnable { if (asyncRunningCount.get() == 0) runNametagCheckASync() } @@ -1080,7 +1080,7 @@ class LevelManager : LevelInterface2 { asyncRunningCount.getAndDecrement() if (asyncRunningCount.get() == 0) runNametagCheckASync() } - player.scheduler.run(LevelledMobs.instance, task, test) + player.scheduler.run(LevelledMobs.instance, task, runnable) } else { val entities = player.getNearbyEntities( checkDistance.toDouble(), diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt index 1364a4c6..9a878908 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt @@ -184,7 +184,7 @@ class Definitions{ // if running folia only use simple name if the version is 1.21+ val useSimpleName = (ver.isRunningPaper && isOneTwentyFiveOrNewer || ver.isRunningFabric) && - (!ver.isRunningFolia || ver.minorVersion >= 21) + (!ver.isRunningFolia || ver.minorVersion >= 22) return if (useSimpleName) { "org.bukkit.craftbukkit.$classSuffix" @@ -319,7 +319,7 @@ class Definitions{ // net.minecraft.network.chat.MutableComponent empty() val methodName = if (ver.minecraftVersion >= 1.20) { - if (ver.revision >= 3) // 1.20.3+ or 1.20.0 - 2 + if (ver.revision >= 3 || ver.minorVersion >= 21 && ver.revision >= 2) // 1.20.3+, 1.20.0 - 2 or 1.21.2+ "i" else "h" } else { // 1.19.0 = g, 1.19.1+ = h @@ -368,7 +368,10 @@ class Definitions{ methodName = when (ver.majorVersionEnum) { MinecraftMajorVersion.V1_21 -> { - "ar" + if (ver.revision >= 2) + "au" + else + "ar" } MinecraftMajorVersion.V1_20 -> { if (ver.revision >= 5) { @@ -415,7 +418,10 @@ class Definitions{ // int getId() -> when (ver.majorVersionEnum) { MinecraftMajorVersion.V1_21 -> { - methodName = "an" + methodName = if (ver.revision >= 2) + "ar" + else + "an" } MinecraftMajorVersion.V1_20 -> { methodName = @@ -549,7 +555,17 @@ class Definitions{ // # {"fileName":"ServerPlayer.java","id":"sourceFile"} // net.minecraft.server.level.ServerPlayer -> // net.minecraft.server.network.ServerGamePacketListenerImpl connection -> - val fieldName = if (ver.minorVersion >= 20) "c" else "b" + val fieldName = when (ver.majorVersionEnum) { + MinecraftMajorVersion.V1_21 -> { + if (ver.revision >= 2) + "f" + else + "c" + } + MinecraftMajorVersion.V1_20 -> "c" + else -> /* 1.19 */ "b" + } + this.fieldConnection = clazzEntityPlayer!!.getDeclaredField(fieldName) if (ver.minorVersion >= 19) { From 4d3e9eec899c37c04ab6d26dc83a5711b3384250 Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Wed, 23 Oct 2024 14:22:04 -0500 Subject: [PATCH 3/8] v4.1.4 b71 * fix stacked multipliers not working --- gradle.properties | 2 +- .../levelledmobs/managers/MobDataManager.kt | 2 +- .../rules/FineTuningAttributes.kt | 19 ++++++++++---- .../levelledmobs/rules/RulesParser.kt | 26 +++++++++++++------ 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/gradle.properties b/gradle.properties index 84c59b2f..43353d74 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 4.1.4 b70 +version = 4.1.4 b71 description = The Ultimate RPG Mob Levelling Solution \ No newline at end of file diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt index 989d0e0c..cd5656fc 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt @@ -325,7 +325,7 @@ class MobDataManager { "'$formulaStr', result: '$multiplierValue'" } } else if (multiplier != null) - multiplierValue = multiplier.value + multiplierValue = multiplier.useValue attributeMax = when (addition) { Addition.ATTRIBUTE_ARMOR_BONUS -> 30.0f diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/FineTuningAttributes.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/FineTuningAttributes.kt index 91dd8d0c..75f4cc86 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/FineTuningAttributes.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/FineTuningAttributes.kt @@ -88,13 +88,16 @@ class FineTuningAttributes : MergableRule, Cloneable { data class Multiplier( val addition: Addition, val useStacked: Boolean, - val value: Float, + val value: Float?, val formula: String?, val isAddition: Boolean ) { val hasFormula: Boolean get() = !this.formula.isNullOrEmpty() + val useValue: Float + get() = value ?: 0f + override fun toString(): String { val sb = StringBuilder() sb.append(getShortName(addition)) @@ -108,9 +111,14 @@ class FineTuningAttributes : MergableRule, Cloneable { sb.append(" (multiply)") } else{ - if (useStacked) sb.append(" (stkd): ") - else sb.append(": ") - sb.append(value) + if (value != null){ + if (useStacked) sb.append(" (stkd): ") + else sb.append(": ") + sb.append(value) + } + else{ + if (useStacked) sb.append(" (stkd)") + } } return sb.toString() @@ -153,7 +161,8 @@ class FineTuningAttributes : MergableRule, Cloneable { if (sb.isNotEmpty()) sb.append(", ") sb.append(getShortName(multiplier.addition)) - sb.append(": ").append(multiplier.value) + if (multiplier.value != null) + sb.append(": ").append(multiplier.value) if (multiplier.hasFormula){ sb.append(multiplier.formula) } diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt index a5b8243b..649f9f21 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt @@ -1526,10 +1526,11 @@ class RulesParser { if (values == null) { val formula = YmlParsingHelper.getString(cs, item) val value = YmlParsingHelper.getFloat2(cs, item, null) + return if (value != null) Multiplier(addition, false, value, null, false) else if (formula != null) - Multiplier(addition, false, 0f, formula, true) + Multiplier(addition, false, null, formula, true) else null } @@ -1544,9 +1545,18 @@ class RulesParser { if (count > 2) break when (obj) { - is Float -> { value = obj } - is Double -> { value = obj.toFloat() } - is Int -> { value = obj.toFloat() } + is Float -> { + value = obj + customFormula = null + } + is Double -> { + value = obj.toFloat() + customFormula = null + } + is Int -> { + value = obj.toFloat() + customFormula = null + } is String -> { if ("formula".equals(obj, ignoreCase = true) || "formula_add".equals(obj, ignoreCase = true)){ @@ -1558,14 +1568,14 @@ class RulesParser { isAddition = false useStacked = false } - else if ("stacked".equals(obj, ignoreCase = true)) { + else if ("stacked".equals(obj, ignoreCase = true)) useStacked = true - } else if (isDouble(obj)) { + else if (isDouble(obj)) value = obj.toFloat() - } + valueStr = obj - customFormula = obj + if (useStacked) customFormula = null } } From 282cb9280ce77d5afcd945a17b53774b7436b194 Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Mon, 28 Oct 2024 14:40:42 -0500 Subject: [PATCH 4/8] v4.1.4 b72 * change construct-level results to use floor calulation instead of rounding to nearest integer * removed various useless roundings from spawn and y levelling strategies --- gradle.properties | 2 +- .../levelledmobs/managers/LevelManager.kt | 2 +- .../rules/strategies/SpawnDistanceStrategy.kt | 13 +++++------ .../rules/strategies/YDistanceStrategy.kt | 22 ++++++++----------- 4 files changed, 16 insertions(+), 23 deletions(-) diff --git a/gradle.properties b/gradle.properties index 43353d74..561c639b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 4.1.4 b71 +version = 4.1.4 b72 description = The Ultimate RPG Mob Levelling Solution \ No newline at end of file diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt index 9814c1a2..5c10e1e2 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt @@ -270,7 +270,7 @@ class LevelManager : LevelInterface2 { throw EvaluationException() } - val result = evalResult.result.roundToInt() + val result = floor(evalResult.result).toInt() DebugManager.log(DebugType.CONSTRUCT_LEVEL, lmEntity){ val msg = if (formula == formulaPre) diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/SpawnDistanceStrategy.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/SpawnDistanceStrategy.kt index 1bb2391f..8fd14c8e 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/SpawnDistanceStrategy.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/SpawnDistanceStrategy.kt @@ -4,10 +4,9 @@ import java.util.concurrent.ThreadLocalRandom import io.github.arcaneplugins.levelledmobs.LevelledMobs import io.github.arcaneplugins.levelledmobs.debug.DebugManager import io.github.arcaneplugins.levelledmobs.debug.DebugType +import io.github.arcaneplugins.levelledmobs.rules.RulesManager import io.github.arcaneplugins.levelledmobs.wrappers.LivingEntityWrapper import org.bukkit.Location -import kotlin.math.ceil -import kotlin.math.floor /** * Holds the configuration and logic for applying a levelling system that is based upon the distance @@ -170,12 +169,10 @@ class SpawnDistanceStrategy : LevellingStrategy, Cloneable{ result = 0f } - result = - if (result < 0f) ceil(result) + spawnDistanceLevelAssignment else floor(result) + spawnDistanceLevelAssignment - val variance = LevelledMobs.instance.rulesManager.getRuleMaxRandomVariance( - lmEntity - ) - if (variance != null && variance > 0f) { + result += spawnDistanceLevelAssignment + val variance = RulesManager.instance.getRuleMaxRandomVariance(lmEntity) + + if (variance != null && variance > 0) { result += ThreadLocalRandom.current().nextInt(0, variance + 1).toFloat() } diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/YDistanceStrategy.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/YDistanceStrategy.kt index 2638f0d9..367982e8 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/YDistanceStrategy.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/strategies/YDistanceStrategy.kt @@ -3,8 +3,6 @@ package io.github.arcaneplugins.levelledmobs.rules.strategies import java.util.concurrent.ThreadLocalRandom import io.github.arcaneplugins.levelledmobs.LevelledMobs import io.github.arcaneplugins.levelledmobs.wrappers.LivingEntityWrapper -import kotlin.math.ceil -import kotlin.math.floor /** * Holds the configuration and logic for applying a levelling system that is based upon the distance @@ -56,12 +54,12 @@ class YDistanceStrategy : LevellingStrategy, Cloneable { minLevel: Int, maxLevel: Int ): Float { - var mobYLocation = lmEntity.livingEntity.location.blockY - val yStart = if (this.startingYLevel == null) 0 else startingYLevel!! - val yEnd = if (this.endingYLevel == null) 0 else endingYLevel!! - val yPeriod = if (this.yPeriod == null) 0.0 else yPeriod!!.toDouble() + var mobYLocation = lmEntity.livingEntity.location.blockY.toFloat() + val yStart = if (this.startingYLevel == null) 0f else startingYLevel!!.toFloat() + val yEnd = if (this.endingYLevel == null) 0f else endingYLevel!!.toFloat() + val yPeriod = if (this.yPeriod == null) 0f else yPeriod!!.toFloat() val useLevel: Float - val diff = (yEnd - yStart).toDouble() + val diff = yEnd - yStart val isDecending = (yStart > yEnd) // make sure the mob location isn't past the end or start @@ -70,15 +68,13 @@ class YDistanceStrategy : LevellingStrategy, Cloneable { else if (!isDecending && mobYLocation > yEnd) mobYLocation = yStart - if (yPeriod != 0.0) { + if (yPeriod != 0f) { val lvlPerPeriod = (maxLevel - minLevel) / (diff / yPeriod) - useLevel = floor( - minLevel + (lvlPerPeriod * (mobYLocation - yStart) / yPeriod) - ).toFloat() + useLevel = minLevel + (lvlPerPeriod * (mobYLocation - yStart) / yPeriod) } else { val useMobYLocation = (mobYLocation - yStart).toDouble() - val percent = useMobYLocation / diff - useLevel = minLevel + ceil((maxLevel - minLevel) * percent).toFloat() + val percent = (useMobYLocation / diff).toFloat() + useLevel = minLevel + (maxLevel - minLevel) * percent } return useLevel From 8608f0cdce072ec4893875974e16f4b1e4bfdd8b Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Wed, 30 Oct 2024 17:31:54 -0500 Subject: [PATCH 5/8] v4.1.4 b73 * Minecraft 1.21.3 compatibility --- gradle.properties | 2 +- levelledmobs-plugin/build.gradle.kts | 4 +- ...-snapshot.jar => CommandAPI-9.6.1-mod.jar} | Bin 688443 -> 705309 bytes .../levelledmobs/MainCompanion.kt | 4 +- .../commands/subcommands/RulesSubcommand.kt | 2 +- .../listeners/EntityDeathListener.kt | 2 +- .../listeners/PlayerInteractEventListener.kt | 94 ++++++------------ .../levelledmobs/managers/LevelManager.kt | 22 ++-- .../levelledmobs/managers/MobDataManager.kt | 43 ++++++-- .../misc/ExternalPluginDetection.kt | 22 ++-- .../levelledmobs/nametag/Definitions.kt | 30 ++++++ .../levelledmobs/nametag/ServerVersionInfo.kt | 9 +- 12 files changed, 134 insertions(+), 100 deletions(-) rename levelledmobs-plugin/lib/{CommandAPI-9.6.0-snapshot.jar => CommandAPI-9.6.1-mod.jar} (74%) diff --git a/gradle.properties b/gradle.properties index 561c639b..1fbb0432 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 4.1.4 b72 +version = 4.1.4 b73 description = The Ultimate RPG Mob Levelling Solution \ No newline at end of file diff --git a/levelledmobs-plugin/build.gradle.kts b/levelledmobs-plugin/build.gradle.kts index a57c8a60..6cd22520 100644 --- a/levelledmobs-plugin/build.gradle.kts +++ b/levelledmobs-plugin/build.gradle.kts @@ -28,7 +28,8 @@ idea { dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib:2.0.20") - compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT") + //compileOnly("org.spigotmc:spigot-api:1.21.3-R0.1-SNAPSHOT") compileOnly("dev.folia:folia-api:1.20.4-R0.1-SNAPSHOT") // https://repo.papermc.io/#browse/browse:maven-public:dev%2Ffolia%2Ffolia-api implementation("com.github.Redempt:Crunch:2.0.3") // https://redempt.dev/com/github/Redempt/Crunch implementation("org.bstats:bstats-bukkit:3.1.0") // https://mvnrepository.com/artifact/org.bstats/bstats-bukkit @@ -50,6 +51,7 @@ repositories { gradlePluginPortal() mavenCentral() mavenLocal() + maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/") maven("https://repo.md-5.net/content/groups/public/") maven("https://repo.papermc.io/repository/maven-public/") maven("https://repo.essentialsx.net/releases/") diff --git a/levelledmobs-plugin/lib/CommandAPI-9.6.0-snapshot.jar b/levelledmobs-plugin/lib/CommandAPI-9.6.1-mod.jar similarity index 74% rename from levelledmobs-plugin/lib/CommandAPI-9.6.0-snapshot.jar rename to levelledmobs-plugin/lib/CommandAPI-9.6.1-mod.jar index 119af799c1571770986a3d635b2c237b0dfc3b1c..fff47f7be07ebe4a827ee54b80f714e0e3f021ea 100644 GIT binary patch delta 132126 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
q*dlV8URX-u05+(gBdmX*TL8Z>`+)}jJB1}*(# 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 XM+j;g2j@KQd0h8&u)IowfN=f~43Cd$ delta 115261 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 J7m#wq{{ewfNSpuw diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt index 4be84fb0..2dde596f 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt @@ -556,8 +556,10 @@ class MainCompanion{ // include interfaces: Animals, WaterMob passiveMobsGroup.addAll(mutableListOf( EntityType.IRON_GOLEM, - EntityType.SNOWMAN )) + val snowGolem = if (versionInfo.useOldEnums) EntityType.valueOf("SNOWMAN") + else EntityType.valueOf("SNOW_GOLEM") + if (versionInfo.minorVersion >= 19) { passiveMobsGroup.addAll(Compat119.getPassiveMobs()) diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/commands/subcommands/RulesSubcommand.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/commands/subcommands/RulesSubcommand.kt index cc449437..6592c781 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/commands/subcommands/RulesSubcommand.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/commands/subcommands/RulesSubcommand.kt @@ -531,7 +531,7 @@ object RulesSubcommand { private fun spawnParticles(location: Location, world: World) { try { for (i in 0..9) { - world.spawnParticle(Particle.SPELL, location, 20, 0.0, 0.0, 0.0, 0.1) + world.spawnParticle(Particle.EFFECT, location, 20, 0.0, 0.0, 0.0, 0.1) Thread.sleep(50) } } catch (ignored: InterruptedException) {} diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt index f76a9efb..af01da0b 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/EntityDeathListener.kt @@ -35,7 +35,7 @@ class EntityDeathListener : Listener { // These entity types will be forced not to be processed private val bypassEntity = mutableListOf( - EntityType.ARMOR_STAND,EntityType.ITEM_FRAME, EntityType.DROPPED_ITEM, EntityType.PAINTING) + EntityType.ARMOR_STAND,EntityType.ITEM_FRAME, EntityType.ITEM_DISPLAY, EntityType.PAINTING) @EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL) fun onDeath(event: EntityDeathEvent) { diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/PlayerInteractEventListener.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/PlayerInteractEventListener.kt index c1db6c46..69627272 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/PlayerInteractEventListener.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/listeners/PlayerInteractEventListener.kt @@ -43,26 +43,21 @@ class PlayerInteractEventListener : MessagesBase(), Listener { @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) fun onPlayerInteractEvent(event: PlayerInteractEvent) { - if (event.action != Action.RIGHT_CLICK_BLOCK) { + if (event.action != Action.RIGHT_CLICK_BLOCK) return - } commandSender = event.player messageLabel = "lm" if (event.material.name.lowercase(Locale.getDefault()).endsWith("_spawn_egg")) { - if (processLMSpawnEgg(event)) { - return - } + if (processLMSpawnEgg(event)) return } val main = LevelledMobs.instance - if (main.mainCompanion.spawnerInfoIds.isEmpty() && main.mainCompanion.spawnerCopyIds.isEmpty()) { + if (main.mainCompanion.spawnerInfoIds.isEmpty() && main.mainCompanion.spawnerCopyIds.isEmpty()) return - } - if (event.hand == null || event.hand != EquipmentSlot.HAND) { - return - } + + if (event.hand == null || event.hand != EquipmentSlot.HAND) return val doShowInfo: Boolean = main.mainCompanion.spawnerInfoIds.contains( event.player.uniqueId @@ -71,44 +66,35 @@ class PlayerInteractEventListener : MessagesBase(), Listener { event.player.uniqueId ) - if (!doCopy && !doShowInfo) { - return - } + if (!doCopy && !doShowInfo) return + if (event.clickedBlock == null || event.clickedBlock!!.type != Material.SPAWNER - ) { - return - } + ) return val uuid = event.player.uniqueId val point = Point(event.clickedBlock!!.location) if (cooldownMap.containsKey(uuid)) { if (cooldownMap[uuid]!!.doesCooldownBelongToIdentifier(point.toString())) { - if (!cooldownMap[uuid]!!.hasCooldownExpired(2)) { - return - } + if (!cooldownMap[uuid]!!.hasCooldownExpired(2)) return } cooldownMap.remove(uuid) } cooldownMap[uuid] = Cooldown(System.currentTimeMillis(), point.toString()) val cs = event.clickedBlock!!.state as CreatureSpawner - if (doShowInfo) { + if (doShowInfo) showInfo(event.player, cs) - } else if (event.material == Material.AIR) { + else if (event.material == Material.AIR) copySpawner(event.player, cs) - } } private fun processLMSpawnEgg(event: PlayerInteractEvent): Boolean { val main = LevelledMobs.instance - if (!main.ver.isRunningPaper) { - return false - } - if (event.item == null) { - return false - } + if (!main.ver.isRunningPaper) return false + if (event.item == null) return false + val meta = event.item!!.itemMeta ?: return false if (event.clickedBlock == null) { return false @@ -174,9 +160,7 @@ class PlayerInteractEventListener : MessagesBase(), Listener { .get(NamespacedKeys.keySpawnerCustomName, PersistentDataType.STRING) } - if (eggName.isNullOrEmpty()) { - eggName = "LM Spawn Egg" - } + if (eggName.isNullOrEmpty()) eggName = "LM Spawn Egg" if (event.clickedBlock!!.blockData.material == Material.SPAWNER) { val info = CustomSpawnerInfo() @@ -203,9 +187,8 @@ class PlayerInteractEventListener : MessagesBase(), Listener { val entity = location.world .spawnEntity(location, spawnType, CreatureSpawnEvent.SpawnReason.SPAWNER_EGG) - if (entity !is LivingEntity) { + if (entity !is LivingEntity) return true - } val lmEntity = LivingEntityWrapper.getInstance(entity) @@ -245,9 +228,7 @@ class PlayerInteractEventListener : MessagesBase(), Listener { event: PlayerInteractEvent, info: CustomSpawnerInfo ) { - if (event.clickedBlock == null) { - return - } + if (event.clickedBlock == null) return if (!event.player.hasPermission("levelledmobs.convert-spawner")) { showMessage("command.levelledmobs.spawner.permission-denied") @@ -281,9 +262,8 @@ class PlayerInteractEventListener : MessagesBase(), Listener { cs.spawnedType = info.spawnType cs.update() - if (info.customName.isNullOrEmpty()) { + if (info.customName.isNullOrEmpty()) info.customName = "LM Spawner" - } if (!wasLMSpawner) { showMessage( @@ -303,11 +283,10 @@ class PlayerInteractEventListener : MessagesBase(), Listener { pdc: PersistentDataContainer, value: String? ) { - if (!value.isNullOrEmpty()) { + if (!value.isNullOrEmpty()) pdc.set(key, PersistentDataType.STRING, value) - } else if (pdc.has(key, PersistentDataType.STRING)) { + else if (pdc.has(key, PersistentDataType.STRING)) pdc.remove(key) - } } private fun copySpawner(player: Player, cs: CreatureSpawner) { @@ -337,22 +316,18 @@ class PlayerInteractEventListener : MessagesBase(), Listener { NamespacedKeys.keySpawnerMinLevel, PersistentDataType.INTEGER ) - if (minLevel != null) { - info.minLevel = minLevel - } + if (minLevel != null) info.minLevel = minLevel } if (pdc.has(NamespacedKeys.keySpawnerMaxLevel, PersistentDataType.INTEGER)) { val maxLevel = pdc.get( NamespacedKeys.keySpawnerMaxLevel, PersistentDataType.INTEGER ) - if (maxLevel != null) { + if (maxLevel != null) info.maxLevel = maxLevel - } } - if (pdc.has(NamespacedKeys.keySpawnerLore, PersistentDataType.STRING)) { + if (pdc.has(NamespacedKeys.keySpawnerLore, PersistentDataType.STRING)) info.lore = pdc.get(NamespacedKeys.keySpawnerLore, PersistentDataType.STRING) - } info.spawnType = cs.spawnedType!! info.minSpawnDelay = cs.minSpawnDelay @@ -417,17 +392,14 @@ class PlayerInteractEventListener : MessagesBase(), Listener { pdc: PersistentDataContainer, sb: StringBuilder ) { - if (!pdc.has(key, PersistentDataType.INTEGER)) { - return - } + if (!pdc.has(key, PersistentDataType.INTEGER)) return - if (sb.substring(sb.length - 1) != "\n") { + if (sb.substring(sb.length - 1) != "\n") sb.append(", ") - } sb.append("&7").append(name).append(": &b") - sb.append(pdc.get(key, PersistentDataType.INTEGER)) - sb.append("&r") + .append(pdc.get(key, PersistentDataType.INTEGER)!!) + .append("&r") } private fun addSpawnerAttributeFromPdcStr( @@ -435,16 +407,14 @@ class PlayerInteractEventListener : MessagesBase(), Listener { pdc: PersistentDataContainer, sb: StringBuilder ) { - if (!pdc.has(key, PersistentDataType.STRING)) { + if (!pdc.has(key, PersistentDataType.STRING)) return - } - if (sb.substring(sb.length - 1) != "\n") { + if (sb.substring(sb.length - 1) != "\n") sb.append(", ") - } sb.append("&7custom drop id: &b") - sb.append(pdc.get(key, PersistentDataType.STRING)).append("&r") + .append(pdc.get(key, PersistentDataType.STRING)).append("&r") } private fun addSpawnerAttribute( @@ -452,9 +422,9 @@ class PlayerInteractEventListener : MessagesBase(), Listener { value: Any, sb: StringBuilder ) { - if (sb.substring(sb.length - 1) != "\n") { + if (sb.substring(sb.length - 1) != "\n") sb.append(", ") - } + sb.append("&7").append(name).append(": &b").append(value).append("&r") } } \ No newline at end of file diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt index 5c10e1e2..ad85f85a 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt @@ -137,20 +137,20 @@ class LevelManager : LevelInterface2 { this.forcedBlockedEntityTypes.addAll( mutableListOf( EntityType.AREA_EFFECT_CLOUD, EntityType.ARMOR_STAND, EntityType.ARROW, EntityType.BOAT, - EntityType.DRAGON_FIREBALL, EntityType.DROPPED_ITEM, EntityType.EGG, - EntityType.ENDER_CRYSTAL, - EntityType.ENDER_PEARL, EntityType.ENDER_SIGNAL, EntityType.EXPERIENCE_ORB, + EntityType.DRAGON_FIREBALL, EntityType.ITEM_DISPLAY, EntityType.EGG, + EntityType.END_CRYSTAL, + EntityType.ENDER_PEARL, EntityType.EYE_OF_ENDER, EntityType.EXPERIENCE_ORB, EntityType.FALLING_BLOCK, - EntityType.FIREBALL, EntityType.FIREWORK, EntityType.FISHING_HOOK, - EntityType.ITEM_FRAME, EntityType.LEASH_HITCH, EntityType.LIGHTNING, + EntityType.FIREBALL, EntityType.FIREWORK_ROCKET, EntityType.FISHING_BOBBER, + EntityType.ITEM_FRAME, EntityType.LEASH_KNOT, EntityType.LIGHTNING_BOLT, EntityType.LLAMA_SPIT, - EntityType.MINECART, EntityType.MINECART_CHEST, EntityType.MINECART_COMMAND, - EntityType.MINECART_FURNACE, - EntityType.MINECART_HOPPER, EntityType.MINECART_MOB_SPAWNER, EntityType.MINECART_TNT, + EntityType.MINECART, EntityType.CHEST_MINECART, EntityType.COMMAND_BLOCK_MINECART, + EntityType.FURNACE_MINECART, + EntityType.HOPPER_MINECART, EntityType.SPAWNER_MINECART, EntityType.TNT_MINECART, EntityType.PAINTING, - EntityType.PRIMED_TNT, EntityType.SMALL_FIREBALL, EntityType.SNOWBALL, + EntityType.TNT, EntityType.SMALL_FIREBALL, EntityType.SNOWBALL, EntityType.SPECTRAL_ARROW, - EntityType.SPLASH_POTION, EntityType.THROWN_EXP_BOTTLE, EntityType.TRIDENT, + EntityType.POTION, EntityType.EXPERIENCE_BOTTLE, EntityType.TRIDENT, EntityType.UNKNOWN, EntityType.WITHER_SKULL, EntityType.SHULKER_BULLET, EntityType.PLAYER ) @@ -1435,7 +1435,7 @@ class LevelManager : LevelInterface2 { Addition.ATTRIBUTE_MAX_HEALTH -> attribute = Attribute.GENERIC_MAX_HEALTH Addition.ATTRIBUTE_ATTACK_DAMAGE -> attribute = Attribute.GENERIC_ATTACK_DAMAGE Addition.ATTRIBUTE_MOVEMENT_SPEED -> attribute = Attribute.GENERIC_MOVEMENT_SPEED - Addition.ATTRIBUTE_HORSE_JUMP_STRENGTH -> attribute = Attribute.HORSE_JUMP_STRENGTH + Addition.ATTRIBUTE_HORSE_JUMP_STRENGTH -> attribute = Attribute.GENERIC_JUMP_STRENGTH Addition.ATTRIBUTE_ARMOR_BONUS -> attribute = Attribute.GENERIC_ARMOR Addition.ATTRIBUTE_ARMOR_TOUGHNESS -> attribute = Attribute.GENERIC_ARMOR_TOUGHNESS Addition.ATTRIBUTE_KNOCKBACK_RESISTANCE -> attribute = Attribute.GENERIC_KNOCKBACK_RESISTANCE diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt index cd5656fc..cc006c36 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt @@ -75,7 +75,12 @@ class MobDataManager { fun populateAttributeCache(lmEntity: LivingEntityWrapper, whichOnes: MutableList? = null){ val result = mutableMapOf() - val useList = whichOnes ?: Attribute.entries + @Suppress("UNCHECKED_CAST") + val useList: MutableList = whichOnes + ?: if (LevelledMobs.instance.ver.useOldEnums) + Attribute.entries.toMutableList() + else + (LevelledMobs.instance.definitions.methodAttributeValues!!.invoke(null) as Array).toMutableList() for (attribute in useList){ val attribInstance = lmEntity.livingEntity.getAttribute(attribute) @@ -168,12 +173,24 @@ class MobDataManager { else AttributeModifier.Operation.MULTIPLY_SCALAR_1 - val mod = AttributeModifier( - attribute.name, additionValue.toDouble(), modifierOperation - ) + @Suppress("removal", "DEPRECATION") + val mod: AttributeModifier = if (LevelledMobs.instance.ver.useOldEnums) + AttributeModifier(attribute.name, additionValue.toDouble(), modifierOperation) + else{ + val equipmentSlotGroupANY = LevelledMobs.instance.definitions.fieldEQuipmentSlotAny!!.get(null) + LevelledMobs.instance.definitions.ctorAttributeModifier!!.newInstance( + attribute.key, additionValue.toDouble(), modifierOperation, equipmentSlotGroupANY + ) as AttributeModifier + } // if zombified piglins get this attribute applied, they will spawn in zombies in the nether - if (attribute == Attribute.ZOMBIE_SPAWN_REINFORCEMENTS + + // 1.21.3 renamed ZOMBIE_SPAWN_REINFORCEMENTS to SPAWN_REINFORCEMENTS + val spawnReinforcements = + if (LevelledMobs.instance.ver.useOldEnums) Attribute.ZOMBIE_SPAWN_REINFORCEMENTS.toString() + else Attribute.valueOf("SPAWN_REINFORCEMENTS") + + if (attribute.toString() == spawnReinforcements && lmEntity.entityType == EntityType.ZOMBIFIED_PIGLIN ) { return null @@ -196,15 +213,23 @@ class MobDataManager { val attrib = lmEntity.livingEntity.getAttribute(info.attribute) ?: return // if zombified piglins get this attribute applied, they will spawn in zombies in the nether - if (info.attribute == Attribute.ZOMBIE_SPAWN_REINFORCEMENTS + // 1.21.3 renamed ZOMBIE_SPAWN_REINFORCEMENTS to SPAWN_REINFORCEMENTS + val spawnReinforcements = if (LevelledMobs.instance.ver.useOldEnums) Attribute.ZOMBIE_SPAWN_REINFORCEMENTS.toString() + else Attribute.valueOf("SPAWN_REINFORCEMENTS") + + if (info.attribute.toString() == spawnReinforcements && lmEntity.entityType == EntityType.ZOMBIFIED_PIGLIN ) { return } + val genericMaxHealth = + if (LevelledMobs.instance.ver.useOldEnums) Attribute.GENERIC_MAX_HEALTH + else Attribute.valueOf("MAX_HEALTH") var hasExistingDamage = false var existingDamagePercent = 0f - if (info.attribute == Attribute.GENERIC_MAX_HEALTH){ + + if (info.attribute == genericMaxHealth){ val maxHealth = lmEntity.livingEntity.getAttribute(info.attribute) if (maxHealth != null){ val existingDamage = maxHealth.value - lmEntity.livingEntity.health @@ -219,12 +244,12 @@ class MobDataManager { attrib.addModifier(info.attributeModifier) DebugManager.log(DebugType.APPLY_MULTIPLIERS, lmEntity) { - "attrib: ${info.attribute.name}, base: ${Utils.round(attrib.baseValue, 3)}, " + + "attrib: ${info.attribute}, base: ${Utils.round(attrib.baseValue, 3)}, " + "addtion: ${Utils.round(additionValue.toDouble(), 3)}" } // MAX_HEALTH specific: set health to max health - if (info.attribute == Attribute.GENERIC_MAX_HEALTH) { + if (info.attribute == genericMaxHealth) { val newHealth = if (hasExistingDamage) (attrib.value * existingDamagePercent).toFloat() else diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/misc/ExternalPluginDetection.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/misc/ExternalPluginDetection.kt index 74d379b1..16476e37 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/misc/ExternalPluginDetection.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/misc/ExternalPluginDetection.kt @@ -105,17 +105,17 @@ class ExternalPluginDetection( when (keyValueType){ null, "" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.STRING) } - "double" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.DOUBLE).toString() } - "integer", "int" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.INTEGER).toString() } - "byte_array" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.BYTE_ARRAY).toString() } - "byte" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.BYTE).toString() } - "boolean", "bool" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.BOOLEAN).toString() } - "float" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.FLOAT).toString() } - "integer_array" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.INTEGER_ARRAY).toString() } - "long" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.LONG).toString() } - "long_array" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.LONG_ARRAY).toString() } - "short" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.SHORT).toString() } - "tag_container" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.TAG_CONTAINER).toString() } + "double" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.DOUBLE)?.toString() } + "integer", "int" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.INTEGER)?.toString() } + "byte_array" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.BYTE_ARRAY)?.toString() } + "byte" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.BYTE)?.toString() } + "boolean", "bool" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.BOOLEAN)?.toString() } + "float" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.FLOAT)?.toString() } + "integer_array" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.INTEGER_ARRAY)?.toString() } + "long" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.LONG)?.toString() } + "long_array" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.LONG_ARRAY)?.toString() } + "short" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.SHORT)?.toString() } + "tag_container" -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.TAG_CONTAINER)?.toString() } else -> { keyValue = lmEntity.pdc.get(namespaceKey, PersistentDataType.STRING) } diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt index 9a878908..182f3a29 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt @@ -9,6 +9,9 @@ import java.util.UUID import net.kyori.adventure.text.Component import net.kyori.adventure.text.minimessage.MiniMessage import org.bukkit.Bukkit +import org.bukkit.NamespacedKey +import org.bukkit.attribute.Attribute +import org.bukkit.attribute.AttributeModifier import org.bukkit.entity.LivingEntity /** @@ -56,6 +59,7 @@ class Definitions{ var clazzPaperAdventure: Class<*>? = null private set private var clazzEntityTypes: Class<*>? = null + var clazzEquipmentSlotGroup: Class<*>? = null // mythic mobs: private var clazzMMmobExecutor: Class<*>? = null @@ -109,6 +113,8 @@ class Definitions{ private set var methodDataWatcherItemValue: Method? = null private set + var methodAttributeValues: Method? = null + private set // mythic mobs: var methodMMgetActiveMob: Method? = null @@ -123,6 +129,8 @@ class Definitions{ private set var fieldInt2ObjectMap: Field? = null private set + var fieldEQuipmentSlotAny: Field? = null + private set // mythic mobs: var fieldMMmobManager: Field? = null @@ -145,6 +153,7 @@ class Definitions{ private set var ctorPacket: Constructor<*>? = null private set + var ctorAttributeModifier: Constructor<*>? = null fun load(){ ver = LevelledMobs.instance.ver @@ -293,6 +302,12 @@ class Definitions{ "net.minecraft.world.entity.EntityTypes" ) + if (!ver.useOldEnums){ + this.clazzEquipmentSlotGroup = Class.forName( + "org.bukkit.inventory.EquipmentSlotGroup" + ) + } + if (hasKiori) { try { Class.forName("net.kyori.adventure.text.minimessage.MiniMessage") @@ -542,6 +557,11 @@ class Definitions{ // net.minecraft.network.syncher.SynchedEntityData$DataValue value() -> this.methodDataWatcherItemValue = clazzDataWatcherItem!!.getDeclaredMethod("e") } + + if (!ver.useOldEnums){ + // static Attribute[] values() + methodAttributeValues = Attribute::class.java.getDeclaredMethod("values") + } } @Throws(NoSuchFieldException::class) @@ -581,6 +601,9 @@ class Definitions{ this.fieldInt2ObjectMap = clazzDataWatcher!!.getDeclaredField(methodName) fieldInt2ObjectMap!!.setAccessible(true) } + + if (!ver.useOldEnums) + fieldEQuipmentSlotAny = clazzEquipmentSlotGroup!!.getDeclaredField("ANY") } @Throws(NoSuchMethodException::class) @@ -607,6 +630,13 @@ class Definitions{ Int::class.javaPrimitiveType, clazzDataWatcher, Boolean::class.javaPrimitiveType ) } + + if (!ver.useOldEnums){ + // AttributeModifier(attribute.key, additionValue.toDouble(), modifierOperation, EquipmentSlotGroup.ANY) + this.ctorAttributeModifier = AttributeModifier::class.java.getConstructor( + NamespacedKey::class.java, Double::class.java, AttributeModifier.Operation::class.java, clazzEquipmentSlotGroup + ) + } } @Throws(NoSuchMethodException::class, NoSuchFieldException::class, ClassNotFoundException::class) diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/ServerVersionInfo.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/ServerVersionInfo.kt index f1312ccc..84aa6f25 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/ServerVersionInfo.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/ServerVersionInfo.kt @@ -30,6 +30,8 @@ class ServerVersionInfo { var minecraftVersion = 0.0 private set private var isOneTwentyFiveOrNewer = false + var useOldEnums = false + private set // preliminary fabric support. not entirely there yet private var _isRunningFabric: Boolean? = null @@ -45,11 +47,14 @@ class ServerVersionInfo { if (isRunningPaper) parsePaperVersion() + if (!isRunningPaper || !isOneTwentyFiveOrNewer) + parseBukkitVersion() + isOneTwentyFiveOrNewer = minorVersion == 20 && revision >= 5 || minorVersion >= 21 - if (!isRunningPaper || !isOneTwentyFiveOrNewer) - parseBukkitVersion() + // 1.21.3 changed various enums to interfaces + useOldEnums = minorVersion < 21 || minorVersion == 21 && revision < 3 } private fun parsePaperVersion(){ From c0b0e0b34dc041b852d70841d1ec4147fd7e9da3 Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Tue, 5 Nov 2024 09:48:08 -0600 Subject: [PATCH 6/8] v4.1.4 b74 * update checker now uses Hangar API instead of spigotmc. also the build numbers will be displayed when the checker is run among other update checker improvements --- levelledmobs-plugin/build.gradle.kts | 3 +- .../levelledmobs/MainCompanion.kt | 30 +++++++++++-------- .../levelledmobs/managers/LevelManager.kt | 2 +- .../levelledmobs/managers/MobDataManager.kt | 2 +- .../levelledmobs/nametag/Definitions.kt | 4 +-- .../levelledmobs/util/UpdateChecker.kt | 24 +++++++++------ 6 files changed, 38 insertions(+), 27 deletions(-) diff --git a/levelledmobs-plugin/build.gradle.kts b/levelledmobs-plugin/build.gradle.kts index 6cd22520..f1c6e2c7 100644 --- a/levelledmobs-plugin/build.gradle.kts +++ b/levelledmobs-plugin/build.gradle.kts @@ -28,8 +28,7 @@ idea { dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib:2.0.20") - compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT") - //compileOnly("org.spigotmc:spigot-api:1.21.3-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.21.3-R0.1-SNAPSHOT") compileOnly("dev.folia:folia-api:1.20.4-R0.1-SNAPSHOT") // https://repo.papermc.io/#browse/browse:maven-public:dev%2Ffolia%2Ffolia-api implementation("com.github.Redempt:Crunch:2.0.3") // https://redempt.dev/com/github/Redempt/Crunch implementation("org.bstats:bstats-bukkit:3.1.0") // https://mvnrepository.com/artifact/org.bstats/bstats-bukkit diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt index 2dde596f..f2041402 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/MainCompanion.kt @@ -434,27 +434,32 @@ class MainCompanion{ } } - //Check for updates on the Spigot page. + // check for updates on the Hangar page. fun checkUpdates() { val main = LevelledMobs.instance if (main.helperSettings.getBoolean("use-update-checker", true)) { - val updateChecker = UpdateChecker(main, 74304) + val updateChecker = UpdateChecker(main, "LevelledMobs") try { - updateChecker.getLatestVersion { latestVersion: String -> - val currentVersion = - updateChecker.currentVersion.split(" ".toRegex()).dropLastWhile { it.isEmpty() } - .toTypedArray()[0] + updateChecker.getLatestVersion { latestVersionFull: String? -> + val currentVersion = updateChecker.currentVersion.split(" ")[0] val thisVersion: VersionInfo - val spigotVersion: VersionInfo + val hangarVersion: VersionInfo var isOutOfDate: Boolean var isNewerVersion: Boolean + if (latestVersionFull == null){ + Log.war("Unable to retreive latest version, string was null") + return@getLatestVersion + } + + val latestVersion = latestVersionFull.split("-")[0] + try { thisVersion = VersionInfo(currentVersion) - spigotVersion = VersionInfo(latestVersion) + hangarVersion = VersionInfo(latestVersion) - isOutOfDate = (thisVersion < spigotVersion) - isNewerVersion = (thisVersion > spigotVersion) + isOutOfDate = (thisVersion < hangarVersion) + isNewerVersion = (thisVersion > hangarVersion) } catch (e: InvalidObjectException) { Log.war("Got exception creating version objects: ${e.message}") @@ -467,10 +472,10 @@ class MainCompanion{ ) updateResult = replaceAllInList( - updateResult, "%currentVersion%", currentVersion + updateResult, "%currentVersion%", updateChecker.currentVersion ) updateResult = replaceAllInList( - updateResult, "%latestVersion%", latestVersion + updateResult, "%latestVersion%", latestVersionFull.replace("-", " ") ) updateResult = colorizeAllInList(updateResult) @@ -560,6 +565,7 @@ class MainCompanion{ val snowGolem = if (versionInfo.useOldEnums) EntityType.valueOf("SNOWMAN") else EntityType.valueOf("SNOW_GOLEM") + passiveMobsGroup.add(snowGolem) if (versionInfo.minorVersion >= 19) { passiveMobsGroup.addAll(Compat119.getPassiveMobs()) diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt index ad85f85a..b507dd5b 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt @@ -136,7 +136,7 @@ class LevelManager : LevelInterface2 { this.forcedBlockedEntityTypes.addAll( mutableListOf( - EntityType.AREA_EFFECT_CLOUD, EntityType.ARMOR_STAND, EntityType.ARROW, EntityType.BOAT, + EntityType.AREA_EFFECT_CLOUD, EntityType.ARMOR_STAND, EntityType.ARROW, EntityType.DRAGON_FIREBALL, EntityType.ITEM_DISPLAY, EntityType.EGG, EntityType.END_CRYSTAL, EntityType.ENDER_PEARL, EntityType.EYE_OF_ENDER, EntityType.EXPERIENCE_ORB, diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt index cc006c36..7b995410 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/MobDataManager.kt @@ -177,7 +177,7 @@ class MobDataManager { val mod: AttributeModifier = if (LevelledMobs.instance.ver.useOldEnums) AttributeModifier(attribute.name, additionValue.toDouble(), modifierOperation) else{ - val equipmentSlotGroupANY = LevelledMobs.instance.definitions.fieldEQuipmentSlotAny!!.get(null) + val equipmentSlotGroupANY = LevelledMobs.instance.definitions.fieldEquipmentSlotAny!!.get(null) LevelledMobs.instance.definitions.ctorAttributeModifier!!.newInstance( attribute.key, additionValue.toDouble(), modifierOperation, equipmentSlotGroupANY ) as AttributeModifier diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt index 182f3a29..02c5d1c7 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/nametag/Definitions.kt @@ -129,7 +129,7 @@ class Definitions{ private set var fieldInt2ObjectMap: Field? = null private set - var fieldEQuipmentSlotAny: Field? = null + var fieldEquipmentSlotAny: Field? = null private set // mythic mobs: @@ -603,7 +603,7 @@ class Definitions{ } if (!ver.useOldEnums) - fieldEQuipmentSlotAny = clazzEquipmentSlotGroup!!.getDeclaredField("ANY") + fieldEquipmentSlotAny = clazzEquipmentSlotGroup!!.getDeclaredField("ANY") } @Throws(NoSuchMethodException::class) diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/UpdateChecker.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/UpdateChecker.kt index 372cb05b..59f93764 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/UpdateChecker.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/UpdateChecker.kt @@ -1,11 +1,11 @@ package io.github.arcaneplugins.levelledmobs.util -import java.io.IOException import java.io.InputStream -import java.net.URL import java.util.Scanner import java.util.function.Consumer import io.github.arcaneplugins.levelledmobs.wrappers.SchedulerWrapper +import java.io.FileNotFoundException +import java.net.URI import org.bukkit.plugin.java.JavaPlugin /** @@ -13,11 +13,11 @@ import org.bukkit.plugin.java.JavaPlugin * * @author lokka30 * @see UpdateChecker#getLatestVersion(Consumer) - * @since unknown + * @since 1.9 */ class UpdateChecker( private var plugin: JavaPlugin, - private var resourceId: Int + private var resourceName: String ) { /** @@ -27,20 +27,26 @@ class UpdateChecker( * @since unknown */ fun getLatestVersion( - consumer: Consumer + consumer: Consumer ) { val scheduler = SchedulerWrapper { checkVersion(consumer) } scheduler.run() } private fun checkVersion( - consumer: Consumer + consumer: Consumer ) { val inputStream: InputStream try { - inputStream = URL("https://api.spigotmc.org/legacy/update.php?resource=" + this.resourceId).openStream() - } catch (e: IOException) { - e.printStackTrace() + inputStream = URI ("https://hangar.papermc.io/api/v1/projects/$resourceName/latest?channel=Release") + .toURL().openStream() + } + catch (e: FileNotFoundException) { + Log.war("Error checking for latest version, file not found: ${e.message}") + return + } + catch (e: Exception) { + Log.war("Error checking for latest version. ${e.message}") return } From db5d3cfac38370732d07a24951f3eb52bf31b321 Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Thu, 7 Nov 2024 10:24:58 -0600 Subject: [PATCH 7/8] v4.1.4 b75 * fix Minecraft versions older than 1.21 broken since b73 * use new Paper 1.21 APIs for enchantments and structures * improve custom drops debug message when enchantments are used --- gradle.properties | 2 +- .../customdrops/CustomDropsParser.kt | 27 ++++--- .../levelledmobs/managers/LevelManager.kt | 72 +++++++++++++++---- .../levelledmobs/rules/RulesParser.kt | 18 ++++- .../arcaneplugins/levelledmobs/util/Utils.kt | 30 ++++++++ 5 files changed, 119 insertions(+), 30 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1fbb0432..7b21ada0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 4.1.4 b73 +version = 4.1.4 b74 description = The Ultimate RPG Mob Levelling Solution \ No newline at end of file diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/customdrops/CustomDropsParser.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/customdrops/CustomDropsParser.kt index 7770502e..0e68f558 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/customdrops/CustomDropsParser.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/customdrops/CustomDropsParser.kt @@ -22,8 +22,6 @@ import java.util.Locale import java.util.SortedMap import java.util.TreeMap import org.bukkit.Material -import org.bukkit.NamespacedKey -import org.bukkit.Registry import org.bukkit.command.CommandSender import org.bukkit.configuration.ConfigurationSection import org.bukkit.configuration.MemorySection @@ -708,17 +706,15 @@ class CustomDropsParser( if (value is LinkedHashMap<*, *>) { // contains enchantment chances - val en = Registry.ENCHANTMENT.get( - NamespacedKey.minecraft(enchantName.lowercase(Locale.getDefault())) - ) + val enchantment = Utils.getEnchantment(enchantName) - if (en == null) { + if (enchantment == null) { hadError("Invalid enchantment: $enchantName") continue } val enchantments = value as MutableMap - parseEnchantmentChances(en, enchantments, item) + parseEnchantmentChances(enchantment, enchantments, item) continue } @@ -726,18 +722,17 @@ class CustomDropsParser( if (value != null && Utils.isInteger(value.toString())) enchantLevel = value.toString().toInt() - val en = Registry.ENCHANTMENT.get( - NamespacedKey.minecraft(enchantName.lowercase(Locale.getDefault())) - ) - if (en != null) { + val enchantment = Utils.getEnchantment(enchantName) + + if (enchantment != null) { if (item.material == Material.ENCHANTED_BOOK) { val meta = item.itemStack ?.itemMeta as EnchantmentStorageMeta - meta.addStoredEnchant(en, enchantLevel, true) + meta.addStoredEnchant(enchantment, enchantLevel, true) item.itemStack!!.setItemMeta(meta) } else - item.itemStack!!.addUnsafeEnchantment(en, enchantLevel) + item.itemStack!!.addUnsafeEnchantment(enchantment, enchantLevel) } else hadError("Invalid enchantment: $enchantName") @@ -1205,15 +1200,17 @@ class CustomDropsParser( sb.append(enchantmentLevels) } + // enchantment info here if (item.itemStack != null) { - val meta = item.itemStack!!.itemMeta + val itemStack = item.itemStack!! + val meta = itemStack.itemMeta val sb2 = StringBuilder() if (meta != null) { for (enchant in meta.enchants.keys) { if (sb2.isNotEmpty()) sb2.append(", ") sb2.append( - "&b${enchant.key.key}&r (${item.itemStack!!.itemMeta.enchants[enchant]})", enchant.key.key + "&b${enchant.key.key}&r (${itemStack.itemMeta.enchants[enchant]})" ) } } diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt index b507dd5b..f249867f 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/managers/LevelManager.kt @@ -136,27 +136,73 @@ class LevelManager : LevelInterface2 { this.forcedBlockedEntityTypes.addAll( mutableListOf( - EntityType.AREA_EFFECT_CLOUD, EntityType.ARMOR_STAND, EntityType.ARROW, - EntityType.DRAGON_FIREBALL, EntityType.ITEM_DISPLAY, EntityType.EGG, - EntityType.END_CRYSTAL, - EntityType.ENDER_PEARL, EntityType.EYE_OF_ENDER, EntityType.EXPERIENCE_ORB, + EntityType.AREA_EFFECT_CLOUD, + EntityType.ARMOR_STAND, + EntityType.ARROW, + EntityType.DRAGON_FIREBALL, + EntityType.EGG, + mapLegacyEntityTypeName("ENDER_CRYSTAL"), + EntityType.ENDER_PEARL, + mapLegacyEntityTypeName("ENDER_SIGNAL"), + EntityType.EXPERIENCE_ORB, EntityType.FALLING_BLOCK, - EntityType.FIREBALL, EntityType.FIREWORK_ROCKET, EntityType.FISHING_BOBBER, - EntityType.ITEM_FRAME, EntityType.LEASH_KNOT, EntityType.LIGHTNING_BOLT, + EntityType.FIREBALL, + mapLegacyEntityTypeName("FIREWORK"), + mapLegacyEntityTypeName("FISHING_HOOK"), + EntityType.ITEM_FRAME, + mapLegacyEntityTypeName("LEASH_HITCH"), + mapLegacyEntityTypeName("LIGHTNING"), EntityType.LLAMA_SPIT, - EntityType.MINECART, EntityType.CHEST_MINECART, EntityType.COMMAND_BLOCK_MINECART, - EntityType.FURNACE_MINECART, - EntityType.HOPPER_MINECART, EntityType.SPAWNER_MINECART, EntityType.TNT_MINECART, + EntityType.MINECART, + mapLegacyEntityTypeName("MINECART_CHEST"), + mapLegacyEntityTypeName("MINECART_COMMAND"), + mapLegacyEntityTypeName("MINECART_FURNACE"), + mapLegacyEntityTypeName("MINECART_HOPPER"), + mapLegacyEntityTypeName("MINECART_MOB_SPAWNER"), + mapLegacyEntityTypeName("MINECART_TNT"), EntityType.PAINTING, - EntityType.TNT, EntityType.SMALL_FIREBALL, EntityType.SNOWBALL, + mapLegacyEntityTypeName("PRIMED_TNT"), + EntityType.SMALL_FIREBALL, + EntityType.SNOWBALL, EntityType.SPECTRAL_ARROW, - EntityType.POTION, EntityType.EXPERIENCE_BOTTLE, EntityType.TRIDENT, + mapLegacyEntityTypeName("SPLASH_POTION"), + mapLegacyEntityTypeName("THROWN_EXP_BOTTLE"), + EntityType.TRIDENT, EntityType.UNKNOWN, - EntityType.WITHER_SKULL, EntityType.SHULKER_BULLET, EntityType.PLAYER + EntityType.WITHER_SKULL, + EntityType.SHULKER_BULLET, + EntityType.PLAYER ) ) } + private fun mapLegacyEntityTypeName( + name: String + ): EntityType{ + return if (LevelledMobs.instance.ver.minorVersion >= 21){ + when (name){ + "ENDER_CRYSTAL" -> EntityType.END_CRYSTAL + "ENDER_SIGNAL" -> EntityType.EYE_OF_ENDER + "FIREWORK" -> EntityType.FIREWORK_ROCKET + "FISHING_HOOK" -> EntityType.FISHING_BOBBER + "LEASH_HITCH" -> EntityType.LEASH_KNOT + "LIGHTNING" -> EntityType.LIGHTNING_BOLT + "MINECART_CHEST" -> EntityType.CHEST_MINECART + "MINECART_COMMAND" -> EntityType.COMMAND_BLOCK_MINECART + "MINECART_FURNACE" -> EntityType.FURNACE_MINECART + "MINECART_HOPPER" -> EntityType.HOPPER_MINECART + "MINECART_MOB_SPAWNER" -> EntityType.SPAWNER_MINECART + "MINECART_TNT" -> EntityType.TNT_MINECART + "PRIMED_TNT" -> EntityType.TNT + "SPLASH_POTION" -> EntityType.POTION + "THROWN_EXP_BOTTLE" -> EntityType.EXPERIENCE_BOTTLE + else -> EntityType.UNKNOWN + } + } + else + EntityType.valueOf(name) + } + /** * This method generates a level for the mob. It utilises the levelling mode specified by the * administrator through the settings.yml configuration. @@ -1976,7 +2022,7 @@ class LevelManager : LevelInterface2 { if (lmEntity.livingEntity is Zombie) attribs.add(Addition.ATTRIBUTE_ZOMBIE_SPAWN_REINFORCEMENTS) - else if (lmEntity.livingEntity is Horse) + else if (main.ver.minorVersion >= 20 && lmEntity.livingEntity is Horse) attribs.add(Addition.ATTRIBUTE_HORSE_JUMP_STRENGTH) main.levelManager.applyLevelledAttributes(lmEntity, attribs, nbtDatas) diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt index 649f9f21..0ba279df 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/rules/RulesParser.kt @@ -28,6 +28,8 @@ import io.github.arcaneplugins.levelledmobs.rules.strategies.YDistanceStrategy import io.github.arcaneplugins.levelledmobs.util.Log import io.github.arcaneplugins.levelledmobs.util.Utils.isDouble import io.github.arcaneplugins.levelledmobs.util.Utils.isInteger +import io.papermc.paper.registry.RegistryAccess +import io.papermc.paper.registry.RegistryKey import org.bukkit.NamespacedKey import org.bukkit.Particle import org.bukkit.Registry @@ -351,7 +353,21 @@ class RulesParser { if (input.isEmpty()) continue val namespace = if (input.size == 1) NamespacedKey.MINECRAFT_NAMESPACE else input[0] val key = if (input.size == 1) input[0].lowercase() else input[1].lowercase() - val structure = Registry.STRUCTURE.get(NamespacedKey(namespace, key)) + val structure: Structure? + + if (LevelledMobs.instance.ver.isRunningPaper && LevelledMobs.instance.ver.minorVersion >= 21){ + val registry = RegistryAccess.registryAccess().getRegistry( + RegistryKey.STRUCTURE + ) + structure = registry.get( + NamespacedKey.minecraft(key.lowercase(Locale.getDefault())) + ) + } + else{ + // legacy versions < 1.21 + @Suppress("DEPRECATION") + structure = Registry.STRUCTURE.get(NamespacedKey(namespace, key)) + } if (structure == null) Log.war("Invalid $invalidWord ${mlpi.itemName}: $item") diff --git a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/Utils.kt b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/Utils.kt index d8184e27..8da7fa61 100644 --- a/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/Utils.kt +++ b/levelledmobs-plugin/src/main/kotlin/io/github/arcaneplugins/levelledmobs/util/Utils.kt @@ -15,12 +15,17 @@ import io.github.arcaneplugins.levelledmobs.result.PlayerNetherOrWorldSpawnResul import io.github.arcaneplugins.levelledmobs.rules.MinAndMax import io.github.arcaneplugins.levelledmobs.rules.RulesManager import io.github.arcaneplugins.levelledmobs.wrappers.LivingEntityWrapper +import io.papermc.paper.registry.RegistryAccess +import io.papermc.paper.registry.RegistryKey import org.bukkit.Chunk import org.bukkit.GameMode import org.bukkit.Location +import org.bukkit.NamespacedKey +import org.bukkit.Registry import org.bukkit.World import org.bukkit.block.Biome import org.bukkit.command.CommandSender +import org.bukkit.enchantments.Enchantment import org.bukkit.entity.Entity import org.bukkit.entity.LivingEntity import org.bukkit.entity.Player @@ -592,4 +597,29 @@ object Utils { return results } + + fun getEnchantment( + enchantName: String + ): Enchantment?{ + val enchantment: Enchantment? + val ver = LevelledMobs.instance.ver + + if (ver.isRunningPaper && ver.minorVersion >= 21){ + val registry = RegistryAccess.registryAccess().getRegistry( + RegistryKey.ENCHANTMENT + ) + enchantment = registry.get( + NamespacedKey.minecraft(enchantName.lowercase(Locale.getDefault())) + ) + } + else{ + // legacy versions < 1.21 + @Suppress("DEPRECATION") + enchantment = Registry.ENCHANTMENT.get( + NamespacedKey.minecraft(enchantName.lowercase(Locale.getDefault())) + ) + } + + return enchantment + } } \ No newline at end of file From c23bf7b83ee62d8402b9f7bd706b5bb6ba46d5e3 Mon Sep 17 00:00:00 2001 From: Penal Buffalo Date: Thu, 7 Nov 2024 10:29:08 -0600 Subject: [PATCH 8/8] Update gradle.properties --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 7b21ada0..c196ba8d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 4.1.4 b74 +version = 4.1.4 b75 description = The Ultimate RPG Mob Levelling Solution \ No newline at end of file