Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
11a79a5352 | ||
|
|
9473deda7c | ||
|
|
44676515b2 | ||
|
|
4e7317e69a | ||
|
|
8ca8018ab2 | ||
|
|
78e033990b | ||
|
|
033ac785d6 | ||
|
|
6ddf34f7f6 | ||
|
|
fb889b2936 | ||
|
|
dcf89687e3 | ||
|
|
2835eeaa5d | ||
|
|
1647a5dfaf | ||
|
|
3d260e82ae | ||
|
|
1fdbd064a9 |
@@ -48,7 +48,7 @@ allprojects {
|
||||
|
||||
dependencies {
|
||||
compileOnly 'com.willfp:eco:6.37.1'
|
||||
implementation 'com.willfp:libreforge:3.66.0'
|
||||
implementation 'com.willfp:libreforge:3.69.0'
|
||||
implementation 'org.joml:joml:1.10.4'
|
||||
|
||||
compileOnly 'org.jetbrains:annotations:23.0.0'
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.willfp.eco.util.toSingletonList
|
||||
import com.willfp.ecopets.commands.CommandEcopets
|
||||
import com.willfp.ecopets.commands.CommandPets
|
||||
import com.willfp.ecopets.config.PetsYml
|
||||
import com.willfp.ecopets.pets.DiscoverRecipeListener
|
||||
import com.willfp.ecopets.pets.PetDisplay
|
||||
import com.willfp.ecopets.pets.PetLevelListener
|
||||
import com.willfp.ecopets.pets.PetTriggerXPGainListener
|
||||
@@ -73,7 +74,8 @@ class EcoPetsPlugin : LibReforgePlugin() {
|
||||
PetLevelListener(this),
|
||||
PetTriggerXPGainListener,
|
||||
SpawnEggHandler(this),
|
||||
petDisplay
|
||||
petDisplay,
|
||||
DiscoverRecipeListener(this)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.willfp.ecopets.pets
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import org.bukkit.Bukkit
|
||||
import org.bukkit.Keyed
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.Listener
|
||||
import org.bukkit.event.player.PlayerJoinEvent
|
||||
import org.bukkit.inventory.Recipe
|
||||
|
||||
class DiscoverRecipeListener(private val plugin: EcoPlugin) : Listener {
|
||||
@EventHandler
|
||||
fun onJoin(event: PlayerJoinEvent) {
|
||||
if (!plugin.configYml.getBool("discover-recipes")) {
|
||||
return
|
||||
}
|
||||
mutableListOf<Recipe>()
|
||||
.apply { Bukkit.getServer().recipeIterator().forEachRemaining(this::add) }
|
||||
.filterIsInstance<Keyed>().map { it.key }
|
||||
.filter { it.namespace == plugin.name.lowercase() }
|
||||
.filter { !it.key.contains("displayed") }
|
||||
.forEach { event.player.discoverRecipe(it) }
|
||||
}
|
||||
}
|
||||
@@ -107,7 +107,7 @@ class Pet(
|
||||
"${this.id}_spawn_egg",
|
||||
egg,
|
||||
config.getStrings("spawn-egg.recipe"),
|
||||
config.getString("spawn-egg.recipe-permission")
|
||||
config.getStringOrNull("spawn-egg.recipe-permission")
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -157,7 +157,8 @@ class Pet(
|
||||
trigger to PetXPGain(
|
||||
trigger,
|
||||
multiplier,
|
||||
conditions
|
||||
conditions,
|
||||
it.getSubsection("filters")
|
||||
)
|
||||
}.toMap()
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.willfp.ecopets.pets
|
||||
|
||||
import com.willfp.eco.core.config.interfaces.Config
|
||||
import com.willfp.libreforge.conditions.ConfiguredCondition
|
||||
import com.willfp.libreforge.events.TriggerPreProcessEvent
|
||||
import com.willfp.libreforge.filters.ConfiguredFilter
|
||||
import com.willfp.libreforge.triggers.Trigger
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.Listener
|
||||
@@ -9,7 +11,8 @@ import org.bukkit.event.Listener
|
||||
data class PetXPGain(
|
||||
val trigger: Trigger,
|
||||
val multiplier: Double,
|
||||
val conditions: Iterable<ConfiguredCondition>
|
||||
val conditions: Iterable<ConfiguredCondition>,
|
||||
val filters: Config
|
||||
)
|
||||
|
||||
object PetTriggerXPGainListener : Listener {
|
||||
@@ -18,6 +21,7 @@ object PetTriggerXPGainListener : Listener {
|
||||
val player = event.player
|
||||
val trigger = event.trigger
|
||||
val value = event.value
|
||||
val data = event.data
|
||||
|
||||
val pet = event.player.activePet ?: return
|
||||
|
||||
@@ -27,6 +31,10 @@ object PetTriggerXPGainListener : Listener {
|
||||
return
|
||||
}
|
||||
|
||||
if (!ConfiguredFilter(xpGain.filters).matches(data)) {
|
||||
return
|
||||
}
|
||||
|
||||
player.givePetExperience(
|
||||
pet,
|
||||
value * xpGain.multiplier
|
||||
|
||||
@@ -13,7 +13,6 @@ import org.bukkit.Material
|
||||
import org.bukkit.Sound
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.checkerframework.checker.units.qual.m
|
||||
import kotlin.math.ceil
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
@@ -42,8 +41,8 @@ object PetsGUI {
|
||||
val bottomRightColumn = plugin.configYml.getInt("gui.pet-area.bottom-right.column")
|
||||
|
||||
petAreaSlots.clear()
|
||||
for (column in topLeftColumn..bottomRightColumn) {
|
||||
for (row in topLeftRow..bottomRightRow) {
|
||||
for (row in topLeftRow..bottomRightRow) {
|
||||
for (column in topLeftColumn..bottomRightColumn) {
|
||||
petAreaSlots.add(Pair(row, column))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
# by Auxilor
|
||||
#
|
||||
|
||||
discover-recipes: true
|
||||
|
||||
gui:
|
||||
rows: 6
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#libreforge-updater
|
||||
#Mon Jun 20 14:17:42 BST 2022
|
||||
version=1.4.0
|
||||
#Wed Jun 22 22:25:32 BST 2022
|
||||
version=1.7.0
|
||||
plugin-name=EcoPets
|
||||
|
||||
Reference in New Issue
Block a user