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 !
-
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é.