Compare commits

...

27 Commits

Author SHA1 Message Date
Auxilor
7da97170cf libreforge-updater 2023-02-09 14:13:23 +00:00
Auxilor
0f8e9b07e7 Updated to 1.69.0 2023-02-08 17:35:03 +00:00
Auxilor
bb411f6b9d Updated ME API 2023-02-08 17:34:56 +00:00
Auxilor
dff4bdc24f Added PetEvent 2023-02-08 17:34:09 +00:00
Auxilor
b05fef4dc3 libreforge-updater 2023-02-07 14:47:32 +00:00
Auxilor
05a45739e3 libreforge-updater 2023-02-04 15:37:40 +00:00
Auxilor
edc98b1300 libreforge-updater 2023-01-24 10:10:11 +00:00
Auxilor
a08286cd39 libreforge-updater 2023-01-17 16:49:23 +00:00
Auxilor
6f370657c4 libreforge-updater 2023-01-13 18:09:30 +00:00
Auxilor
8d28445639 libreforge-updater 2023-01-07 12:18:35 +00:00
Auxilor
5ca0cb4f82 libreforge-updater 2023-01-02 15:59:15 +00:00
Auxilor
c2f2088986 libreforge-updater 2022-12-26 14:02:32 +01:00
Auxilor
02c120fc0a Updated model engine 2022-12-20 15:21:13 +00:00
Auxilor
404d908efe libreforge-updater 2022-12-20 15:16:19 +00:00
Auxilor
b430dcaf5b libreforge-updater 2022-12-12 14:02:12 +00:00
Auxilor
84acf13c8d libreforge-updater 2022-12-09 17:02:31 +00:00
Auxilor
5465a7412f libreforge-updater 2022-12-05 10:51:52 +00:00
Auxilor
4a8ea43b5b Merge remote-tracking branch 'origin/master' 2022-12-04 15:05:48 +00:00
Auxilor
a2d147e54c Updated to 1.64.2 2022-12-04 15:05:42 +00:00
Will FP
2ceb670999 Merge pull request #34
Fix bugs
2022-12-04 15:05:24 +00:00
TomTom
a4cef52d5c Merge branch 'Auxilor:master' into fixes 2022-11-30 18:54:38 +01:00
Auxilor
b653d97794 libreforge-updater 2022-11-30 17:39:35 +00:00
TomTom
f44ca8a7e3 Fix bald 2022-11-29 16:35:29 +01:00
TomTom
56ddfeca39 Add being able to disable pet entities 2022-11-29 16:11:04 +01:00
TomTom
332fd55f0b Fix stuff 2022-11-28 16:04:50 +01:00
Auxilor
452c20f534 libreforge-updater 2022-11-27 21:45:42 +00:00
Auxilor
6002bc0b47 libreforge-updater 2022-11-26 19:21:36 +00:00
10 changed files with 45 additions and 29 deletions

View File

@@ -49,7 +49,7 @@ allprojects {
dependencies { dependencies {
compileOnly 'com.willfp:eco:6.44.0' compileOnly 'com.willfp:eco:6.44.0'
implementation 'com.willfp:libreforge:3.122.0' implementation 'com.willfp:libreforge:3.129.0'
implementation 'com.willfp:ecomponent:1.0.0' implementation 'com.willfp:ecomponent:1.0.0'
implementation 'org.joml:joml:1.10.4' implementation 'org.joml:joml:1.10.4'

View File

@@ -7,7 +7,7 @@ dependencies {
compileOnly 'net.kyori:adventure-api:4.10.1' compileOnly 'net.kyori:adventure-api:4.10.1'
compileOnly 'net.essentialsx:EssentialsX:2.19.0' compileOnly 'net.essentialsx:EssentialsX:2.19.0'
compileOnly 'com.github.ben-manes.caffeine:caffeine:3.0.6' compileOnly 'com.github.ben-manes.caffeine:caffeine:3.0.6'
compileOnly 'com.ticxo.modelengine:api:R3.0.0' compileOnly 'com.ticxo.modelengine:api:R3.1.4'
} }
build.dependsOn publishToMavenLocal build.dependsOn publishToMavenLocal

View File

@@ -41,6 +41,10 @@ class EcoPetsPlugin : LibReforgePlugin() {
} }
override fun handleReloadAdditional() { override fun handleReloadAdditional() {
if (!this.configYml.getBool("pet-entity.enabled")) {
return
}
this.scheduler.runTimer(1, 1) { this.scheduler.runTimer(1, 1) {
petDisplay.tickAll() petDisplay.tickAll()
} }

View File

@@ -0,0 +1,7 @@
package com.willfp.ecopets.api.event
import com.willfp.ecopets.pets.Pet
interface PetEvent {
val pet: Pet
}

View File

@@ -1,18 +1,17 @@
package com.willfp.ecopets.api.event package com.willfp.ecopets.api.event
import org.bukkit.entity.Player
import com.willfp.ecopets.pets.Pet import com.willfp.ecopets.pets.Pet
import org.bukkit.event.player.PlayerEvent import org.bukkit.entity.Player
import org.bukkit.event.HandlerList
import com.willfp.ecopets.api.event.PlayerPetExpGainEvent
import org.bukkit.event.Cancellable import org.bukkit.event.Cancellable
import org.bukkit.event.HandlerList
import org.bukkit.event.player.PlayerEvent
class PlayerPetExpGainEvent( class PlayerPetExpGainEvent(
who: Player, who: Player,
val pet: Pet, override val pet: Pet,
var amount: Double, var amount: Double,
val isMultiply: Boolean val isMultiply: Boolean
) : PlayerEvent(who), Cancellable { ) : PlayerEvent(who), Cancellable, PetEvent {
private var cancelled = false private var cancelled = false
override fun setCancelled(cancel: Boolean) { override fun setCancelled(cancel: Boolean) {

View File

@@ -1,16 +1,15 @@
package com.willfp.ecopets.api.event package com.willfp.ecopets.api.event
import org.bukkit.entity.Player
import com.willfp.ecopets.pets.Pet import com.willfp.ecopets.pets.Pet
import org.bukkit.event.player.PlayerEvent import org.bukkit.entity.Player
import org.bukkit.event.HandlerList import org.bukkit.event.HandlerList
import com.willfp.ecopets.api.event.PlayerPetLevelUpEvent import org.bukkit.event.player.PlayerEvent
class PlayerPetLevelUpEvent( class PlayerPetLevelUpEvent(
who: Player, who: Player,
val pet: Pet, override val pet: Pet,
val level: Int val level: Int
) : PlayerEvent(who) { ) : PlayerEvent(who), PetEvent {
override fun getHandlers(): HandlerList { override fun getHandlers(): HandlerList {
return handlerList return handlerList
} }

View File

@@ -53,7 +53,7 @@ class CommandActivate(plugin: EcoPlugin) : Subcommand(plugin, "activate", "ecope
if (args.size == 1) { if (args.size == 1) {
StringUtil.copyPartialMatches( StringUtil.copyPartialMatches(
args[1], args[0],
Pets.values().filter { sender.hasPet(it) }.map { it.id }, Pets.values().filter { sender.hasPet(it) }.map { it.id },
completions completions
) )

View File

@@ -9,7 +9,9 @@ import org.bukkit.entity.ArmorStand
import org.bukkit.entity.Player import org.bukkit.entity.Player
import org.bukkit.event.EventHandler import org.bukkit.event.EventHandler
import org.bukkit.event.Listener import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerChangedWorldEvent
import org.bukkit.event.player.PlayerQuitEvent import org.bukkit.event.player.PlayerQuitEvent
import org.bukkit.event.player.PlayerTeleportEvent
import java.util.UUID import java.util.UUID
import kotlin.math.PI import kotlin.math.PI
import kotlin.math.abs import kotlin.math.abs
@@ -45,17 +47,7 @@ class PetDisplay(
location.y += NumberUtils.fastSin(tick / (2 * PI) * 0.5) * 0.15 location.y += NumberUtils.fastSin(tick / (2 * PI) * 0.5) * 0.15
if (location.world != null) { if (location.world != null) {
try {
stand.teleport(location) stand.teleport(location)
} catch (_: Throwable) {
/*
For anyone reading - I KNOW TO NEVER CATCH THROWABLE
but NMS is really stupid and does this sometimes:
java.lang.Throwable: null
at net.minecraft.world.entity.Entity.teleportTo(Entity.java:3336) ~[paper-1.19.2.jar:git-Paper-186]
so I guess that's what has to be done. Not sure what the actual cause is.
*/
}
} }
if (!pet.entityTexture.contains(":")) { if (!pet.entityTexture.contains(":")) {
@@ -117,10 +109,24 @@ class PetDisplay(
trackedEntities.clear() trackedEntities.clear()
} }
private fun remove(player: Player) {
trackedEntities[player.uniqueId]?.stand?.remove()
trackedEntities.remove(player.uniqueId)
}
@EventHandler @EventHandler
fun onLeave(event: PlayerQuitEvent) { fun onLeave(event: PlayerQuitEvent) {
trackedEntities[event.player.uniqueId]?.stand?.remove() remove(event.player)
trackedEntities.remove(event.player.uniqueId) }
@EventHandler
fun onTeleport(event: PlayerTeleportEvent) {
remove(event.player)
}
@EventHandler
fun onWorldChange(event: PlayerChangedWorldEvent) {
remove(event.player)
} }
private data class PetArmorStand( private data class PetArmorStand(

View File

@@ -217,6 +217,7 @@ level-gui:
custom-slots: [ ] custom-slots: [ ]
pet-entity: pet-entity:
enabled: true # If you disable this, there will be no floating pets
name: "%player%&f's %pet%&f (Lvl. %level%)" name: "%player%&f's %pet%&f (Lvl. %level%)"
level-up: level-up:

View File

@@ -1,4 +1,4 @@
#libreforge-updater #libreforge-updater
#Thu Nov 24 14:31:26 GMT 2022 #Thu Feb 09 14:13:23 GMT 2023
version=1.62.0 version=1.70.0
plugin-name=EcoPets plugin-name=EcoPets