1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-21 12:15:50 +00:00
Slimefun4/src/main/java/me/mrCookieSlime/Slimefun/api/SlimefunItemStack.java

101 lines
2.3 KiB
Java
Raw Normal View History

2019-10-02 11:54:59 +00:00
package me.mrCookieSlime.Slimefun.api;
import java.util.function.Consumer;
import java.util.logging.Level;
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;
import io.github.thebusybiscuit.cscorelib2.item.ImmutableItemMeta;
2019-10-02 11:54:59 +00:00
import me.mrCookieSlime.CSCoreLibPlugin.general.World.CustomSkull;
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
2019-10-02 11:54:59 +00:00
public class SlimefunItemStack extends CustomItem {
private String id;
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
setID(id);
2019-10-02 11:54:59 +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
setID(id);
}
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
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
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
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);
setID(id);
2019-10-03 23:45:51 +00:00
}
private void setID(String id) {
2019-10-02 11:54:59 +00:00
this.id = id;
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;
}
public ImmutableItemMeta getImmutableMeta() {
return immutableMeta;
}
@Override
public boolean setItemMeta(ItemMeta meta) {
immutableMeta = new ImmutableItemMeta(meta);
return super.setItemMeta(meta);
}
2019-12-08 12:09:15 +00:00
@Override
public ItemStack clone() {
SlimefunItemStack item = (SlimefunItemStack) super.clone();
item.id = getItemID();
return item;
}
2019-10-02 11:54:59 +00:00
}