Tutoriel faire un plugin en java: partie 2 (Connexion des joueurs)

Inscription
2 Février 2014
Messages
68
Réactions
19
Points
16 514
RGCoins
107
Si vous venez d'arrivé je vous conseil de commencer par le début ici
Donc dans cette partie on va géré les joueurs qui rejoins la partie.
On va donc créer une nouvel class qu'on va appellé JoinManager et qui va implements Listener
comme ceci
du3Ts5U.png

Et on va récupéré notre class principale
Pour cela on va faire "private <Nom de la class principale> plugin;"
puis "public JoinManager(<Nom de la class principale> main) {
this.plugin = main;
}"
Pour moi cela va donné ça
hlned9r.png

Maintenant qu'on a créé le constructeur on va retourné dans la class principale et l'écuté dans le onEnable()
QRTMSP9.png

j'ai déclaré une variable JoinManager que j'ai appellé jm et dans le onEnable j'ai dit que jm est égal a new JoinManager(this);
Maintenant faut dire au plugin qu'on doit enregistré des events dans cette class
ZXwiuVA.png

Donc on récupére le PluginManager du serveur et on enregistre les events de la class JoinManager
Maintenant on va créer ces events on retourne donc dans la class JoinManager
et on va récupéré le PlayeJoinEvent et aussi le PlayerLoginEvent
qq2Zqr8.png

Le player join event est appelé lorsque le joueur a rejoins le serveur
le login lui est appelé lorsque le joueur tente de se connecté
Imaginons donc que quand la partie a commencé on ne veut plus que les joueurs puissent rejoindre la partie.
jGI1byV.png

Donc ici quand un joueur tente de se connecte je teste si la partie n'est pas en WAITING. Si cela est le cas on régle le resultat de la connection a kick_other et on refuse la connection avec le résultat que l'on vient de modifier et un petit message de pourquoi il a pas pu se connecté. Mais moi je préfère laisser les joueurs rejoindre mais ils seront en spectateur. Donc moi dans mon login event j'aurai ça
RhzSJnR.png

Si la phase est en end je refuse car le serveur va bientôt redémarré.
Maintenant passons au join
Ici tout dépend de si vous ferais un reset de map a la fin ou pas. Si oui y aura pas grand chose a faire a par donné les items au joueur. Mais moi je suis maniaque et vous allez voir pourquoi.
ak3nFyJ.png

Donc en gros ici avant les condition je vais dire que je réinitialise le joueur. Pourquoi je lui retire l'achievement OPEN_INVENTORY vous verrez dans un prochaine partie
Si la phase est en WAITING je leur donne ce qu'ils faut par rapport au jeu. Ici y aura deux équipe donc je leur donne un item pour rejoindre l'équipe bleu et un pour la rouge et je les met en Adventure. Comme ça ils peuvent pas cassé de bloc. Si la phase n'est pas en Waiting le les met simplement en specateur.
Voilà a vous de personalisés cela a votre besoin et dans la prochaine partie on va géré la salle d'attente
 
Par contre tu devrais travailler la présentation ! :nerd:
 
Ta discussion se trouvait dans la mauvaise section , je l'ai donc déplacée dans la bonne section . :modo:
 
Juste une question tu sais coder en java ?
Car la jm n est pas égal a ca mais tu fait un nouvelle objet de la classe JoinManager
Oui ^^. Je ne savais plus comment l’exprimé à ce moment là. Merci du commentaire "constructif"
 
Oui ^^. Je ne savais plus comment l’exprimé à ce moment là. Merci du commentaire "constructif"
Je disait ça car la plupart des personne qui font des plugins Minecraft font C/C et au p.teleport intellij te dit que tu as une erreur aussi:)
 
slt j'ai un souci avec p.teleport()

voici l'erreur

The method teleport(Location) in the type Entity is not applicable for the arguments (String)

et il possible de le changer en:


p.teleport(new Location(Bukkit.getServer().getWorld("Map"), 0, 0, 0));
 
Dernière édition:
slt j'ai un souci avec p.teleport()

voici l'erreur

The method teleport(Location) in the type Entity is not applicable for the arguments (String)

et il possible de le changer en:


p.teleport(new Location(Bukkit.getServer().getWorld("Map"), 0, 0, 0));

Oui évidemment. Le string était a titre informatif ^^
 
Je disait ça car la plupart des personne qui font des plugins Minecraft font C/C et au p.teleport intellij te dit que tu as une erreur aussi:)
Oui c'est à vous de mettre la location.
slt tu fait la partit 3 quand ?
Le plus tôt possible. J'ai eu pas mal de boulot la semaine passée. Je vais essayé de le faire ce soir quand je rentre. Bonne journée
 
Je suis désolé. J'ai eu pas mal de chose qui fait que ça me passait complètement à coter de la tête.
Mais je vous invites à vous rendre sur ce forum où vous pouvez me trouver et apprendre à développe avec une communauté faite pour ça.
 
Retour
Haut