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! 

  • Annonces

    • Pskyco

      Bukkit France passe sous Discord !   02/20/16

      Bukkit France est désormais passé sur Discord, au revoir donc notre vieux Teamspeak ! Téléchargez le client et venez nous rejoindre sur notre salon en suivant les instructions suivantes.
      M-à-j du 25/02/2017 : Désormais, seuls les comptes actifs sur le forum se verront donner l'accès au Discord, ce dernier n'est pas une plateforme d'aide de la même manière que le chat.

Toute l’activité

Ce flux se met à jour automatiquement   

  1. Aujourd’hui
  2. Hier
  3. Packet par Joueur (ProtocolLib)

    Ok, je pars voir des que je rentre chez moi
  4. 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é
  5. Packet par Joueur (ProtocolLib)

    Et, comment je sauve les packets ? XD car c'est la premiere fois que j'utilise ProtocolLib On ne pourrai pas me faire un code d'example pour voir comment get les packets d'un joueur je m'occuperais de mettre sa en seconde etc...
  6. 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/
  7. La dernière semaine
  8. Packet par Joueur (ProtocolLib)

    Version (serveur) : 1.7/1.8 API utilisée : PaperSpigot 1.7.10 LATEST SNAPSHOT IDE utilisé : Eclipse Explications du problème rencontré : Bonjour, j'aimerais bien savoir comment recuperer le nombres de packets qu'un joueur envoie a la seconde au Serveur avec ProtocolLib. J'ai fais beacuoup de recherche mais hélas je n'ai rien trouvé. Recherches effectuées : YT, Bukkit.org Et Spigot Code : NONE Information Supplémentaires : Tenez un screenshot de ce que je voudrais faire : https://gyazo.com/bd8d5130b83ad869b0ab6db6c425acea     Si je me trompe de sections veuillez m'en excuser je debute ^^'
  9. Mod SimpleOres

    Ok
  10. antiRedstoneClock

    Mise à jour du plugin avec l'ajout du support des boucles utilisant les comparateurs et les observer (attention mise a jour du fichier config requise)
  11. Plugin de protection de zone un peu particulier

    Ah oui, effectivement. Mais dommage, ça répond toujours pas à ce que je cherche.
  12. Plugin de protection de zone un peu particulier

    Tu peux très bien faire des régions WorldGuard qui ne soient pas des parallélépipèdes. Regarde le wiki de WorldEdit à cette page : http://wiki.sk89q.com/wiki/WorldEdit/Selection#Selection_modes
  13. [ScoreboardSign] Mauvais affichage

    envois ton onJoin / onQuit stp
  14. Plugin de protection de zone un peu particulier

    Hum, je me demande si EssentialsProtect/AntiBuild n'ont pas cette fonctionnalité...? Le fait qu'un joueur n'a pas le droit de détruire ce que tu as construit, enfin cela se rapproche plus ou moins de ce que tu recherche
  15. Mod SimpleOres

    Supprime le monde World et si tu as d'autres mondes essaie de les supprimer également (sauvegarde les tout de même dans un coin au cas-ou le problème ne vienne pas de là)
  16. Plugin de protection de zone un peu particulier

    Et bien non, c'est ce que je me tue à vous expliquer. Imagine simplement que dans cette zone "intérieure" il y a par exemple un ou des mur qui passe au milieu, ou alors un peu de mobilier. Et bien c'est aussi ça que je veux protéger, il peut construire que dans les zones vides de bloc globalement.   Et le problème de WorldGuard, c'est que l'on peut faire que des zones de protection sous forme de parallélépipède, c'est ça qui me gène.
  17. Mod SimpleOres

    Salut Le monde World?
  18. Plugin Deluxemenus

    Salut Merci à toi pour la réponse efficace
  19. Plugin de protection de zone un peu particulier

    Simple question mais avec WorldGuard, en faisant une région intérieure où le membre peut construire et une extérieur où il ne peut rien modifier mais avec le flag "use" pour accéder aux leviers, coffres, etc. cela ne conviendrait-il pas ?
  20. Plugin Deluxemenus

    Tous les placeholders possibles avec le plugin sont disponibles ici : PlaceholderAPI Celui dont tu as besoin est probablement  %player_name%
  21. Enlever une majorité de permission

    Ça dépend des commandes et ça dépend des plugins, certaines sont notées "default" dans leur plugin et les joueurs y ont donc accès de base, d'autres non... À toi donc de gérer cela en fonction des plugins que tu utilises ^^. Mais je te rassure, la plupart des commandes accessibles par défaut ne sont très souvent que des commandes basiques auquel l'accès ne pose aucun soucis ^^.
  22. Mod SimpleOres

    Tu as oublié le formulaire de la section.   Tu as encore dans ton monde des blocs du mod alors que celui-ci n'est plus présent sur le serveur. Supprime le(s) monde(s) que tu as chargé avec le mod et ça devrait fonctionner
  23. Mod SimpleOres

    Bonjour a tous Je fait un serveur moddé avec le mod simple ores et je voudrais le supprimer je l'ai supprimer des mod mais sa met des message comme quoi je l'ai pas supprimer et le serveur srach direc Merci bien vouloir ce que je doit faire pour que mon serveur redemare et si je doit supprimer d'autre fichier a ala racine
  24. Besoin d'aide - Scoreboard qui flash :(

    Tous simplement le remède pour un scoreboard qui clignote c'est de passer sur scoreboardSign  
  25. [ScoreboardSign] Mauvais affichage

    IDE: Eclipse Version: 1.8.8-R0.1-SNAPSHOT     Bonjour cela fais quelque jours que j'essaye de trouver mon problème mais je n'y arrive pas, pour être plus exacte mon scoreboard s'affiche anormalement, quand je me connecte pour la premier fois il s'affiche bien mais quand je me déconnecte et je me reconnecte mon scoreboard s'affiche mais avec les lignes vides et pourtant quand je me déconnecte je supprimer le scoreboard et j'en créer un nouveau quand il se reconnecte et ce n'est pas l'envoi des paquets "PacketPlayOutScoreboardTeam" ils sont bien envoyés après je ne sais pas si mon client les reçois bien enfin bref je m'écarte un peux du sujet. et j'arrive que à règles le problème avec ma commande /debug qui supprime le scoreboard et le recréer mais bon je pense que vous soyez mal comme moi qu'un joueur (répare) le scoreboard avec un commande   MEDIA: https://www.noelshack.com/2017-34-1-1503327807-2017-08-21-16-58-36.png https://www.noelshack.com/2017-34-1-1503327810-2017-08-21-16-59-55.png   CLASS:     ScoreboardSign: package mc.bloostrynetwork.antox11200.depends; import java.lang.reflect.Field; import java.util.Collection; import java.util.HashMap; import org.apache.commons.lang.Validate; import org.bukkit.ChatColor; import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer; import org.bukkit.entity.Player; import net.minecraft.server.v1_8_R3.IScoreboardCriteria; import net.minecraft.server.v1_8_R3.Packet; import net.minecraft.server.v1_8_R3.PacketPlayOutScoreboardDisplayObjective; import net.minecraft.server.v1_8_R3.PacketPlayOutScoreboardObjective; import net.minecraft.server.v1_8_R3.PacketPlayOutScoreboardScore; import net.minecraft.server.v1_8_R3.PacketPlayOutScoreboardTeam; import net.minecraft.server.v1_8_R3.PlayerConnection; /** * @author zyuiop * @author Seveningful */ public class ScoreboardSign { public static HashMap<Player, ScoreboardSign> scoreboardSigns = new HashMap<>(); private boolean created = false; private String[] lines = new String[16]; private PacketPlayOutScoreboardTeam[] teams = new PacketPlayOutScoreboardTeam[16]; private final Player player; private String objectiveName; public ScoreboardSign(Player player, String objectiveName) { this.player = player; this.objectiveName = objectiveName; scoreboardSigns.put(player, this); } public ScoreboardSign(Player player, String objectiveName, String[] lines) { this.player = player; this.objectiveName = objectiveName; this.lines = lines; scoreboardSigns.put(player, this); } public void create() { if (created) return; PlayerConnection player = getPlayer(); player.sendPacket(createObjectivePacket(0, objectiveName)); player.sendPacket(setObjectiveSlot()); int i = 0; while (i < lines.length) { sendLine(i++); } created = true; } public void destroy() { if (!created) return; getPlayer().sendPacket(createObjectivePacket(1, null)); created = false; scoreboardSigns.remove(player); } private PlayerConnection getPlayer() { return ((CraftPlayer) player).getHandle().playerConnection; } private Packet sendLine(int line) { if (line > 15) return null; if (line < 0) return null; if (!created) return null; PacketPlayOutScoreboardTeam teamPacket = apply(line); int score = line; getPlayer().sendPacket(teamPacket); return sendScore(ChatColor.values()[line].toString() + ChatColor.RESET , score); } public void setObjectiveName(String name) { this.objectiveName = name; if (created) getPlayer().sendPacket(createObjectivePacket(2, name)); } public void setLine(int line, String value) { lines[line] = value; getPlayer().sendPacket(sendLine(line)); } public void removeLine(int line) { String oldLine = ChatColor.values()[line].toString() + ChatColor.RESET; if (oldLine != null && created) getPlayer().sendPacket(removeLine(oldLine)); lines[line] = null; } public String getLine(int line) { if (line > 15) return null; if (line < 0) return null; return lines[line]; } /* Factories */ private PacketPlayOutScoreboardObjective createObjectivePacket(int mode, String displayName) { PacketPlayOutScoreboardObjective packet = new PacketPlayOutScoreboardObjective(); try { // Nom de l'objectif Field name = packet.getClass().getDeclaredField("a"); name.setAccessible(true); name.set(packet, player.getName()); // Mode // 0 : créer // 1 : Supprimer // 2 : Mettre à jour Field modeField = packet.getClass().getDeclaredField("d"); modeField.setAccessible(true); modeField.set(packet, mode); if (mode == 0 || mode == 2) { Field displayNameField = packet.getClass().getDeclaredField("b"); displayNameField.setAccessible(true); displayNameField.set(packet, displayName); Field display = packet.getClass().getDeclaredField("c"); display.setAccessible(true); display.set(packet, IScoreboardCriteria.EnumScoreboardHealthDisplay.INTEGER); } } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } return packet; } private PacketPlayOutScoreboardDisplayObjective setObjectiveSlot() { PacketPlayOutScoreboardDisplayObjective packet = new PacketPlayOutScoreboardDisplayObjective(); try { // Slot de l'objectif Field position = packet.getClass().getDeclaredField("a"); position.setAccessible(true); position.set(packet, 1); // SideBar Field name = packet.getClass().getDeclaredField("b"); name.setAccessible(true); name.set(packet, player.getName()); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } return packet; } private PacketPlayOutScoreboardScore sendScore(String line, int score) { PacketPlayOutScoreboardScore packet = new PacketPlayOutScoreboardScore(line); try { Field name = packet.getClass().getDeclaredField("b"); name.setAccessible(true); name.set(packet, player.getName()); Field scoreField = packet.getClass().getDeclaredField("c"); scoreField.setAccessible(true); scoreField.set(packet, score); // SideBar Field action = packet.getClass().getDeclaredField("d"); action.setAccessible(true); action.set(packet, PacketPlayOutScoreboardScore.EnumScoreboardAction.CHANGE); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } return packet; } private PacketPlayOutScoreboardScore removeLine(String line) { return new PacketPlayOutScoreboardScore(line); } public Player getBukkitPlayer() { return player; } public String getDisplayName() { return objectiveName; } public String[] getLines() { return lines; } private String[] splitString(String string) { Validate.isTrue(string.length() <= 32, "String can't have more than 32 characters " ); if (string.isEmpty()) { return new String[] { " ", "" }; } StringBuilder prefix = new StringBuilder(string.substring(0, string.length() >= 16 ? 16 : string.length())); StringBuilder suffix = new StringBuilder(string.length() > 16 ? string.substring(16) : ""); if (prefix.charAt(prefix.length() - 1) == '§') { prefix.deleteCharAt(prefix.length() - 1); suffix.insert(0, '§'); } if(!suffix.toString().isEmpty()) suffix.insert(0, ChatColor.getLastColors(prefix.toString())); return new String[] { prefix.toString().length() > 16 ? prefix.toString().substring(0, 16) : prefix.toString(), suffix.toString().length() > 16 ? suffix.toString().substring(0, 16) : suffix.toString() }; } private PacketPlayOutScoreboardTeam apply(int line){ if(teams[line] != null) { setField(getTeamLine(line),"h", 2); setField(getTeamLine(line), "c", splitString(getLine(line))[0]); setField(getTeamLine(line), "d", splitString(getLine(line))[1]); String finalLine = splitString(getLine(line))[0] + splitString(getLine(line))[1]; } return getTeamLine(line); } private PacketPlayOutScoreboardTeam getTeamLine(int line) { if(teams[line] == null) { PacketPlayOutScoreboardTeam team = new PacketPlayOutScoreboardTeam(); setField(team, "a", line + ""); setField(team, "b", line + ""); setField(team, "c", splitString(getLine(line))[0]); setField(team, "d", splitString(getLine(line))[1]); addEntry(team, ChatColor.values()[line].toString() + ChatColor.RESET); teams[line] = team; } return teams[line]; } private static void setField(PacketPlayOutScoreboardTeam packet, String field, Object value) { try { Field f = packet.getClass().getDeclaredField(field); f.setAccessible(true); f.set(packet, value); f.setAccessible(false); } catch (Exception ex) {ex.printStackTrace();} } private void addEntry(PacketPlayOutScoreboardTeam packet, String entry) { Field f = null; try { f = packet.getClass().getDeclaredField("g"); f.setAccessible(true); ((Collection) f.get(packet)).add(entry); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } /** * Reset all & leave bar & scrolling text */ public void reset() { for(int i = 1; i <14; i++) removeLine(i); } }     PlayerScoreboard: package mc.bloostrynetwork.antox11200.player; import java.text.DecimalFormat; import java.util.HashMap; import org.bukkit.Bukkit; import org.bukkit.Location; import mc.bloostrynetwork.antox11200.bloostryapi.console.Console; import mc.bloostrynetwork.antox11200.depends.FormatData; import mc.bloostrynetwork.antox11200.depends.ScoreboardSign; import mc.bloostrynetwork.antox11200.manager.game.GameManager; import mc.bloostrynetwork.antox11200.manager.game.Stade; import mc.bloostrynetwork.antox11200.manager.game.scenarios.depends.Scenarios; public class PlayerScoreboard { private UPlayer uplayer; private HashMap<Integer, String> lines = new HashMap<>(); private ScoreboardSign scoreboardSign; public boolean refresh = false; public static final String TITLE = "§6BloostryNetwork"; public PlayerScoreboard(UPlayer uplayer) { this.uplayer = uplayer; } public void create() { if(this.scoreboardSign != null)return; this.scoreboardSign = new ScoreboardSign(uplayer.getPlayer(), TITLE); this.scoreboardSign.create(); Console.sendMessageDebug("PlayerScoreboard.create()"); refresh = true; } public void delete() { if(this.scoreboardSign == null)return; this.scoreboardSign.reset(); this.scoreboardSign.destroy(); this.scoreboardSign = null; Console.sendMessageDebug("PlayerScoreboard.delete()"); refresh = false; } public void reinitialize() { delete(); create(); Console.sendMessageDebug("PlayerScoreboard.reinitialize()"); } public UPlayer getUPlayer() { return this.uplayer; } public void refresh() { Console.sendMessageDebug("PlayerScoreboard.refresh() [refresh="+refresh+"]"); if(!(refresh))return; if(scoreboardSign == null) create(); else if (this.scoreboardSign.getBukkitPlayer() != uplayer.getPlayer()) reinitialize(); Stade stade = GameManager.gameState.stade; if (stade == Stade.INWAITING) { lines.put(15, "§7-----------------"); lines.put(14, "§6Mode de jeu:§e " + GameManager.teamType.name); lines.put(13, "§6Joueurs: §e" + GameManager.players.size()); lines.put(12, "§8§7-----------------"); lines.put(11, "§6Scénarios:"); int max = 10; for (Scenarios scenarios : Scenarios.values()) { if (max <= 2) { break; } if (scenarios.iScenario.isEnabled()) { lines.put(max, "§7- §e" + scenarios.iScenario.getName()); } max--; } lines.put(2, ""); lines.put(1, "§eplay.bloostrynetwork.fr"); } else if (stade == Stade.INGAME) { lines.put(15, "§7-----------------"); lines.put(14, "§6Joueurs: §e" + GameManager.playersInGame.size()); lines.put(13, "§6Bordure: §e" + ((int) GameManager.BORDER_RUNNABLE.getSize() / 2)+" blocs"); lines.put(12, "§6Centre: §e" + new DecimalFormat("####").format( new Location(Bukkit.getWorld("world"), 0, uplayer.getPlayer().getLocation().getBlockY(), 0) .distance(uplayer.getPlayer().getLocation())) + " blocs"); lines.put(11, "§6Kill(s): §e" + getUPlayer().getKills().size()); lines.put(10, "§8§7-----------------"); lines.put(9, "§6Host: §e" + GameManager.HOST_NAME); lines.put(8, ""); lines.put(7, "§6Temps"); lines.put(6, " §6Bordure: §e" + FormatData.getTimerDate(GameManager.BORDER_RUNNABLE.getTimer())); lines.put(5, " §6PvP: §e" + FormatData.getTimerDate(GameManager.PVP_RUNNABLE.getTimer())); lines.put(4, ""); lines.put(3, "§eplay.bloostrynetwork.fr"); } for (Integer lineLoc : lines.keySet()) { String line = lines.get(lineLoc); this.scoreboardSign.setLine(lineLoc, line); } for (int loc = 15; loc > 0; loc--) { String myLine = lines.get(loc); String sbLine = this.scoreboardSign.getLine(loc); if (myLine == null) { this.scoreboardSign.removeLine(loc); } else { if (!sbLine.equals(myLine)) { this.scoreboardSign.setLine(loc, myLine); } } } lines.clear(); } }     
  26. Plugin Deluxemenus

    Bonjour à tous Je suis à la recherche de la variable pour joueur c est à dire la variable qui permet de désigner le joueur genre quand il clique sur l objet dont la commande fait /éco take %player% 400 je voudrais la variable pour mettre le joueur qui clique. J ai essayer %player% <player> mais en vain. Lien du plugin: https://www.google.fr/url?sa=t&source=web&rct=j&url=https://www.spigotmc.org/resources/deluxemenus.11734/&ved=0ahUKEwjsh6KsiejVAhUGWBoKHc6LDUEQFggdMAA&usg=AFQjCNETMa8L515DPn4Mmf4-GQchGyOt4A Merci de votre comprehension
  27. 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*/));
  28. Launcher moddée minecraft

    D accord mais aurai tu un totoriel?
  29. Charger plus d’activité