mirror of
https://github.com/Artillex-Studios/AxMinions.git
synced 2025-02-10 00:11:30 +01:00
Fixes, add levelup sound
This commit is contained in:
parent
fb2a999cc7
commit
61532f1087
@ -48,9 +48,11 @@ class Config(file: File, stream: InputStream) {
|
||||
@JvmStatic
|
||||
fun PLACE_PERMISSION() = AxMinionsAPI.INSTANCE.getConfig().get("place-permissions", false)
|
||||
@JvmStatic
|
||||
fun WORK_WHEN_OWNER_OFFLINE() = AxMinionsAPI.INSTANCE.getConfig().get<Boolean>("work-when-owner-offline", true)
|
||||
fun WORK_WHEN_OWNER_OFFLINE() = AxMinionsAPI.INSTANCE.getConfig().get("work-when-owner-offline", true)
|
||||
@JvmStatic
|
||||
fun MAX_BREAKS_PER_TICK() = AxMinionsAPI.INSTANCE.getConfig().get<Int>("max-breaks-per-tick", 200)
|
||||
fun MAX_BREAKS_PER_TICK() = AxMinionsAPI.INSTANCE.getConfig().get("max-breaks-per-tick", 200)
|
||||
@JvmStatic
|
||||
fun UPGRADE_SOUND() = AxMinionsAPI.INSTANCE.getConfig().get("upgrade-sound", "ENTITY_PLAYER_LEVELUP")
|
||||
@JvmStatic
|
||||
fun DEBUG(): Boolean {
|
||||
if (debug === null) {
|
||||
|
@ -2,21 +2,32 @@ package com.artillexstudios.axminions.api.minions.miniontype
|
||||
|
||||
import com.artillexstudios.axapi.config.Config
|
||||
import com.artillexstudios.axapi.libs.boostedyaml.boostedyaml.block.implementation.Section
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder
|
||||
import com.artillexstudios.axapi.libs.boostedyaml.boostedyaml.settings.dumper.DumperSettings
|
||||
import com.artillexstudios.axapi.libs.boostedyaml.boostedyaml.settings.general.GeneralSettings
|
||||
import com.artillexstudios.axapi.libs.boostedyaml.boostedyaml.settings.loader.LoaderSettings
|
||||
import com.artillexstudios.axapi.libs.boostedyaml.boostedyaml.settings.updater.UpdaterSettings
|
||||
import com.artillexstudios.axapi.utils.ItemBuilder
|
||||
import com.artillexstudios.axminions.api.AxMinionsAPI
|
||||
import com.artillexstudios.axminions.api.minions.Minion
|
||||
import com.artillexstudios.axminions.api.utils.Keys
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.persistence.PersistentDataType
|
||||
import java.io.File
|
||||
import java.io.InputStream
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder
|
||||
import org.bukkit.inventory.ItemStack
|
||||
import org.bukkit.persistence.PersistentDataType
|
||||
|
||||
abstract class MinionType(private val name: String, private val defaults: InputStream) {
|
||||
private lateinit var config: Config
|
||||
|
||||
fun load() {
|
||||
config = Config(File(AxMinionsAPI.INSTANCE.getAxMinionsDataFolder(), "/minions/$name.yml"), defaults)
|
||||
config = Config(
|
||||
File(AxMinionsAPI.INSTANCE.getAxMinionsDataFolder(), "/minions/$name.yml"),
|
||||
defaults,
|
||||
GeneralSettings.builder().setUseDefaults(false).build(),
|
||||
LoaderSettings.DEFAULT,
|
||||
DumperSettings.DEFAULT,
|
||||
UpdaterSettings.DEFAULT
|
||||
)
|
||||
AxMinionsAPI.INSTANCE.getDataHandler().insertType(this)
|
||||
}
|
||||
|
||||
@ -41,7 +52,11 @@ abstract class MinionType(private val name: String, private val defaults: InputS
|
||||
}
|
||||
|
||||
fun getItem(level: Int = 1, actions: Long = 0): ItemStack {
|
||||
val builder = ItemBuilder(config.getSection("item"), Placeholder.unparsed("level", level.toString()), Placeholder.unparsed("actions", actions.toString()))
|
||||
val builder = ItemBuilder(
|
||||
config.getSection("item"),
|
||||
Placeholder.unparsed("level", level.toString()),
|
||||
Placeholder.unparsed("actions", actions.toString())
|
||||
)
|
||||
builder.storePersistentData(Keys.MINION_TYPE, PersistentDataType.STRING, name)
|
||||
builder.storePersistentData(Keys.LEVEL, PersistentDataType.INTEGER, level)
|
||||
builder.storePersistentData(Keys.STATISTICS, PersistentDataType.LONG, actions)
|
||||
|
@ -14,6 +14,7 @@ import com.artillexstudios.axminions.api.utils.fastFor
|
||||
import net.md_5.bungee.api.ChatMessageType
|
||||
import net.md_5.bungee.api.chat.TextComponent
|
||||
import org.bukkit.Material
|
||||
import org.bukkit.Sound
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.Listener
|
||||
@ -144,6 +145,10 @@ class MinionInventoryListener : Listener {
|
||||
it.takeBalance(player, money)
|
||||
}
|
||||
|
||||
if (Config.UPGRADE_SOUND().isNotBlank()) {
|
||||
player.playSound(player, Config.UPGRADE_SOUND(), 1.0f, 1.0f)
|
||||
}
|
||||
|
||||
minion.setLevel(minion.getLevel() + 1)
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,8 @@ import com.artillexstudios.axminions.api.utils.fastFor
|
||||
import com.artillexstudios.axminions.api.warnings.Warning
|
||||
import com.artillexstudios.axminions.api.warnings.Warnings
|
||||
import com.artillexstudios.axminions.listeners.LinkingListener
|
||||
import java.text.NumberFormat
|
||||
import java.util.Locale
|
||||
import java.util.UUID
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder
|
||||
import org.bukkit.Bukkit
|
||||
@ -55,6 +57,9 @@ class Minion(
|
||||
private val locationID: Int,
|
||||
private var chestLocationId: Int
|
||||
) : Minion {
|
||||
companion object {
|
||||
private val numberFormat = NumberFormat.getCompactNumberInstance(Locale.ENGLISH, NumberFormat.Style.SHORT)
|
||||
}
|
||||
private lateinit var entity: PacketArmorStand
|
||||
private var nextAction = 0
|
||||
private var range = 0.0
|
||||
@ -250,7 +255,7 @@ class Minion(
|
||||
this.level + 1
|
||||
).toString()
|
||||
)
|
||||
val stored = Placeholder.parsed("storage", storage.toString())
|
||||
val stored = Placeholder.parsed("storage", numberFormat.format(storage))
|
||||
val actions = Placeholder.parsed("actions", actions.toString())
|
||||
val multiplier = Placeholder.parsed("multiplier", type.getDouble("multiplier", this.level).toString())
|
||||
val nextMultiplier = Placeholder.parsed(
|
||||
|
@ -7,8 +7,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock
|
||||
import kotlin.concurrent.read
|
||||
import kotlin.concurrent.write
|
||||
import org.bukkit.Chunk
|
||||
import org.bukkit.Location
|
||||
|
||||
|
||||
object Minions {
|
||||
internal val lock = ReentrantReadWriteLock()
|
||||
|
@ -50,6 +50,11 @@ max-breaks-per-tick: 200
|
||||
# Possible options: chat, title, subtitle, actionbar
|
||||
upgrade-fail: "chat"
|
||||
|
||||
# The sound played when you upgrade a minion
|
||||
# set to "" to disable!
|
||||
# For a list of sounds visit: https://jd.papermc.io/paper/1.20/org/bukkit/Sound.html
|
||||
upgrade-sound: "ENTITY_PLAYER_LEVELUP"
|
||||
|
||||
database:
|
||||
# Can be H2 (SqLite support is planned)
|
||||
type: "H2"
|
||||
@ -101,4 +106,4 @@ gui:
|
||||
debug: false
|
||||
|
||||
# Do not change!
|
||||
config-version: 5
|
||||
config-version: 6
|
Loading…
Reference in New Issue
Block a user