mirror of
https://gitlab.com/phoenix-dvpmt/mmoitems.git
synced 2024-12-23 04:47:34 +01:00
Fixes issues with some stats not converting correctly when running /mi update apply 4 4
Added a clarification note when applying consumable effects
This commit is contained in:
parent
1ea9996d1f
commit
2470bce7b6
@ -1,25 +1,19 @@
|
|||||||
package net.Indyuce.mmoitems.manager;
|
package net.Indyuce.mmoitems.manager;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.logging.Level;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.Validate;
|
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
|
||||||
|
|
||||||
import net.Indyuce.mmoitems.MMOItems;
|
import net.Indyuce.mmoitems.MMOItems;
|
||||||
import net.Indyuce.mmoitems.api.ConfigFile;
|
import net.Indyuce.mmoitems.api.ConfigFile;
|
||||||
import net.Indyuce.mmoitems.api.PluginUpdate;
|
import net.Indyuce.mmoitems.api.PluginUpdate;
|
||||||
import net.Indyuce.mmoitems.api.Type;
|
import net.Indyuce.mmoitems.api.Type;
|
||||||
import net.Indyuce.mmoitems.api.UpdaterData;
|
import net.Indyuce.mmoitems.api.UpdaterData;
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
public class PluginUpdateManager {
|
public class PluginUpdateManager {
|
||||||
|
|
||||||
@ -156,6 +150,29 @@ public class PluginUpdateManager {
|
|||||||
if (!statKey.equals("base"))
|
if (!statKey.equals("base"))
|
||||||
config.getConfig().set(id + "." + statKey, null);
|
config.getConfig().set(id + "." + statKey, null);
|
||||||
}
|
}
|
||||||
|
// simple path changes
|
||||||
|
rename(config.getConfig().getConfigurationSection(id + ".base"), "regeneration", "health-regeneration");
|
||||||
|
rename(config.getConfig().getConfigurationSection(id + ".base"), "element.light", "element.lightness");
|
||||||
|
|
||||||
|
// sound changes
|
||||||
|
if (config.getConfig().getConfigurationSection(id + ".base").contains("consume-sound")) {
|
||||||
|
rename(config.getConfig().getConfigurationSection(id + ".base"), "consume-sound", "sounds.on-consume.sound");
|
||||||
|
config.getConfig().set(id + ".base.sounds.on-consume.volume", 1.0D);
|
||||||
|
config.getConfig().set(id + ".base.sounds.on-consume.pitch", 1.0D);
|
||||||
|
}
|
||||||
|
|
||||||
|
// effects changes
|
||||||
|
if (config.getConfig().getConfigurationSection(id + ".base").contains("effects")) {
|
||||||
|
for (String effect : config.getConfig().getConfigurationSection(id + ".base.effects").getKeys(false)) {
|
||||||
|
String[] split = config.getConfig().getString(id + ".base.effects." + effect).split(",");
|
||||||
|
if (split.length > 1) {
|
||||||
|
config.getConfig().set(id + ".base.new-effects." + effect + ".duration", Double.parseDouble(split[0]));
|
||||||
|
config.getConfig().set(id + ".base.new-effects." + effect + ".amplifier", Double.parseDouble(split[1]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
config.getConfig().set(id + ".base.effects", null);
|
||||||
|
rename(config.getConfig().getConfigurationSection(id + ".base"), "new-effects", "effects");
|
||||||
|
}
|
||||||
|
|
||||||
if (config.getConfig().getConfigurationSection(id + ".base").contains("restore")) {
|
if (config.getConfig().getConfigurationSection(id + ".base").contains("restore")) {
|
||||||
config.getConfig().set(id + ".base.restore-health", config.getConfig().getDouble(id + ".base.restore.health"));
|
config.getConfig().set(id + ".base.restore-health", config.getConfig().getDouble(id + ".base.restore.health"));
|
||||||
@ -210,4 +227,13 @@ public class PluginUpdateManager {
|
|||||||
public Collection<PluginUpdate> getAll() {
|
public Collection<PluginUpdate> getAll() {
|
||||||
return updates.values();
|
return updates.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void rename(ConfigurationSection config, String oldPath, String newPath) {
|
||||||
|
if (config.contains(oldPath)) {
|
||||||
|
Object temp = config.get(oldPath);
|
||||||
|
config.set(oldPath, null);
|
||||||
|
config.set(newPath, temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,26 +1,9 @@
|
|||||||
package net.Indyuce.mmoitems.stat;
|
package net.Indyuce.mmoitems.stat;
|
||||||
|
|
||||||
import java.text.DecimalFormat;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.Validate;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
|
||||||
import org.bukkit.event.inventory.InventoryAction;
|
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import org.bukkit.potion.PotionEffectType;
|
|
||||||
|
|
||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
import com.google.gson.JsonSyntaxException;
|
import com.google.gson.JsonSyntaxException;
|
||||||
|
|
||||||
import net.Indyuce.mmoitems.MMOItems;
|
import net.Indyuce.mmoitems.MMOItems;
|
||||||
import net.Indyuce.mmoitems.MMOUtils;
|
import net.Indyuce.mmoitems.MMOUtils;
|
||||||
import net.Indyuce.mmoitems.api.edition.StatEdition;
|
import net.Indyuce.mmoitems.api.edition.StatEdition;
|
||||||
@ -37,6 +20,17 @@ import net.Indyuce.mmoitems.stat.data.type.StatData;
|
|||||||
import net.Indyuce.mmoitems.stat.type.ItemStat;
|
import net.Indyuce.mmoitems.stat.type.ItemStat;
|
||||||
import net.mmogroup.mmolib.api.item.ItemTag;
|
import net.mmogroup.mmolib.api.item.ItemTag;
|
||||||
import net.mmogroup.mmolib.api.util.AltChar;
|
import net.mmogroup.mmolib.api.util.AltChar;
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
|
import org.bukkit.event.inventory.InventoryAction;
|
||||||
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
|
import java.text.DecimalFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
public class Effects extends ItemStat {
|
public class Effects extends ItemStat {
|
||||||
private final DecimalFormat durationFormat = new DecimalFormat("0.#");
|
private final DecimalFormat durationFormat = new DecimalFormat("0.#");
|
||||||
@ -56,7 +50,7 @@ public class Effects extends ItemStat {
|
|||||||
public void whenClicked(EditionInventory inv, InventoryClickEvent event) {
|
public void whenClicked(EditionInventory inv, InventoryClickEvent event) {
|
||||||
if (event.getAction() == InventoryAction.PICKUP_ALL)
|
if (event.getAction() == InventoryAction.PICKUP_ALL)
|
||||||
new StatEdition(inv, ItemStat.EFFECTS).enable("Write in the chat the permanent potion effect you want to add.",
|
new StatEdition(inv, ItemStat.EFFECTS).enable("Write in the chat the permanent potion effect you want to add.",
|
||||||
ChatColor.AQUA + "Format: {Potion Effect Name}|{Duration Numeric Formula}|{Amplifier Numeric Formula}");
|
ChatColor.AQUA + "Format: {Potion Effect Name}|{Duration Numeric Formula}|{Amplifier Numeric Formula}", ChatColor.DARK_RED + "Note: " + ChatColor.RED + "The '|' lines are literal.");
|
||||||
|
|
||||||
if (event.getAction() == InventoryAction.PICKUP_HALF) {
|
if (event.getAction() == InventoryAction.PICKUP_HALF) {
|
||||||
if (inv.getEditedSection().contains("effects")) {
|
if (inv.getEditedSection().contains("effects")) {
|
||||||
|
Loading…
Reference in New Issue
Block a user