Hello I need help to create a set of plugin, basically I already here in the inventory and when we click on the sword diamond for example it gives the person the stuff, it works up there very well but I'm looking to change the power stuff from a configuration file. That all said if you need more precision called me! That looks like the plugin InGame: http://image.noelshack.com/fichiers/2016/22/1464706217-2016-05-31-16-48-58.png et http://image.noelshack.com/fichiers/2016/22/1464706217-2016-05-31-16-49-02.png and here is the code: Code (Text): package ovh.galorion; import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; 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.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin implements Listener { Logger logger = Bukkit.getLogger(); public void onEnable() { logger.info("Steakpvp Plugin by Jys3n Loaded!"); Bukkit.getServer().getPluginManager().registerEvents(this, this); this.getConfig().options().copyDefaults(true); this.saveConfig(); } @EventHandler public void onRespawn(PlayerRespawnEvent e) { Player p = e.getPlayer(); p.getInventory().clear(); ItemStack etoile = new ItemStack(Material.NETHER_STAR); ItemMeta etoilem = etoile.getItemMeta(); etoilem.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Kits"); etoile.setItemMeta(etoilem); p.setHealth(20.0); p.getInventory().setItem(4, etoile); } @EventHandler public void onConnect(PlayerJoinEvent c) { Player p = c.getPlayer(); p.getInventory().clear(); ItemStack etoile = new ItemStack(Material.NETHER_STAR); ItemMeta etoilem = etoile.getItemMeta(); etoilem.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Kits"); etoile.setItemMeta(etoilem); p.setFoodLevel(25); p.setHealth(20.0); p.getInventory().setItem(4, etoile); Location l = new Location(Bukkit.getWorld("pvpbox"), -10, 125, 127); p.teleport(l); } private void openGUI(Player player) { Inventory i = Bukkit.createInventory(null, 9, ChatColor.BOLD + "" + ChatColor.GOLD + "Kits"); ItemStack pvp = new ItemStack(Material.DIAMOND_SWORD); ItemMeta pvpm = pvp.getItemMeta(); pvpm.setDisplayName(ChatColor.RED + "PvP"); pvp.setItemMeta(pvpm); ItemStack archer = new ItemStack(Material.BOW); ItemMeta archerm = archer.getItemMeta(); archerm.setDisplayName(ChatColor.RED + "Archer"); archer.setItemMeta(archerm); ItemStack assassin = new ItemStack(Material.REDSTONE); ItemMeta assassinm = assassin.getItemMeta(); assassinm.setDisplayName(ChatColor.RED + "Assassin"); assassin.setItemMeta(assassinm); ItemStack suivant = new ItemStack(Material.PAPER); ItemMeta suivantm = suivant.getItemMeta(); suivantm.setDisplayName(ChatColor.RED + "Suivant"); suivant.setItemMeta(suivantm); i.setItem(2, pvp); i.setItem(4, archer); i.setItem(6, assassin); i.setItem(8, suivant); player.openInventory(i); } @EventHandler public void onPlayerInteract(PlayerInteractEvent f) { if (f.getItem().getType() == Material.NETHER_STAR) { openGUI(f.getPlayer()); } } @EventHandler public void onPlayerInventoryClick(InventoryClickEvent k) { if (!ChatColor.stripColor(k.getInventory().getName()).equalsIgnoreCase( "Kits")) return; Player p = (Player) k.getWhoClicked(); k.setCancelled(true); if (k.getCurrentItem() == null || k.getCurrentItem().getType() == Material.AIR || !k.getCurrentItem().hasItemMeta()) { p.closeInventory(); return; } switch (k.getCurrentItem().getType()) { case DIAMOND_SWORD: ItemStack item1 = new ItemStack(Material.DIAMOND_SWORD); ItemStack item2 = new ItemStack(Material.IRON_HELMET); p.getInventory().clear(); p.getInventory().setHelmet(item2); p.getInventory().addItem(item1); p.closeInventory(); default: break; } } }
Non dans ce code là je n'ai pas d'erreurs tout fonctionne parfaitement, mais après énormément de recherches je ne comprend pas comment faire pour modifier depuis un fichier config.yml les items par exemple la netherstar ici: Code (Text): @EventHandler public void onRespawn(PlayerRespawnEvent e) { Player p = e.getPlayer(); p.getInventory().clear(); ItemStack etoile = new ItemStack(Material.NETHER_STAR); ItemMeta etoilem = etoile.getItemMeta(); etoilem.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Kits"); etoile.setItemMeta(etoilem); pouvoir la modifier en un autre item juste en mettant dans le config.yml item1: DIAMOND par exemple pour que la NetherStar se transforme en diamant. C'est tout et une foie que j'aurais compris la méthode je pourrais la reproduire pour le reste comme les items présents dans les différents kits. In English: Not in this code there I have no errors everything works perfectly, but after much research I do not understand how to change from a file config.yml items such as netherstar here: Code (Text): @EventHandler public void onRespawn(PlayerRespawnEvent e) { Player p = e.getPlayer(); p.getInventory().clear(); ItemStack etoile = new ItemStack(Material.NETHER_STAR); ItemMeta etoilem = etoile.getItemMeta(); etoilem.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "Kits"); etoile.setItemMeta(etoilem); to change into another item just by putting in the item1 config.yml: DIAMOND example for the NetherStar turns into diamond. That's all and liver I would have understood the method I could reproduce it for the rest as the items present in the various kits.
Alors c'est très simple tu crée une config , dans le onenable et tout avec le FileConfiguration de bukkit enfin bref tu peux regarder des tutos sur sa c'est pas compliqué avec tu fait Code (Text): New ItemStack(Material.Main.Config.getString(item_1); Et le string item_1 qui est dans ta config tu met le nom du Material
J'ai une petite error sur Main dans ta ligne de code :/ J'ai pris une petite capture : http://image.noelshack.com/fichiers/2016/22/1464722696-capture-d-ecran-2.png
Change le nom Main par Ta classe principal et ne met pas le ItemStack dans ton onEnable je voit que tu as une seul classe donc inutile de mettre le Main. Fait juste config.getstring ... A l'endroit où tu declar l'itemStack