1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Beaucoup de nouveauté vont arrivées sur mcdev.fr attendez vous a du lourd !
    Rejeter la notice
  3. Bonjour , le recrutement de staff et ouvert. 14 ans minimum.
    Rejeter la notice
  4. Nouvelle règles mcdev.fr. Aller les voir
    Rejeter la notice
  5. Bonjour voici le discord public ! https://discord.gg/ekg6ETP
    Rejeter la notice
  6. Nouveau modèle de candidature. Bonne chance
    Rejeter la notice

Java Récupérer la vie d'une entité et lui en ajouté

Discussion dans 'Assistance: Général & Divers..' créé par Mr_Chryster, 23 Février 2017.

  1. Regarde elle est presque au début de la conversation
     
  2. #22 Mrolcraft51, 10 Mars 2017
    Dernière édition: 11 Mars 2017
  3. Merci beaucoup mais pour ajouter la vie j'ai fais ca mais ca ne fonctionne pas il y a juste le message qui s'envoie
    Code (Text):
    Copier le code
         @EventHandler
            public void onInteractWither(PlayerInteractEntityEvent e){
                Player p = e.getPlayer();
                Entity ent = e.getRightClicked();
               // if(GameState.isState(GameState.PREPAGAME)){
                    if(ent instanceof Wither){
                        if(p.getItemInHand() != null&&p.getItemInHand().getType() == Material.NETHER_STAR){
                            SpawnWither.setHealth(150);
                            p.sendMessage("wither");
                        }
                     
                    }
                //}

            }
     
  4. envoie la class principale de ton plugin
     
  5. Code (Text):
    Copier le code
    package net.mrchryster.rouber;

    import java.util.ArrayList;
    import java.util.List;

    import org.bukkit.Bukkit;
    import org.bukkit.Chunk;
    import org.bukkit.Location;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.java.JavaPlugin;

    import net.mrchryster.rouber.events.EventManager;
    import net.mrchryster.rouber.state.GameState;
    import net.mrchryster.rouber.wither.SpawnWither;
    import net.mrchryster.rouber.wither.WitherListener;

    public class RouberPvP extends JavaPlugin implements Listener{
       
        private static RouberPvP instance;

        public void onEnable(){
            EventManager.registerEvents(this);
            instance = this;
            WitherListener.addWither(new SpawnWither(new Location(Bukkit.getWorld("world"), -62.5, 64, 275), "§4Team Rouge"));
            GameState.setState(GameState.LOBBY);

        }
        public String prefix = "[RouberPvP]";
        public List<Player>joueur = new ArrayList<>();
       
        public static RouberPvP getInstance(){
            return instance;
        }
       
       
       
        @Override
        public void onDisable() {
           
            for(Chunk chunck: Bukkit.getWorld("world").getLoadedChunks()){
                for(Entity entity: chunck.getEntities()){
                    if(!(entity instanceof Player)){
                        entity.remove();
                    }
                }
            }
           
        }
    }
     
     
  6. attend je corrige un truc

    tu peux m'envoyer ta class WitherListener ?

    Le wither spawn bien ?
     
  7. oui il spawn c'est juste pour lui ajouter de la vie
     
  8. alors chez moi tout fonctionne très bien envoie juste ta class WitherListener et sa sera bon normalement
     
  9. Code (Text):
    Copier le code
    package net.mrchryster.rouber.wither;

    import java.util.HashMap;
    import java.util.Map;

    import org.bukkit.Bukkit;
    import org.bukkit.Chunk;
    import org.bukkit.World;
    import org.bukkit.entity.Entity;
    import org.bukkit.entity.Wither;

    public class WitherListener {
       
        private static Map<String, SpawnWither> withers = new HashMap<>();
       
            public SpawnWither getWither(String witherName){
                return withers.get(witherName);
            }
       
            public static void addWither(SpawnWither spawnWither){
                withers.put(spawnWither.getName(), spawnWither);
            }
           
            public void removeWither(SpawnWither spawnWither){
                withers.remove(spawnWither);
                for (Chunk chunk : spawnWither.getLocation().getWorld().getLoadedChunks()) {
                    for(Entity entity : chunk.getEntities()){
                        if(entity instanceof Wither){
                            if(entity.getName().equals(spawnWither.getName())){
                                entity.remove();
                            }
                        }
                    }
                }
            }
       
            public void deleteAllWithers(){
                withers.clear();
                for(World world : Bukkit.getWorlds()){
                    for (Chunk chunk : world.getLoadedChunks()) {
                        for(Entity entity : chunk.getEntities()){
                            if(entity instanceof Wither){
                                if(withers.containsKey(entity.getCustomName())){
                                    entity.remove();
                                }
                            }
                        }
                    }
                }
            }
           
    }
     
     
  10. Alors tu fait WitherListener.getWither(nomDuWither).setHealth(pointsDeVieAAjouté)
     
  11. Je vais essayer ce week-end
    Edit:
    Ca fonctionne toujours pas et meme quand je clique droit avec la main vide ca me dit le mssage mais ca n'ajoute pas la vie
     
  12. Ta mis du débug pour voir si ça s'exécute bien ?
     
  13. Ecoute la je ne comprends pas, moi ça marche à la perfection... au pire je peux t'envoyer le plugin tu le mets sur ton serveur et tu regarde si sa marche tu as juste à te connecté à ton serveur et faire clic-droit avec une nether star, si ça fonctionne avec le plugin tu le décompile et tu le recopie ligne par ligne dans les mêmes class que moi
     
  14. Merci mais moi c'et bizard alors ...
     
  15. Il y a beaucoup plus simple et plus optimisé:

    1. import net.minecraft.server.v1_8_R3.Entity;
    2. import net.minecraft.server.v1_8_R3.NBTTagCompound;
    3. import org.bukkit.Location;
    4. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftEntity;
    5. import org.bukkit.entity.EntityType;
    6. import org.bukkit.entity.Wither;

    7. public class SpawnWither {

    8. private Wither wither;
    9. private Location location;
    10. private String nameWither;

    11. public SpawnWither(Location location, String nameWither){
    12. this.location = location;
    13. this.nameWither = nameWither;
    14. this.wither = (Wither) this.location.getWorld().spawnEntity(this.location, EntityType.WITHER);
    15. Entity nmsEntity = ((CraftEntity) this.wither).getHandle();
    16. nmsEntity.setCustomName(this.nameWither);
    17. nmsEntity.setCustomNameVisible(true);
    18. this.wither.setmaxHealth(Integer.MAX_VALUE);// grâce a ça tu pourras lui ajouter autant de vie que tu veux
    1. this.wither.setHealth(15);
    2. NBTTagCompound witherTag = nmsEntity.getNBTTag();
    3. if(witherTag == null){
    4. witherTag = new NBTTagCompound();
    5. }

    6. nmsEntity.c(witherTag);
    7. witherTag.setInt("NoAI", 1);
    8. nmsEntity.f(witherTag);
    9. }

    10. public double getHealth(){
    11. return wither.getHealth();
    12. }
    13. public Entity getEntity(){
    14. return wither;
    15. }
    1. public void setHealth(double health){
    2. wither.setHealth(health);
    3. }
      1. public void addHealth(double health){
      2. wither.setHealth(getHealth+health);
      3. }

    4. public Location getLocation(){
    5. return location;
    6. }

    7. public String getName(){
    8. return nameWither;
    9. }
    aprés dans ta classe principale tu fais ça

    public class main extends JavaPlugin implements Listener{

    private SpawnWither wither; //là tu instancie ta classe

    public void onEnable(){
    wither = new SpawnWither(new Location(0,0,0), "Albert");
    bukkit.getpluginmanager.registerevents(this);
    }

    @EventHandler
    public void playerClickWither(PlayerInteractEntityEvent e){

    Player p = e.getPlayer();
    Entity entity = e.getEntity();
    if(p.getItemInHand().equals(Material.NETHER_STAR){
    if(entity == wither.getEntity()){
    wither.addHealth(25); //et la tu lui ajoute la vie que tu veux voilà! Enjoy!!
    }
    }
    }

    }
     
    #35 JezLiZ, 27 Avril 2018
    Dernière édition: 27 Avril 2018

Partager cette page

  1. Il n'y a pas d'utilisateurs sur le Chat.

Vous ne disposez pas d'autorisations nécessaires pour utiliser le chat.

Il n'y a pas d'utilisateurs sur le Chat.
Chat [0]