2019-10-02 11:54:59 +00:00
|
|
|
package me.mrCookieSlime.Slimefun.api;
|
|
|
|
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
import java.util.logging.Level;
|
|
|
|
|
2019-10-03 16:06:14 +00:00
|
|
|
import org.bukkit.Color;
|
2019-10-02 11:54:59 +00:00
|
|
|
import org.bukkit.Material;
|
|
|
|
import org.bukkit.inventory.ItemStack;
|
|
|
|
import org.bukkit.inventory.meta.ItemMeta;
|
|
|
|
|
|
|
|
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
2019-12-08 11:58:05 +00:00
|
|
|
import io.github.thebusybiscuit.cscorelib2.item.ImmutableItemMeta;
|
2019-10-02 11:54:59 +00:00
|
|
|
import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull;
|
2019-10-04 00:21:38 +00:00
|
|
|
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
2019-10-02 11:54:59 +00:00
|
|
|
|
|
|
|
public class SlimefunItemStack extends CustomItem {
|
|
|
|
|
|
|
|
private String id;
|
2019-12-08 11:58:05 +00:00
|
|
|
private ImmutableItemMeta immutableMeta;
|
2019-10-02 11:54:59 +00:00
|
|
|
|
|
|
|
public SlimefunItemStack(String id, Material type, String name, String... lore) {
|
|
|
|
super(type, name, lore);
|
2019-10-03 23:45:51 +00:00
|
|
|
|
2019-10-04 00:21:38 +00:00
|
|
|
setID(id);
|
2019-10-02 11:54:59 +00:00
|
|
|
}
|
|
|
|
|
2019-10-03 16:06:14 +00:00
|
|
|
public SlimefunItemStack(String id, Material type, Color color, String name, String... lore) {
|
|
|
|
super(new ItemStack(type), color, name, lore);
|
2019-10-03 23:45:51 +00:00
|
|
|
|
2019-10-04 00:21:38 +00:00
|
|
|
setID(id);
|
2019-10-03 16:06:14 +00:00
|
|
|
}
|
|
|
|
|
2019-10-02 11:54:59 +00:00
|
|
|
public SlimefunItemStack(String id, ItemStack item, String name, String... lore) {
|
|
|
|
super(item, name, lore);
|
2019-10-03 23:45:51 +00:00
|
|
|
|
2019-10-04 00:21:38 +00:00
|
|
|
setID(id);
|
2019-10-02 11:54:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public SlimefunItemStack(String id, ItemStack item) {
|
|
|
|
super(item);
|
2019-10-03 23:45:51 +00:00
|
|
|
|
2019-10-04 00:21:38 +00:00
|
|
|
setID(id);
|
2019-10-02 11:54:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public SlimefunItemStack(String id, ItemStack item, Consumer<ItemMeta> consumer) {
|
|
|
|
super(item, consumer);
|
2019-10-03 23:45:51 +00:00
|
|
|
|
2019-10-04 00:21:38 +00:00
|
|
|
setID(id);
|
2019-10-02 11:54:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public SlimefunItemStack(String id, String texture, String name, String... lore) {
|
|
|
|
super(getSkull(texture), name, lore);
|
|
|
|
|
2019-10-04 00:21:38 +00:00
|
|
|
setID(id);
|
2019-10-03 23:45:51 +00:00
|
|
|
}
|
|
|
|
|
2019-10-04 00:21:38 +00:00
|
|
|
private void setID(String id) {
|
2019-10-02 11:54:59 +00:00
|
|
|
this.id = id;
|
2019-10-04 00:21:38 +00:00
|
|
|
|
2019-11-10 16:46:18 +00:00
|
|
|
ItemMeta meta = getItemMeta();
|
|
|
|
|
|
|
|
SlimefunPlugin.getItemDataService().setItemData(meta, id);
|
|
|
|
SlimefunPlugin.getItemTextureService().setTexture(meta, id);
|
|
|
|
|
|
|
|
setItemMeta(meta);
|
2019-10-02 11:54:59 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
private static ItemStack getSkull(String texture) {
|
|
|
|
try {
|
|
|
|
return CustomSkull.getItem(texture);
|
|
|
|
} catch (Exception x) {
|
2019-10-03 23:45:51 +00:00
|
|
|
Slimefun.getLogger().log(Level.SEVERE, "An Error occurred while initializing the Items for Slimefun " + Slimefun.getVersion(), x);
|
2019-10-02 11:54:59 +00:00
|
|
|
|
|
|
|
return new ItemStack(Material.PLAYER_HEAD);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getItemID() {
|
|
|
|
return id;
|
|
|
|
}
|
2019-12-08 11:58:05 +00:00
|
|
|
|
|
|
|
public ImmutableItemMeta getImmutableMeta() {
|
|
|
|
return immutableMeta;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean setItemMeta(ItemMeta meta) {
|
|
|
|
immutableMeta = new ImmutableItemMeta(meta);
|
|
|
|
|
|
|
|
return super.setItemMeta(meta);
|
|
|
|
}
|
2019-10-02 11:54:59 +00:00
|
|
|
|
|
|
|
}
|