Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Quoi de neuf
Nouveaux messages
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Jeux-vidéos
Autres jeux
Créer son plugin de spawn minecraft
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Kévin 🚀" data-source="post: 3044318" data-attributes="member: 210410"><p style="text-align: center">Salut à tous,</p> <p style="text-align: center"></p> <p style="text-align: center">Aujourd'hui je vous fait un tutoriel pour crée sont propre plugin de spawn.</p> <p style="text-align: center"></p> <p style="text-align: center"><strong><em><u>Voila donc pour se tutoriel vous aurez besoin de :</u></em></strong></p> <p style="text-align: center"></p> <p style="text-align: center">- Eclipse</p> <p style="text-align: center">- Java JDK</p> <p style="text-align: center"></p> <p style="text-align: center">Ce tutoriel se déroulera en 2 étapes</p> <p style="text-align: center"></p> <p style="text-align: center"><strong><em><u>1er étape :</u></em></strong> Installation des logiciels requis.</p> <p style="text-align: center"></p> <p style="text-align: center"><strong><em><u>2éme étape :</u></em></strong> Création du plugin.</p> <p style="text-align: center"></p> <p style="text-align: center"><strong><em><u>Partie 1 : Installation d’éclipse et Java JDK :</u></em></strong></p> <p style="text-align: center"></p> <p style="text-align: center">Rendez vous sur : <a href="http://www.eclipse.org/downloads/" target="_blank">http://www.eclipse.org/downloads/</a></p> <p style="text-align: center"></p> <p style="text-align: center">Puis vous télécharger la version Eclipse IDE for Java EE Developers</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206014-eclispe.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Apres la fin du téléchargement vous prenez le dossier</p> <p style="text-align: center">éclipse qui est compresser en .ZIP et vous le mettez sur votre bureau.</p> <p style="text-align: center"></p> <p style="text-align: center">Une fois que vous l'avez mis vous ouvrez le dossier est cliquer sur Extrait tout .</p> <p style="text-align: center"></p> <p style="text-align: center">Il va vous proposer un chemin vous le toucher pas,</p> <p style="text-align: center">et vous cochez la case ouvrir le dossier une fois l’opération terminée.</p> <p style="text-align: center"></p> <p style="text-align: center">/!\Une fois le dossier ouvert ne le lancer pas car sinon vous aurez une erreur./!\</p> <p style="text-align: center"></p> <p style="text-align: center">Cette erreur sera du au fait que vous n'avez pas JAVA JDK donc on va passez a son installation.</p> <p style="text-align: center"></p> <p style="text-align: center">Installation de Java JDK</p> <p style="text-align: center"></p> <p style="text-align: center">Rendez vous sur :</p> <p style="text-align: center"><a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html" target="_blank">http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html</a></p> <p style="text-align: center"></p> <p style="text-align: center">Puis prenez la version correspondant a votre OS</p> <p style="text-align: center">pour moi sa sera Windows (x64) car je suis en 64 BITS</p> <p style="text-align: center"></p> <p style="text-align: center"><strong><u><span style="color: #ff0000">/!\ Prenez la version correspondante a votre architecture 32 ou 64 bits /!\</span></u></strong></p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206020-java.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Une fois installer vous pouvez retourner sur le dossier d’éclipse et vous le lancer.</p> <p style="text-align: center"></p> <p style="text-align: center">Pendant le chargement d’éclipse</p> <p style="text-align: center">il va vous demander ou voulez mettre la Workspace vous la mettez ou vous voulez.</p> <p style="text-align: center">Une fois le logiciel lancer vous allez voir apparaître a l'écran une fenêtre avec plein de Fenêtre a l’intérieur.</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons garder la fenêtre Package Explorer</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206036-packageexplorer.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Nous somme maintenant pret a crée le plugin</p> <p style="text-align: center"></p> <p style="text-align: center"><strong><em><u>2éme étape : Création du plugin.</u></em></strong></p> <p style="text-align: center"><strong><em><u></u></em></strong></p> <p style="text-align: center"><strong><u>A quoi sert ce plugin ?</u></strong></p> <p style="text-align: center"><strong><u></u></strong></p> <p style="text-align: center">Ce plugin sert a crée un point de spawn. Vous pourez vous y téléporter grâce a la /spawn et il servira comme premier point de spawn des nouveaux joueur sur votre serveur.</p> <p style="text-align: center"></p> <p style="text-align: center">Pour configurer un point de spawn vous devrez faire /setspawn.</p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant nous allons aller dans Eclispe est nous allons crée notre projet</p> <p style="text-align: center"></p> <p style="text-align: center">Vous faite</p> <p style="text-align: center"></p> <p style="text-align: center">clique droit => New => Projet => Java Project</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206024-javaproject.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Vous mettez le nom de votre projet pour moi sa sera Tuto PL Spawn RG</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206029-nom-du-projet.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Une fenetre va s'ouvrir vous cliquer sur NO !</p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant que notre projet est crée nous allons importé Bukkit.</p> <p style="text-align: center"></p> <p style="text-align: center">Pour cela rendez vous sur <a href="http://ci.md-5.net/job/Spigot/" target="_blank">http://ci.md-5.net/job/Spigot/</a></p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403205989-spigot.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Et vous télécharger le spigot-1.7.2-R0.4-SNAPSHOT.jar</p> <p style="text-align: center"></p> <p style="text-align: center">Une fois télécharger nous allons l'importer dans bukkit</p> <p style="text-align: center"></p> <p style="text-align: center">Pour cela vous aller clique droit sur le projet</p> <p style="text-align: center"></p> <p style="text-align: center">Properties => Java Build Path => Libraries => Add External Jars ...</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206018-javabuildpath.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Puis vous cliquer sur Add External Jars ...</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206012-importspigot.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">et vous vous rendez dans téléchargement et vous cliquer sur le spigot puis vous cliquer sur ouvrir.</p> <p style="text-align: center"></p> <p style="text-align: center">Et ensuite vous cliquer sur OK</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons maintenant crée les différents packages du plugin.</p> <p style="text-align: center">Le package Launch qui va contenir les class :</p> <p style="text-align: center"></p> <p style="text-align: center">- Launch</p> <p style="text-align: center">- Config</p> <p style="text-align: center"></p> <p style="text-align: center">et le package Commandes (Cmd) qui va contenir les class :</p> <p style="text-align: center"></p> <p style="text-align: center">- SetSpawnCmd</p> <p style="text-align: center">- SpawnCmd</p> <p style="text-align: center"></p> <p style="text-align: center">Pour cela clique droit sur le dossier SRC puis</p> <p style="text-align: center"></p> <p style="text-align: center">New => Package</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206034-package.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">et vous faite la même opération pour le package TutoRG.Spawn.Cmd</p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant nous allons crée la class Launch</p> <p style="text-align: center">donc vous faite clique droit sur le package TutoRG.Spawn.Launch et vous faite</p> <p style="text-align: center"></p> <p style="text-align: center">New => Class</p> <p style="text-align: center">Pour moi elle s'apellera Launch</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403205993-class.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Maintenant que la class Launch est crée nous allons pouvoir crée les autres class du plugin donc vous refait la même opération sur le package TutoRG.Spawn.Launch et vous mettez dans name : Config.</p> <p style="text-align: center">Une fois cette class crée nous laissons le package TutoRG.Spawn.Launch.</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons maintenant crée les class :</p> <p style="text-align: center"></p> <p style="text-align: center">- SetSpawnCmd</p> <p style="text-align: center">- SpawnCmd</p> <p style="text-align: center"></p> <p style="text-align: center">Vous fait la même opération que pour le package TutoRG.Spawn.Launch</p> <p style="text-align: center"></p> <p style="text-align: center">Une fois tout sa crée vous devriez avoir ceci</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206028-liste-des-class.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Maintenant nous allons passer a la parti codage du plugin</p> <p style="text-align: center">donc rendez vous dans la class launch</p> <p style="text-align: center"></p> <p style="text-align: center">Cette class servira a lancer le plugin elle regroupera les class des commande et de la config.</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206029-launch.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p><p>[CODE]package TutoRG.Spawn.Launch;</p><p></p><p>import java.io.File;</p><p>import java.io.IOException;</p><p>import java.util.HashMap;</p><p></p><p>import org.bukkit.ChatColor;</p><p>import org.bukkit.Location;</p><p>import org.bukkit.configuration.file.FileConfiguration;</p><p>import org.bukkit.configuration.file.YamlConfiguration;</p><p>import org.bukkit.entity.Player;</p><p>import org.bukkit.plugin.java.JavaPlugin;</p><p></p><p>import TutoRG.Spawn.Cmd.SetSpawnCmd;</p><p>import TutoRG.Spawn.Cmd.SpawnCmd;</p><p></p><p>public class Launch extends JavaPlugin {</p><p> </p><p> private String prefix = "[TutoRG]" ;</p><p> private String phrase1 = "Le plugin est correctement charger !" ;</p><p> private String phrase2 = "Le fichier de configuration est correctement sauvegarder !" ;</p><p> </p><p> public File configFile;</p><p> public static FileConfiguration config;</p><p> public HashMap<String, Long> cooldowns = new HashMap();</p><p> </p><p> @Override</p><p> public void onEnable() {</p><p> System.out.println(prefix + phrase1);</p><p> this.configFile = new File(getDataFolder(), "config.yml");</p><p> config = YamlConfiguration.loadConfiguration(this.configFile);</p><p> try</p><p> {</p><p> config.save(this.configFile);</p><p> System.out.println(this.prefix + "Configuration crée avec succèe");</p><p> }</p><p> catch (IOException e)</p><p> {</p><p> System.out.println(this.prefix + "Erreur pendant la création de la configuration" + e);</p><p> }</p><p> getCommand("setspawn").setExecutor(new SetSpawnCmd(this));</p><p> // Commande pour définir le point de spawn</p><p> getCommand("spawn").setExecutor(new SpawnCmd(this));</p><p> //Commande pour se tp au point de spawn</p><p> }</p><p> </p><p> @Override</p><p> public void onDisable() {</p><p> System.out.println(prefix + phrase2);</p><p> }</p><p> </p><p> public void Teleport(Location spawn, Player p)</p><p> {</p><p> this.cooldowns.put(p.getName(), Long.valueOf(System.currentTimeMillis()));</p><p> boolean msge = getConfig().getBoolean("ConfigSpawn.Teleport_Message.Enabled");</p><p> String msg = getConfig().getString("ConfigSpawn.Teleport_Message.Message");</p><p> if (msge) {</p><p> p.sendMessage(msg.replaceAll("(&([a-f0-9]))", "§$2"));</p><p> }</p><p> p.teleport(spawn);</p><p> }</p><p> </p><p> public void dTeleport(final Location spawn, final Player p)</p><p> {</p><p> int delays = getConfig().getInt("ConfigSpawn.Teleport_Delay.Delay");</p><p> p.sendMessage(ChatColor.GRAY + "Téléportation dans " + delays + " Second(s)...");</p><p> getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable()</p><p> {</p><p> public void run()</p><p> {</p><p> Launch.this.Teleport(spawn, p);</p><p> }</p><p> }, 20 * delays);</p><p> }</p><p></p><p>}</p><p>[/CODE]</p><p style="text-align: center"></p> <p style="text-align: center">Vous allez avoir 2 erreur sur SetSpawnCmd et SpawnCmd ceci est tout a fait normal car nous n'avons pas encore remplie les class.</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons passe a la class Config</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403205995-config.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p><p>[CODE]package TutoRG.Spawn.Launch;</p><p></p><p>public class Config {</p><p></p><p> public static void setConfig() {</p><p> if (!Launch.config.contains("ConfigSpawn.Teleport_Message.Enabled")) {</p><p> Launch.config.set("ConfigSpawn.Teleport_Message.Enabled", Boolean.valueOf(true));</p><p> }</p><p> if (!Launch.config.contains("ConfigSpawn.Teleport_Message.Message")) {</p><p> Launch.config.set("ConfigSpawn.Teleport_Message.Message", "&aTéléporter au spawn");</p><p> }</p><p> if (!Launch.config.contains("ConfigSpawn.Cooldown.Enabled")) {</p><p> Launch.config.set("ConfigSpawn.Cooldown.Enabled", Boolean.valueOf(true));</p><p> }</p><p> if (!Launch.config.contains("ConfigSpawn.Cooldown.Cooldown")) {</p><p> Launch.config.set("ConfigSpawn.Cooldown.Cooldown", Integer.valueOf(60));</p><p> }</p><p> if (!Launch.config.contains("ConfigSpawn.Teleport_Delay.Enabled")) {</p><p> Launch.config.set("ConfigSpawn.Teleport_Delay.Enabled", Boolean.valueOf(true));</p><p> }</p><p> if (!Launch.config.contains("ConfigSpawn.Teleport_Delay.Delay")) {</p><p> Launch.config.set("ConfigSpawn.Teleport_Delay.Delay", Integer.valueOf(5));</p><p> }</p><p> if (!Launch.config.contains("ConfigSpawn.NewPlayerSpawn")) {</p><p> Launch.config.set("ConfigSpawn.NewPlayerSpawn", Boolean.valueOf(false));</p><p> }</p><p> if (!Launch.config.contains("ConfigSpawn.MultiWorldSpawns")) {</p><p> Launch.config.set("ConfigSpawn.MultiWorldSpawns", Boolean.valueOf(false));</p><p> }</p><p> }</p><p></p><p>}</p><p>[/CODE]</p><p style="text-align: center"></p> <p style="text-align: center">Maintenant nous allons aller dans la class SetSpawnCmd</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206367-setspawn.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p><p>[CODE]package TutoRG.Spawn.Cmd;</p><p></p><p>import TutoRG.Spawn.Launch.Launch;</p><p>import java.util.Set;</p><p>import org.bukkit.ChatColor;</p><p>import org.bukkit.command.Command;</p><p>import org.bukkit.command.CommandExecutor;</p><p>import org.bukkit.command.CommandSender;</p><p>import org.bukkit.entity.Player;</p><p></p><p>public class SetSpawnCmd implements CommandExecutor {</p><p></p><p> Launch main;</p><p></p><p> public SetSpawnCmd(Launch plugin) {</p><p> this.main = plugin;</p><p> }</p><p></p><p> public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {</p><p></p><p> if (sender.getName() == "CONSOLE")</p><p> {</p><p> System.out.println("Vous ne pouvez pas executer cette commande depuis la console !");</p><p> return true;</p><p> }</p><p> Player p = (Player)sender;</p><p> String noPerm = ChatColor.DARK_RED + "Vous n'avez pas la permission !";</p><p> if (p.hasPermission("TutoRG.SetSpawn")) {</p><p> if (this.main.getConfig().getBoolean("ConfigSpawn.MultiWorldSpawns")) {</p><p> String world = p.getWorld().getName();</p><p> String location = p.getLocation().getBlockX() + ", " + p.getLocation().getBlockY() + ", " + p.getLocation().getBlockZ();</p><p> Float pitch = Float.valueOf(p.getLocation().getPitch());</p><p> Float yaw = Float.valueOf(p.getLocation().getYaw());</p><p> if (this.main.getConfig().contains("ConfigSpawn.Spawns." + world)) {</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn déplacer dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'");</p><p> } else {</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn définie dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'");</p><p> }</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".location", location);</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".pitch", pitch);</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".yaw", yaw);</p><p> this.main.saveConfig();</p><p> }</p><p> else if (this.main.getConfig().contains("ConfigSpawn.Spawns"))</p><p> {</p><p> Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false);</p><p> String spawnsstr = spawns.toString().replace("[", "").replace("]", "");</p><p> String[] str = spawnsstr.split(", ");</p><p> String world = str[0];</p><p></p><p> String location = p.getLocation().getBlockX() + ", " + p.getLocation().getBlockY() + ", " + p.getLocation().getBlockZ();</p><p> Float pitch = Float.valueOf(p.getLocation().getPitch());</p><p> Float yaw = Float.valueOf(p.getLocation().getYaw());</p><p> if (this.main.getConfig().contains("ConfigSpawn.Spawns." + world)) {</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn déplacer dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'");</p><p> } else {</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn définie dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'");</p><p> }</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".location", location);</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".pitch", pitch);</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".yaw", yaw);</p><p> this.main.saveConfig();</p><p> }</p><p> else</p><p> {</p><p> String world = p.getWorld().getName();</p><p> String location = p.getLocation().getBlockX() + ", " + p.getLocation().getBlockY() + ", " + p.getLocation().getBlockZ();</p><p> Float pitch = Float.valueOf(p.getLocation().getPitch());</p><p> Float yaw = Float.valueOf(p.getLocation().getYaw());</p><p> if (this.main.getConfig().contains("ConfigSpawn.Spawns." + world)) {</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn déplacer dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'");</p><p> } else {</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn définie dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'");</p><p> }</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".location", location);</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".pitch", pitch);</p><p> this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".yaw", yaw);</p><p> this.main.saveConfig();</p><p> }</p><p> }</p><p> else {</p><p> p.sendMessage(noPerm);</p><p> }</p><p> return true;</p><p> }</p><p>}</p><p>[/CODE]</p><p style="text-align: center"></p> <p style="text-align: center">Une fois cette class terminé nous allons passer a la class SpawnCmd</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403205983-spawncmd.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p><p>[CODE]package TutoRG.Spawn.Cmd;</p><p></p><p>import TutoRG.Spawn.Launch.Launch;</p><p>import java.util.Set;</p><p>import org.bukkit.ChatColor;</p><p>import org.bukkit.Location;</p><p>import org.bukkit.World;</p><p>import org.bukkit.command.Command;</p><p>import org.bukkit.command.CommandExecutor;</p><p>import org.bukkit.command.CommandSender;</p><p>import org.bukkit.entity.Player;</p><p></p><p>public class SpawnCmd</p><p> implements CommandExecutor</p><p>{</p><p> Launch main;</p><p></p><p> public SpawnCmd(Launch plugin)</p><p> {</p><p> this.main = plugin;</p><p> }</p><p></p><p> public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)</p><p> {</p><p> if (sender.getName() == "CONSOLE")</p><p> {</p><p> System.out.println("Vous ne pouvez pas executer cette commande depuis la console !");</p><p> return true;</p><p> }</p><p> Player p = (Player)sender;</p><p> String noPerm = ChatColor.DARK_RED + "Vous n'avez pas la permission !";</p><p> if (p.hasPermission("TutoRG.SpawnTp"))</p><p> {</p><p> boolean delay = this.main.getConfig().getBoolean("ConfigSpawn.plugin.Teleport_Delay.Enabled");</p><p> boolean cooldown = this.main.getConfig().getBoolean("ConfigSpawn.Cooldown.Enabled");</p><p> boolean multiworld = this.main.getConfig().getBoolean("ConfigSpawn.MultiWorldSpawns");</p><p> if (cooldown)</p><p> {</p><p> int cooldownTime = this.main.getConfig().getInt("ConfigSpawn.Cooldown.Cooldown");</p><p> if ((!p.hasPermission("TutoRG.SpawnTp.cooldown.bypass")) &&</p><p> (this.main.cooldowns.containsKey(sender.getName())))</p><p> {</p><p> long secondsLeft = ((Long)this.main.cooldowns.get(sender.getName())).longValue() / 1000L + cooldownTime - System.currentTimeMillis() / 1000L;</p><p> if (secondsLeft > 0L)</p><p> {</p><p> sender.sendMessage("Vous ne pouvez pas utiliser cette commande pendant " + secondsLeft + " second(s)!");</p><p> return true;</p><p> }</p><p> }</p><p> this.main.cooldowns.put(sender.getName(), Long.valueOf(System.currentTimeMillis()));</p><p> }</p><p> if ((delay) && (!p.hasPermission("TutoRG.SpawnTp.delay.bypass")))</p><p> {</p><p> if (multiworld)</p><p> {</p><p> if (this.main.getConfig().contains("ConfigSpawn.Spawns." + p.getWorld().getName())) {</p><p> this.main.dTeleport(getSpawnLocation(p.getWorld()), p);</p><p> } else {</p><p> p.sendMessage(ChatColor.RED + "Aucun point de spawn dans ce monde !");</p><p> }</p><p> }</p><p> else if (this.main.getConfig().contains("ConfigSpawn.Spawns"))</p><p> {</p><p> Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false);</p><p> String spawnsstr = spawns.toString().replace("[", "").replace("]", "");</p><p> String[] str = spawnsstr.split(", ");</p><p> </p><p> this.main.dTeleport(getSpawnLocation(this.main.getServer().getWorld(str[0])), p);</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Vous avez était téléporter au spawn !");</p><p> }</p><p> else</p><p> {</p><p> p.sendMessage(ChatColor.RED + "Aucun point de spawn !");</p><p> }</p><p> }</p><p> else if (multiworld)</p><p> {</p><p> if (this.main.getConfig().contains("ConfigSpawn.Spawns." + p.getWorld().getName())) {</p><p> this.main.Teleport(getSpawnLocation(p.getWorld()), p);</p><p> } else {</p><p> p.sendMessage(ChatColor.RED + "Aucun point de spawn dans ce monde !");</p><p> }</p><p> }</p><p> else if (this.main.getConfig().contains("ConfigSpawn.Spawns"))</p><p> {</p><p> Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false);</p><p> String spawnsstr = spawns.toString().replace("[", "").replace("]", "");</p><p> String[] str = spawnsstr.split(", ");</p><p> </p><p> this.main.Teleport(getSpawnLocation(this.main.getServer().getWorld(str[0])), p);</p><p> p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Vous avez était téléporter au spawn !");</p><p> }</p><p> else</p><p> {</p><p> p.sendMessage(ChatColor.RED + "Aucun point de spawn !");</p><p> }</p><p> }</p><p> else</p><p> {</p><p> p.sendMessage(noPerm);</p><p> }</p><p> return true;</p><p> }</p><p></p><p> public Location getSpawnLocation(World w)</p><p> {</p><p> boolean multiworld = this.main.getConfig().getBoolean("ConfigSpawn.MultiWorldSpawns");</p><p> </p><p> String worldName = "";</p><p> if (multiworld)</p><p> {</p><p> worldName = w.getName();</p><p> }</p><p> else</p><p> {</p><p> Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false);</p><p> String spawnsstr = spawns.toString().replace("[", "").replace("]", "");</p><p> String[] str = spawnsstr.split(", ");</p><p> </p><p> worldName = str[0];</p><p> }</p><p> String loc = this.main.getConfig().getString("ConfigSpawn.Spawns." + worldName + ".location");</p><p> Float pitch = Float.valueOf(Float.parseFloat(this.main.getConfig().getString("ConfigSpawn.Spawns." + worldName + ".pitch")));</p><p> Float yaw = Float.valueOf(Float.parseFloat(this.main.getConfig().getString("ConfigSpawn.Spawns." + worldName + ".yaw")));</p><p> String[] xyz = loc.split(", ");</p><p> </p><p> Location SpawnLoc = new Location(w, Integer.parseInt(xyz[0]), Integer.parseInt(xyz[1]), Integer.parseInt(xyz[2]));</p><p> SpawnLoc.setPitch(pitch.floatValue());</p><p> SpawnLoc.setYaw(yaw.floatValue());</p><p> SpawnLoc.add(0.5D, 0.0D, 0.5D);</p><p> return SpawnLoc;</p><p> }</p><p>}</p><p>[/CODE]</p><p style="text-align: center"></p> <p style="text-align: center">Nous avons terminé de coder le plugin maintenant nous allons crée le plugin.yml</p> <p style="text-align: center">Pour cela fait clique droit sur le projet:</p> <p style="text-align: center"></p> <p style="text-align: center">New => File</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206038-pluginyml.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Puis cliquer sur finish</p> <p style="text-align: center"></p> <p style="text-align: center">Maintenant ouvrer le plugin.yml est mettez ceci a l'interieur</p> <p style="text-align: center"></p><p>[CODE]name: TutoRGSpawn</p><p>version: 1.0</p><p>author: faragnight18</p><p>main: TutoRG.Spawn.Launch.Launch</p><p>commands:</p><p> setspawn:</p><p> description: Definie le point de spawn</p><p> usage: /<command></p><p> spawn:</p><p> description: Teleporte le joueur au point de spawn</p><p> usage: /<command>[/CODE]</p><p style="text-align: center"></p> <p style="text-align: center">Enregistrer le fichier puis fermer le est faite F5 pour refraichir Eclispe.</p> <p style="text-align: center"></p> <p style="text-align: center">Nous allons exporter le plugin pour pouvoir l'utiliser.</p> <p style="text-align: center">Fait clique droit sur le projet puis:</p> <p style="text-align: center"></p> <p style="text-align: center">Export => Jar File</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206005-export.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">=> vous selectionner ou vous voulez mettre le plugin pour moi il sera sur mon bureau => finish</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206005-exportfinal.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Mettez le plugin dans votre serveur est lancer le !</p> <p style="text-align: center"></p> <p style="text-align: center">Rendez vous dans minecraft pour tester le plugin.</p> <p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206040-testsetspawn.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206057-setspawn-ok.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206046-testspawn.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p><p><img src="http://image.noelshack.com/fichiers/2014/25/1403206044-spawnok.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /> </p><p style="text-align: center"></p> <p style="text-align: center">Voila j'espère que mon tutoriel vous aura plus <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite171" alt=":D" title="Awesome face :D" loading="lazy" data-shortname=":D" /></p> <p style="text-align: center"></p> <p style="text-align: center">Désoler pour mes fautes d'orthographe <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite355" alt=":)" title=":) :)" loading="lazy" data-shortname=":)" /></p> <p style="text-align: center"></p> <p style="text-align: center">Bonne journée a tous <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite351" alt=";)" title="Clin d'oeil ;)" loading="lazy" data-shortname=";)" /></p></blockquote><p></p>
[QUOTE="Kévin 🚀, post: 3044318, member: 210410"] [CENTER]Salut à tous, Aujourd'hui je vous fait un tutoriel pour crée sont propre plugin de spawn. [B][I][U]Voila donc pour se tutoriel vous aurez besoin de :[/U][/I][/B] - Eclipse - Java JDK Ce tutoriel se déroulera en 2 étapes [B][I][U]1er étape :[/U][/I][/B] Installation des logiciels requis. [B][I][U]2éme étape :[/U][/I][/B] Création du plugin. [B][I][U]Partie 1 : Installation d’éclipse et Java JDK :[/U][/I][/B] Rendez vous sur : [URL]http://www.eclipse.org/downloads/[/URL] Puis vous télécharger la version Eclipse IDE for Java EE Developers [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206014-eclispe.png[/IMG] [CENTER] Apres la fin du téléchargement vous prenez le dossier éclipse qui est compresser en .ZIP et vous le mettez sur votre bureau. Une fois que vous l'avez mis vous ouvrez le dossier est cliquer sur Extrait tout . Il va vous proposer un chemin vous le toucher pas, et vous cochez la case ouvrir le dossier une fois l’opération terminée. /!\Une fois le dossier ouvert ne le lancer pas car sinon vous aurez une erreur./!\ Cette erreur sera du au fait que vous n'avez pas JAVA JDK donc on va passez a son installation. Installation de Java JDK Rendez vous sur : [URL]http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html[/URL] Puis prenez la version correspondant a votre OS pour moi sa sera Windows (x64) car je suis en 64 BITS [B][U][COLOR=#ff0000]/!\ Prenez la version correspondante a votre architecture 32 ou 64 bits /!\[/COLOR][/U][/B] [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206020-java.png[/IMG] [CENTER] Une fois installer vous pouvez retourner sur le dossier d’éclipse et vous le lancer. Pendant le chargement d’éclipse il va vous demander ou voulez mettre la Workspace vous la mettez ou vous voulez. Une fois le logiciel lancer vous allez voir apparaître a l'écran une fenêtre avec plein de Fenêtre a l’intérieur. Nous allons garder la fenêtre Package Explorer [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206036-packageexplorer.png[/IMG] [CENTER] Nous somme maintenant pret a crée le plugin [B][I][U]2éme étape : Création du plugin. [/U][/I] [U]A quoi sert ce plugin ? [/U][/B] Ce plugin sert a crée un point de spawn. Vous pourez vous y téléporter grâce a la /spawn et il servira comme premier point de spawn des nouveaux joueur sur votre serveur. Pour configurer un point de spawn vous devrez faire /setspawn. Maintenant nous allons aller dans Eclispe est nous allons crée notre projet Vous faite clique droit => New => Projet => Java Project [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206024-javaproject.png[/IMG] [CENTER] Vous mettez le nom de votre projet pour moi sa sera Tuto PL Spawn RG [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206029-nom-du-projet.png[/IMG] [CENTER] Une fenetre va s'ouvrir vous cliquer sur NO ! Maintenant que notre projet est crée nous allons importé Bukkit. Pour cela rendez vous sur [URL]http://ci.md-5.net/job/Spigot/[/URL] [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403205989-spigot.png[/IMG] [CENTER] Et vous télécharger le spigot-1.7.2-R0.4-SNAPSHOT.jar Une fois télécharger nous allons l'importer dans bukkit Pour cela vous aller clique droit sur le projet Properties => Java Build Path => Libraries => Add External Jars ... [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206018-javabuildpath.png[/IMG] [CENTER] Puis vous cliquer sur Add External Jars ... [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206012-importspigot.png[/IMG] [CENTER] et vous vous rendez dans téléchargement et vous cliquer sur le spigot puis vous cliquer sur ouvrir. Et ensuite vous cliquer sur OK Nous allons maintenant crée les différents packages du plugin. Le package Launch qui va contenir les class : - Launch - Config et le package Commandes (Cmd) qui va contenir les class : - SetSpawnCmd - SpawnCmd Pour cela clique droit sur le dossier SRC puis New => Package [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206034-package.png[/IMG] [CENTER] et vous faite la même opération pour le package TutoRG.Spawn.Cmd Maintenant nous allons crée la class Launch donc vous faite clique droit sur le package TutoRG.Spawn.Launch et vous faite New => Class Pour moi elle s'apellera Launch [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403205993-class.png[/IMG] [CENTER] Maintenant que la class Launch est crée nous allons pouvoir crée les autres class du plugin donc vous refait la même opération sur le package TutoRG.Spawn.Launch et vous mettez dans name : Config. Une fois cette class crée nous laissons le package TutoRG.Spawn.Launch. Nous allons maintenant crée les class : - SetSpawnCmd - SpawnCmd Vous fait la même opération que pour le package TutoRG.Spawn.Launch Une fois tout sa crée vous devriez avoir ceci [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206028-liste-des-class.png[/IMG] [CENTER] Maintenant nous allons passer a la parti codage du plugin donc rendez vous dans la class launch Cette class servira a lancer le plugin elle regroupera les class des commande et de la config. [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206029-launch.png[/IMG] [CENTER][/CENTER] [CODE]package TutoRG.Spawn.Launch; import java.io.File; import java.io.IOException; import java.util.HashMap; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import TutoRG.Spawn.Cmd.SetSpawnCmd; import TutoRG.Spawn.Cmd.SpawnCmd; public class Launch extends JavaPlugin { private String prefix = "[TutoRG]" ; private String phrase1 = "Le plugin est correctement charger !" ; private String phrase2 = "Le fichier de configuration est correctement sauvegarder !" ; public File configFile; public static FileConfiguration config; public HashMap<String, Long> cooldowns = new HashMap(); @Override public void onEnable() { System.out.println(prefix + phrase1); this.configFile = new File(getDataFolder(), "config.yml"); config = YamlConfiguration.loadConfiguration(this.configFile); try { config.save(this.configFile); System.out.println(this.prefix + "Configuration crée avec succèe"); } catch (IOException e) { System.out.println(this.prefix + "Erreur pendant la création de la configuration" + e); } getCommand("setspawn").setExecutor(new SetSpawnCmd(this)); // Commande pour définir le point de spawn getCommand("spawn").setExecutor(new SpawnCmd(this)); //Commande pour se tp au point de spawn } @Override public void onDisable() { System.out.println(prefix + phrase2); } public void Teleport(Location spawn, Player p) { this.cooldowns.put(p.getName(), Long.valueOf(System.currentTimeMillis())); boolean msge = getConfig().getBoolean("ConfigSpawn.Teleport_Message.Enabled"); String msg = getConfig().getString("ConfigSpawn.Teleport_Message.Message"); if (msge) { p.sendMessage(msg.replaceAll("(&([a-f0-9]))", "§$2")); } p.teleport(spawn); } public void dTeleport(final Location spawn, final Player p) { int delays = getConfig().getInt("ConfigSpawn.Teleport_Delay.Delay"); p.sendMessage(ChatColor.GRAY + "Téléportation dans " + delays + " Second(s)..."); getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() { public void run() { Launch.this.Teleport(spawn, p); } }, 20 * delays); } } [/CODE] [CENTER] Vous allez avoir 2 erreur sur SetSpawnCmd et SpawnCmd ceci est tout a fait normal car nous n'avons pas encore remplie les class. Nous allons passe a la class Config [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403205995-config.png[/IMG] [CENTER][/CENTER] [CODE]package TutoRG.Spawn.Launch; public class Config { public static void setConfig() { if (!Launch.config.contains("ConfigSpawn.Teleport_Message.Enabled")) { Launch.config.set("ConfigSpawn.Teleport_Message.Enabled", Boolean.valueOf(true)); } if (!Launch.config.contains("ConfigSpawn.Teleport_Message.Message")) { Launch.config.set("ConfigSpawn.Teleport_Message.Message", "&aTéléporter au spawn"); } if (!Launch.config.contains("ConfigSpawn.Cooldown.Enabled")) { Launch.config.set("ConfigSpawn.Cooldown.Enabled", Boolean.valueOf(true)); } if (!Launch.config.contains("ConfigSpawn.Cooldown.Cooldown")) { Launch.config.set("ConfigSpawn.Cooldown.Cooldown", Integer.valueOf(60)); } if (!Launch.config.contains("ConfigSpawn.Teleport_Delay.Enabled")) { Launch.config.set("ConfigSpawn.Teleport_Delay.Enabled", Boolean.valueOf(true)); } if (!Launch.config.contains("ConfigSpawn.Teleport_Delay.Delay")) { Launch.config.set("ConfigSpawn.Teleport_Delay.Delay", Integer.valueOf(5)); } if (!Launch.config.contains("ConfigSpawn.NewPlayerSpawn")) { Launch.config.set("ConfigSpawn.NewPlayerSpawn", Boolean.valueOf(false)); } if (!Launch.config.contains("ConfigSpawn.MultiWorldSpawns")) { Launch.config.set("ConfigSpawn.MultiWorldSpawns", Boolean.valueOf(false)); } } } [/CODE] [CENTER] Maintenant nous allons aller dans la class SetSpawnCmd [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206367-setspawn.png[/IMG] [CENTER][/CENTER] [CODE]package TutoRG.Spawn.Cmd; import TutoRG.Spawn.Launch.Launch; import java.util.Set; import org.bukkit.ChatColor; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class SetSpawnCmd implements CommandExecutor { Launch main; public SetSpawnCmd(Launch plugin) { this.main = plugin; } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.getName() == "CONSOLE") { System.out.println("Vous ne pouvez pas executer cette commande depuis la console !"); return true; } Player p = (Player)sender; String noPerm = ChatColor.DARK_RED + "Vous n'avez pas la permission !"; if (p.hasPermission("TutoRG.SetSpawn")) { if (this.main.getConfig().getBoolean("ConfigSpawn.MultiWorldSpawns")) { String world = p.getWorld().getName(); String location = p.getLocation().getBlockX() + ", " + p.getLocation().getBlockY() + ", " + p.getLocation().getBlockZ(); Float pitch = Float.valueOf(p.getLocation().getPitch()); Float yaw = Float.valueOf(p.getLocation().getYaw()); if (this.main.getConfig().contains("ConfigSpawn.Spawns." + world)) { p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn déplacer dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'"); } else { p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn définie dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'"); } this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".location", location); this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".pitch", pitch); this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".yaw", yaw); this.main.saveConfig(); } else if (this.main.getConfig().contains("ConfigSpawn.Spawns")) { Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false); String spawnsstr = spawns.toString().replace("[", "").replace("]", ""); String[] str = spawnsstr.split(", "); String world = str[0]; String location = p.getLocation().getBlockX() + ", " + p.getLocation().getBlockY() + ", " + p.getLocation().getBlockZ(); Float pitch = Float.valueOf(p.getLocation().getPitch()); Float yaw = Float.valueOf(p.getLocation().getYaw()); if (this.main.getConfig().contains("ConfigSpawn.Spawns." + world)) { p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn déplacer dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'"); } else { p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn définie dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'"); } this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".location", location); this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".pitch", pitch); this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".yaw", yaw); this.main.saveConfig(); } else { String world = p.getWorld().getName(); String location = p.getLocation().getBlockX() + ", " + p.getLocation().getBlockY() + ", " + p.getLocation().getBlockZ(); Float pitch = Float.valueOf(p.getLocation().getPitch()); Float yaw = Float.valueOf(p.getLocation().getYaw()); if (this.main.getConfig().contains("ConfigSpawn.Spawns." + world)) { p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn déplacer dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'"); } else { p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Point de spawn définie dans le monde '" + ChatColor.GOLD + world + ChatColor.GOLD + "'"); } this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".location", location); this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".pitch", pitch); this.main.getConfig().set("ConfigSpawn.Spawns." + world + ".yaw", yaw); this.main.saveConfig(); } } else { p.sendMessage(noPerm); } return true; } } [/CODE] [CENTER] Une fois cette class terminé nous allons passer a la class SpawnCmd [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403205983-spawncmd.png[/IMG] [CENTER][/CENTER] [CODE]package TutoRG.Spawn.Cmd; import TutoRG.Spawn.Launch.Launch; import java.util.Set; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; public class SpawnCmd implements CommandExecutor { Launch main; public SpawnCmd(Launch plugin) { this.main = plugin; } public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (sender.getName() == "CONSOLE") { System.out.println("Vous ne pouvez pas executer cette commande depuis la console !"); return true; } Player p = (Player)sender; String noPerm = ChatColor.DARK_RED + "Vous n'avez pas la permission !"; if (p.hasPermission("TutoRG.SpawnTp")) { boolean delay = this.main.getConfig().getBoolean("ConfigSpawn.plugin.Teleport_Delay.Enabled"); boolean cooldown = this.main.getConfig().getBoolean("ConfigSpawn.Cooldown.Enabled"); boolean multiworld = this.main.getConfig().getBoolean("ConfigSpawn.MultiWorldSpawns"); if (cooldown) { int cooldownTime = this.main.getConfig().getInt("ConfigSpawn.Cooldown.Cooldown"); if ((!p.hasPermission("TutoRG.SpawnTp.cooldown.bypass")) && (this.main.cooldowns.containsKey(sender.getName()))) { long secondsLeft = ((Long)this.main.cooldowns.get(sender.getName())).longValue() / 1000L + cooldownTime - System.currentTimeMillis() / 1000L; if (secondsLeft > 0L) { sender.sendMessage("Vous ne pouvez pas utiliser cette commande pendant " + secondsLeft + " second(s)!"); return true; } } this.main.cooldowns.put(sender.getName(), Long.valueOf(System.currentTimeMillis())); } if ((delay) && (!p.hasPermission("TutoRG.SpawnTp.delay.bypass"))) { if (multiworld) { if (this.main.getConfig().contains("ConfigSpawn.Spawns." + p.getWorld().getName())) { this.main.dTeleport(getSpawnLocation(p.getWorld()), p); } else { p.sendMessage(ChatColor.RED + "Aucun point de spawn dans ce monde !"); } } else if (this.main.getConfig().contains("ConfigSpawn.Spawns")) { Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false); String spawnsstr = spawns.toString().replace("[", "").replace("]", ""); String[] str = spawnsstr.split(", "); this.main.dTeleport(getSpawnLocation(this.main.getServer().getWorld(str[0])), p); p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Vous avez était téléporter au spawn !"); } else { p.sendMessage(ChatColor.RED + "Aucun point de spawn !"); } } else if (multiworld) { if (this.main.getConfig().contains("ConfigSpawn.Spawns." + p.getWorld().getName())) { this.main.Teleport(getSpawnLocation(p.getWorld()), p); } else { p.sendMessage(ChatColor.RED + "Aucun point de spawn dans ce monde !"); } } else if (this.main.getConfig().contains("ConfigSpawn.Spawns")) { Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false); String spawnsstr = spawns.toString().replace("[", "").replace("]", ""); String[] str = spawnsstr.split(", "); this.main.Teleport(getSpawnLocation(this.main.getServer().getWorld(str[0])), p); p.sendMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GOLD + "TutoRG Spawn" + ChatColor.DARK_GRAY + "]" + ChatColor.GREEN + " Vous avez était téléporter au spawn !"); } else { p.sendMessage(ChatColor.RED + "Aucun point de spawn !"); } } else { p.sendMessage(noPerm); } return true; } public Location getSpawnLocation(World w) { boolean multiworld = this.main.getConfig().getBoolean("ConfigSpawn.MultiWorldSpawns"); String worldName = ""; if (multiworld) { worldName = w.getName(); } else { Set spawns = this.main.getConfig().getConfigurationSection("ConfigSpawn.Spawns").getKeys(false); String spawnsstr = spawns.toString().replace("[", "").replace("]", ""); String[] str = spawnsstr.split(", "); worldName = str[0]; } String loc = this.main.getConfig().getString("ConfigSpawn.Spawns." + worldName + ".location"); Float pitch = Float.valueOf(Float.parseFloat(this.main.getConfig().getString("ConfigSpawn.Spawns." + worldName + ".pitch"))); Float yaw = Float.valueOf(Float.parseFloat(this.main.getConfig().getString("ConfigSpawn.Spawns." + worldName + ".yaw"))); String[] xyz = loc.split(", "); Location SpawnLoc = new Location(w, Integer.parseInt(xyz[0]), Integer.parseInt(xyz[1]), Integer.parseInt(xyz[2])); SpawnLoc.setPitch(pitch.floatValue()); SpawnLoc.setYaw(yaw.floatValue()); SpawnLoc.add(0.5D, 0.0D, 0.5D); return SpawnLoc; } } [/CODE] [CENTER] Nous avons terminé de coder le plugin maintenant nous allons crée le plugin.yml Pour cela fait clique droit sur le projet: New => File [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206038-pluginyml.png[/IMG] [CENTER] Puis cliquer sur finish Maintenant ouvrer le plugin.yml est mettez ceci a l'interieur [/CENTER] [CODE]name: TutoRGSpawn version: 1.0 author: faragnight18 main: TutoRG.Spawn.Launch.Launch commands: setspawn: description: Definie le point de spawn usage: /<command> spawn: description: Teleporte le joueur au point de spawn usage: /<command>[/CODE] [CENTER] Enregistrer le fichier puis fermer le est faite F5 pour refraichir Eclispe. Nous allons exporter le plugin pour pouvoir l'utiliser. Fait clique droit sur le projet puis: Export => Jar File [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206005-export.png[/IMG] [CENTER] => vous selectionner ou vous voulez mettre le plugin pour moi il sera sur mon bureau => finish [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206005-exportfinal.png[/IMG] [CENTER] Mettez le plugin dans votre serveur est lancer le ! Rendez vous dans minecraft pour tester le plugin. [/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206040-testsetspawn.png[/IMG] [CENTER][/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206057-setspawn-ok.png[/IMG] [CENTER][/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206046-testspawn.png[/IMG] [CENTER][/CENTER] [IMG]http://image.noelshack.com/fichiers/2014/25/1403206044-spawnok.png[/IMG] [CENTER] Voila j'espère que mon tutoriel vous aura plus :D Désoler pour mes fautes d'orthographe :) Bonne journée a tous ;)[/CENTER] [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Jeux-vidéos
Autres jeux
Créer son plugin de spawn minecraft
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut