From 9329e6def84e75c92fd8d39fd1b68e3dcc3cba86 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Fri, 12 Mar 2021 19:55:59 +0000 Subject: [PATCH] Finished config loading --- .../com/willfp/ecobosses/EcoBossesPlugin.java | 10 +- .../com/willfp/ecobosses/bosses/EcoBoss.java | 95 +++++++++++++++++++ .../bosses/options/GameplayOptions.java | 1 - .../bosses/options/IllusionerOptions.java | 1 - .../ecobosses/config/EcoBossesConfigs.java | 15 --- .../config/configs/BaseBossConfig.java | 2 +- gradle.properties | 4 +- 7 files changed, 103 insertions(+), 25 deletions(-) delete mode 100644 eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/EcoBossesConfigs.java diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java index cbe4705..4de5f88 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/EcoBossesPlugin.java @@ -5,12 +5,12 @@ import com.willfp.eco.util.display.DisplayModule; import com.willfp.eco.util.integrations.IntegrationLoader; import com.willfp.eco.util.plugin.AbstractEcoPlugin; import com.willfp.eco.util.protocollib.AbstractPacketAdapter; -import com.willfp.ecobosses.commands.CommandEbdrop; -import com.willfp.ecobosses.commands.CommandEbreload; -import com.willfp.ecobosses.config.EcoBossesConfigs; +import com.willfp.ecobosses.bosses.EcoBosses; import com.willfp.ecobosses.bosses.listeners.AttackListeners; import com.willfp.ecobosses.bosses.listeners.DeathListeners; import com.willfp.ecobosses.bosses.listeners.SpawnListeners; +import com.willfp.ecobosses.commands.CommandEbdrop; +import com.willfp.ecobosses.commands.CommandEbreload; import lombok.Getter; import org.bukkit.event.Listener; import org.jetbrains.annotations.Nullable; @@ -64,7 +64,7 @@ public class EcoBossesPlugin extends AbstractEcoPlugin { */ @Override public void onReload() { - IllusionerManager.OPTIONS.reload(); + } /** @@ -125,7 +125,7 @@ public class EcoBossesPlugin extends AbstractEcoPlugin { @Override public List> getUpdatableClasses() { return Arrays.asList( - EcoBossesConfigs.class + EcoBosses.class ); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java index a2cfbcb..e958c7d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java @@ -1,8 +1,10 @@ package com.willfp.ecobosses.bosses; import com.willfp.eco.internal.config.AbstractUndefinedConfig; +import com.willfp.eco.util.StringUtils; import com.willfp.eco.util.internal.PluginDependent; import com.willfp.eco.util.plugin.AbstractEcoPlugin; +import com.willfp.ecobosses.bosses.util.bosstype.BossEntityUtils; import com.willfp.ecobosses.bosses.util.bosstype.BossType; import com.willfp.ecobosses.bosses.util.obj.BossbarProperties; import com.willfp.ecobosses.bosses.util.obj.ExperienceOptions; @@ -16,19 +18,24 @@ import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.Sound; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeInstance; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarFlag; import org.bukkit.boss.BarStyle; import org.bukkit.boss.BossBar; +import org.bukkit.entity.EntityType; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.SpawnEggMeta; import org.bukkit.persistence.PersistentDataType; +import org.bukkit.potion.PotionEffectType; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Objects; import java.util.Set; @@ -181,6 +188,9 @@ public class EcoBoss extends PluginDependent { this.displayName = this.getConfig().getString("name"); + // Boss Type + this.bossType = BossEntityUtils.getBossType(this.getConfig().getString("base-mob")); + // Boss Bar this.bossbarEnabled = this.getConfig().getBool("bossbar.enabled"); this.bossbarProperties = new BossbarProperties( @@ -219,6 +229,91 @@ public class EcoBoss extends PluginDependent { this.getConfig().getBool("defence.immunities.explosion") ); + // Effects + this.effects = new HashSet<>(); + for (String string : this.getConfig().getStrings("attacks.potion-effects")) { + String[] split = string.split(":"); + PotionEffectType type = PotionEffectType.getByName(split[0].toUpperCase()); + assert type != null; + this.effects.add(new EffectOption( + Double.parseDouble(split[3]), + Integer.parseInt(split[1]) - 1, + Integer.parseInt(split[2]), + type + )); + } + + // Summons + this.summons = new HashSet<>(); + for (String string : this.getConfig().getStrings("attacks.summons")) { + String[] split = string.split(":"); + this.summons.add(new SummonsOption( + Double.parseDouble(split[1]), + EntityType.valueOf(split[0].toUpperCase()) + )); + } + + // Shuffle + this.shuffleChance = this.getConfig().getDouble("attacks.shuffle-chance"); + + // Attack on injure + this.attackOnInjure = this.getConfig().getBool("attacks.on-injure"); + + // Sounds + this.injureSounds = new ArrayList<>(); + for (String string : this.getConfig().getStrings("sounds.injure")) { + String[] split = string.split(":"); + this.injureSounds.add(new OptionedSound( + Sound.valueOf(split[0].toUpperCase()), + Float.parseFloat(split[1]), + Float.parseFloat(split[2]) + )); + } + + this.deathSounds = new ArrayList<>(); + for (String string : this.getConfig().getStrings("sounds.death")) { + String[] split = string.split(":"); + this.deathSounds.add(new OptionedSound( + Sound.valueOf(split[0].toUpperCase()), + Float.parseFloat(split[1]), + Float.parseFloat(split[2]) + )); + } + + this.summonSounds = new ArrayList<>(); + for (String string : this.getConfig().getStrings("sounds.summon")) { + String[] split = string.split(":"); + this.summonSounds.add(new OptionedSound( + Sound.valueOf(split[0].toUpperCase()), + Float.parseFloat(split[1]), + Float.parseFloat(split[2]) + )); + } + + this.spawnSounds = new ArrayList<>(); + for (String string : this.getConfig().getStrings("sounds.spawn")) { + String[] split = string.split(":"); + this.spawnSounds.add(new OptionedSound( + Sound.valueOf(split[0].toUpperCase()), + Float.parseFloat(split[1]), + Float.parseFloat(split[2]) + )); + } + + // Spawn egg + Material eggMaterial = Material.matchMaterial("spawn-egg.egg-material"); + assert eggMaterial != null; + this.spawnEgg = new ItemStack(eggMaterial); + SpawnEggMeta meta = (SpawnEggMeta) this.spawnEgg.getItemMeta(); + assert meta != null; + List lore = new ArrayList<>(); + for (String string : this.getConfig().getStrings("spawn-egg.lore")) { + lore.add(StringUtils.translate(string)); + } + meta.setLore(lore); + meta.setDisplayName(this.getConfig().getString("spawn-egg.display-name")); + meta.getPersistentDataContainer().set(this.getPlugin().getNamespacedKeyFactory().create("spawn_egg"), PersistentDataType.STRING, this.getName()); + this.spawnEgg.setItemMeta(meta); if (this.getConfig().getBool("enabled")) { EcoBosses.addBoss(this); diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/GameplayOptions.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/GameplayOptions.java index a3a7dba..bd94652 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/GameplayOptions.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/GameplayOptions.java @@ -4,7 +4,6 @@ import com.willfp.eco.util.internal.PluginDependent; import com.willfp.eco.util.plugin.AbstractEcoPlugin; import com.willfp.ecobosses.bosses.util.obj.attacks.EffectOption; import com.willfp.ecobosses.bosses.util.obj.OptionedSound; -import com.willfp.ecobosses.config.EcoBossesConfigs; import lombok.Getter; import lombok.ToString; import org.bukkit.Sound; diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/IllusionerOptions.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/IllusionerOptions.java index 889cff7..590d27a 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/IllusionerOptions.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/options/IllusionerOptions.java @@ -4,7 +4,6 @@ import com.willfp.eco.util.NumberUtils; import com.willfp.eco.util.internal.PluginDependent; import com.willfp.eco.util.plugin.AbstractEcoPlugin; import com.willfp.eco.util.tuples.Pair; -import com.willfp.ecobosses.config.EcoBossesConfigs; import com.willfp.ecobosses.bosses.util.obj.SpawnTotem; import com.willfp.ecobosses.bosses.util.obj.OptionedSound; import lombok.Getter; diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/EcoBossesConfigs.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/EcoBossesConfigs.java deleted file mode 100644 index ebe0110..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/EcoBossesConfigs.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.willfp.ecobosses.config; - -import com.willfp.eco.util.config.updating.annotations.ConfigUpdater; -import lombok.experimental.UtilityClass; - -@UtilityClass -public class EcoBossesConfigs { - /** - * Update all configs. - */ - @ConfigUpdater - public void updateConfigs() { - - } -} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/configs/BaseBossConfig.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/configs/BaseBossConfig.java index 5a5fa78..6f56bfa 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/configs/BaseBossConfig.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/config/configs/BaseBossConfig.java @@ -11,6 +11,6 @@ public class BaseBossConfig extends ExtendableConfig { * @param configName The name of the config. */ public BaseBossConfig(@NotNull final String configName) { - super(configName, true, EcoBossesPlugin.getInstance(), EcoBossesPlugin.class, "bosses/"); + super(configName, false, EcoBossesPlugin.getInstance(), EcoBossesPlugin.class, "bosses/"); } } diff --git a/gradle.properties b/gradle.properties index d26f199..3bae80f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,2 @@ -version = 2.5.4 -plugin-name = Illusioner \ No newline at end of file +version = 3.0.0 +plugin-name = EcoBosses \ No newline at end of file