mirror of
https://github.com/Auxilor/Reforges.git
synced 2025-12-21 07:59:26 +00:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7279958cca | ||
|
|
6689c3cf23 | ||
|
|
df8357ac61 | ||
|
|
aa0f06092e | ||
|
|
19083d54b8 | ||
|
|
2a6c2941d8 | ||
|
|
757dffb08d | ||
|
|
277a0bef78 | ||
|
|
c7f8b9f97e | ||
|
|
0f97e2dfc4 | ||
|
|
ae503fd646 | ||
|
|
89df16dabe | ||
|
|
c6dfa1849d | ||
|
|
fb4022dfd9 | ||
|
|
60c785717a | ||
|
|
a3810a9ff8 | ||
|
|
3498b575dc | ||
|
|
8f5668d8c4 | ||
|
|
6cde0ca092 | ||
|
|
d54e4ee8d5 | ||
|
|
65ef2a63d2 | ||
|
|
0d1ea5a7c8 | ||
|
|
7d32350eed | ||
|
|
4361ce0407 | ||
|
|
4267f5bd5d | ||
|
|
a5fc6e7436 | ||
|
|
cc5dfc0b0d |
@@ -44,8 +44,8 @@ allprojects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly 'com.willfp:eco:6.38.0'
|
compileOnly 'com.willfp:eco:6.43.0'
|
||||||
implementation 'com.willfp:libreforge:3.98.1'
|
implementation 'com.willfp:libreforge:3.113.0'
|
||||||
implementation 'org.joml:joml:1.10.4'
|
implementation 'org.joml:joml:1.10.4'
|
||||||
|
|
||||||
compileOnly 'org.jetbrains:annotations:23.0.0'
|
compileOnly 'org.jetbrains:annotations:23.0.0'
|
||||||
|
|||||||
@@ -62,10 +62,6 @@ class ReforgesPlugin : LibReforgePlugin() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getMinimumEcoVersion(): String {
|
|
||||||
return "6.38.0"
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
/**
|
/**
|
||||||
* Instance of Reforges.
|
* Instance of Reforges.
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package com.willfp.reforges.commands
|
package com.willfp.reforges.commands
|
||||||
|
|
||||||
import com.willfp.eco.core.EcoPlugin
|
|
||||||
import com.willfp.eco.core.command.impl.PluginCommand
|
import com.willfp.eco.core.command.impl.PluginCommand
|
||||||
|
import com.willfp.libreforge.LibReforgePlugin
|
||||||
|
import com.willfp.libreforge.lrcdb.CommandExport
|
||||||
|
import com.willfp.libreforge.lrcdb.CommandImport
|
||||||
|
import com.willfp.libreforge.lrcdb.ExportableConfig
|
||||||
|
import com.willfp.reforges.reforges.Reforges
|
||||||
import org.bukkit.command.CommandSender
|
import org.bukkit.command.CommandSender
|
||||||
|
|
||||||
class CommandReforges(plugin: EcoPlugin) : PluginCommand(plugin, "reforges", "reforges.command.reforges", false) {
|
class CommandReforges(plugin: LibReforgePlugin) :
|
||||||
|
PluginCommand(plugin, "reforges", "reforges.command.reforges", false) {
|
||||||
override fun onExecute(sender: CommandSender, args: List<String>) {
|
override fun onExecute(sender: CommandSender, args: List<String>) {
|
||||||
sender.sendMessage(
|
sender.sendMessage(
|
||||||
plugin.langYml.getMessage("invalid-command")
|
plugin.langYml.getMessage("invalid-command")
|
||||||
@@ -16,5 +21,14 @@ class CommandReforges(plugin: EcoPlugin) : PluginCommand(plugin, "reforges", "re
|
|||||||
.addSubcommand(CommandGive(plugin))
|
.addSubcommand(CommandGive(plugin))
|
||||||
.addSubcommand(CommandOpen(plugin))
|
.addSubcommand(CommandOpen(plugin))
|
||||||
.addSubcommand(CommandApply(plugin))
|
.addSubcommand(CommandApply(plugin))
|
||||||
|
.addSubcommand(CommandImport("reforges", plugin))
|
||||||
|
.addSubcommand(CommandExport(plugin) {
|
||||||
|
Reforges.values().map {
|
||||||
|
ExportableConfig(
|
||||||
|
it.id,
|
||||||
|
it.config
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.willfp.reforges.gui
|
||||||
|
|
||||||
|
import com.willfp.reforges.util.ReforgeStatus
|
||||||
|
|
||||||
|
data class PricedReforgeStatus(val status: ReforgeStatus, val cost: Double)
|
||||||
@@ -4,21 +4,21 @@ import com.willfp.eco.core.EcoPlugin
|
|||||||
import com.willfp.eco.core.config.updating.ConfigUpdater
|
import com.willfp.eco.core.config.updating.ConfigUpdater
|
||||||
import com.willfp.eco.core.drops.DropQueue
|
import com.willfp.eco.core.drops.DropQueue
|
||||||
import com.willfp.eco.core.fast.fast
|
import com.willfp.eco.core.fast.fast
|
||||||
|
import com.willfp.eco.core.gui.captiveSlot
|
||||||
import com.willfp.eco.core.gui.menu
|
import com.willfp.eco.core.gui.menu
|
||||||
import com.willfp.eco.core.gui.menu.Menu
|
import com.willfp.eco.core.gui.menu.Menu
|
||||||
import com.willfp.eco.core.gui.slot
|
import com.willfp.eco.core.gui.slot
|
||||||
import com.willfp.eco.core.gui.slot.FillerMask
|
import com.willfp.eco.core.gui.slot.FillerMask
|
||||||
import com.willfp.eco.core.gui.slot.MaskItems
|
import com.willfp.eco.core.gui.slot.MaskItems
|
||||||
import com.willfp.eco.core.gui.slot.Slot
|
|
||||||
import com.willfp.eco.core.integrations.economy.EconomyManager
|
import com.willfp.eco.core.integrations.economy.EconomyManager
|
||||||
import com.willfp.eco.core.items.Items
|
import com.willfp.eco.core.items.Items
|
||||||
import com.willfp.eco.core.items.builder.ItemStackBuilder
|
import com.willfp.eco.core.items.builder.ItemStackBuilder
|
||||||
|
import com.willfp.eco.core.items.isEmpty
|
||||||
import com.willfp.eco.util.NumberUtils
|
import com.willfp.eco.util.NumberUtils
|
||||||
import com.willfp.reforges.reforges.PriceMultipliers
|
import com.willfp.reforges.reforges.PriceMultipliers
|
||||||
import com.willfp.reforges.reforges.Reforge
|
import com.willfp.reforges.reforges.Reforge
|
||||||
import com.willfp.reforges.reforges.ReforgeTarget
|
import com.willfp.reforges.reforges.ReforgeTarget
|
||||||
import com.willfp.reforges.reforges.ReforgeTargets
|
import com.willfp.reforges.reforges.ReforgeTargets
|
||||||
import com.willfp.reforges.reforges.util.MetadatedReforgeStatus
|
|
||||||
import com.willfp.reforges.util.ReforgeStatus
|
import com.willfp.reforges.util.ReforgeStatus
|
||||||
import com.willfp.reforges.util.getRandomReforge
|
import com.willfp.reforges.util.getRandomReforge
|
||||||
import com.willfp.reforges.util.reforge
|
import com.willfp.reforges.util.reforge
|
||||||
@@ -28,40 +28,28 @@ import org.bukkit.Material
|
|||||||
import org.bukkit.Sound
|
import org.bukkit.Sound
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
import org.bukkit.inventory.ItemStack
|
import org.bukkit.inventory.ItemStack
|
||||||
import java.util.*
|
import java.util.Locale
|
||||||
import kotlin.math.pow
|
import kotlin.math.pow
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
object ReforgeGUI {
|
object ReforgeGUI {
|
||||||
private lateinit var menu: Menu
|
private lateinit var menu: Menu
|
||||||
|
|
||||||
private fun Menu.getReforgeStatus(player: Player): MetadatedReforgeStatus {
|
private fun Menu.getItemToReforge(player: Player) = this.getState<ItemStack>(
|
||||||
val captive = this.getCaptiveItems(player)
|
player,
|
||||||
val item = captive.getOrNull(0)
|
"item_to_reforge"
|
||||||
val stone = captive.getOrNull(1)
|
)
|
||||||
|
|
||||||
val targets = mutableListOf<ReforgeTarget>()
|
private fun Menu.getReforgeStone(player: Player) = this.getState<ItemStack>(
|
||||||
|
player,
|
||||||
|
"reforge_stone"
|
||||||
|
)
|
||||||
|
|
||||||
var cost = 0.0
|
private fun Menu.getReforgeStatus(player: Player): PricedReforgeStatus =
|
||||||
val status = if (item == null || item.type == Material.AIR) {
|
this.getState<PricedReforgeStatus>(player, "reforge_status") ?: PricedReforgeStatus(
|
||||||
ReforgeStatus.NO_ITEM
|
ReforgeStatus.NO_ITEM,
|
||||||
} else {
|
0.0
|
||||||
targets.addAll(ReforgeTargets.getForItem(item))
|
)
|
||||||
if (targets.isEmpty()) {
|
|
||||||
ReforgeStatus.INVALID_ITEM
|
|
||||||
} else {
|
|
||||||
val reforgeStone = stone.reforgeStone
|
|
||||||
if (reforgeStone != null && reforgeStone.canBeAppliedTo(item)) {
|
|
||||||
cost = reforgeStone.stonePrice.toDouble()
|
|
||||||
ReforgeStatus.ALLOW_STONE
|
|
||||||
} else {
|
|
||||||
ReforgeStatus.ALLOW
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return MetadatedReforgeStatus(status, cost)
|
|
||||||
}
|
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun open(player: Player) {
|
fun open(player: Player) {
|
||||||
@@ -77,7 +65,7 @@ object ReforgeGUI {
|
|||||||
|
|
||||||
val cost = when {
|
val cost = when {
|
||||||
status == ReforgeStatus.ALLOW || (status == ReforgeStatus.ALLOW_STONE && specialCost < 0) -> {
|
status == ReforgeStatus.ALLOW || (status == ReforgeStatus.ALLOW_STONE && specialCost < 0) -> {
|
||||||
val amountOfReforges = menu.getCaptiveItems(player)[0].timesReforged
|
val amountOfReforges = menu.getItemToReforge(player)?.timesReforged ?: 0
|
||||||
|
|
||||||
plugin.configYml.getDouble("reforge.cost") *
|
plugin.configYml.getDouble("reforge.cost") *
|
||||||
plugin.configYml.getDouble("reforge.cost-exponent").pow(amountOfReforges) *
|
plugin.configYml.getDouble("reforge.cost-exponent").pow(amountOfReforges) *
|
||||||
@@ -91,8 +79,8 @@ object ReforgeGUI {
|
|||||||
|
|
||||||
var xpCost = plugin.configYml.getInt("reforge.xp-cost")
|
var xpCost = plugin.configYml.getInt("reforge.xp-cost")
|
||||||
if (status == ReforgeStatus.ALLOW) {
|
if (status == ReforgeStatus.ALLOW) {
|
||||||
val item = menu.getCaptiveItems(player)[0]
|
val item = menu.getItemToReforge(player)
|
||||||
val reforges = item.timesReforged
|
val reforges = item?.timesReforged ?: 0
|
||||||
xpCost *= PriceMultipliers.getForPlayer(player).multiplier.toInt()
|
xpCost *= PriceMultipliers.getForPlayer(player).multiplier.toInt()
|
||||||
xpCost *= plugin.configYml.getDouble("reforge.cost-exponent").pow(reforges.toDouble()).toInt()
|
xpCost *= plugin.configYml.getDouble("reforge.cost-exponent").pow(reforges.toDouble()).toInt()
|
||||||
}
|
}
|
||||||
@@ -106,7 +94,7 @@ object ReforgeGUI {
|
|||||||
.replace("%xpcost%", NumberUtils.format(xpCost.toDouble()))
|
.replace("%xpcost%", NumberUtils.format(xpCost.toDouble()))
|
||||||
.replace(
|
.replace(
|
||||||
"%stone%",
|
"%stone%",
|
||||||
menu.getCaptiveItems(player).getOrNull(1).reforgeStone?.name ?: ""
|
menu.getReforgeStone(player)?.reforgeStone?.name ?: ""
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,9 +102,8 @@ object ReforgeGUI {
|
|||||||
|
|
||||||
onLeftClick { event, _, menu ->
|
onLeftClick { event, _, menu ->
|
||||||
val player = event.whoClicked as Player
|
val player = event.whoClicked as Player
|
||||||
val captive = menu.getCaptiveItems(player)
|
|
||||||
|
|
||||||
val item = captive.getOrNull(0) ?: return@onLeftClick
|
val item = menu.getItemToReforge(player) ?: return@onLeftClick
|
||||||
val currentReforge = item.reforge
|
val currentReforge = item.reforge
|
||||||
|
|
||||||
val targets = ReforgeTargets.getForItem(item)
|
val targets = ReforgeTargets.getForItem(item)
|
||||||
@@ -124,7 +111,7 @@ object ReforgeGUI {
|
|||||||
|
|
||||||
var usedStone = false
|
var usedStone = false
|
||||||
|
|
||||||
val stoneInMenu = menu.getCaptiveItems(player).getOrNull(1).reforgeStone
|
val stoneInMenu = menu.getReforgeStone(player)?.reforgeStone
|
||||||
|
|
||||||
val reforge = if (stoneInMenu != null && stoneInMenu.canBeAppliedTo(item)) {
|
val reforge = if (stoneInMenu != null && stoneInMenu.canBeAppliedTo(item)) {
|
||||||
usedStone = true
|
usedStone = true
|
||||||
@@ -198,9 +185,9 @@ object ReforgeGUI {
|
|||||||
item.reforge = reforge
|
item.reforge = reforge
|
||||||
|
|
||||||
if (usedStone) {
|
if (usedStone) {
|
||||||
val stone = menu.getCaptiveItems(player)[1]
|
val stone = menu.getReforgeStone(player)
|
||||||
stone.itemMeta = null
|
stone?.itemMeta = null
|
||||||
stone.amount = 0
|
stone?.amount = 0
|
||||||
if (plugin.configYml.getBool("gui.stone-sound.enabled")) {
|
if (plugin.configYml.getBool("gui.stone-sound.enabled")) {
|
||||||
player.playSound(
|
player.playSound(
|
||||||
player.location,
|
player.location,
|
||||||
@@ -229,8 +216,9 @@ object ReforgeGUI {
|
|||||||
.toTypedArray()
|
.toTypedArray()
|
||||||
|
|
||||||
menu = menu(plugin.configYml.getInt("gui.rows")) {
|
menu = menu(plugin.configYml.getInt("gui.rows")) {
|
||||||
setTitle(plugin.langYml.getFormattedString("menu.title"))
|
title = plugin.langYml.getFormattedString("menu.title")
|
||||||
setMask(FillerMask(MaskItems(*maskItems), *maskPattern))
|
setMask(FillerMask(MaskItems(*maskItems), *maskPattern))
|
||||||
|
allowChangingHeldItem()
|
||||||
|
|
||||||
val slot = slot(
|
val slot = slot(
|
||||||
ItemStackBuilder(Material.BLACK_STAINED_GLASS_PANE)
|
ItemStackBuilder(Material.BLACK_STAINED_GLASS_PANE)
|
||||||
@@ -261,13 +249,13 @@ object ReforgeGUI {
|
|||||||
setSlot(
|
setSlot(
|
||||||
plugin.configYml.getInt("gui.item-slot.row"),
|
plugin.configYml.getInt("gui.item-slot.row"),
|
||||||
plugin.configYml.getInt("gui.item-slot.column"),
|
plugin.configYml.getInt("gui.item-slot.column"),
|
||||||
Slot.builder().setCaptive().build()
|
captiveSlot()
|
||||||
)
|
)
|
||||||
|
|
||||||
setSlot(
|
setSlot(
|
||||||
plugin.configYml.getInt("gui.stone-slot.row"),
|
plugin.configYml.getInt("gui.stone-slot.row"),
|
||||||
plugin.configYml.getInt("gui.stone-slot.column"),
|
plugin.configYml.getInt("gui.stone-slot.column"),
|
||||||
Slot.builder().setCaptive().build()
|
captiveSlot()
|
||||||
)
|
)
|
||||||
|
|
||||||
setSlot(
|
setSlot(
|
||||||
@@ -288,6 +276,50 @@ object ReforgeGUI {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
onRender { player, menu ->
|
||||||
|
menu.addState(
|
||||||
|
player, "item_to_reforge", menu.getCaptiveItem(
|
||||||
|
player,
|
||||||
|
plugin.configYml.getInt("gui.item-slot.row"),
|
||||||
|
plugin.configYml.getInt("gui.item-slot.column")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
menu.addState(
|
||||||
|
player, "reforge_stone", menu.getCaptiveItem(
|
||||||
|
player,
|
||||||
|
plugin.configYml.getInt("gui.stone-slot.row"),
|
||||||
|
plugin.configYml.getInt("gui.stone-slot.column")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
val item = menu.getItemToReforge(player)
|
||||||
|
|
||||||
|
val stone = menu.getReforgeStone(player)
|
||||||
|
|
||||||
|
val targets = mutableListOf<ReforgeTarget>()
|
||||||
|
|
||||||
|
var cost = 0.0
|
||||||
|
val status = if (item.isEmpty) {
|
||||||
|
ReforgeStatus.NO_ITEM
|
||||||
|
} else {
|
||||||
|
targets.addAll(ReforgeTargets.getForItem(item!!))
|
||||||
|
if (targets.isEmpty()) {
|
||||||
|
ReforgeStatus.INVALID_ITEM
|
||||||
|
} else {
|
||||||
|
val reforgeStone = stone.reforgeStone
|
||||||
|
if (reforgeStone != null && reforgeStone.canBeAppliedTo(item)) {
|
||||||
|
cost = reforgeStone.stonePrice.toDouble()
|
||||||
|
ReforgeStatus.ALLOW_STONE
|
||||||
|
} else {
|
||||||
|
ReforgeStatus.ALLOW
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
menu.addState(player, "reforge_status", PricedReforgeStatus(status, cost))
|
||||||
|
}
|
||||||
|
|
||||||
onClose { event, menu ->
|
onClose { event, menu ->
|
||||||
DropQueue(event.player as Player)
|
DropQueue(event.player as Player)
|
||||||
.addItems(menu.getCaptiveItems(event.player as Player))
|
.addItems(menu.getCaptiveItems(event.player as Player))
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
package com.willfp.reforges.reforges.util
|
|
||||||
|
|
||||||
import com.willfp.reforges.util.ReforgeStatus
|
|
||||||
|
|
||||||
data class MetadatedReforgeStatus(val status: ReforgeStatus, val cost: Double)
|
|
||||||
@@ -184,7 +184,6 @@ point-names: # If you have point names that look ugly (eg g_souls) then you can
|
|||||||
|
|
||||||
use-faster-move-trigger: true # Disable if you want move trigger to detect sub-1-block movements
|
use-faster-move-trigger: true # Disable if you want move trigger to detect sub-1-block movements
|
||||||
raytrace-distance: 80 # The distance that alt_click should check for a location
|
raytrace-distance: 80 # The distance that alt_click should check for a location
|
||||||
block-item-drop-place-check: true # If the block_item_drop trigger should only fire on naturally placed blocks (prevents dupes)
|
|
||||||
|
|
||||||
potions:
|
potions:
|
||||||
icon:
|
icon:
|
||||||
@@ -195,6 +194,4 @@ potions:
|
|||||||
triggered: true
|
triggered: true
|
||||||
particles:
|
particles:
|
||||||
permanent: false
|
permanent: false
|
||||||
triggered: true
|
triggered: true
|
||||||
|
|
||||||
share-configs: true # If your configs are allowed to be used to gather data and improve the plugin. Nothing identifying (IP, Name, etc) is shared.
|
|
||||||
@@ -18,6 +18,13 @@ messages:
|
|||||||
invalid-reforge: "&cInvalid reforge!"
|
invalid-reforge: "&cInvalid reforge!"
|
||||||
needs-reforge: "&cYou must specify a reforge"
|
needs-reforge: "&cYou must specify a reforge"
|
||||||
cannot-transmit: "&cYou can't transmit here!"
|
cannot-transmit: "&cYou can't transmit here!"
|
||||||
|
must-specify-lrcdb-id: "&cYou must specify the ID of the config to download! Not sure what this means? Go to &alrcdb.auxilor.io"
|
||||||
|
lrcdb-import-error: "&cError importing config: &f%message%"
|
||||||
|
lrcdb-import-success: "&fImported &a%name%&f! Reload the plugin to install it"
|
||||||
|
must-specify-config-name: "&cYou must specify the config name!"
|
||||||
|
invalid-config-name: "&cInvalid config name!"
|
||||||
|
lrcdb-export-error: "&cError exporting config: &f%message%"
|
||||||
|
lrcdb-export-success: "&fExported &a%name%&f! View it on &alrcdb.auxilor.io&f, or share your config ID: &f%id%"
|
||||||
|
|
||||||
menu:
|
menu:
|
||||||
title: "Reforge Item"
|
title: "Reforge Item"
|
||||||
|
|||||||
19
eco-core/core-plugin/src/main/resources/lrcdb.yml
Normal file
19
eco-core/core-plugin/src/main/resources/lrcdb.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Options for lrcdb (https://lrcdb.auxilor.io), a website to share configs
|
||||||
|
# with other server owners, so you can get more configs without making them
|
||||||
|
# yourself!
|
||||||
|
|
||||||
|
author: "Unknown Author" # The name attached to configs you export
|
||||||
|
|
||||||
|
# Options about automatically sharing configs you create
|
||||||
|
share-configs:
|
||||||
|
# If you want all your configs to automatically be publicly available,
|
||||||
|
# set this to true. This really helps out other users!
|
||||||
|
publicly: false
|
||||||
|
|
||||||
|
# If you don't want your configs to be usable to gather information about
|
||||||
|
# plugin usage or to improve the plugins in the future, disable this.
|
||||||
|
# Nothing identifying is shared.
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# If you disable share-configs, you can still share select configs publicly
|
||||||
|
# with /ecoenchants export <config>.
|
||||||
@@ -46,6 +46,8 @@ permissions:
|
|||||||
reforges.command.give: true
|
reforges.command.give: true
|
||||||
reforges.command.apply: true
|
reforges.command.apply: true
|
||||||
reforges.command.open: true
|
reforges.command.open: true
|
||||||
|
reforges.command.import: true
|
||||||
|
reforges.command.export: true
|
||||||
|
|
||||||
reforges.command.reload:
|
reforges.command.reload:
|
||||||
description: Allows reloading the config
|
description: Allows reloading the config
|
||||||
@@ -65,3 +67,9 @@ permissions:
|
|||||||
reforges.command.apply:
|
reforges.command.apply:
|
||||||
description: Allows the user of /reforges apply.
|
description: Allows the user of /reforges apply.
|
||||||
default: op
|
default: op
|
||||||
|
reforges.command.import:
|
||||||
|
description: Allows the user of /reforges import.
|
||||||
|
default: op
|
||||||
|
reforges.command.export:
|
||||||
|
description: Allows the user of /reforges export.
|
||||||
|
default: op
|
||||||
|
|||||||
@@ -4,25 +4,48 @@
|
|||||||
# including in subfolders if you want to organize your reforge configs
|
# including in subfolders if you want to organize your reforge configs
|
||||||
# _example.yml is not loaded.
|
# _example.yml is not loaded.
|
||||||
|
|
||||||
name: "<gradient:#4776E6>Acute</gradient:#8E54E9>"
|
name: "<gradient:#AAFFA9>Dynamic</gradient:#11FFBD>" # The display name for the reforge
|
||||||
description:
|
description: # The lore to add to an item with this reforge:
|
||||||
- "&a+2% &fTriple Damage Chance"
|
- "&a+5% &fDamage"
|
||||||
targets:
|
- "&a+10% &fCrit Damage"
|
||||||
- axe
|
targets: # The targets that this reforge can be applied to
|
||||||
|
- melee
|
||||||
|
|
||||||
|
# Options for the reforge stone
|
||||||
stone:
|
stone:
|
||||||
enabled: false
|
enabled: true # If this reforge requires the use of a reforge stone
|
||||||
name: ''
|
name: "<gradient:#AAFFA9>Dynamic</gradient:#11FFBD>&f Reforge Stone" # The display name of the stone
|
||||||
lore: []
|
lore: # The lore of the stone
|
||||||
item: ''
|
- "&7Place on the right of the"
|
||||||
craftable: false
|
- "&7reforge menu to apply the"
|
||||||
recipe: []
|
- "<gradient:#AAFFA9>Dynamic</gradient:#11FFBD>&7 reforge!"
|
||||||
|
item: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmM0YTY1YzY4OWIyZDM2NDA5MTAwYTYwYzJhYjhkM2QwYTY3Y2U5NGVlYTNjMWY3YWM5NzRmZDg5MzU2OGI1ZCJ9fX0=
|
||||||
|
craftable: true # If the reforge stone should be craftable
|
||||||
|
price: 100000 # (Optional) The price required to apply this reforge, overrides the default reforge price
|
||||||
|
recipe: # The recipe for the stone to have
|
||||||
|
- air
|
||||||
|
- ecoitems:blank_reforge_stone ? air
|
||||||
|
- air
|
||||||
|
- iron_block
|
||||||
|
- daylight_sensor
|
||||||
|
- iron_block
|
||||||
|
- air
|
||||||
|
- phantom_membrane
|
||||||
|
- air
|
||||||
|
|
||||||
|
# The effects of the reforge (i.e. the functionality)
|
||||||
|
# See here: https://plugins.auxilor.io/effects/configuring-an-effect
|
||||||
effects:
|
effects:
|
||||||
- id: damage_multiplier
|
- id: damage_multiplier
|
||||||
args:
|
args:
|
||||||
multiplier: 3
|
multiplier: 1.05
|
||||||
chance: 2
|
|
||||||
triggers:
|
triggers:
|
||||||
- melee_attack
|
- melee_attack
|
||||||
|
- id: crit_multiplier
|
||||||
|
args:
|
||||||
|
multiplier: 1.1
|
||||||
|
triggers:
|
||||||
|
- melee_attack
|
||||||
|
|
||||||
|
# The conditions required to use the reforge
|
||||||
conditions: []
|
conditions: []
|
||||||
@@ -13,6 +13,7 @@ stone:
|
|||||||
- "<gradient:#AAFFA9>Dynamic</gradient:#11FFBD>&7 reforge!"
|
- "<gradient:#AAFFA9>Dynamic</gradient:#11FFBD>&7 reforge!"
|
||||||
item: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmM0YTY1YzY4OWIyZDM2NDA5MTAwYTYwYzJhYjhkM2QwYTY3Y2U5NGVlYTNjMWY3YWM5NzRmZDg5MzU2OGI1ZCJ9fX0=
|
item: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMmM0YTY1YzY4OWIyZDM2NDA5MTAwYTYwYzJhYjhkM2QwYTY3Y2U5NGVlYTNjMWY3YWM5NzRmZDg5MzU2OGI1ZCJ9fX0=
|
||||||
craftable: true
|
craftable: true
|
||||||
|
price: 100000
|
||||||
recipe:
|
recipe:
|
||||||
- air
|
- air
|
||||||
- ecoitems:blank_reforge_stone ? air
|
- ecoitems:blank_reforge_stone ? air
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#libreforge-updater
|
#libreforge-updater
|
||||||
#Mon Sep 12 21:22:09 BST 2022
|
#Tue Oct 18 14:13:24 BST 2022
|
||||||
version=5.49.1
|
version=5.64.0
|
||||||
plugin-name=Reforges
|
plugin-name=Reforges
|
||||||
|
|||||||
Reference in New Issue
Block a user