package fr.lightmute; import java.util.ArrayList; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.Sound; 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.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.RegisteredServiceProvider; public class Inventaire implements Listener { private ArrayList materiel = new ArrayList<>(); public static Economy economy = null; private boolean setupEconomy() { RegisteredServiceProvider economyProvider = Bukkit.getServer().getServicesManager().getRegistration(Economy.class); if (economyProvider != null) economy = (Economy)economyProvider.getProvider(); return (economy != null); } public ConfigTaxi config() { ConfigTaxi config = new ConfigTaxi("config.yml", StelyTaxi.instance); if (config.isNull("Slots.Possible")) { config.set("Slots.Possible", "9,27,54"); config.saveConfig(); } if (config.isNull("Slots.Inventaire")) { config.set("Slots.Inventaire", Integer.valueOf(27)); config.saveConfig(); } if (config.isNull("Perm.bypass")) { config.set("Perm.bypass", "stelytaxi.bypass"); config.saveConfig(); } if (config.isNull("Perm.money.byspass")) { config.set("Perm.money.byspass", "stelytaxi.bypass.money"); config.saveConfig(); } if (config.isNull("Prefix")) { config.set("Prefix", "&7[&5StelyTaxi&7] "); config.saveConfig(); } if (config.isNull("PlayerNoMoney")) { config.set("PlayerNoMoney", "&cVous n'avez pas assez de money !"); config.saveConfig(); } if (config.isNull("Inventaire.Name")) { config.set("Inventaire.Name", "Taxi"); config.saveConfig(); } if (config.isNull("Item.Vide.Materiel")) { config.set("Item.Vide.Materiel", Material.BLUE_STAINED_GLASS_PANE.toString()); config.saveConfig(); } if (config.isNull("Item.Vide.Name")) { config.set("Item.Vide.Name", " "); config.saveConfig(); } int slotinv = config.getInt("Slots.Inventaire"); for (int i = 0; i < slotinv; i++) { if (!config.isNull("Items")) { this.materiel = (ArrayList)config.getStringList("Items"); if (!((String)this.materiel.get(i)).equals("AIR")) { if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Name")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Name", "&dNEW"); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".WorldName")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".WorldName", "spawn"); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".X")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".X", Integer.valueOf(0)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Y")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Y", Integer.valueOf(0)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Z")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Z", Integer.valueOf(0)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Pitch")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Pitch", Integer.valueOf(0)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Yaw")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Yaw", Integer.valueOf(0)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".ManuelLoc")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".ManuelLoc", Boolean.valueOf(false)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Prix")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Prix", Integer.valueOf(50)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".LorePrix")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".LorePrix", "&aPrix: %prix%"); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Enable")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Enable", Boolean.valueOf(true)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Enchant")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Enchant", Boolean.valueOf(true)); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".MessageNotEnable")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".MessageNotEnable", "&6Cette test dcause travaux !"); config.saveConfig(); } if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Lore")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Lore", Boolean.valueOf(true)); config.saveConfig(); } ArrayList lores = new ArrayList<>(); lores.add("ligne 1"); lores.add("ligne 2"); if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Lores")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Lores", lores); config.saveConfig(); } } } else { this.materiel.add("AIR"); if (config.isNull("ItemsName." + (String)this.materiel.get(i) + ".Name")) { config.set("ItemsName." + (String)this.materiel.get(i) + ".Name", "&dNEW"); config.saveConfig(); } } } if (config.isNull("Items")) { config.set("Items", this.materiel); config.saveConfig(); } return config; } private ItemStack ItemVide() { ItemStack item = new ItemStack(Material.valueOf(config().getString("Item.Vide.Materiel"))); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(config().getString("Item.Vide.Name").replace("&", ")); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_ATTRIBUTES }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_DESTROYS }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_ENCHANTS }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_PLACED_ON }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_UNBREAKABLE }); item.setItemMeta(meta); return item; } private ItemStack Item(Material mat) { ItemStack item = new ItemStack(mat); ItemMeta meta = item.getItemMeta(); meta.setDisplayName(config().getString("ItemsName." + mat.toString() + ".Name").replace("&", ")); ArrayList lore = new ArrayList<>(); lore.add(config().getString("ItemsName." + mat + ".LorePrix").replace("&", ").replace("%prix%", config().getDouble("ItemsName." + mat.toString() + ".Prix").toString())); if (config().getBoolean("ItemsName." + mat + ".Lore")) for (String str : config().getStringList("ItemsName." + mat + ".Lores")) lore.add(str.replace("&", ")); if (!config().getBoolean("ItemsName." + mat + ".Enable")) lore.add(config().getString("ItemsName." + mat + ".MessageNotEnable").replace("&", ")); if (config().getBoolean("ItemsName." + mat + ".Enchant")) meta.addEnchant(Enchantment.DURABILITY, 3, true); meta.setLore(lore); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_ATTRIBUTES }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_DESTROYS }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_ENCHANTS }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_PLACED_ON }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_POTION_EFFECTS }); meta.addItemFlags(new ItemFlag[] { ItemFlag.HIDE_UNBREAKABLE }); item.setItemMeta(meta); return item; } public Inventory openinventaire() { int slotinv = config().getInt("Slots.Inventaire"); Inventory inv = Bukkit.createInventory(null, slotinv, config().getString("Inventaire.Name").replace("&", ")); for (int i = 0; i < slotinv; i++) { if (((String)config().getStringList("Items").get(i)).equals("AIR")) { inv.setItem(i, ItemVide()); } else { inv.setItem(i, Item(Material.valueOf(config().getStringList("Items").get(i)))); } } return inv; } @EventHandler private void clickinv(InventoryClickEvent e) { Player player = (Player)e.getWhoClicked(); InventoryView ivv = e.getView(); if (e.getSlotType() != InventoryType.SlotType.OUTSIDE && e.getCurrentItem() != null && !e.getCurrentItem().getType().equals(Material.AIR) && ivv.getTitle().equals(config().getString("Inventaire.Name").replace("&", "))) { e.setCancelled(true); if (this.materiel.contains(e.getCurrentItem().getType().toString())) if (config().getBoolean("ItemsName." + e.getCurrentItem().getType() + ".Enable")) { if (setupEconomy()) { double balance = economy.getBalance(e.getWhoClicked().getName()); if (balance < config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Prix").doubleValue()) { player.sendMessage(String.valueOf(config().getString("Prefix").replace("&", ")) + config().getString("PlayerNoMoney").replace("&", ")); player.closeInventory(); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0F, 1.0F); } else { Location loc; economy.withdrawPlayer((OfflinePlayer)player, config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Prix").doubleValue()); if (config().getBoolean("ItemsName." + e.getCurrentItem().getType() + ".ManuelLoc")) { loc = new Location(Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".X").doubleValue(), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Y").doubleValue(), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Z").doubleValue(), config().getFloat("ItemsName." + e.getCurrentItem().getType() + ".Yaw"), config().getFloat("ItemsName." + e.getCurrentItem().getType() + ".Pitch")); } else { Location locspawn = Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")).getSpawnLocation(); loc = new Location(Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")), locspawn.getBlockX(), locspawn.getBlockY(), locspawn.getBlockZ(), locspawn.getYaw(), locspawn.getPitch()); } player.teleport(loc); } } } else if (!config().getBoolean("ItemsName." + e.getCurrentItem().getType() + ".Enable") && player.hasPermission("stelytaxi.bypass")) { if (setupEconomy()) if (!player.hasPermission("stelytaxi.bypass.money") || !player.isOp()) { double balance = economy.getBalance(e.getWhoClicked().getName()); if (balance < config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Prix").doubleValue()) { player.sendMessage(String.valueOf(config().getString("Prefix").replace("&", ")) + config().getString("PlayerNoMoney").replace("&", ")); player.closeInventory(); player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0F, 1.0F); } else { Location loc; economy.withdrawPlayer((OfflinePlayer)player, config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Prix").doubleValue()); if (config().getBoolean("ItemsName." + e.getCurrentItem().getType() + ".ManuelLoc")) { loc = new Location(Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".X").doubleValue(), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Y").doubleValue(), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Z").doubleValue(), config().getFloat("ItemsName." + e.getCurrentItem().getType() + ".Yaw"), config().getFloat("ItemsName." + e.getCurrentItem().getType() + ".Pitch")); } else { Location locspawn = Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")).getSpawnLocation(); loc = new Location(Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")), locspawn.getBlockX(), locspawn.getBlockY(), locspawn.getBlockZ(), locspawn.getYaw(), locspawn.getPitch()); } player.teleport(loc); } } else { Location loc; if (config().getBoolean("ItemsName." + e.getCurrentItem().getType() + ".ManuelLoc")) { loc = new Location(Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".X").doubleValue(), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Y").doubleValue(), config().getDouble("ItemsName." + e.getCurrentItem().getType() + ".Z").doubleValue(), config().getFloat("ItemsName." + e.getCurrentItem().getType() + ".Yaw"), config().getFloat("ItemsName." + e.getCurrentItem().getType() + ".Pitch")); } else { Location locspawn = Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")).getSpawnLocation(); loc = new Location(Bukkit.getWorld(config().getString("ItemsName." + e.getCurrentItem().getType() + ".WorldName")), locspawn.getBlockX(), locspawn.getBlockY(), locspawn.getBlockZ(), locspawn.getYaw(), locspawn.getPitch()); } player.teleport(loc); } } else { player.sendMessage(String.valueOf(config().getString("Prefix").replace("&", ")) + config().getString("ItemsName." + e.getCurrentItem().getType() + ".MessageNotEnable").replace("&", ")); player.closeInventory(); } } } }