Untitled
unknown
plain_text
2 years ago
17 kB
12
Indexable
package org.lifestealsmp.itemskinner;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.java.JavaPlugin;
public class main extends JavaPlugin implements Listener{
private FileConfiguration data;
private File dfile;
private FileConfiguration furnitures;
private File ffile;
private FileConfiguration hats;
private File hfile;
private FileConfiguration armors;
private File afile;
private FileConfiguration tools;
private File tfile;
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
saveDefaultConfig();
setupFiles();
}
public void setupFiles() {
// data.yml setup
dfile = new File(this.getDataFolder(), "data.yml");
setupFile(dfile);
data = YamlConfiguration.loadConfiguration(dfile);
// furnitures.yml setup
ffile = new File(this.getDataFolder(), "furnitures.yml");
setupFile(ffile);
furnitures = YamlConfiguration.loadConfiguration(ffile);
// hats.yml setup
hfile = new File(this.getDataFolder(), "hats.yml");
setupFile(hfile);
hats = YamlConfiguration.loadConfiguration(hfile);
// armors.yml setup
afile = new File(this.getDataFolder(), "armors.yml");
setupFile(afile);
armors = YamlConfiguration.loadConfiguration(afile);
// tools.yml setup
tfile = new File(this.getDataFolder(), "tools.yml");
setupFile(tfile);
tools = YamlConfiguration.loadConfiguration(tfile);
}
public void setupFile(File file) {
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not create " + file.getName() + "!");
}
}
}
public FileConfiguration getData() {
return data;
}
public FileConfiguration getFurnitures() {
return furnitures;
}
public FileConfiguration getHats() {
return hats;
}
public FileConfiguration getArmors() {
return armors;
}
public FileConfiguration getTools() {
return tools;
}
public void saveData() {
saveFile(data, dfile);
}
public void saveFurnitures() {
saveFile(furnitures, ffile);
}
public void saveHats() {
saveFile(hats, hfile);
}
public void saveArmors() {
saveFile(armors, afile);
}
public void saveTools() {
saveFile(tools, tfile);
}
public void saveFile(FileConfiguration config, File file) {
try {
config.save(file);
} catch (IOException e) {
Bukkit.getServer().getLogger().severe(ChatColor.RED + "Could not save " + file.getName() + "!");
}
}
public void reloadData() {
data = YamlConfiguration.loadConfiguration(dfile);
}
public void reloadFurnitures() {
furnitures = YamlConfiguration.loadConfiguration(ffile);
}
public void reloadHats() {
hats = YamlConfiguration.loadConfiguration(hfile);
}
public void reloadArmors() {
armors = YamlConfiguration.loadConfiguration(afile);
}
public void reloadTools() {
tools = YamlConfiguration.loadConfiguration(tfile);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(cmd.getName().equalsIgnoreCase("skin") || cmd.getName().equalsIgnoreCase("skins")) {
if (sender instanceof Player) {
Player player = (Player) sender;
SkinStationInventory(player);
} else {
sender.sendMessage("This command can only be run by a player!");
}
}
return false;
}
public void SkinStationInventory(Player player) {
Inventory inv = Bukkit.createInventory(null, 27, "Skin Station");
ItemStack blank = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
// Fill empty slots with the blank item
for (int i = 0; i < inv.getSize(); i++) {
if (inv.getItem(i) == null) {
inv.setItem(i, blank);
}
}
// Create the Furniture item
ItemStack furniture = new ItemStack(Material.PAPER);
ItemMeta furnitureMeta = furniture.getItemMeta();
furnitureMeta.setDisplayName("Furniture");
furnitureMeta.setCustomModelData(10029);
furnitureMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
furniture.setItemMeta(furnitureMeta);
// Create the Hats item
ItemStack hats = new ItemStack(Material.LEATHER_HELMET);
ItemMeta hatsMeta = hats.getItemMeta();
hatsMeta.setDisplayName("Hats");
hatsMeta.setCustomModelData(10005);
hatsMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
hats.setItemMeta(hatsMeta);
// Create the Armor item
ItemStack armor = new ItemStack(Material.LEATHER_CHESTPLATE);
ItemMeta armorMeta = armor.getItemMeta();
armorMeta.setDisplayName("Armor");
armorMeta.setCustomModelData(10121);
armorMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
armor.setItemMeta(armorMeta);
// Create the Tools item
ItemStack tools = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta toolsMeta = tools.getItemMeta();
toolsMeta.setDisplayName("Tools");
toolsMeta.addEnchant(Enchantment.DURABILITY, 1, true);
toolsMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
toolsMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
tools.setItemMeta(toolsMeta);
// Add the items to the specified slots (0-based index)
inv.setItem(10, furniture); // Slot 11
inv.setItem(12, hats); // Slot 13
inv.setItem(14, armor); // Slot 15
inv.setItem(16, tools); // Slot 17
player.openInventory(inv);
}
public void FurnitureInventory(Player player) {
// Set up inventory with 27 slots
Inventory inv = Bukkit.createInventory(null, 27, "Furniture Skins");
ItemStack blank = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
// Back and forward button setup
ItemStack backButton = new ItemStack(Material.RED_WOOL);
ItemMeta backMeta = backButton.getItemMeta();
backMeta.setDisplayName("Back Page");
backButton.setItemMeta(backMeta);
ItemStack forwardButton = new ItemStack(Material.GREEN_WOOL);
ItemMeta forwardMeta = forwardButton.getItemMeta();
forwardMeta.setDisplayName("Next Page");
forwardButton.setItemMeta(forwardMeta);
inv.setItem(21, backButton);
inv.setItem(23, forwardButton);
// Player's UUID
String uuid = player.getUniqueId().toString();
// Load data.yml file
FileConfiguration dataConfig = YamlConfiguration.loadConfiguration(new File(getDataFolder(), "data.yml"));
// Check if the player's UUID exists in the data.yml
if (dataConfig.contains(uuid)) {
List<String> playerFurnitures = dataConfig.getStringList(uuid + ".Furnitures");
for (String furniture : playerFurnitures) {
if (getFurnitures().contains(furniture)) {
String itemType = getFurnitures().getString(furniture + ".Item_Type");
int customModelData = getFurnitures().getInt(furniture + ".Custom Model Data");
String displayName = getFurnitures().getString(furniture + ".Display_Name");
ItemStack itemStack = new ItemStack(Material.valueOf(itemType));
ItemMeta meta = itemStack.getItemMeta();
meta.setCustomModelData(customModelData);
meta.setDisplayName(displayName);
itemStack.setItemMeta(meta);
inv.addItem(itemStack);
}
}
}
// Fill empty slots with the blank item
for (int i = 0; i < inv.getSize(); i++) {
if (inv.getItem(i) == null) {
inv.setItem(i, blank);
}
}
player.openInventory(inv);
}
public void HatsInventory(Player player) {
Inventory inv = Bukkit.createInventory(null, 27, "Hat Skins");
ItemStack blank = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
// Fill empty slots with the blank item
for (int i = 0; i < inv.getSize(); i++) {
if (inv.getItem(i) == null) {
inv.setItem(i, blank);
}
}
ItemStack backButton = new ItemStack(Material.RED_WOOL);
ItemMeta backMeta = backButton.getItemMeta();
backMeta.setDisplayName("Back Page");
backButton.setItemMeta(backMeta);
ItemStack forwardButton = new ItemStack(Material.GREEN_WOOL);
ItemMeta forwardMeta = forwardButton.getItemMeta();
forwardMeta.setDisplayName("Next Page");
forwardButton.setItemMeta(forwardMeta);
inv.setItem(21, backButton);
inv.setItem(23, forwardButton);
player.openInventory(inv);
}
public void ArmorInventory(Player player) {
Inventory inv = Bukkit.createInventory(null, 27, "Armor Skins");
ItemStack blank = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
// Fill empty slots with the blank item
for (int i = 0; i < inv.getSize(); i++) {
if (inv.getItem(i) == null) {
inv.setItem(i, blank);
}
}
ItemStack backButton = new ItemStack(Material.RED_WOOL);
ItemMeta backMeta = backButton.getItemMeta();
backMeta.setDisplayName("Back");
backButton.setItemMeta(backMeta);
inv.setItem(21, backButton);
player.openInventory(inv);
}
public void ToolInventory(Player player) {
Inventory inv = Bukkit.createInventory(null, 27, "Tool Skins");
ItemStack blank = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
// Fill empty slots with the blank item
for (int i = 0; i < inv.getSize(); i++) {
if (inv.getItem(i) == null) {
inv.setItem(i, blank);
}
}
ItemStack backButton = new ItemStack(Material.RED_WOOL);
ItemMeta backMeta = backButton.getItemMeta();
backMeta.setDisplayName("Back");
backButton.setItemMeta(backMeta);
inv.setItem(21, backButton);
player.openInventory(inv);
}
public void ArmorCategoriesInventory(Player player) {
Inventory inv = Bukkit.createInventory(null, 27, "Armor Categories");
ItemStack blank = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
// Fill empty slots with the blank item
for (int i = 0; i < inv.getSize(); i++) {
if (inv.getItem(i) == null) {
inv.setItem(i, blank);
}
}
// Creating the Diamond Helmet item
ItemStack helmet = new ItemStack(Material.DIAMOND_HELMET);
ItemMeta helmetMeta = helmet.getItemMeta();
helmetMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
helmet.setItemMeta(helmetMeta);
// Creating the Diamond Chestplate item
ItemStack chestplate = new ItemStack(Material.DIAMOND_CHESTPLATE);
ItemMeta chestplateMeta = chestplate.getItemMeta();
chestplateMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
chestplate.setItemMeta(chestplateMeta);
// Creating the Diamond Leggings item
ItemStack leggings = new ItemStack(Material.DIAMOND_LEGGINGS);
ItemMeta leggingsMeta = leggings.getItemMeta();
leggingsMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
leggings.setItemMeta(leggingsMeta);
// Creating the Diamond Boots item
ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS);
ItemMeta bootsMeta = boots.getItemMeta();
bootsMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
boots.setItemMeta(bootsMeta);
// Setting the items to the respective slots in the inventory
inv.setItem(10, helmet); // Slot 10 (0-based index)
inv.setItem(12, chestplate); // Slot 12 (0-based index)
inv.setItem(14, leggings); // Slot 14 (0-based index)
inv.setItem(16, boots); // Slot 16 (0-based index)
// Adding the back button
ItemStack backButton = new ItemStack(Material.RED_WOOL);
ItemMeta backMeta = backButton.getItemMeta();
backMeta.setDisplayName("Back");
backButton.setItemMeta(backMeta);
inv.setItem(22, backButton); // Slot 21 (0-based index)
player.openInventory(inv);
}
public void ToolCategoriesInventory(Player player) {
Inventory inv = Bukkit.createInventory(null, 27, "Tool Categories");
ItemStack blank = new ItemStack(Material.BLACK_STAINED_GLASS_PANE);
// Fill empty slots with the blank item
for (int i = 0; i < inv.getSize(); i++) {
if (inv.getItem(i) == null) {
inv.setItem(i, blank);
}
}
// Creating the Diamond Pickaxe item
ItemStack pickaxe = new ItemStack(Material.DIAMOND_PICKAXE);
ItemMeta pickaxeMeta = pickaxe.getItemMeta();
pickaxeMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
pickaxe.setItemMeta(pickaxeMeta);
// Creating the Diamond Sword item
ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta swordMeta = sword.getItemMeta();
swordMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
sword.setItemMeta(swordMeta);
// Creating the Diamond Axe item
ItemStack axe = new ItemStack(Material.DIAMOND_AXE);
ItemMeta axeMeta = axe.getItemMeta();
axeMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
axe.setItemMeta(axeMeta);
// Creating the Diamond Shovel item
ItemStack shovel = new ItemStack(Material.DIAMOND_SHOVEL);
ItemMeta shovelMeta = shovel.getItemMeta();
shovelMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES);
shovel.setItemMeta(shovelMeta);
// Setting the items to the respective slots in the inventory
inv.setItem(10, pickaxe); // Slot 10 (0-based index)
inv.setItem(12, sword); // Slot 12 (0-based index)
inv.setItem(14, axe); // Slot 14 (0-based index)
inv.setItem(16, shovel); // Slot 16 (0-based index)
// Adding the back button
ItemStack backButton = new ItemStack(Material.RED_WOOL);
ItemMeta backMeta = backButton.getItemMeta();
backMeta.setDisplayName("Back");
backButton.setItemMeta(backMeta);
inv.setItem(22, backButton); // Slot 21 (0-based index)
player.openInventory(inv);
}
@EventHandler
public void onInventoryClick(InventoryClickEvent event) {
Player player = (Player) event.getWhoClicked();
if(event.getView().getTitle().startsWith("Skin Station")) {
event.setCancelled(true);
if(event.getSlot() == 10) {
FurnitureInventory(player);
}
if(event.getSlot() == 12) {
HatsInventory(player);
}
if(event.getSlot() == 14) {
ArmorCategoriesInventory(player);
}
if(event.getSlot() == 16) {
ToolCategoriesInventory(player);
}
}
if(event.getView().getTitle().startsWith("Furniture Skins")) {
event.setCancelled(true);
if(event.getSlot() == 21) {
SkinStationInventory(player);
}
}
if(event.getView().getTitle().startsWith("Hat Skins")) {
event.setCancelled(true);
if(event.getSlot() == 21) {
SkinStationInventory(player);
}
}
if(event.getView().getTitle().startsWith("Armor Skins")) {
event.setCancelled(true);
if(event.getSlot() == 21) {
SkinStationInventory(player);
}
}
if(event.getView().getTitle().startsWith("Tool Skins")) {
event.setCancelled(true);
if(event.getSlot() == 21) {
SkinStationInventory(player);
}
}
if(event.getView().getTitle().startsWith("Armor Categories")) {
event.setCancelled(true);
if(event.getSlot() == 22) {
SkinStationInventory(player);
}
}
if(event.getView().getTitle().startsWith("Tool Categories")) {
event.setCancelled(true);
if(event.getSlot() == 22) {
SkinStationInventory(player);
}
}
}
}
Editor is loading...