--- miscJava/bukkit-minecraft-plugins/CreativeWorld/src/main/java/dk/thoerup/bukkit/creativeworld/WorldChanged.java 2018/07/18 07:34:11 3237 +++ miscJava/bukkit-minecraft-plugins/CreativeWorld/src/main/java/dk/thoerup/bukkit/creativeworld/WorldChanged.java 2018/07/18 07:41:35 3238 @@ -101,14 +101,14 @@ public void saveItemStack(Configuration config, String node, ItemStack stack) { - int type = 0; + String type = ""; int amount = 0; int damage = 0; int data = 0; String enchantment = ""; if (stack != null) { - type = stack.getTypeId(); + type = stack.getType().name(); amount = stack.getAmount(); damage = stack.getDurability(); data = stack.getData().getData(); @@ -123,22 +123,25 @@ } public ItemStack getItemStack(Player player, Configuration config, String node) { - int type = config.getInt( node + STACK_TYPE); + String typeStr = config.getString( node + STACK_TYPE); int amount = config.getInt( node + STACK_AMOUNT); short damage = (short) config.getInt(node + STACK_DAMAGE); byte data = (byte) config.getInt(node + STACK_DATA); String enc = config.getString(node + STACK_ENCHANTMENT ); - ItemStack stack = new ItemStack(type,amount,damage); - MaterialData matData = new MaterialData(type,data); + Material mat = Material.valueOf(typeStr); + + ItemStack stack = new ItemStack(mat,amount,damage); + MaterialData matData = new MaterialData(mat,data); //TODO: fix this stack.setData(matData); + stack.setDurability( damage ); //ItemStack constructor with Data value overrides durability try { stack.addEnchantments( parseEnchantmentString(enc) ); } catch (IllegalArgumentException e) { plugin.getLogger().info( "EXCEPTION Error applying enchantment" + e.getMessage() ); plugin.getLogger().info( "EXCEPTION Player " + player.getName() ); - plugin.getLogger().info( "EXCEPTION Type=" + type + " enhancement=" + enc); + plugin.getLogger().info( "EXCEPTION Type=" + typeStr + " enhancement=" + enc); } return stack; }