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<String> materiel = new ArrayList<>();
public static Economy economy = null;
private boolean setupEconomy() {
RegisteredServiceProvider<Economy> 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<String>)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<String> 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<String> 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();
}
}
}
}