Make charge stay

This commit is contained in:
TomTom 2024-03-17 10:30:06 +01:00
parent 21d0992532
commit b696d770ce
6 changed files with 13 additions and 7 deletions

View File

@ -27,13 +27,13 @@ class Messages(file: File, stream: InputStream) {
@JvmStatic @JvmStatic
fun CONTAINER_FULL_WARNING() = AxMinionsAPI.INSTANCE.getMessages().get<String>("warnings.container-full") fun CONTAINER_FULL_WARNING() = AxMinionsAPI.INSTANCE.getMessages().get<String>("warnings.container-full")
@JvmStatic @JvmStatic
fun TIME_DAY() = AxMinionsAPI.INSTANCE.getMessages().get<Long>("time.day") fun TIME_DAY() = AxMinionsAPI.INSTANCE.getMessages().get<String>("time.day")
@JvmStatic @JvmStatic
fun TIME_HOUR() = AxMinionsAPI.INSTANCE.getMessages().get<Long>("time.hour") fun TIME_HOUR() = AxMinionsAPI.INSTANCE.getMessages().get<String>("time.hour")
@JvmStatic @JvmStatic
fun TIME_MINUTE() = AxMinionsAPI.INSTANCE.getMessages().get<Long>("time.minute") fun TIME_MINUTE() = AxMinionsAPI.INSTANCE.getMessages().get<String>("time.minute")
@JvmStatic @JvmStatic
fun TIME_SECOND() = AxMinionsAPI.INSTANCE.getMessages().get<Long>("time.second") fun TIME_SECOND() = AxMinionsAPI.INSTANCE.getMessages().get<String>("time.second")
@JvmStatic @JvmStatic
fun NO_CHARGE_WARNING() = AxMinionsAPI.INSTANCE.getMessages().get<String>("warnings.no-charge") fun NO_CHARGE_WARNING() = AxMinionsAPI.INSTANCE.getMessages().get<String>("warnings.no-charge")
@JvmStatic @JvmStatic

View File

@ -51,7 +51,7 @@ abstract class MinionType(private val name: String, private val defaults: InputS
run(minion) run(minion)
} }
fun getItem(level: Int = 1, actions: Long = 0): ItemStack { fun getItem(level: Int = 1, actions: Long = 0, charge: Long = 0): ItemStack {
val builder = ItemBuilder( val builder = ItemBuilder(
config.getSection("item"), config.getSection("item"),
Placeholder.unparsed("level", level.toString()), Placeholder.unparsed("level", level.toString()),
@ -60,6 +60,7 @@ abstract class MinionType(private val name: String, private val defaults: InputS
builder.storePersistentData(Keys.MINION_TYPE, PersistentDataType.STRING, name) builder.storePersistentData(Keys.MINION_TYPE, PersistentDataType.STRING, name)
builder.storePersistentData(Keys.LEVEL, PersistentDataType.INTEGER, level) builder.storePersistentData(Keys.LEVEL, PersistentDataType.INTEGER, level)
builder.storePersistentData(Keys.STATISTICS, PersistentDataType.LONG, actions) builder.storePersistentData(Keys.STATISTICS, PersistentDataType.LONG, actions)
builder.storePersistentData(Keys.CHARGE, PersistentDataType.LONG, charge)
return builder.clonedGet() return builder.clonedGet()
} }

View File

@ -14,4 +14,6 @@ object Keys {
val STATISTICS = NamespacedKey(AxMinionsAPI.INSTANCE.getAxMinionsInstance(), "statistics") val STATISTICS = NamespacedKey(AxMinionsAPI.INSTANCE.getAxMinionsInstance(), "statistics")
@JvmField @JvmField
val PLACED = NamespacedKey(AxMinionsAPI.INSTANCE.getAxMinionsInstance(), "placed") val PLACED = NamespacedKey(AxMinionsAPI.INSTANCE.getAxMinionsInstance(), "placed")
@JvmField
val CHARGE = NamespacedKey(AxMinionsAPI.INSTANCE.getAxMinionsInstance(), "charge")
} }

View File

@ -7,10 +7,12 @@ import com.artillexstudios.axminions.api.config.Messages
import com.artillexstudios.axminions.api.data.DataHandler import com.artillexstudios.axminions.api.data.DataHandler
import com.artillexstudios.axminions.api.integrations.Integrations import com.artillexstudios.axminions.api.integrations.Integrations
import com.artillexstudios.axminions.api.minions.Minion import com.artillexstudios.axminions.api.minions.Minion
import com.artillexstudios.axminions.api.minions.miniontype.MinionType
import com.artillexstudios.axminions.minions.MinionTicker import com.artillexstudios.axminions.minions.MinionTicker
import com.artillexstudios.axminions.minions.Minions import com.artillexstudios.axminions.minions.Minions
import org.bukkit.entity.Player import org.bukkit.entity.Player
import java.io.File import java.io.File
import java.util.Locale
class AxMinionsAPIImpl(private val plugin: AxMinionsPlugin) : AxMinionsAPI { class AxMinionsAPIImpl(private val plugin: AxMinionsPlugin) : AxMinionsAPI {

View File

@ -45,6 +45,7 @@ class MinionPlaceListener : Listener {
val level = meta.persistentDataContainer.get(Keys.LEVEL, PersistentDataType.INTEGER) ?: 0 val level = meta.persistentDataContainer.get(Keys.LEVEL, PersistentDataType.INTEGER) ?: 0
val stats = meta.persistentDataContainer.get(Keys.STATISTICS, PersistentDataType.LONG) ?: 0 val stats = meta.persistentDataContainer.get(Keys.STATISTICS, PersistentDataType.LONG) ?: 0
val charge = meta.persistentDataContainer.get(Keys.CHARGE, PersistentDataType.LONG) ?: 0
if (Config.PLACE_PERMISSION() && !event.player.hasPermission("axminions.place.${minionType.getName()}")) { if (Config.PLACE_PERMISSION() && !event.player.hasPermission("axminions.place.${minionType.getName()}")) {
event.player.sendMessage(StringUtils.formatToString(Messages.PREFIX() + Messages.PLACE_MISSING_PERMISSION())) event.player.sendMessage(StringUtils.formatToString(Messages.PREFIX() + Messages.PLACE_MISSING_PERMISSION()))
@ -93,7 +94,7 @@ class MinionPlaceListener : Listener {
0.0, 0.0,
locationId, locationId,
0, 0,
0 charge
) )
Minions.startTicking(chunk) Minions.startTicking(chunk)

View File

@ -365,7 +365,7 @@ class Minion(
} }
override fun getAsItem(): ItemStack { override fun getAsItem(): ItemStack {
return type.getItem(level, actions) return type.getItem(level, actions, charge)
} }
override fun getLevel(): Int { override fun getLevel(): Int {