Envoyer un mp depuis un classe n'utilisant pas d'event



  • Bonsoir,
    (désolé je savais pas ou poster ça , je sais pas si c'est un forum approprié pour ça)

    Je m'initie actuellement au Java en m'amusant a créer des petits plugins, mais la je suis passé a un autre format.

    Je vous explique :

    Je cherche a envoyé un message privée a un joueurs depuis un classe qui n'utilise pas d’événement (j'en déduis que je peux pas récupérer le player à l'aide d'un event)

    Si j'essaye depuis une classe utilisant un event j'ai un nullPointerExceptions..

    Du coup voici ma question, comment envoyé un message privée a un joueurs sans passer par un evenement ?

    Et sans faire de nullPointerExceptions

    Je vous mets le code :

    public class TaskJoin extends BukkitRunnable {
    
    	private int timer = 5;
    	private Main main;
    	private OnJoinEvent onJoinEvent;
    	
    	public TaskJoin(Main main) {
    		this.main = main;
    	}
    
    	@Override
    	public void run() {
    		Bukkit.broadcastMessage("t:"+timer);
    		onJoinEvent.getPlayerj().sendMessage("Téléportation dans : "+timer+"s");
    		if(timer == 0) {
    			
    			cancel();
    		}
    		timer--;
    	}
    
    }
    

    Que j'utilise dans cette parti :

    case DIAMOND_SWORD:
    					p.getInventory().clear();
    					
    					if(p.getGameMode() == GameMode.SPECTATOR) {
    						TaskJoin timerj = new TaskJoin(main);
    						timerj.runTaskTimer(main, 0, 20);
    					}
    					p.setGameMode(GameMode.SURVIVAL);
    					Item helmet = new Item(Material.IRON_HELMET, 1, "§e§lCasque");
    					Item chestPlate = new Item(Material.IRON_CHESTPLATE, 1, "§e§lPlastron");
    					Item leggings = new Item(Material.IRON_LEGGINGS, 1, "§e§lLeggin");
    					Item boots = new Item(Material.IRON_BOOTS, 1, "§e§lBottes");
    					Item sword = new Item(Material.IRON_SWORD, 1, "§e§lEpee du guerrier");
    					Item gApple = new Item(Material.GOLDEN_APPLE, 6, "§e§lPomme d'or");
    					
    					p.getInventory().setHelmet(helmet.getItems());
    					p.getInventory().setChestplate(chestPlate.getItems());
    					p.getInventory().setLeggings(leggings.getItems());
    					p.getInventory().setBoots(boots.getItems());
    					p.getInventory().setItemInHand(sword.getItems());
    					p.getInventory().setItem(1, gApple.getItems());
    					
    					p.sendMessage("§7[§6Herozia§7]"+"§rSelection du kit §4§lGuerrier §ravec §a§osucces");
    

    Qui est un IventoryClickEvent, si vous avez une solution je vous en serai très reconnaissant !


  • Moddeurs confirmés Rédacteurs Administrateurs

    Bonsoir,

    Il y a probablement un moyen de récupérer une instance de joueur par le nom du joueur, cependant je ne connais pas l'api Bukkit donc je ne vais pas pouvoir t'aider plus.

    Note : ici c'est Minecraft Forge France, on fait du Forge, pas du Bukkit ...



  • Pour t'éclairer un petit peu dans ton soucis, j'ai l'impression que ton event OnJoinEvent est null car il n'est pas initialisé.


Log in to reply