Welcome to Bukkit France

Inscrivez-vous maintenant pour profiter d'un accès total à tout le contenu offert par la meilleur communauté Bukkit française ! Une fois inscrit et connecté, vous pourrez contribuez à la communauté en postant vos propres sujets et questions ou en répondant à ceux existants. Vous pourrez aussi customiser votre profil, recevoir des points de réputations, communiquer avec les autres membres via le chat, et plus encore! 

Dow1t

Membres
  • Compteur de contenus

    1085
  • Inscription

  • Dernière visite

Tout ce qui a été posté par Dow1t

  1. Packet par Joueur (ProtocolLib)

    Bah pour les stocker tu fais une map. Et il y a déjà du code sur le lien que je t'ai envoyé
  2. Packet par Joueur (ProtocolLib)

    ceci peut t'aider ?   j'ai vu qu'il suffisait de sauver tout les packets que le joueur envoyais pour en faire un compteur   https://www.spigotmc.org/threads/limiting-the-packets-a-player-can-send.163051/
  3. [ScoreboardSign] Mauvais affichage

    envois ton onJoin / onQuit stp
  4. Launcher moddée minecraft

    Bah il n'y a pas vraiment besoin de tutoriel pour ajouter 1 ligne   Simplement, quand on clique sur le bouton, tu fais un this.mc.displayGuiScreen(new GuiConnecting("IP", 25565 /*le port*/));
  5. Bonjour à tous, vous ne connaissez sûrement asser pour dire que je poste pas mal de demande d'aide sur ce forum. Pour ceux qui ne me connaissent pas, je suis Dow1t, un jeune Belge de 17 ans j'adore la programmation (Java, JS, Ajax, PHP)   Je suis ici aujourd'hui pour vous poser quelques questions car j'ai vraiment besoin de vous. En effet, lors-ce-que je dois créer quelque chose que ce soit en PHP ou Java ou autre, je n'arrive pas à imaginer / inventer ou même avoir une idée de comment m'y prendre.   Par exemple, demandez à un développeur expérimenté comme @SystemGlitch, @Dermenslof ou d'autre, j'en passe car vous êtes des centaines sur ce forum. Vous leur demander de créer un plugin de ban par exemple, directement dans leur tête ils se disent "ha ok alors pour créer ce plugin il me faudra tel class et tel class" tandis que moi, je n'arrive pas à savoir ce dont j'aurais besoin. Est-ce normal ou un léger (gros) problème de ma part. Comment est-ce-que peux résoudre ça ?   Ensuite, lors-ce-que je développe par exemple, un mod, je dois tout le temps faire une demande d'aide sur un truc qui semble tout con mais un vrai casse tête pour moi. En effet, j'apprends du mieux que je peux le java en faisant des exercices quotidiens. Malheureusement, je galère énormément. Je n'ai aucune nuance d'anglais. Le seul anglais que je connais c'est celui que j'ai appris en jouant à league of legends (pas les insultes hein ) et je pense que cella nuit énormément à mon apprentissage. Quand je dois par exemple créer un GUI qui extends de GuiScreen, je ne sais même pas ce qu'est un GuiScreen (bon maintenant je sais car je viens d'aller voir) mais il y a plusieurs méthodes / class comme ça que je ne sais pas traduire. Est-ce-que je devrais apprendre un minimum d'anglais afin de continuer mon apprentissage ? Je ne connais rien d'anglais appart quelques mots comme dit plus haut car ça fait maintenant 12 ans que je fais du néerlandais (bilingue presque parfait) et je n'ai jamais vu d'anglais de ma vie. Je suis même obligé des-fois, de demander à mon petit frère qui as 12 ans de me traduire un mot.   Voilà, je m'en remet à vous car c'est asser agaçant de ne pas pouvoir progresser à cause de ces 2 problèmes.   Un exemple plus concret, j'ai du faire appel à @MrQuark pour lui demander comment je devrais m'y prendre pour réaliser un petit hôtel des ventes avec une interface customisée (un peut à la Skillpvp etc) car je ne sais pas dont ce j'ai besoin pour réaliser tel ou tel chose.   Un grand merci à vous membres de bukkit, d'avoir lu mon message jusqu'à la fin. J'espère pouvoir continuer mon apprentissage sans avoir ces lacunes.   Cordialement, Dow1 -   EDIT:   J'ai aussi un problème au niveau des class abstract, interfaces je ne comprends pas comment elles fonctionnes même après avoir relu plusieurs fois le cours
  6. Besoin d'aide - Scoreboard qui flash :(

    Ceci peut peut-être t'aider ?      
  7. [CRASH] Pas d'erreur, rien.

    Il existes plusieurs failles pour faire crash un serveur .   Est-ce-que une version paper-spigot réglerait le problème rencontré ?   Sinon il existe aussi un SignCrash à une époque, Dermenslof m'avais aidé à créer un patch pour le bloqué
  8. Recherche de plugin pour avoir les items de la 1.8.8

    Salut   Un plugin ne pourra jamais ajouter des nouveaux blocs / items et autres. Le plugin qu'il soit de spigot ou bukkit (c'est là même chose ) ne fait que d'ajouter des fonctionnalité déjà existantes dans le jeu minecraft   par exemple des commandes, comme le /tpa /spawn.   Si tu souhaite ajouter les objets des futur versions de minecraft, je t'invite à soit :   Créer un MOD qui ajoute ces blocs / objets Passer ton serveur à une version plus récente afin d'avoir ces blocs   Amicalement, Dow1t
  9. Salut, j'aimerais savoir si quelqu'un pourrais m'expliquer et m'aider à résoudre ces crashs. Quand j'export un plugin après avoir changer quelque chose ou après avoir configurer un plugin, de temps en temps, après avoir reload 2 fois ou plus en général, j'ai un crash.   Voici les logs du serveur (Le serveur est en ONLINE MODE false car je suis sur eclipse + spigot et plugin avec des nouveaux blocs donc je dois souvent faire des modif)     L'erreur en question c'est : java.lang.OutOfMemoryError: PermGen space [12:37:36] [Netty IO #1/WARN]: Exception in thread "Netty IO #1" [12:37:36] [Netty IO #1/WARN]: java.lang.OutOfMemoryError: PermGen space    
  10. [JAVA][Développement informatique] Quelques questions :x

    Merci pour vos réponses,   Je vais chercher sur le net pour apprendre un minimum d'anglais   Concernant les interfaces et abstraction, je pense que c'est un manque d'imagination de ma part car quand je vois :   public abstract class MCommand<T extends MPlugin> { public void execute(CommandSender paramCommandSender, List<String> paramList, List<MCommand<?>> paramList1) { this.sender = paramCommandSender; if ((paramCommandSender instanceof Player)) { this.me = ((Player)paramCommandSender); this.senderIsConsole = false; } else { this.me = null; this.senderIsConsole = true; } this.args = paramList; this.commandChain = paramList1; if (paramList.size() > 0) { for (MCommand localMCommand : this.subCommands) { if (localMCommand.aliases.contains(paramList.get(0))) { paramList.remove(0); paramList1.add(this); localMCommand.execute(paramCommandSender, paramList, paramList1); return; } } } if (!validCall(this.sender, this.args)) { return; } if (!isEnabled()) { return; } perform(); } public abstract void perform(); }   et   public class CmdBypass extends MCommand<P> { public CmdBypass() { } public void perform() { } }   Je ne comprends pas comment ça se fait que dès que le joueur tape la commande, ca fasse le perform();   merci à vous 2 @SystemGlitch et @Yovach une fois de plus
  11. Avoir plusieurs class

    De rien, n'oublies pas de mettre ton sujet en résolu
  12. Avoir plusieurs class

      En effet pour chaque class qui contient des event   Parcontre, tu peux faire encore plus simple   1 Class PlayerListener   Et dedans tu met tout ce qui est PlayerMoveEvent BlockBreakEvent etc  
  13. Avoir plusieurs class

    Salut alors, une class qui s'appel onEntityDeath c'est pas très propre, on met toujours une majuscule en premier caractère   Ce que tu peux faire dans ton onEnable, c'est créer l'instance du PluginManager comme ceci :   PluginManager pm = Bukkit.getServer().getPluginManager();   ensuite, pm.registerEvents(TaClass(this), this);   Dans le constructeur de ta class :   private TaClassMain main;   public TaClass(TaClassMain instance) {     this.main = instance; }   Petit exemple :   package be.dow1t.test.main; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import be.dow1t.test.listener.InventoryListener; public class TestPlugin extends JavaPlugin { private static TestPlugin instance; public static TestPlugin getInstance() { return instance; } public void onEnable() { super.onEnable(); PluginManager pm = Bukkit.getServer().getPluginManager(); pm.registerEvents(new InventoryListener(this), this); } }   et   package be.dow1t.test.listener; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionType; import be.dow1t.test.main.TestPlugin; public class InventoryListener implements Listener { private TestPlugin main; public InventoryListener(TestPlugin main) { this.main = main; } @EventHandler public void inventoryClick(InventoryClickEvent e) { //TODO } } voilà voilà
  14. [PaperSpigot] Crash lors des reload

    C:\Users\Dow1t\Desktop\Serveur Test>java -Xmx1024M -jar spigot.jar -o true This PaperSpigot build only supports Minecraft 1.7.x and 1.8.x clients! *** It is imperative that backups be taken before running this build on your server! *** Please report issues directly to Paper, and always ensure you're up-to-date! *** Any bug reports not running the very latest version of the software will be ignored *** Warning, your max perm gen size is not set or less than 128mb. It is recommended you restart Java with the following argument: -XX:MaxPermSize=128M Please see http://www.spigotmc.org/wiki/changing-permgen-size/ for more details and more in-depth instructions.   En effet quand je lance le serveur j'ai ce message :    
  15. [PaperSpigot] Crash lors des reload

    Oui j'ai la dernière version mais j'ai ce problème avec plusieurs plugin aussi essentials   [12:37:33] [Server thread/ERROR]: Error occurred while enabling HolographicDisplays v1.8.8 (Is it up to date?) java.lang.OutOfMemoryError: PermGen space   [12:37:35] [Server thread/INFO]: [WorldGuard] Enabling WorldGuard v6.1 [12:37:36] [Thread-35/WARN]: Exception in thread "Thread-35" [12:37:36] [Thread-35/WARN]: java.lang.OutOfMemoryError: PermGen space [12:37:36] [Netty IO #1/ERROR]: Failed to notify listener(s). Event loop shut down? java.lang.OutOfMemoryError: PermGen space   [12:37:37] [Server thread/ERROR]: Error occurred while enabling Essentials v2.13.1 (Is it up to date?) java.lang.OutOfMemoryError: PermGen space    
  16. Plugin disquise ([/d pig] par exemple)

      Hello ! merci pour ta réponse rapide !   j'ai essayer la 8.2.5  elle fonctionne parfaitement, mais quand je me déguise, je me fais kick et j'ai comme erreur : Illegal Stance   [13:30:19 ERROR]: [LibsDisguises] Unhandled exception occured in onPacketSending(PacketEvent) for LibsDisguises java.lang.IllegalArgumentException: Can not set boolean field net.minecraft.server.v1_7_R4.PacketPlayOutEntityLook.onGround to java.lang.Integer         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source) ~[?:1.7.0_45]         at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(Unknown Source) ~[?:1.7.0_45]         at sun.reflect.UnsafeBooleanFieldAccessorImpl.set(Unknown Source) ~[?:1.7.0_45]         at java.lang.reflect.Field.set(Unknown Source) ~[?:1.7.0_45]         at com.comphenix.protocol.reflect.FieldUtils.writeField(FieldUtils.java:450) ~[ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.reflect.StructureModifier.writeInternal(StructureModifier.java:357) ~[ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.reflect.StructureModifier.write(StructureModifier.java:327) ~[ProtocolLib.jar:3.6.5-b222]         at me.libraryaddict.disguise.utilities.PacketsManager$3.onPacketSending(PacketsManager.java:711) ~[LibsDisguises.jar:?]         at com.comphenix.protocol.injector.SortedPacketListenerList.invokeSendingListener(SortedPacketListenerList.java:195) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.injector.SortedPacketListenerList.invokePacketSending(SortedPacketListenerList.java:149) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.injector.PacketFilterManager.handlePacket(PacketFilterManager.java:637) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.injector.PacketFilterManager.invokePacketSending(PacketFilterManager.java:613) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedProtocolInjector.packetQueued(ShadedProtocolInjector.java:312) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedProtocolInjector.onPacketSending(ShadedProtocolInjector.java:278) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedChannelInjector.processSending(ShadedChannelInjector.java:400) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedChannelInjector.access$500(ShadedChannelInjector.java:81) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedChannelInjector$5.handleScheduled(ShadedChannelInjector.java:366) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedChannelInjector$5.onMessageScheduled(ShadedChannelInjector.java:334) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedChannelProxy$2.schedulingRunnable(ShadedChannelProxy.java:127) [ProtocolLib.jar:3.6.5-b222]         at com.comphenix.protocol.compat.netty.shaded.ShadedEventLoopProxy.execute(ShadedEventLoopProxy.java:95) [ProtocolLib.jar:3.6.5-b222]         at net.minecraft.server.v1_7_R4.NetworkManager.b(NetworkManager.java:151) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.NetworkManager.handle(NetworkManager.java:129) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.PlayerConnection.sendPacket(PlayerConnection.java:807) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.EntityTrackerEntry.track(EntityTrackerEntry.java:183) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.EntityTracker.updatePlayers(EntityTracker.java:157) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:783) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:307) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:643) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:549) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-PaperSpigot-1f7d532] [13:30:19 ERROR]: Parameters:   [email protected][     onGround=true     a=623     b=0     c=0     d=0     e=-83     f=11     g=true     timestamp=1502451019793   ] [13:30:19 INFO]: Dow1t lost connection: Illegal stance [13:30:20 INFO]: Dow1t left the game. [13:30:20 WARN]: Dow1t had an illegal stance: 0.0 >
  17. Bonjour, je cherche un plugin de déguisement. Ce plugin permet que lors-ce-qu'un joueur tape /d wither par exemple, il est déguisé en wither (les autres joueurs le voit en wither mais pas lui-même logique ) Actuellement, j'en ai trouvé un : https://www.spigotmc.org/resources/idisguise.5509/   Mais il ne marche pas avec ma version de serveur. iDuiguise is not compatible with your current version.   Je précise que mon serveur est sous paper-spigot 1.7.10 (API R-0.1)  [This serveur is running Craftbukkit version git-PaperSpigot-1F7D532 (M.C 1.7.10) (Implementing API version 1.7.10-R0.1-Snapshot)]   Merci à vous !
  18. Présentation de HoxiSword

    bien le venu parmi nous
  19. API: Bukkit (Version paperspigt) VERSION/ 1.7.10 paperspigot R01 IDE: Eclipse Problème rencontré: Lors d'un BlockBreakEvent, je souhaite ajouter la faction du joueur dans une protection de 3 sec, et tout les seconde, ajouter 1 au temps de capture de la faction. Explication:   Bonjour c'est encore moi Hier soir, j'ai commencer un plugin de capture de chateau. Pour le capturer, rien de plus simple que de casser le crystal du chateau. J'ai fais en sorte de pouvoir créer plusieurs chateaux, exemple: chateau vert, rouge ou bleu.   package be.dow1t.warcastle.commands; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import com.massivecraft.factions.Faction; import com.massivecraft.factions.Factions; import be.dow1t.warcastle.main.WarCastle; import be.dow1t.warcastle.task.ChateauTask; public class CastleCMD implements CommandExecutor { private WarCastle plugin; public String header = "§7===============[§6WarChateau§7]=============="; public String footer = "§7============================================="; public CastleCMD(WarCastle main) { this.plugin = main; } @Override public boolean onCommand(CommandSender paramSender, Command paramCommand, String paramString1, String[] paramString2) { if(paramCommand.getName().equalsIgnoreCase("chateau")) { if(paramSender instanceof Player) { Player p = (Player)paramSender; if(paramString2.length == 0) { sendHelp(p); } if(paramString2.length == 2) { if(paramString2[0].equalsIgnoreCase("create")) { String chateau_name = paramString2[1]; createChateau(p, chateau_name); } if(paramString2[0].equalsIgnoreCase("delete")) { String chateau_name = paramString2[0]; deleteChateau(p, chateau_name); } if(paramString2[0].equalsIgnoreCase("end")) { String chateau_name = paramString2[0]; stopChateau(p, chateau_name); } } if(paramString2.length == 3) { if(paramString2[0].equalsIgnoreCase("daily")) { if(paramString2[1].equalsIgnoreCase("remove")) { String chateau_name = paramString2[2]; removeDailyChateau(p, chateau_name); } } } if(paramString2.length == 4) { if(paramString2[0].equalsIgnoreCase("daily")) { if(paramString2[1].equalsIgnoreCase("create")) { String chateau_name = paramString2[2]; String date = paramString2[3]; createDailyChateau(p, chateau_name, date, null); } } } if(paramString2.length == 5) { if(paramString2[0].equalsIgnoreCase("daily")) { if(paramString2[1].equalsIgnoreCase("create")) { String chateau_name = paramString2[2]; String date = paramString2[3]; String joueur = paramString2[4]; createDailyChateau(p, chateau_name, date, joueur); } } } } } return false; } private void sendHelp(Player p) { p.sendMessage(this.header); p.sendMessage("§e/chateau create <nom> §8- §7Permet de créer un chateau"); p.sendMessage("§e/chateau remove <nom> §8- §7Permet de supprimer un chateau"); p.sendMessage("§e/chateau start <nom> §8- §7Permet de lancer un chateau"); p.sendMessage("§e/chateau end <nom> §8- §7Permet de stopper un chateau"); p.sendMessage("§e/chateau daily create <nom> <hh:mm> §8- §7Permet de créer un chateau journalier sans joueurs requis"); p.sendMessage("§e/chateau daily create <nom> <heure> <joueurs> §8- §7Permet de créer un chateau journalier avec X joueurs requis"); p.sendMessage("§e/chateau daily remove <nom> §8- §7Permet de supprimer un chateau journalier"); p.sendMessage(this.footer); } private void noPermission(Player p) { p.sendMessage("§c>> Vous n'avez pas la permission d'effectuer cette commande."); } private void startChateau(Player p, String str1) { if(!p.hasPermission("chateau.stop") || !p.hasPermission("chateau.*") ||!p.isOp()) { noPermission(p); } String chateau_name = str1.toUpperCase(); if(this.plugin.getConfigManager().getChateau().get("CHATEAU." + chateau_name) == null) { p.sendMessage("§6>> §7Il semblerait que ce chateau n'existe pas, créez le avec /chateau create <nom> !"); return; } if(this.plugin.getConfigManager().getChateau().getBoolean("CHATEAU." + chateau_name + ".ACTIVE")) { p.sendMessage("§6>> §7Ce chateau est déjà lancer, stoppez le avec /chateau end <nom>"); return; } int taskID = this.plugin.getConfigManager().getChateau().getInt("CHATEAU." + chateau_name + ".taskID"); ChateauTask.MainTask.enableChateau(chateau_name); } private void stopChateau(Player p, String str1) { if(!p.hasPermission("chateau.stop") || !p.hasPermission("chateau.*") ||!p.isOp()) { noPermission(p); } String chateau_name = str1.toUpperCase(); if(!this.plugin.getConfigManager().getChateau().getBoolean("CHATEAU." + chateau_name + ".ACTIVE")) { p.sendMessage("§6>> §7Il semblerait que ce chateau ne soit pas lancé, lancez le avec /chateau start <nom> !"); return; } Faction paramFaction; if(this.plugin.getConfigManager().getChateau().getString("CHATEAU." + chateau_name + ".CAPPER") != null) { paramFaction = Factions.getInstance().getByTag(this.plugin.getConfigManager().getChateau().getString("CHATEAU." + chateau_name + ".CAPPER")); FactionRankingAPI.getInstance().getFaction(paramFaction).addPoint(0/*Il faudra ajouter le temps de capture*/); } this.plugin.getConfigManager().getChateau().set("CHATEAU." + chateau_name + ".ACTIVE", String.valueOf(false)); this.plugin.getConfigManager().getChateau().set("CHATEAU." + chateau_name + ".CAPPER", null); this.plugin.getConfigManager().saveChateau(); this.plugin.sendEverybodyTitle("", "§6> §7Chateau §e" + chateau_name + " §7arrêté !", 3 * 20); } private void createChateau(Player p, String str1) { if(!p.hasPermission("chateau.create") || !p.hasPermission("chateau.*") ||!p.isOp()) { noPermission(p); } String chateau_name = str1.toUpperCase(); if(this.plugin.getConfigManager().getChateau().get("CHATEAU." + chateau_name) == null) { p.sendMessage("§6>> §7Il semblerait que ce chateau n'existe pas, créez le avec /chateau create <nom> !"); return; } ItemStack chateau = new ItemStack(Material.CRYSTAL_BLOCK); ItemMeta meta = chateau.getItemMeta(); meta.setDisplayName(chateau_name); chateau.setItemMeta(meta); p.getInventory().addItem(chateau); p.sendMessage("§6>< §7Placez ce block à l'endroit ou doit se situer le crystal de contrôle pour créer le chateau !"); } private void deleteChateau(Player p, String str1) { if(!p.hasPermission("chateau.delete") || !p.hasPermission("chateau.*") ||!p.isOp()) { noPermission(p); } String chateau_name = str1.toUpperCase(); if (this.plugin.getConfigManager().getChateau().getBoolean("CHATEAU." + chateau_name.toUpperCase() + ".ACTIVE")) { p.sendMessage("§6>> §7Vous ne pouvez pas supprimer un chateau quand il est lancé ! (§e/chateau end <nom>§7)"); return; } if(this.plugin.getConfigManager().getChateau().get("CHATEAU." + chateau_name) == null) { p.sendMessage("§6>> §7Il semblerait que ce chateau n'existe pas, créez le avec /chateau create <nom> !"); return; } else { this.plugin.getConfigManager().getChateau().set("CHATEAU." + chateau_name, null); this.plugin.getConfigManager().saveChateau(); p.sendMessage("§6>> §7Le chateau §e" + chateau_name + " §7a été supprimé !"); } } private void createDailyChateau(Player p, String str1, String str2, String str3) { if(!p.hasPermission("chateau.create.daily") || !p.hasPermission("chateau.*") ||!p.isOp()) { noPermission(p); } String chateau_name = str1.toUpperCase(); String[] date = str2.split(":"); int joueur_need = 0; if(str3 != null) { try { joueur_need = Integer.parseInt(str3); }catch(NumberFormatException e) { joueur_need = 0; p.sendMessage("§6>> §eVeuillez entrer un nombre de joueur valide !"); } if(joueur_need == 0) { p.sendMessage("§6>> §eVeuillez entrer un nombre de joueur valide ! (§c > 0§7)"); return; } } if(this.plugin.getConfigManager().getChateau().get("CHATEAU." + chateau_name) == null) { p.sendMessage("§6>> §7Il semblerait que ce chateau n'existe pas, créez le avec /chateau create <nom> !"); return; } int heure = 0; if(date[0] != null) { try { heure = Integer.parseInt(date[0]); } catch(NumberFormatException e) { heure = -1; } } if((heure == -1) || (heure > 23)) { p.sendMessage("§6>> §7Veuillez entrer une heure correcte pour le chateau !"); return; } int minute = 0; if(date[1] != null) { try { minute = Integer.parseInt(date[1]); } catch(NumberFormatException e) { minute = -1; } } if((minute == -1) || (minute > 59)) { p.sendMessage("§6>> §7Veuillez entrer une heure correcte pour le chateau !"); return; } this.plugin.getConfigManager().getScheduler().set("CHATEAUX.JOURNALIER." + chateau_name + ".HEURE", String.valueOf(heure)); this.plugin.getConfigManager().getScheduler().set("CHATEAUX.JOURNALIER." + chateau_name + ".MINUTE", String.valueOf(minute)); if(str3 != null) { this.plugin.getConfigManager().getScheduler().set("CHATEAUX.JOURNALIER." + chateau_name + ".JOUEURS", String.valueOf(joueur_need)); } this.plugin.getConfigManager().saveScheduler(); if(str3 != null) { p.sendMessage("§6>> §7Le chateau §e" + str1 + " §7serra lancer tout les jours à §e" + heure + "§7:§e" + minute + " §7dès qu'il y aura §e" + joueur_need + " §7joueurs en ligne"); } else { p.sendMessage("§6>> §7Le chateau §e" + str1 + " §7serra lancer tout les jours à §e" + heure + "§7:§e" + minute); } } private void removeDailyChateau(Player p, String str1) { if(!p.hasPermission("chateau.delete.daily") || !p.hasPermission("chateau.*") ||!p.isOp()) { noPermission(p); } if(this.plugin.getConfigManager().getScheduler().get("CHATEAUX.JOURNALIER." + str1.toUpperCase()) == null) { p.sendMessage("§6>> §7Il semblerait que ce chateau n'existe pas, créez le avec /chateau create <nom> !"); return; } this.plugin.getConfigManager().getScheduler().set("CHATEAUX.JOURNALIER." + str1, null); this.plugin.getConfigManager().getScheduler(); p.sendMessage("§6>> §eVous avez supprimer le chateau journalier §e" + str1); } }   Le soucis, c'est que quand je dois start le chateau, je n'arrive pas à créer un timer. j'ai essayer ceci :   public static void enableChateau(final String chateau) { this.timeleft_chateau = 180; //3 minutes startTask = Bukkit.getScheduler().scheduleSyncRepeatingTask(plugin.getInstance(), new Runnable(){ @Override public void run() { this.timeleft_chateau--; if(this.startChateau == 60) { Bukkit.broadcastMessage("_WP-message &aLe chateau" + chateau.toLowerCase() + " entre sous tenssion dans 1 minute !;id:1;stack:545;scale:2.5;anchor:center;x:0;xFinal:0;y:-100;yFinal:-50;shadow:true;"); } if(this.timeleft_chateau == 30) { Bukkit.broadcastMessage("_WP-message &aLe chateau" + chateau.toLowerCase() + " entre sous tenssion dans 30 secondes !;id:1;stack:545;scale:2.5;anchor:center;x:0;xFinal:0;y:-100;yFinal:-50;shadow:true;"); } if(MainTask.this.startChateau == 0) { Bukkit.broadcastMessage("_WP-message &aLe chateau" + chateau.toLowerCase() + " entre sous tenssion !;id:1;stack:545;scale:2.5;anchor:center;x:0;xFinal:0;y:-100;yFinal:-50;shadow:true;"); Bukkit.getScheduler().cancelTask(startTask); this.plugin.getConfigManager().getChateau().set("CHATEAU." + chateau + ".ACTIVE", String.valueOf(true)); } } }, 20L, 20L); }   Le soucis c'est que dès que le chateau est lancé, Quand le joueur cassera le block , je dois check la location du block et si elle est == avec la location du chateau et que le crystal de ce chateau est actif, MAIS AUSSI   Si la HashMap<Faction, Integer> protection_map = new HashMap(); contiens une faction, on cancel l'event sinon, on ajoute la faction du joueur qui vient de casser le block avec un int qui vaux 3 (3 secondes de protection).   protection_map.put(p.getFaction, 3); //p == FPlayers.getInstance().getByPlayer(e.getPlayer());   Toute les secondes, je souhaite retirer 1 seconde de protection de la faction si la map n'est pas vide. Si le temps de protection restant == 0 alors on clear la map.   Mais aussi, en plus de l'ajouter dans une protection, toute les seconde, si le joueur n'est pas dans la HashMap<Faction, Integer> capture_map = new HashMap(); on l'ajoute et on lui ajoute 1 seconde de capture supplémentaire.   A la fin du chateau, (10 minutes après le lancement) la dernière faction qui à casser le crystal gagne une récompense.   Pour faire tout cella, j'ai penser à 2 Schedulers   1 pour la protection 1 pour le chateau, ou on ajoute 1 seconde de capture à la faction qui le controle.   Je sais que c'est très trouble, mais dans ma tête aussi, je me casse la tête depuis hier pour essayer de faire ce système.   J'ai déjà commencer ceci :   @EventHandler public void onChateauControl(BlockBreakEvent e) { if(e.getBlock().getType() == Material.CRYSTAL_BLOCK) { for(String str : this.plugin.getConfigManager().getChateau().getConfigurationSection("CHATEAU.").getKeys(false)) { double x = this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + str + ".X"); double y = this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + str + ".Y"); double z = this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + str + ".Z"); if(e.getBlock().getLocation() != new Location(Bukkit.getWorld("world"), x, y, z)) { } if(!this.plugin.getConfigManager().getChateau().getBoolean("CHATEAU." + str + ".ACTIVE")) { e.setCancelled(true); e.getPlayer().sendMessage("§6>> §7Ce chateau n'est pas lancé"); } } Faction faction = Factions.getInstance().getByTag(this.plugin.getConfigManager().getChateau().getString("CHATEAU." + Manager.getManager().getActiveChateau() + ".CAPPER")); if(!ChateauTask.protectionMap.isEmpty()) { int timeleft = ChateauTask.protectionMap.get(faction); //return 3 ou 2 ou 1 seconde e.getPlayer().sendMessage("§6>> §7La faction §e" + faction.getTag() + " §7possède une protection de 3 secondes. Il reste §e" + timeleft + "s §7!"); } else { //on l'ajoute dans la map de protection avec 3 seconde de protection ChateauTask.protectionMap.put(FPlayers.getInstance().getByPlayer(e.getPlayer()).getFaction(), 3); //Si la map de capture ne contient pas sa faction on l'ajoute avec 0 seconde de capture (toute les secondes, on lui ajoute +1 au temps de capture) //BLOQUER if(!ChateauTask.captureMap.containsKey(FPlayers.getInstance().getByPlayer(e.getPlayer()).getFaction())) { ChateauTask.captureMap.put(FPlayers.getInstance().getByPlayer(e.getPlayer()).getFaction(), 0); } } } }   Merci de vote aide !          
  20. [CMS - WIP] LimpidCMS - Le CMS conçu pour les serveurs de jeu !

    Hello, ça serait génial, en effet je n'ai jamais vu de CMS pour d'autre jeu que minecraft   Voici mes quelques questions, (pour te déranger )   System de hash des mot de passe ? Comme la plus part des CMS, serra-t-il payant ou non ? Un site de démo prévu pour bientôt ?   Merci à toi bonne soirée !
  21. [PLUGIN][1.7.10] Chateau, ajout de point toute les seconde

      La classe qui gère mes chateau pour le moment c'est la class Manager :   package be.dow1t.warcastle.main; import java.util.HashMap; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import com.massivecraft.factions.Faction; import be.dow1t.warcastle.event.ChateauStartEvent; public class Manager { private WarCastle plugin; public static Manager manager; private int protectionTask = 99999; public static HashMap<Faction, Integer> protectionMap = new HashMap(); public Manager(WarCastle main) { this.plugin = main; } public String getActiveChateau() { if(this.plugin.getConfigManager().getChateau().contains("CHATEAU")) { for(String str : this.plugin.getConfigManager().getChateau().getConfigurationSection("CHATEAU.").getKeys(false)) { if(this.plugin.getConfigManager().getChateau().getBoolean("CHATEAU." + str + ".ACTIVE")) { return str; } } } return null; } public boolean checkLocation(Location loc1, Location loc2) { if(loc1.getBlockX == this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + this.getActiveChateau() + ".X") && loc1.getBlockY == this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + this.getActiveChateau() + ".Y") && loc1.getBlockZ == this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + this.getActiveChateau() + ".Z")) { return true; } else { return false; } } //TODO public void clearProtection() { this.protectionTask = Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this.plugin, new Runnable() { @Override public void run() { if(!Manager.this.protectionMap.isEmpty()) { } } }, 0, 20L); } public void endTask() { String currentCheateau = getActiveChateau(); int taskId = this.plugin.getConfigManager().getChateau().getInt("CHATEAU." + currentCheateau + ".taskID"); Bukkit.getScheduler().cancelTask(taskId); } /*public void callTask(String chateau, int task, Player p) { World world = Bukkit.getWorld(this.plugin.getConfigManager().getChateau().getString("CHATEAU." + chateau + ".WORLD")); double x = this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + chateau + ".X"); double y = this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + chateau + ".Y"); double z = this.plugin.getConfigManager().getChateau().getDouble("CHATEAU." + chateau + ".Z"); ChateauStartEvent event = new ChateauStartEvent(chateau, world, p, 800, x, y, z); Bukkit.getServer().getPluginManager().callEvent(event); if(!event.isCancelled()) { if(this.plugin.getConfigManager().getChateau().getBoolean("CHATEAU." + chateau + ".ACTIVE")) { p.sendMessage("§6>> §7Le chateau §e" + chateau.toLowerCase() + " §7est déjà lancé !"); return; } } }*/ public boolean isChateauSet(String chateau) { if(this.plugin.getConfigManager().getChateau().isSet("CHATEAU." + chateau + ".X") && this.plugin.getConfigManager().getChateau().isSet("CHATEAU." + chateau + ".Y") && this.plugin.getConfigManager().getChateau().isSet("CHATEAU." + chateau + ".Z")) { return true; } return false; } public void createChateau(String name, Location loc) { int i = 0; if (this.plugin.getConfigManager().getChateau().getConfigurationSection("CHATEAU") != null) { for (String str : this.plugin.getConfigManager().getChateau().getConfigurationSection("CHATEAU").getKeys(false)) { if (this.isChateauSet(str)) { i++; } } } if(this.plugin.getConfigManager().getChateau().get("CHATEAU." + name + ".WORLD") == null) { this.plugin.getConfigManager().getChateau().set("CHATEAU." + name + ".taskID", String.valueOf(i)); } this.plugin.getConfigManager().getChateau().set("CHATEAU." + name + ".WORLD", loc.getWorld().getName()); this.plugin.getConfigManager().getChateau().set("CHATEAU." + name + ".X", String.valueOf(loc.getBlockX())); this.plugin.getConfigManager().getChateau().set("CHATEAU." + name + ".Y", String.valueOf(loc.getBlockY())); this.plugin.getConfigManager().getChateau().set("CHATEAU." + name + ".Z", String.valueOf(loc.getBlockZ())); this.plugin.getConfigManager().saveChateau(); } public static Manager getManager() { return manager; } }   Le problème c'est que je suis bloqué au niveau des task (pour ajouter le joueur dans une map et toute les secondes, lui ajouter +1sec de capture etc )   merci de ta réponse
  22. [PLUGIN][1.7.10] Chateau, ajout de point toute les seconde

      Non je n'ai pas de getCrystal(); et je ne voit pas en quoi .getCrystal(); serrait utile, je cherche juste à mettre une faction dans une hashmap et toute les secondes ajouter 1sec au temps de capture lors du BlockBreakEvent
  23. Plugin disquise ([/d pig] par exemple)

      Merci de ta réponse rapide, j'ai essayer la version que tu m'as données, sans succès :   [14:32:43 ERROR]: [iDisguise] iDisguise 5.6.3 is not compatible with your server version!   Et pour le premier lien que tu m'as envoyé :   [14:36:59 ERROR]: Error occurred while enabling LibsDisguises v9.5.0 (Is it up to date?) java.lang.NoSuchFieldError: REL_ENTITY_MOVE_LOOK         at me.libraryaddict.disguise.utilities.packetlisteners.PacketListenerViewDisguises.<init>(PacketListenerViewDisguises.java:28) ~[?:?]         at me.libraryaddict.disguise.utilities.PacketsManager.init(PacketsManager.java:703) ~[?:?]         at me.libraryaddict.disguise.LibsDisguises.onEnable(LibsDisguises.java:42) ~[?:?]         at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[spigot.jar:git-PaperSpigot-1f7d532]         at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [spigot.jar:git-PaperSpigot-1f7d532]         at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:412) [spigot.jar:git-PaperSpigot-1f7d532]         at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.java:476) [spigot.jar:git-PaperSpigot-1f7d532]         at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.java:394) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.MinecraftServer.n(MinecraftServer.java:354) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.MinecraftServer.g(MinecraftServer.java:328) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.MinecraftServer.a(MinecraftServer.java:284) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.DedicatedServer.init(DedicatedServer.java:227) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:494) [spigot.jar:git-PaperSpigot-1f7d532]         at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-PaperSpigot-1f7d532]   Merci de ta réponse une fois de plus
  24. [PLUGIN][1.7.10] Chateau, ajout de point toute les seconde

    Merci pour ta réponse rapide   Je vais m'expliquer un peut mieux :   Sur mon serveur, il existe 4 châteaux: le rouge, le vert, le bleu et le jaune. A l'intérieur de chaque uns deux, se situe un crystal (block moddé). En faisant /chateau create <nom>, on obtiens ce block en main. Et pour créer ce chateau, il suffit de le placer à l'endroit ou on veut que le crystal du château se situe après avoir fait ceci, lors-ce qu'on tape la commande /chateau start <nom>, un décompte de 3 minute se fait (Le château entre sous tension dans X minute) après ce décompte, Le château commence, (10 minute de jeu) dès qu'une faction casse le crystal du chateau, celle ci en prend le contrôle et obtiens 3 secondes de protection (ainsi la faction gagne quand même quelques points car dans mon classement, 1 seconde de capture = 0.5points) Si une autre faction casse le crystal alors que la faction qui contrôle le chateau possède toujours leur protection de 3 secondes, on cancel l'event.   Mais aussi, dès qu'une faction commence à contrôler le chateau, dans une map, de type <Faction, Integer> on ajoute cette faction, et temps qu'une autre faction ne prends pas le contrôle du château, on ajoute 1 toute les seconde.   Exemple, je fais partie de la faction BUKKIT je casse le bloque de contrôle. J'obtiens 3 secondes de protection. J'arrive à garder le contrôle pendant 12 secondes. ATTENTION, les 3 secondes de protection sont comptée dans les 12 de capture Une autre faction: SPIGOT casse le crystal, la faction BUKKIT ne possède plus le contrôle. On donne 3 secondes de protection à la faction SPIGOT et elle garde le contrôle pendant 23 secondes. Imaginons, la faction BUKKIT reprend, le contrôle, on lui met une protection de 3 secondes toute les secondes, on lui ajoute 1 dans la map elle contrôle le chateau pendant 21 secondes. Mais attention, elle a déjà 12 secondes donc, on ferra 12 + 3(protection) + 21 ainsi de suite, (elle a doncc 36 points)   // La faction BUKKIT à 36 points et la faction SPIGOT 23 points.   Après les 10 minute de château, dans la map, je prend la faction qui a le plus de point. dans ce cas, c'est la faction BUKKIT avec 36 secondes de capture (ou 36 points si vous préférez) et je lui donne une récompense.   Le problème est que si je lance le chateau vert par exemple, j'aimerais être sur que la location du block cassé soit celle du crystal du chateau vert sinon la faction peut aller au chateau bleu et faire bug le jeu.   Ensuite, faire une sorte de timer pour vérifier : si la map de protection (<Faction, Integer>) n'est pas vide, on retire 1 à la protection et si la protection == 0 alors on clear la map. Pendant ce temps, temps que la faction X contrôle le chateau, on ajoute 1 a la map de capture (<Faction, Integer> une fois de plus).   Donc, lors du BlockBreakEvent, on vérifie les coordonnée du block cassé, et si les coordonnées sont Identiques à celle du chateau en cours, on autorise la capture.   Dès que la faction prend le contrôle, on lui donne 3 secondes de protection. Après c'est 3 secondes, le crystal du château est re-contrôlable. Et toute les secondes, on ajoute 1 seconde de capture a la faction qui contrôle le chateau.   J'espère avoir été plus clair moi et les explications font 2   Voici peut-être une vidéo qui pourra mieux t'expliquer d'un point de vue visuel. Il sagit de Allfight :    
  25. Plugin disquise ([/d pig] par exemple)

      j'essaye tout de suite Merci de ta réponse rapide (il est prémium et Lib's Disguises is intended to be run only on: 1.11.2 and 1.12 )