9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-02 05:46:57 +00:00

Fixed more uuid bugs

This commit is contained in:
Auxilor
2021-08-27 16:46:54 +01:00
parent 90a915f1eb
commit dfe31fa29f
4 changed files with 34 additions and 7 deletions

View File

@@ -5,11 +5,13 @@ import com.willfp.ecoskills.effects.Effect
import com.willfp.ecoskills.getSkillLevel
import com.willfp.ecoskills.setEffectLevel
import com.willfp.ecoskills.skills.Skills
import com.willfp.ecoskills.stats.Stats
import org.bukkit.attribute.Attribute
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerJoinEvent
class DataListener: Listener {
class DataListener : Listener {
@EventHandler
fun onJoin(event: PlayerJoinEvent) {
event.player.convertPersistentToYml()
@@ -20,8 +22,26 @@ class DataListener: Listener {
if (obj !is Effect) {
continue
}
event.player.setEffectLevel(obj, skill.getCumulativeLevelUpReward(obj, event.player.getSkillLevel(skill)))
event.player.setEffectLevel(
obj,
skill.getCumulativeLevelUpReward(obj, event.player.getSkillLevel(skill))
)
}
}
for (attribute in Attribute.values()) {
val player = event.player
val inst = player.getAttribute(attribute) ?: continue
for (modifier in inst.modifiers.toMutableList()) {
if (modifier.amount == 0.0) {
inst.removeModifier(modifier)
}
}
}
for (stat in Stats.values()) {
stat.updateStatLevel(event.player)
}
}
}

View File

@@ -9,6 +9,7 @@ import com.willfp.ecoskills.SkillObject
import com.willfp.ecoskills.getEffectLevel
import org.bukkit.NamespacedKey
import org.bukkit.event.Listener
import java.util.*
abstract class Effect(
id: String
@@ -17,9 +18,11 @@ abstract class Effect(
val key: NamespacedKey
val config: Config
val uuid: UUID
init {
update()
uuid = UUID.nameUUIDFromBytes(id.toByteArray())
key = plugin.namespacedKeyFactory.create(id)
config = plugin.effectsYml.getSubsection(id)

View File

@@ -9,7 +9,6 @@ import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.entity.EntityDamageEvent
import java.util.*
class EffectAcceleratedEscape: Effect(
"accelerated_escape"
@@ -29,14 +28,15 @@ class EffectAcceleratedEscape: Effect(
val level = player.getEffectLevel(this)
val modifier = AttributeModifier(
UUID.randomUUID(),
NumberUtils.randFloat(0.0, 1.0).toString(),
(config.getDouble("percent-faster-per-level") * level) / 100,
this.uuid,
this.id,
(config.getDouble("percent-faster-per-level") * level) / 100.0,
AttributeModifier.Operation.MULTIPLY_SCALAR_1
)
val inst = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED)!!
inst.removeModifier(modifier)
inst.addModifier(modifier)
plugin.scheduler.runLater({

View File

@@ -2,6 +2,7 @@ package com.willfp.ecoskills.stats.stats
import com.willfp.ecoskills.getStatLevel
import com.willfp.ecoskills.stats.Stat
import org.bukkit.Bukkit
import org.bukkit.attribute.Attribute
import org.bukkit.attribute.AttributeModifier
import org.bukkit.entity.Player
@@ -16,8 +17,11 @@ class StatSpeed : Stat(
(this.config.getDouble("percent-faster-per-level") * player.getStatLevel(this)) / 100.0,
AttributeModifier.Operation.MULTIPLY_SCALAR_1
)
val instance = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED) ?: return
instance.removeModifier(modifier)
Bukkit.getLogger().info(instance.modifiers.toString())
plugin.scheduler.run {
val instance = player.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED) ?: return@run
instance.removeModifier(modifier)
instance.addModifier(modifier)
}