diff --git a/build.gradle.kts b/build.gradle.kts index e61b8435..7eb8684b 100755 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -32,19 +32,22 @@ dependencies { compileOnly(kotlin("reflect")) // Use the JUpiter test library. - testImplementation("org.junit.jupiter:junit-jupiter:5.8.1") + testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") // Compile Minestom into project compileOnly("com.github.Minestom", "Minestom", "4ee5cbe424") // implement KStom - compileOnly("com.github.Project-Cepi:KStom:05b5e1f2a1") + compileOnly("com.github.Project-Cepi:KStom:15bab227a2") // add energy compileOnly("com.github.Project-Cepi:EnergyExtension:f2bcdfc79e") // import kotlinx serialization - compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1") + compileOnly("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2") + + // Add MiniMessage + compileOnly("net.kyori:adventure-text-minimessage:4.2.0-SNAPSHOT") // Add Kepi compileOnly("com.github.Project-Cepi:Kepi:071b288ed0") @@ -61,6 +64,12 @@ dependencies { // Add actions compileOnly("com.github.Project-Cepi:Actions:3cccca74c8") + // Add Particable + compileOnly("com.github.Project-Cepi:Particable:9ab0e20842") + + // Add MinestomPVP + compileOnly("com.github.Project-Cepi:MinestomPVP:b9cb14d4bf") + // Add canvas implementation("com.mattworzala:canvas:1.1.5") } diff --git a/src/main/kotlin/world/cepi/itemextension/combat/TargetHandler.kt b/src/main/kotlin/world/cepi/itemextension/combat/TargetHandler.kt index 63ec4664..79cd6b5a 100644 --- a/src/main/kotlin/world/cepi/itemextension/combat/TargetHandler.kt +++ b/src/main/kotlin/world/cepi/itemextension/combat/TargetHandler.kt @@ -49,7 +49,7 @@ object TargetHandler { // Check if the ray has hit an entity if (result.hitType == HitType.ENTITY) { - val target = result.hitEntity!! + val target = result.hitEntity!! as? LivingEntity ?: return@forEach // Ignore if the entity hit is a player if (target is Player) { diff --git a/src/main/kotlin/world/cepi/itemextension/combat/events/CombatHandler.kt b/src/main/kotlin/world/cepi/itemextension/combat/events/CombatHandler.kt index 8ec22f3f..774cb22e 100644 --- a/src/main/kotlin/world/cepi/itemextension/combat/events/CombatHandler.kt +++ b/src/main/kotlin/world/cepi/itemextension/combat/events/CombatHandler.kt @@ -1,5 +1,6 @@ package world.cepi.itemextension.combat.events +import io.github.bloepiloepi.pvp.events.FinalAttackEvent import net.kyori.adventure.sound.Sound import net.kyori.adventure.text.Component import net.kyori.adventure.text.format.NamedTextColor @@ -25,6 +26,13 @@ import world.cepi.itemextension.item.cepiItem import world.cepi.itemextension.item.checkIsItem import world.cepi.itemextension.item.traits.list.* import world.cepi.kstom.Manager +import world.cepi.kstom.raycast.RayCast +import world.cepi.kstom.util.eyePosition +import world.cepi.particle.Particle +import world.cepi.particle.ParticleType +import world.cepi.particle.data.OffsetAndSpeed +import world.cepi.particle.renderer.Renderer +import world.cepi.particle.renderer.render import java.text.NumberFormat object CombatHandler { @@ -146,7 +154,7 @@ object CombatHandler { ImmunityHandler.triggerImmune(entity) } - fun registerDamageByEntity(event: EntityAttackEvent) = with(event) { + fun registerDamageByEntity(event: FinalAttackEvent) = with(event) { if (!canDamageEntities(entity)) { return } @@ -174,6 +182,17 @@ object CombatHandler { cepiItem?.get()?.let { if ((entity as Player).level < it.level) return } + + val centerTarget = RayCast.castRay( + instance, + entity, + entity.eyePosition(), + entity.position.direction(), + stepLength = 0.5 + ).finalPosition + + Renderer.fixedLine(centerTarget, centerTarget.add(entity.position.direction().mul(2.0))) + .render(Particle.particle(ParticleType.CRIT, 1, OffsetAndSpeed()), target.viewersAsAudience) } if (cepiItem?.hasTrait() == true) { @@ -204,9 +223,6 @@ object CombatHandler { } } } -// -// if (entity is EquipmentHandler) -// entity.useAttackSpeed((entity as EquipmentHandler).itemInMainHand) } diff --git a/src/main/resources/META-INF/extension.json b/src/main/resources/META-INF/extension.json index f2c14937..fbed1f5f 100755 --- a/src/main/resources/META-INF/extension.json +++ b/src/main/resources/META-INF/extension.json @@ -8,7 +8,9 @@ "MobExtension", "Projectiles", "Actions", - "Gooey" + "Gooey", + "Particable", + "PvpExtension" ], "meta": { "downloadURL": "https://github.com/Project-Cepi/ItemExtension/releases/download/latest/ItemExtension-1.0.0-all.jar"