Compare commits

...

65 Commits

Author SHA1 Message Date
Will FP
36195e16ce libreforge-updater 2025-03-29 14:22:31 +00:00
Will FP
bae0ab6150 libreforge-updater 2025-01-31 11:55:07 +00:00
Will FP
4445c7f681 libreforge-updater 2025-01-25 13:50:11 +00:00
Will FP
8285613d15 Fix 2025-01-25 13:48:01 +00:00
Will FP
855aa29e4b libreforge-updater 2025-01-25 13:46:06 +00:00
Will FP
92f47d1c87 libreforge-updater 2024-11-06 18:33:33 +00:00
Will FP
5b817fed20 libreforge-updater 2024-10-22 12:14:43 +01:00
Will FP
b6b523b1f8 libreforge-updater 2024-09-22 17:01:04 +01:00
Auxilor
8c016b94ef libreforge-updater 2024-09-02 11:30:08 +01:00
Auxilor
9c87498045 libreforge-updater 2024-08-30 17:25:07 +01:00
Auxilor
cbb48fa888 libreforge-updater 2024-08-29 12:09:17 +01:00
Auxilor
58ecfbe112 libreforge-updater 2024-08-23 15:35:23 +01:00
Auxilor
93e24a6f25 libreforge-updater 2024-08-21 18:58:20 +01:00
Auxilor
d8dfe6fd7c libreforge-updater 2024-08-15 15:07:35 +01:00
Auxilor
4551ddad08 libreforge-updater 2024-08-03 13:41:26 +01:00
Auxilor
e47533f03c libreforge-updater 2024-07-25 10:04:33 +01:00
Auxilor
5c9f792780 libreforge-updater 2024-07-21 12:19:17 +01:00
Auxilor
bde074bd7c libreforge-updater 2024-07-19 20:28:38 +01:00
Auxilor
5d143f6dec libreforge-updater 2024-07-18 13:24:13 +01:00
Auxilor
8abdcd6d33 libreforge-updater 2024-07-16 17:13:42 +01:00
Auxilor
210f618dc9 libreforge-updater 2024-07-13 20:45:18 +01:00
Auxilor
0514220390 libreforge-updater 2024-07-08 15:58:28 +01:00
Auxilor
2135293799 libreforge-updater 2024-07-05 13:02:45 +01:00
Auxilor
14e3d8fdf5 libreforge-updater 2024-07-03 17:43:57 +01:00
Auxilor
db4fb84160 libreforge-updater 2024-06-29 16:44:01 +01:00
Auxilor
6b0541646f libreforge-updater 2024-06-28 15:56:24 +01:00
Auxilor
72f826a57c libreforge-updater 2024-06-27 18:54:28 +01:00
Auxilor
04b0816e72 libreforge-updater 2024-06-26 16:52:20 +01:00
Auxilor
09980fc895 libreforge-updater 2024-06-25 15:13:59 +01:00
Auxilor
c737256349 libreforge-updater 2024-06-24 15:06:34 +01:00
Auxilor
ff4900da4d Updated to Java 21 2024-06-24 13:59:14 +01:00
Auxilor
570f1b1213 libreforge-updater 2024-06-23 17:26:31 +01:00
Auxilor
1f8714bb57 libreforge-updater 2024-06-23 13:19:01 +01:00
Will FP
08e964986b libreforge-updater 2024-05-31 20:37:57 +01:00
Will FP
2dcf954101 libreforge-updater 2024-05-11 18:21:22 +01:00
Will FP
d3d25290fd libreforge-updater 2024-04-17 20:35:06 +01:00
Auxilor
b9939057a0 libreforge-updater 2024-04-15 18:19:43 +01:00
Auxilor
26624faf98 libreforge-updater 2024-04-11 13:17:39 +01:00
Auxilor
23997922ed libreforge-updater 2024-03-29 16:08:46 +00:00
Will FP
b2120c59e3 libreforge-updater 2024-03-11 17:38:12 +00:00
Will FP
c04d6eca01 libreforge-updater 2024-03-10 20:09:43 +00:00
Will FP
5d18b5953a libreforge-updater 2024-03-02 15:20:58 +00:00
Will FP
5345394d14 libreforge-updater 2024-02-22 13:18:28 +00:00
Will FP
0c765272df libreforge-updater 2024-02-15 13:02:42 +00:00
Will FP
f17d4af664 libreforge-updater 2024-02-08 19:50:03 +00:00
Will FP
f57db1cd74 libreforge-updater 2024-01-30 11:27:47 +00:00
Will FP
188cac252f libreforge-updater 2024-01-18 17:03:28 +00:00
Will FP
8fd8f6237e libreforge-updater 2024-01-16 13:29:25 +00:00
Will FP
6abf50b009 libreforge-updater 2024-01-13 14:24:11 +00:00
Will FP
8a750b5824 libreforge-updater 2024-01-07 13:52:05 +00:00
Will FP
1fd45ccd75 libreforge-updater 2024-01-06 09:20:23 +00:00
Auxilor
1fdb3f65df libreforge-updater 2024-01-04 17:25:31 +00:00
Auxilor
a6fe3b095c libreforge-updater 2024-01-01 20:02:32 +00:00
Will FP
86c0c4d391 libreforge-updater 2023-12-27 14:17:52 +01:00
Will FP
b42dfe9be2 libreforge-updater 2023-12-24 14:55:01 +01:00
Auxilor
ea66d98df8 libreforge-updater 2023-12-20 15:57:14 +00:00
Will FP
2cc0d6b3c2 libreforge-updater 2023-12-14 16:13:55 +00:00
Will FP
8e2006fa2c libreforge-updater 2023-12-11 12:13:10 +00:00
Will FP
e8c387e85c libreforge-updater 2023-12-07 17:26:10 +00:00
Will FP
7a82b73b96 Updated to use ModelEngineBridge 2023-12-03 16:07:31 +00:00
Will FP
4049a429d6 libreforge-updater 2023-12-03 15:59:57 +00:00
Will FP
5895c12c6b libreforge-updater 2023-11-30 14:27:51 +00:00
Will FP
0b6112408f libreforge-updater 2023-11-26 23:24:54 +00:00
Will FP
8ee3852ad8 libreforge-updater 2023-11-23 13:21:50 +00:00
Auxilor
5aab3af9ea libreforge-updater 2023-11-21 22:41:48 +00:00
19 changed files with 74 additions and 142 deletions

View File

@@ -15,11 +15,11 @@ jobs:
- name: Checkout latest code - name: Checkout latest code
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: Set up JDK 17 - name: Set up JDK 21
uses: actions/setup-java@v2 uses: actions/setup-java@v2
with: with:
distribution: 'temurin' distribution: 'temurin'
java-version: 17 java-version: 21
- name: Change wrapper permissions - name: Change wrapper permissions
run: chmod +x ./gradlew run: chmod +x ./gradlew

View File

@@ -1,9 +1,11 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
plugins { plugins {
java java
`java-library` `java-library`
`maven-publish` `maven-publish`
kotlin("jvm") version "1.7.10" kotlin("jvm") version "2.1.0"
id("com.github.johnrengelman.shadow") version "8.0.0" id("com.gradleup.shadow") version "8.3.0"
id("com.willfp.libreforge-gradle-plugin") version "1.0.0" id("com.willfp.libreforge-gradle-plugin") version "1.0.0"
} }
@@ -25,7 +27,7 @@ allprojects {
apply(plugin = "java") apply(plugin = "java")
apply(plugin = "kotlin") apply(plugin = "kotlin")
apply(plugin = "maven-publish") apply(plugin = "maven-publish")
apply(plugin = "com.github.johnrengelman.shadow") apply(plugin = "com.gradleup.shadow")
repositories { repositories {
mavenLocal() mavenLocal()
@@ -40,7 +42,7 @@ allprojects {
dependencies { dependencies {
compileOnly("com.willfp:eco:6.55.0") compileOnly("com.willfp:eco:6.55.0")
compileOnly("org.jetbrains:annotations:23.0.0") compileOnly("org.jetbrains:annotations:23.0.0")
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:1.7.10") compileOnly("org.jetbrains.kotlin:kotlin-stdlib:2.1.0")
} }
java { java {
@@ -52,11 +54,12 @@ allprojects {
shadowJar { shadowJar {
relocate("com.willfp.libreforge.loader", "com.willfp.ecopets.libreforge.loader") relocate("com.willfp.libreforge.loader", "com.willfp.ecopets.libreforge.loader")
relocate("com.willfp.ecomponent", "com.willfp.ecopets.ecomponent") relocate("com.willfp.ecomponent", "com.willfp.ecopets.ecomponent")
relocate("com.willfp.modelenginebridge", "com.willfp.ecopets.modelenginebridge")
} }
compileKotlin { compileKotlin {
kotlinOptions { compilerOptions {
jvmTarget = "17" jvmTarget.set(JvmTarget.JVM_17)
} }
} }

View File

@@ -3,10 +3,10 @@ version = rootProject.version
dependencies { dependencies {
compileOnly("io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT") compileOnly("io.papermc.paper:paper-api:1.19.3-R0.1-SNAPSHOT")
compileOnly("com.ticxo.modelengine:api:R3.1.8")
compileOnly("com.github.ben-manes.caffeine:caffeine:3.0.2") compileOnly("com.github.ben-manes.caffeine:caffeine:3.0.2")
implementation("com.willfp:ecomponent:1.3.0") implementation("com.willfp:ecomponent:1.3.0")
implementation("com.willfp:ModelEngineBridge:1.2.0")
} }
publishing { publishing {

View File

@@ -30,7 +30,9 @@ import com.willfp.libreforge.filters.Filters
import com.willfp.libreforge.loader.LibreforgePlugin import com.willfp.libreforge.loader.LibreforgePlugin
import com.willfp.libreforge.loader.configs.ConfigCategory import com.willfp.libreforge.loader.configs.ConfigCategory
import com.willfp.libreforge.registerHolderProvider import com.willfp.libreforge.registerHolderProvider
import com.willfp.libreforge.registerSpecificHolderProvider
import com.willfp.libreforge.triggers.Triggers import com.willfp.libreforge.triggers.Triggers
import org.bukkit.entity.Player
import org.bukkit.event.Listener import org.bukkit.event.Listener
class EcoPetsPlugin : LibreforgePlugin() { class EcoPetsPlugin : LibreforgePlugin() {
@@ -56,9 +58,9 @@ class EcoPetsPlugin : LibreforgePlugin() {
Triggers.register(TriggerLevelUpPet) Triggers.register(TriggerLevelUpPet)
Filters.register(FilterPet) Filters.register(FilterPet)
registerHolderProvider { registerSpecificHolderProvider<Player> {
it.activePetLevel?.let { l -> it.activePetLevel?.let { p ->
listOf(SimpleProvidedHolder(l)) listOf(SimpleProvidedHolder(p))
} ?: emptyList() } ?: emptyList()
} }

View File

@@ -3,9 +3,12 @@ package com.willfp.ecopets.libreforge
import com.willfp.eco.core.config.interfaces.Config import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecopets.api.EcoPetsAPI import com.willfp.ecopets.api.EcoPetsAPI
import com.willfp.ecopets.pets.Pets import com.willfp.ecopets.pets.Pets
import com.willfp.libreforge.Dispatcher
import com.willfp.libreforge.NoCompileData import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.ProvidedHolder
import com.willfp.libreforge.arguments import com.willfp.libreforge.arguments
import com.willfp.libreforge.conditions.Condition import com.willfp.libreforge.conditions.Condition
import com.willfp.libreforge.get
import org.bukkit.entity.Player import org.bukkit.entity.Player
object ConditionHasActivePet : Condition<NoCompileData>("has_active_pet") { object ConditionHasActivePet : Condition<NoCompileData>("has_active_pet") {
@@ -13,11 +16,14 @@ object ConditionHasActivePet : Condition<NoCompileData>("has_active_pet") {
require("pet", "You must specify the pet!") require("pet", "You must specify the pet!")
} }
override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean { override fun isMet(
dispatcher: Dispatcher<*>,
config: Config,
holder: ProvidedHolder,
compileData: NoCompileData
): Boolean {
val player = dispatcher.get<Player>() ?: return false
return EcoPetsAPI.instance.getActivePet(player) == Pets.getByID(config.getString("pet").lowercase()) return EcoPetsAPI.instance.getActivePet(player) == Pets.getByID(config.getString("pet").lowercase())
// return EcoPetsAPI.instance.hasPet(
// player,
// Pets.getByID(config.getString("pet").lowercase()) ?: return false
// )
} }
} }

View File

@@ -3,12 +3,22 @@ package com.willfp.ecopets.libreforge
import com.willfp.eco.core.config.interfaces.Config import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecopets.api.EcoPetsAPI import com.willfp.ecopets.api.EcoPetsAPI
import com.willfp.ecopets.pets.Pets import com.willfp.ecopets.pets.Pets
import com.willfp.libreforge.Dispatcher
import com.willfp.libreforge.NoCompileData import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.ProvidedHolder
import com.willfp.libreforge.conditions.Condition import com.willfp.libreforge.conditions.Condition
import com.willfp.libreforge.get
import org.bukkit.entity.Player import org.bukkit.entity.Player
object ConditionHasPet : Condition<NoCompileData>("has_pet") { object ConditionHasPet : Condition<NoCompileData>("has_pet") {
override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean { override fun isMet(
dispatcher: Dispatcher<*>,
config: Config,
holder: ProvidedHolder,
compileData: NoCompileData
): Boolean {
val player = dispatcher.get<Player>() ?: return false
return EcoPetsAPI.instance.hasPet( return EcoPetsAPI.instance.hasPet(
player, player,
Pets.getByID(config.getString("pet").lowercase()) ?: return false Pets.getByID(config.getString("pet").lowercase()) ?: return false

View File

@@ -4,9 +4,13 @@ import com.willfp.eco.core.config.interfaces.Config
import com.willfp.ecopets.api.EcoPetsAPI import com.willfp.ecopets.api.EcoPetsAPI
import com.willfp.ecopets.api.event.PlayerPetLevelUpEvent import com.willfp.ecopets.api.event.PlayerPetLevelUpEvent
import com.willfp.ecopets.pets.Pets import com.willfp.ecopets.pets.Pets
import com.willfp.libreforge.Dispatcher
import com.willfp.libreforge.NoCompileData import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.ProvidedHolder
import com.willfp.libreforge.arguments import com.willfp.libreforge.arguments
import com.willfp.libreforge.conditions.Condition import com.willfp.libreforge.conditions.Condition
import com.willfp.libreforge.get
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.updateEffects import com.willfp.libreforge.updateEffects
import org.bukkit.entity.Player import org.bukkit.entity.Player
import org.bukkit.event.EventHandler import org.bukkit.event.EventHandler
@@ -20,10 +24,17 @@ object ConditionHasPetLevel : Condition<NoCompileData>("has_pet_level") {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
fun handle(event: PlayerPetLevelUpEvent) { fun handle(event: PlayerPetLevelUpEvent) {
event.player.updateEffects() event.player.toDispatcher().updateEffects()
} }
override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean { override fun isMet(
dispatcher: Dispatcher<*>,
config: Config,
holder: ProvidedHolder,
compileData: NoCompileData
): Boolean {
val player = dispatcher.get<Player>() ?: return false
return EcoPetsAPI.instance.getPetLevel( return EcoPetsAPI.instance.getPetLevel(
player, player,
Pets.getByID(config.getString("pet").lowercase()) ?: return false Pets.getByID(config.getString("pet").lowercase()) ?: return false

View File

@@ -4,6 +4,7 @@ import com.willfp.ecopets.api.event.PlayerPetExpGainEvent
import com.willfp.ecopets.pets.Pet import com.willfp.ecopets.pets.Pet
import com.willfp.ecopets.pets.Pets import com.willfp.ecopets.pets.Pets
import com.willfp.libreforge.effects.templates.MultiMultiplierEffect import com.willfp.libreforge.effects.templates.MultiMultiplierEffect
import com.willfp.libreforge.toDispatcher
import org.bukkit.event.EventHandler import org.bukkit.event.EventHandler
object EffectPetXpMultiplier : MultiMultiplierEffect<Pet>("pet_xp_multiplier") { object EffectPetXpMultiplier : MultiMultiplierEffect<Pet>("pet_xp_multiplier") {
@@ -21,6 +22,6 @@ object EffectPetXpMultiplier : MultiMultiplierEffect<Pet>("pet_xp_multiplier") {
fun handle(event: PlayerPetExpGainEvent) { fun handle(event: PlayerPetExpGainEvent) {
val player = event.player val player = event.player
event.amount *= getMultiplier(player, event.pet) event.amount *= getMultiplier(player.toDispatcher(), event.pet)
} }
} }

View File

@@ -1,6 +1,7 @@
package com.willfp.ecopets.libreforge package com.willfp.ecopets.libreforge
import com.willfp.ecopets.api.event.PlayerPetExpGainEvent import com.willfp.ecopets.api.event.PlayerPetExpGainEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter import com.willfp.libreforge.triggers.TriggerParameter
@@ -18,7 +19,7 @@ object TriggerGainPetXp : Trigger("gain_pet_xp") {
val player = event.player val player = event.player
this.dispatch( this.dispatch(
player, player.toDispatcher(),
TriggerData( TriggerData(
player = player, player = player,
location = player.location, location = player.location,

View File

@@ -1,6 +1,7 @@
package com.willfp.ecopets.libreforge package com.willfp.ecopets.libreforge
import com.willfp.ecopets.api.event.PlayerPetLevelUpEvent import com.willfp.ecopets.api.event.PlayerPetLevelUpEvent
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.Trigger import com.willfp.libreforge.triggers.Trigger
import com.willfp.libreforge.triggers.TriggerData import com.willfp.libreforge.triggers.TriggerData
import com.willfp.libreforge.triggers.TriggerParameter import com.willfp.libreforge.triggers.TriggerParameter
@@ -18,7 +19,7 @@ object TriggerLevelUpPet : Trigger("level_up_pet") {
val player = event.player val player = event.player
this.dispatch( this.dispatch(
player, player.toDispatcher(),
TriggerData( TriggerData(
player = player, player = player,
location = player.location, location = player.location,

View File

@@ -114,7 +114,6 @@ class Pet(
} }
val entityTexture = config.getString("entity-texture") val entityTexture = config.getString("entity-texture")
val modelEngineAnimation = config.getStringOrNull("modelengine-animation")
private val levelXpRequirements = listOf(0) + config.getInts("level-xp-requirements") private val levelXpRequirements = listOf(0) + config.getInts("level-xp-requirements")

View File

@@ -1,8 +1,8 @@
package com.willfp.ecopets.pets.entity package com.willfp.ecopets.pets.entity
import com.ticxo.modelengine.api.ModelEngineAPI
import com.willfp.ecopets.EcoPetsPlugin import com.willfp.ecopets.EcoPetsPlugin
import com.willfp.ecopets.pets.Pet import com.willfp.ecopets.pets.Pet
import com.willfp.modelenginebridge.ModelEngineBridge
import org.bukkit.Location import org.bukkit.Location
import org.bukkit.entity.ArmorStand import org.bukkit.entity.ArmorStand
@@ -13,29 +13,11 @@ class ModelEnginePetEntity(
) : PetEntity(pet) { ) : PetEntity(pet) {
override fun spawn(location: Location): ArmorStand { override fun spawn(location: Location): ArmorStand {
val stand = emptyArmorStandAt(location, pet) val stand = emptyArmorStandAt(location, pet)
val meAnimation = pet.modelEngineAnimation
val model = ModelEngineAPI.createActiveModel(modelID) val model = ModelEngineBridge.instance.createActiveModel(modelID) ?: return stand
if (meAnimation != null) { val modelled = ModelEngineBridge.instance.createModeledEntity(stand)
val animationHandler = model.animationHandler modelled.addModel(model)
val animationProperty = animationHandler.getAnimation(meAnimation)
if (animationProperty != null) {
animationHandler.playAnimation(animationProperty, true)
} else {
plugin.logger.warning("Animation $meAnimation not found in model $modelID, defaulting to walk!")
val animationPropertyWalk = animationHandler.getAnimation("walk")
if (animationPropertyWalk != null) {
animationHandler.playAnimation(animationPropertyWalk, true)
} else {
plugin.logger.warning("Walk animation not found in $modelID!")
}
}
}
val modelled = ModelEngineAPI.createModeledEntity(stand)
modelled.addModel(model, true)
return stand return stand
} }

View File

@@ -1,83 +0,0 @@
name: ${pluginName}
version: ${version}
main: com.willfp.ecopets.EcoPetsPlugin
api-version: 1.19
dependencies:
- name: eco
required: true
bootstrap: false
- name: libreforge
required: false
bootstrap: false
load-after:
- name: eco
bootstrap: false
permissions:
ecopets.*:
description: All ecopets permissions
default: op
children:
ecopets.command.*: true
ecopets.command.*:
description: All commands
default: op
children:
ecopets.command.ecopets: true
ecopets.command.reload: true
ecopets.command.pets: true
ecopets.command.give: true
ecopets.command.giveegg: true
ecopets.command.givexp: true
ecopets.command.givecurrentxp: true
ecopets.command.reset: true
ecopets.command.activate: true
ecopets.command.deactivate: true
ecopets.command.reload:
description: Allows reloading the config
default: op
ecopets.command.ecopets:
description: Allows the use of /ecopets.
default: true
ecopets.command.pets:
description: Allows the use of /pets.
default: true
ecopets.command.give:
description: Allows the use of /ecopets give.
default: op
ecopets.command.giveegg:
description: Allows the use of /ecopets giveegg.
default: op
ecopets.command.givexp:
description: Allows the use of /ecopets givexp.
default: op
ecopets.command.givecurrentxp:
description: Allows the use of /ecopets givecurrentxp.
default: op
ecopets.command.reset:
description: Allows the use of /ecopets reset.
default: op
ecopets.command.activate:
description: Allows the use of /pets activate.
default: true
ecopets.command.deactivate:
description: Allows the use of /pets deactivate.
default: true
ecopets.xpmultiplier.50percent:
description: Gives the player 50% more skill experience
default: false
ecopets.xpmultiplier.double:
description: Gives the player 2x skill experience
default: false
ecopets.xpmultiplier.triple:
description: Gives the player 3x skill experience
default: false
ecopets.xpmultiplier.quadruple:
description: Gives the player 4x skill experience
default: false

View File

@@ -116,7 +116,6 @@ conditions: [ ]
# The texture of the pet entity in game # The texture of the pet entity in game
# If you're using modelengine, use modelengine:id as the texture # If you're using modelengine, use modelengine:id as the texture
entity-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTA5NWZjYzFlM2Q3Y2JkMzUwZjE5YjM4OTQ5OGFiOGJiOTZjNjVhZDE4NWQzNDU5MjA2N2E3ZDAzM2FjNDhkZSJ9fX0=" entity-texture: "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTA5NWZjYzFlM2Q3Y2JkMzUwZjE5YjM4OTQ5OGFiOGJiOTZjNjVhZDE4NWQzNDU5MjA2N2E3ZDAzM2FjNDhkZSJ9fX0="
modelengine-animation: "fly" # If you're using ModelEngine, you can specify an animation here
# The icon in GUIs # The icon in GUIs
icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTA5NWZjYzFlM2Q3Y2JkMzUwZjE5YjM4OTQ5OGFiOGJiOTZjNjVhZDE4NWQzNDU5MjA2N2E3ZDAzM2FjNDhkZSJ9fX0= icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTA5NWZjYzFlM2Q3Y2JkMzUwZjE5YjM4OTQ5OGFiOGJiOTZjNjVhZDE4NWQzNDU5MjA2N2E3ZDAzM2FjNDhkZSJ9fX0=

View File

@@ -1,5 +1,5 @@
#libreforge-updater #libreforge-updater
#Sun Nov 19 14:14:30 GMT 2023 #Sat Mar 29 14:22:31 GMT 2025
kotlin.code.style=official kotlin.code.style=official
libreforge-version=4.43.1 libreforge-version=4.75.0
version=2.43.1 version=2.74.0

Binary file not shown.

View File

@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View File

@@ -1,6 +0,0 @@
jdk: openjdk17
before_install:
- source "$HOME/.sdkman/bin/sdkman-init.sh"
- sdk update
- sdk install java 17.0.1-tem
- sdk use java 17.0.1-tem

View File

@@ -2,11 +2,15 @@ pluginManagement {
repositories { repositories {
gradlePluginPortal() gradlePluginPortal()
mavenLocal() mavenLocal()
maven("https://repo.jpenilla.xyz/snapshots/")
maven("https://repo.auxilor.io/repository/maven-public/") maven("https://repo.auxilor.io/repository/maven-public/")
maven("https://repo.papermc.io/repository/maven-public/")
} }
} }
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
rootProject.name = "EcoPets" rootProject.name = "EcoPets"
// Core // Core