Moved to use rewards.yml
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
@@ -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(
|
||||
|
||||
@@ -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")) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
57
eco-core/core-plugin/src/main/resources/rewards.yml
Normal file
57
eco-core/core-plugin/src/main/resources/rewards.yml
Normal 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
|
||||
Reference in New Issue
Block a user