Solved Besoin d'aide pour creer un plugin de kit!

Discussion in 'Spigot Plugin Development' started by Rebelious_Gamer, May 31, 2016.

Thread Status:
Not open for further replies.
  1. 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;
            }
         
         
         
         
         
        }
     
     
     
     
     
        }
     
     
    #1 Rebelious_Gamer, May 31, 2016
    Last edited: May 31, 2016
  2. This is an english forum.
     
  3. I translate in English :D
     
  4. Tu as des erreurs ?
     
  5. 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.
     
  6. 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
     
  7. ok merci je vais test ça :D
     
  8. 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
     
  9. J'ai résolu le problème merci à toi et à un autre codeur que j'ai ajouté skype!
     
Thread Status:
Not open for further replies.