Fix for items now appearing on older versions.

This commit is contained in:
Brianna 2019-10-07 23:04:32 -04:00
parent 8795e22eba
commit 67c52aee04
3 changed files with 22 additions and 13 deletions

View File

@ -28,8 +28,6 @@ public class YmlFileHandler implements IFileHandler<FileConfiguration> {
if (!this.file.exists()) {
if (this.saveResource) {
String name = this.file.getName();
System.out.println(name);
javaPlugin.saveResource(name, false);
}

View File

@ -4,6 +4,7 @@ import com.songoda.core.compatibility.CompatibleMaterial;
import com.songoda.epicbosses.utils.IConverter;
import com.songoda.epicbosses.utils.exceptions.NotImplementedException;
import com.songoda.epicbosses.utils.itemstack.holder.ItemStackHolder;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import java.util.List;
@ -21,8 +22,13 @@ public class ItemStackHolderConverter implements IConverter<ItemStackHolder, Con
if (configurationSection == null) return null;
Integer amount = (Integer) configurationSection.get("amount", null);
String type = CompatibleMaterial.getMaterial(configurationSection.getString("type", null)).getMaterial().name();
CompatibleMaterial material = CompatibleMaterial.getMaterial(configurationSection.getString("type", null));
String type = material.getMaterial().name();
Short durability = (Short) configurationSection.get("durability", null);
if (material.getData() != -1) durability = (short) material.getData();
String name = configurationSection.getString("name", null);
List<String> lore = (List<String>) configurationSection.getList("lore", null);
List<String> enchants = (List<String>) configurationSection.getList("enchants", null);

View File

@ -113,11 +113,16 @@ public class ItemStackUtils {
}
public static ItemStack createItemStack(ConfigurationSection configurationSection, int amount, Map<String, String> replacedMap) {
String type = configurationSection.getString("type");
CompatibleMaterial material = CompatibleMaterial.getMaterial(configurationSection.getString("type"));
String type = material.getMaterial().name();
String name = configurationSection.getString("name");
List<String> lore = configurationSection.getStringList("lore");
List<String> enchants = configurationSection.getStringList("enchants");
short durability = (short) configurationSection.getInt("durability");
Short durability = (Short) configurationSection.get("durability");
if (material.getData() != -1) durability = (short) material.getData();
String owner = configurationSection.getString("owner");
Map<Enchantment, Integer> map = new HashMap<>();
List<String> newLore = new ArrayList<>();
@ -215,12 +220,8 @@ public class ItemStackUtils {
if (!map.isEmpty()) {
itemStack.addUnsafeEnchantments(map);
}
if (configurationSection.contains("durability")) {
short dura = itemStack.getType().getMaxDurability();
dura -= (short) durability - 1;
itemStack.setDurability(dura);
}
if (durability != null)
itemStack.setDurability(durability);
if (configurationSection.contains("owner") && itemStack.getType() == CompatibleMaterial.PLAYER_HEAD.getMaterial()) {
SkullMeta skullMeta = (SkullMeta) itemStack.getItemMeta();
@ -383,8 +384,12 @@ public class ItemStackUtils {
@SuppressWarnings("unchecked")
public static ItemStackHolder getItemStackHolder(ConfigurationSection configurationSection) {
Integer amount = (Integer) configurationSection.get("amount", null);
String type = configurationSection.getString("type", null);
Short durability = (Short) configurationSection.get("durability", null);
CompatibleMaterial material = CompatibleMaterial.getMaterial(configurationSection.getString("type", null));
String type = material.getMaterial().name();
Short durability = (Short) configurationSection.get("durability");
if (material.getData() != -1) durability = (short) material.getData();
String name = configurationSection.getString("name", null);
List<String> lore = (List<String>) configurationSection.getList("lore", null);
List<String> enchants = (List<String>) configurationSection.getList("enchants", null);