9
0
mirror of https://github.com/Auxilor/Reforges.git synced 2025-12-23 17:09:32 +00:00

Compare commits

...

7 Commits

Author SHA1 Message Date
Will FP
3cbc54429e libreforge-updater 2023-11-23 13:21:00 +00:00
Auxilor
068b9b1cdb libreforge-updater 2023-11-21 22:41:08 +00:00
Auxilor
43cfa1ab9f libreforge-updater 2023-11-19 14:13:53 +00:00
Auxilor
d68c7b1f43 libreforge-updater 2023-11-17 19:01:58 +00:00
Auxilor
1a14a11aa4 libreforge-updater 2023-11-11 17:58:28 +00:00
Auxilor
ff3af6b412 Added support for item placeholders 2023-11-11 15:00:10 +00:00
Auxilor
7bd43e6506 Updated not-met-lines 2023-11-11 14:51:25 +00:00
6 changed files with 39 additions and 16 deletions

View File

@@ -9,6 +9,8 @@ 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.registerPlayerRefreshFunction import com.willfp.libreforge.registerPlayerRefreshFunction
import com.willfp.libreforge.registerSpecificHolderProvider
import com.willfp.libreforge.registerSpecificRefreshFunction
import com.willfp.reforges.commands.CommandReforge import com.willfp.reforges.commands.CommandReforge
import com.willfp.reforges.commands.CommandReforges import com.willfp.reforges.commands.CommandReforges
import com.willfp.reforges.config.TargetYml import com.willfp.reforges.config.TargetYml
@@ -20,6 +22,7 @@ import com.willfp.reforges.reforges.util.ReforgeArgParser
import com.willfp.reforges.util.AntiPlaceListener import com.willfp.reforges.util.AntiPlaceListener
import com.willfp.reforges.util.DiscoverRecipeListener import com.willfp.reforges.util.DiscoverRecipeListener
import com.willfp.reforges.util.ReforgeLookup import com.willfp.reforges.util.ReforgeLookup
import org.bukkit.entity.Player
import org.bukkit.event.Listener import org.bukkit.event.Listener
class ReforgesPlugin : LibreforgePlugin() { class ReforgesPlugin : LibreforgePlugin() {
@@ -41,8 +44,13 @@ class ReforgesPlugin : LibreforgePlugin() {
Items.registerArgParser(ReforgeArgParser) Items.registerArgParser(ReforgeArgParser)
registerHolderProvider { ReforgeLookup.provideReforges(it) } registerSpecificHolderProvider<Player> {
registerPlayerRefreshFunction { ReforgeLookup.clearCache(it) } ReforgeLookup.provideReforges(it)
}
registerSpecificRefreshFunction<Player> {
ReforgeLookup.clearCache(it)
}
} }
override fun loadListeners(): List<Listener> { override fun loadListeners(): List<Listener> {

View File

@@ -6,6 +6,7 @@ import com.willfp.eco.core.display.DisplayPriority
import com.willfp.eco.core.display.DisplayProperties import com.willfp.eco.core.display.DisplayProperties
import com.willfp.eco.core.fast.FastItemStack import com.willfp.eco.core.fast.FastItemStack
import com.willfp.eco.core.fast.fast import com.willfp.eco.core.fast.fast
import com.willfp.eco.core.placeholder.context.placeholderContext
import com.willfp.eco.util.SkullUtils import com.willfp.eco.util.SkullUtils
import com.willfp.eco.util.StringUtils import com.willfp.eco.util.StringUtils
import com.willfp.eco.util.formatEco import com.willfp.eco.util.formatEco
@@ -47,13 +48,16 @@ class ReforgesDisplay(private val plugin: ReforgesPlugin) : DisplayModule(plugin
val reforge = fast.persistentDataContainer.reforge val reforge = fast.persistentDataContainer.reforge
val context = placeholderContext(
player = player,
item = itemStack
)
if (reforge == null && stone == null) { if (reforge == null && stone == null) {
if (plugin.configYml.getBool("reforge.show-reforgable")) { if (plugin.configYml.getBool("reforge.show-reforgable")) {
if (plugin.configYml.getBool("reforge.no-reforgable-in-gui")) {
if (props.inGui) { if (props.inGui) {
return return
} }
}
val addLore: MutableList<String> = ArrayList() val addLore: MutableList<String> = ArrayList()
for (string in plugin.configYml.getFormattedStrings("reforge.reforgable-suffix")) { for (string in plugin.configYml.getFormattedStrings("reforge.reforgable-suffix")) {
@@ -91,10 +95,11 @@ class ReforgesDisplay(private val plugin: ReforgesPlugin) : DisplayModule(plugin
for (string in plugin.configYml.getFormattedStrings("reforge.reforged-prefix")) { for (string in plugin.configYml.getFormattedStrings("reforge.reforged-prefix")) {
addLore.add(Display.PREFIX + string.replace("%reforge%", reforge.name)) addLore.add(Display.PREFIX + string.replace("%reforge%", reforge.name))
} }
addLore.addAll(reforge.description) addLore.addAll(reforge.description.formatEco(context))
addLore.replaceAll { "${Display.PREFIX}$it" } addLore.replaceAll { "${Display.PREFIX}$it" }
lore.addAll(addLore) lore.addAll(addLore)
} }
if (plugin.configYml.getBool("reforge.display-in-name")) { if (plugin.configYml.getBool("reforge.display-in-name")) {
val displayName = fastItemStack.displayNameComponent val displayName = fastItemStack.displayNameComponent
@@ -115,7 +120,7 @@ class ReforgesDisplay(private val plugin: ReforgesPlugin) : DisplayModule(plugin
if (player != null) { if (player != null) {
val provided = ItemProvidedHolder(reforge, itemStack) val provided = ItemProvidedHolder(reforge, itemStack)
val lines = reforge.conditions.getNotMetLines(player, provided).map { Display.PREFIX + it } val lines = provided.getNotMetLines(player).map { Display.PREFIX + it }
if (lines.isNotEmpty()) { if (lines.isNotEmpty()) {
lore.add(Display.PREFIX) lore.add(Display.PREFIX)

View File

@@ -2,9 +2,12 @@ package com.willfp.reforges.libreforge
import com.willfp.eco.core.config.interfaces.Config import com.willfp.eco.core.config.interfaces.Config
import com.willfp.eco.util.containsIgnoreCase import com.willfp.eco.util.containsIgnoreCase
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.reforges.reforges.Reforge import com.willfp.reforges.reforges.Reforge
import com.willfp.reforges.util.ReforgeLookup import com.willfp.reforges.util.ReforgeLookup
import org.bukkit.entity.Player import org.bukkit.entity.Player
@@ -14,7 +17,14 @@ object ConditionHasReforge : Condition<NoCompileData>("has_reforge") {
require("reforge", "You must specify the reforge!") require("reforge", "You must specify the reforge!")
} }
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 ReforgeLookup.provideReforges(player) return ReforgeLookup.provideReforges(player)
.map { it.holder } .map { it.holder }
.filterIsInstance<Reforge>() .filterIsInstance<Reforge>()

View File

@@ -15,6 +15,7 @@ import com.willfp.libreforge.ItemProvidedHolder
import com.willfp.libreforge.ViolationContext import com.willfp.libreforge.ViolationContext
import com.willfp.libreforge.conditions.Conditions import com.willfp.libreforge.conditions.Conditions
import com.willfp.libreforge.effects.Effects import com.willfp.libreforge.effects.Effects
import com.willfp.libreforge.toDispatcher
import com.willfp.libreforge.triggers.TriggerData import com.willfp.libreforge.triggers.TriggerData
import com.willfp.reforges.ReforgesPlugin import com.willfp.reforges.ReforgesPlugin
import com.willfp.reforges.util.reforgeStone import com.willfp.reforges.util.reforgeStone
@@ -33,7 +34,7 @@ class Reforge(
val namePrefixComponent = StringUtils.toComponent("$name ").decoration(TextDecoration.ITALIC, false) val namePrefixComponent = StringUtils.toComponent("$name ").decoration(TextDecoration.ITALIC, false)
val description: List<String> = config.getFormattedStrings("description") val description: List<String> = config.getStrings("description")
val targets = config.getStrings("targets").mapNotNull { ReforgeTargets.getByName(it) }.toSet() val targets = config.getStrings("targets").mapNotNull { ReforgeTargets.getByName(it) }.toSet()
@@ -108,7 +109,7 @@ class Reforge(
fun runOnReforgeEffects(player: Player, item: ItemStack) { fun runOnReforgeEffects(player: Player, item: ItemStack) {
onReforgeEffects?.trigger( onReforgeEffects?.trigger(
player, player.toDispatcher(),
TriggerData( TriggerData(
holder = ItemProvidedHolder(this, item), holder = ItemProvidedHolder(this, item),
player = player, player = player,

View File

@@ -146,12 +146,11 @@ reforge:
reforgable-suffix: reforgable-suffix:
- "" - ""
- "&8This item can be reforged!" - "&8This item can be reforged!"
no-reforgable-in-gui: true # Not perfect, won't work 100% of the time
# due to how GUIs are handled differently in different plugins, but should help.
display-in-lore: true display-in-lore: true
display-in-name: true display-in-name: true
# The lore to display if an item is reforged, above the reforge description
reforged-prefix: reforged-prefix:
- "" - ""
- "%reforge%" - "%reforge%"

View File

@@ -1,5 +1,5 @@
#libreforge-updater #libreforge-updater
#Fri Nov 10 13:58:55 GMT 2023 #Thu Nov 23 13:21:00 GMT 2023
kotlin.code.style=official kotlin.code.style=official
libreforge-version=4.41.0 libreforge-version=4.45.0
version=6.41.0 version=6.45.0