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! 

SeaMoon69

Membres
  • Compteur de contenus

    243
  • Inscription

  • Dernière visite

Réputation sur la communauté

38 Neutre

3 abonnés

À propos de SeaMoon69

  • Rang
    Developpeur Moyen
  • Date de naissance 09/04/03

Informations de profil

  • Centres d'intérêt Developpement
  • Sexe Homme

Me contacter

Visiteurs récents du profil

1221 visualisations du profil
  1. Remplacer un item par un autre toutes les x secondes

    C'est un peu long comme explication...   Mais si tu veux changer un item, tu peux faire ça : (J'ai pas testé) private HashMap<Player, BukkitRunnable> run = new HashMap<>(); public void changeItem(Player p) { if (run.containsKey(p)) return; for (ItemStack stack : p.getInventory().getContents()) { if (stack.getType() != Material.GRASS) { if (p.getInventory().first(Material.AIR) != -1 && p.getInventory().first(Material.GRASS) == -1) { run.put(p, new BukkitRunnable() { private int i = 0; @Override public void run() { if (/*le joueur n'est pas dans la zone*/) { cancel(); run.remove(p); } else if (i == 15) { //tu ennlève un item et tu ajoute de l'herbe } else { i++; } } }.runTaskTimer(plugin, 20, 20)); //20 = 1 sec (selon le serveur) } else { p.sendMessage("Erreur"); //ou tu avertis que tout le stack sera remplacé et tu modifi le code } break; } } } Mais essaye de comprendre le code, et si ce n'est pas à quoi tu t'attendais, explique un peux plus clairement et plus court stp
  2. Je devrais donc faire un PacketPlayOutBlockAction ? Problème : pas de TileEntitrDoor... Car mon but est que un joueur puisse voir la porte ouverte et puisse la franchire et un autre joueur non. Ça arrive parfois quand il y a des lags !
  3. Version serveur : 1.8.8 Api utilisées : 1.8.8 1.9 1.10 1.11.1 1.12.2 (il y a des classes craftbukkit qui changent de nom parfois) IDE : Eclipse Java Oxygen (et oui, j'ai fais la mise à jour, )   Bon, venons-en à la question: Je souhaite juste pouvoir faire un sendblockchange qui transforme une porte de fer fermée en porte de fer ouverte et inversement. Je n'ai que deux pistes : les packets et le p.sendBlockChange, mais je ne sais pas si on peu envoyer un bloc avec ses données (ouvert || fermé).   Merci d'avance, SeaMoon69
  4. Citation

    TheElectronWill

    :o@como89tu m'as dépassé

    Il était temps que je revienne

     

     

    Effectivement, tu es revenu ! ;)

     

    1. TheElectronWill

      TheElectronWill

      :D

      Omniprésent

    2. SeaMoon69

      SeaMoon69

      En plus, j'ai pas tout mis :)

  5. [Résolu] Tuer un joueur quand il entre dans une zone

    L'axe qui défini le haut et le bas est Y
  6. [Résolu] Tuer un joueur quand il entre dans une zone

    Bizarre, ton code me paraît bien... Essaye if(p.getLocation().getY() <= 0) { p.setHealth(0); } Mais c'est louche...
  7. Event Changement De Serveur

    http://www.loribel.com/java/normes/nommage.html
  8. Itérer en spirale autour joueur

    Il y a un bug mais c'est un début private int id; public void generateGlassArroundPlayer(Player p, int tours) { Location loc = p.getLocation().clone().subtract(0, 1, 0); loc.getBlock().setType(Material.GLASS); id = Bukkit.getScheduler().runTaskTimer(this, new Runnable() { BlockFace tourFaceEnCours = BlockFace.SOUTH; int tourFaceEtape = 0; int tourEffectues = 0; @Override public void run() { if (tourEffectues < tours) { if (tourFaceEtape == tourEffectues + 1) { if (tourFaceEnCours == BlockFace.WEST) { tourEffectues++; tourFaceEnCours = BlockFace.SOUTH; } else if (tourFaceEnCours == BlockFace.SOUTH) { tourFaceEnCours = BlockFace.EAST; } else if (tourFaceEnCours == BlockFace.EAST) { tourFaceEnCours = BlockFace.NORTH; } else if (tourFaceEnCours == BlockFace.NORTH) { tourFaceEnCours = BlockFace.WEST; } tourFaceEtape = 0; } if (tourFaceEnCours == BlockFace.SOUTH) { loc.add(1, 0, 0); } else if (tourFaceEnCours == BlockFace.EAST) { loc.add(0, 0, 1); } else if (tourFaceEnCours == BlockFace.NORTH) { loc.subtract(1, 0, 0); } else if (tourFaceEnCours == BlockFace.WEST) { loc.subtract(0, 0, 1); } } else { Bukkit.getScheduler().cancelTask(id); } loc.getBlock().setType(Material.GLASS); tourFaceEtape++; System.out.println(tourEffectues + " " + tourFaceEtape + " " + tourFaceEnCours); } }, 0, 5).getTaskId(); }  
  9. Itérer en spirale autour joueur

    Première ligne : float i = 0.0f;  
  10. Itérer en spirale autour joueur

    En gros, tu veux détecter les blocs autour du joueur ou créer une spirale, je n'ai pas bien compris non plus...
  11. Itérer en spirale autour joueur

    Donc, ça serait plutôt des cercles, qui font comme un radar ?!   Ha, on trouve toujours tout avec les particules float i = 0.0f; /** * @param name particle name * @param Rayon circule rayon * @param Speed speed rotation. If speed = 1, so 1 rotation in 1 tick. * @param ecart Écart entre les endroits où spawnerons les particules sur le cercle. */ public void generateParticleArroundPlayer(String name, float rayon, int vitesse, float ecart) { for (int k = 0; k < vitesse; k++) { Bukkit.getworld.playeffect(this.posX + Math.cos((double) i) / rayonDuCercle, this.posY, this.posZ + Math.sin((double) i) / rayon, 0.0D, 0.0D, 0.0D , effect.name); i += ecart; } if (i >= 360f) { i = 0.0f; } } Tu check juste le bloc à la location this.posX + Math.cos((double) i) / rayonDuCercle, this.posY, this.posZ + Math.sin((double) i) / rayon et tu ajoute dans une liste et tu la renvois.   Ha, et sur le forum sur lequel j'ai trouvé ce code, this = le joueur.
  12. Itérer en spirale autour joueur

    J'ai pas très bien compris le concept de spirale. Mais j'ai trouvé ça, pour faire des spirales en particules, et à mon avis, si tu arranges un peu... public static void castSpiral(final Effect e, Location l, double r, int d, double h, final boolean dS, int D, int a){ double x = l.getX(), y = l.getY(), z = l.getZ(), xDiff, zDiff, R = 360/d, H = h/d; //Let's start with storing all points on the spiral on which we want to play a particle final Location[] la = new Location[d*a], la2 = new Location[d*a]; //la2 will only be used if dS = true for(int n = 0; n < d*a; n ++){ xDiff = Math.cos(Math.toRadians(n*R))*r; zDiff = Math.sin(Math.toRadians(n*R))*r; la[n] = new Location(l.getWorld(), x+xDiff, (y-(n*H)), z+zDiff); if(dS)la2[n] = new Location(l.getWorld(), x-xDiff, (y-(n*H)), z-zDiff); } //Now lets play the spiral //Storing this int is simply cause I couldn't think of a better way this quick final Integer[] ina = new Integer[]{0}; final int taskID = Bukkit.getScheduler().scheduleSyncRepeatingTask(Bukkit.getPluginManager().getPlugin("scAPI"), new Runnable(){ public void run(){ if(ina[0] >= la.length)return; //Return once the spiral is done but the task is still running la[ina[0]].getWorld().playEffect(la[ina[0]], e, 1); if(dS)la2[ina[0]].getWorld().playEffect(la2[ina[0]], e, 1); ina[0]=ina[0]+1; } }, D, D); //Now lets schedule a task that cancels the first task Bukkit.getScheduler().scheduleSyncDelayedTask(Bukkit.getPluginManager().getPlugin("scAPI"), new Runnable(){ public void run(){ Bukkit.getScheduler().cancelTask(taskID); } }, (D+1)*d); }  
  13. Bukkit 1.11.2 skyblock calcule du level d'une île

    Oui, là ça serait plus simple !
  14. Bukkit 1.11.2 skyblock calcule du level d'une île

    Imagine que tu as l'ile au milieu de ce pavé, le point dans la config serait en haut, en haut à gauche devant (vers le 0), en bas, en bas à droite au fond etc...
  15. Bukkit 1.11.2 skyblock calcule du level d'une île

    Alors le point est soit 3, 4, 5, 6, 8, 9, 10 ou 11 (je me suis rendu compte que j'avais pas mis le 7 ). Car le point 1, c'est pas un coin, mais le milieu de la face supérieur.