Fixed bug with creating furnace recipes

This commit is contained in:
Aria Sangarin 2020-02-26 13:19:56 +01:00
parent 89b32bf127
commit ba72d2d5ef
3 changed files with 15 additions and 16 deletions

View File

@ -79,7 +79,7 @@ public class CraftingEdition extends EditionInventory {
if (event.getSlot() == 21 || event.getSlot() == 22) if (event.getSlot() == 21 || event.getSlot() == 22)
new RecipeEdition(player, type, id, event.getSlot() == 22).open(getPreviousPage()); new RecipeEdition(player, type, id, event.getSlot() == 22).open(getPreviousPage());
else else
new StatEdition(this, ItemStat.CRAFTING, "item", corresponding.name().toLowerCase()).enable("Write in the chat the item you want.", "Format: '[MATERIAL]' or '[MATERIAL]:[DURABILITY]' or '[TYPE].[ID]'"); new StatEdition(this, ItemStat.CRAFTING, "item", corresponding.name().toLowerCase()).enable("Write in the chat the item, tickspeed and exp you want.", "Format: '[ITEM] [TICKS] [EXP]'", "[ITEM] = '[MATERIAL]' or '[MATERIAL]:[DURABILITY]' or '[TYPE].[ID]'");
} }
if (event.getAction() == InventoryAction.PICKUP_HALF) { if (event.getAction() == InventoryAction.PICKUP_HALF) {

View File

@ -2,7 +2,6 @@ package net.Indyuce.mmoitems.stat;
import java.util.List; import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
@ -15,7 +14,6 @@ import org.bukkit.inventory.ItemStack;
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.Type; import net.Indyuce.mmoitems.api.Type;
import net.Indyuce.mmoitems.api.edition.StatEdition;
import net.Indyuce.mmoitems.api.item.MMOItem; import net.Indyuce.mmoitems.api.item.MMOItem;
import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder; import net.Indyuce.mmoitems.api.item.build.MMOItemBuilder;
import net.Indyuce.mmoitems.api.util.AltChar; import net.Indyuce.mmoitems.api.util.AltChar;
@ -76,30 +74,30 @@ public class Crafting extends ItemStat {
} }
} }
} else if (type.equals("item")) { } else if (type.equals("item")) {
if (validate(inv.getPlayer(), message)) String[] args = message.split("\\ ");
Bukkit.getScheduler().runTask(MMOItems.plugin, () -> new StatEdition(inv, ItemStat.CRAFTING, "time", info[1], message).enable("Write in the chat the cooktime (in ticks) for your recipe.", "Format: '[INTEGER]'")); if (args.length != 3) {
inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + "Invalid format.");
} else if (type.equals("time")) { return false;
}
if (!validate(inv.getPlayer(), args[0])) return false;
int time; int time;
try { try {
time = Integer.parseInt(message); time = Integer.parseInt(args[1]);
} catch (Exception e1) { } catch (Exception e1) {
inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + ChatColor.RED + message + " is not a valid number."); inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + ChatColor.RED + args[1] + " is not a valid number.");
return false; return false;
} }
Bukkit.getScheduler().runTask(MMOItems.plugin, () -> new StatEdition(inv, ItemStat.CRAFTING, "exp", info[1], time, info[2]).enable("Write in the chat the experience given for your recipe.", "Format: '[FLOAT]'"));
} else if (type.equals("exp")) {
double exp; double exp;
try { try {
exp = Double.parseDouble(message); exp = Double.parseDouble(args[2]);
} catch (Exception e1) { } catch (Exception e1) {
inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + ChatColor.RED + message + " is not a valid number."); inv.getPlayer().sendMessage(MMOItems.plugin.getPrefix() + ChatColor.RED + args[2] + " is not a valid number.");
return false; return false;
} }
config.getConfig().set(inv.getItemId() + ".crafting." + info[1] + ".1.item", info[3]); config.getConfig().set(inv.getItemId() + ".crafting." + info[1] + ".1.item", args[0]);
config.getConfig().set(inv.getItemId() + ".crafting." + info[1] + ".1.time", (int) info[2]); config.getConfig().set(inv.getItemId() + ".crafting." + info[1] + ".1.time", time);
config.getConfig().set(inv.getItemId() + ".crafting." + info[1] + ".1.experience", exp); config.getConfig().set(inv.getItemId() + ".crafting." + info[1] + ".1.experience", exp);
inv.registerItemEdition(config); inv.registerItemEdition(config);
} else } else

View File

@ -154,6 +154,7 @@ public abstract class ItemStat {
public static final ItemStat ELEMENTS = new Elements(); public static final ItemStat ELEMENTS = new Elements();
public static final ItemStat COMMANDS = new Commands(), STAFF_SPIRIT = new Staff_Spirit(), LUTE_ATTACK_SOUND = new Lute_Attack_Sound(), LUTE_ATTACK_EFFECT = new Lute_Attack_Effect(); public static final ItemStat COMMANDS = new Commands(), STAFF_SPIRIT = new Staff_Spirit(), LUTE_ATTACK_SOUND = new Lute_Attack_Sound(), LUTE_ATTACK_EFFECT = new Lute_Attack_Effect();
public static final ItemStat NOTE_WEIGHT = new DoubleStat(new ItemStack(VersionMaterial.MUSIC_DISC_MALL.toMaterial()), "Note Weight", new String[] { "Defines how the projectile cast", "by your lute tilts downwards." }, "note-weight", new String[] { "lute" }); public static final ItemStat NOTE_WEIGHT = new DoubleStat(new ItemStack(VersionMaterial.MUSIC_DISC_MALL.toMaterial()), "Note Weight", new String[] { "Defines how the projectile cast", "by your lute tilts downwards." }, "note-weight", new String[] { "lute" });
public static final ItemStat REMOVE_ON_CRAFT = new BooleanStat(new ItemStack(Material.GLASS_BOTTLE), "Remove on Craft", new String[] { "If the item should be completely", "removed when used in a recipe,", "or if it should become an", "empty bottle or bucket." }, "remove-on-craft", new String[] { "all" }, Material.POTION, Material.SPLASH_POTION, Material.LINGERING_POTION, Material.MILK_BUCKET, Material.LAVA_BUCKET, Material.WATER_BUCKET);
public static final ItemStat GEM_SOCKETS = new Gem_Sockets(); public static final ItemStat GEM_SOCKETS = new Gem_Sockets();
public static final ItemStat REPAIR = new DoubleStat(new ItemStack(Material.ANVIL), "Repair", new String[] { "The amount of durability your item", "can repair when set an item." }, "repair", new String[] { "consumable" }); public static final ItemStat REPAIR = new DoubleStat(new ItemStack(Material.ANVIL), "Repair", new String[] { "The amount of durability your item", "can repair when set an item." }, "repair", new String[] { "consumable" });
public static final ItemStat REPAIR_MATERIAL = new Repair_Material(); public static final ItemStat REPAIR_MATERIAL = new Repair_Material();