Moved to use rewards.yml

This commit is contained in:
Auxilor
2022-03-18 12:29:42 +00:00
parent 7f012547fa
commit 197380dd84
7 changed files with 125 additions and 60 deletions

View File

@@ -5,6 +5,7 @@ import com.willfp.eco.core.command.impl.PluginCommand
import com.willfp.eco.core.display.DisplayModule
import com.willfp.ecocrates.commands.CommandEcoCrates
import com.willfp.ecocrates.config.CratesYml
import com.willfp.ecocrates.config.RewardsYml
import com.willfp.ecocrates.crate.CrateKeyListener
import com.willfp.ecocrates.crate.placed.CrateDisplay
import com.willfp.ecocrates.crate.placed.PlacedCrates
@@ -14,6 +15,7 @@ import org.bukkit.event.Listener
class EcoCratesPlugin : EcoPlugin() {
val cratesYml = CratesYml(this)
val rewardsYml = RewardsYml(this)
init {
instance = this

View File

@@ -0,0 +1,14 @@
package com.willfp.ecocrates.config
import com.willfp.eco.core.EcoPlugin
import com.willfp.eco.core.config.BaseConfig
import com.willfp.eco.core.config.ConfigType
class RewardsYml(
plugin: EcoPlugin
) : BaseConfig(
"rewards",
plugin,
true,
ConfigType.YAML
)

View File

@@ -28,6 +28,7 @@ import com.willfp.ecocrates.crate.roll.Rolls
import com.willfp.ecocrates.event.CrateOpenEvent
import com.willfp.ecocrates.event.CrateRewardEvent
import com.willfp.ecocrates.reward.Reward
import com.willfp.ecocrates.reward.Rewards
import com.willfp.ecocrates.util.ConfiguredFirework
import com.willfp.ecocrates.util.ConfiguredSound
import com.willfp.ecocrates.util.PlayableSound
@@ -77,7 +78,7 @@ class Crate(
val keyLore = config.getFormattedStrings("key.lore")
val rewards = config.getSubsections("rewards").map { Reward(plugin, it) }
val rewards = config.getStrings("rewards").mapNotNull { Rewards.getByID(it) }
val permission: Permission =
Bukkit.getPluginManager().getPermission("ecocrates.open.$id") ?: Permission(

View File

@@ -2,7 +2,6 @@ package com.willfp.ecocrates.crate
import com.google.common.collect.HashBiMap
import com.google.common.collect.ImmutableList
import com.willfp.eco.core.config.updating.ConfigUpdater
import com.willfp.ecocrates.EcoCratesPlugin
import com.willfp.ecocrates.crate.placed.PlacedCrates
@@ -32,8 +31,7 @@ object Crates {
}
@JvmStatic
@ConfigUpdater
fun update(plugin: EcoCratesPlugin) {
internal fun update(plugin: EcoCratesPlugin) {
BY_ID.clear()
for (config in plugin.cratesYml.getSubsections("crates")) {

View File

@@ -0,0 +1,46 @@
package com.willfp.ecocrates.reward
import com.google.common.collect.HashBiMap
import com.google.common.collect.ImmutableList
import com.willfp.eco.core.config.updating.ConfigUpdater
import com.willfp.ecocrates.EcoCratesPlugin
import com.willfp.ecocrates.crate.Crates
@Suppress("UNUSED")
object Rewards {
private val BY_ID = HashBiMap.create<String, Reward>()
/**
* Get reward matching id.
*
* @param id The id to query.
* @return The matching reward, or null if not found.
*/
@JvmStatic
fun getByID(id: String): Reward? {
return BY_ID[id]
}
/**
* List of all registered rewards.
*
* @return The rewards.
*/
@JvmStatic
fun values(): List<Reward> {
return ImmutableList.copyOf(BY_ID.values)
}
@JvmStatic
@ConfigUpdater
fun update(plugin: EcoCratesPlugin) {
BY_ID.clear()
for (config in plugin.rewardsYml.getSubsections("rewards")) {
val reward = Reward(plugin, config)
BY_ID[reward.id] = reward
}
Crates.update(plugin)
}
}

View File

@@ -94,59 +94,6 @@ crates:
pitch: 1
rewards:
- id: diamond
commands: [ ]
items:
- diamond
messages:
- 'amogus?'
weight:
actual: 1
display: 25
max-wins: -1
display:
name: "&bDiamond"
item: diamond
lore:
- "&fDisplay Chance: &a%chance%%"
- "&fActual Chance: &a%actual_chance%%"
row: 3
column: 2
- id: emerald
commands: [ ]
items:
- emerald
messages:
- 'amogus?!!'
weight:
actual: 1
display: 50
max-wins: -1
display:
name: "&aEmerald"
item: emerald
lore:
- "&fDisplay Chance: &a%chance%%"
- "&fActual Chance: &a%actual_chance%%"
row: 4
column: 2
- id: bedrock
commands: [ ]
items:
- bedrock
messages:
- 'amogus?!!'
weight:
actual: 98
display: 0
max-wins: -1
display:
name: "<g:#00ffff>very cool demo bedrock</g:#00ff00>"
item: bedrock
lore:
- "&fDisplay Chance: &a%chance%%"
- "&fActual Chance: &a%actual_chance%%"
row: 5
column: 2
- diamond
- emerald
- bedrock

View File

@@ -0,0 +1,57 @@
rewards:
- id: diamond
commands: [ ]
items:
- diamond
messages:
- 'amogus?'
weight:
actual: 1
display: 25
max-wins: -1
display:
name: "&bDiamond"
item: diamond
lore:
- "&fDisplay Chance: &a%chance%%"
- "&fActual Chance: &a%actual_chance%%"
row: 3
column: 2
- id: emerald
commands: [ ]
items:
- emerald
messages:
- 'amogus?!!'
weight:
actual: 1
display: 50
max-wins: -1
display:
name: "&aEmerald"
item: emerald
lore:
- "&fDisplay Chance: &a%chance%%"
- "&fActual Chance: &a%actual_chance%%"
row: 4
column: 2
- id: bedrock
commands: [ ]
items:
- bedrock
messages:
- 'amogus?!!'
weight:
actual: 98
display: 0
max-wins: -1
display:
name: "<g:#00ffff>very cool demo bedrock</g:#00ff00>"
item: bedrock
lore:
- "&fDisplay Chance: &a%chance%%"
- "&fActual Chance: &a%actual_chance%%"
row: 5
column: 2