J'ai effectué ce que tu as demandé. Voici donc en premier le code avec les Sysout pour se repérer et ensuite les logs serveur. Tout fonctionne bien pourtant.Salut,
Ajoute un message de débug (print console ou broadcast) dans ta boucle où tu affiches les nouvelles coordonnées de l'armor stand. Tu vera directement où ça bloque
Cordialement,
Detobel36
Code :
Code:
package fr.alexfatta.armorstand.manager;
import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.ArmorStand;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import fr.alexfatta.armorstand.main;
public class ArmorStandManager {
private static main instance;
private static ArrayList<ArmorStand> stands = new ArrayList<>();
public static ArmorStand spawnNewArmorStand(Location loc) {
System.out.println("SpawnNewArmorStand");
ArmorStand stand = spawnArmorStand(loc);
runnable(stand);
return stand;
}
public static ArmorStand spawnArmorStand(Location loc) {
System.out.println("spawnArmorStand");
ArmorStand stand = loc.getWorld().spawn(loc, ArmorStand.class);
stand.setGravity(false);
stand.setSmall(false);
ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1);
SkullMeta meta = (SkullMeta) skull.getItemMeta();
meta.setOwner("MHF_WSkeleton");
skull.setItemMeta(meta);
stand.setHelmet(skull);
stand.setVisible(true);
stand.setCustomNameVisible(false);
stands.add(stand);
return stand;
}
public static void runnable (ArmorStand stand) {
Bukkit.getScheduler().scheduleSyncRepeatingTask(getInstance(), new Runnable() {
@Override
public void run() {
System.out.println("Début runnable");
Location newLocation = (Location) stand.getLocation().clone();
float pitch = newLocation.getPitch() + 1;
newLocation.setPitch(pitch);
System.out.println("Ancien pitch : " + stand.getLocation().getPitch() + "\nNouveau pitch : " + newLocation.getPitch());
stand.teleport(newLocation);
System.out.println("Stand téléporté, nouveau runnable appelé.");
}
}, 20L, 20L);
}
public static void removeArmorStand(){
for(ArmorStand stand : stands) {
stand.remove();
}
stands.clear();
}
public static main getInstance() {
return instance;
}
public static void setInstance(main instance) {
ArmorStandManager.instance = instance;
}
}
Code:
[21:47:16 INFO]: AlexFatta issued server command: /as set
[21:47:16 INFO]: SpawnNewArmorStand
[21:47:16 INFO]: spawnArmorStand
[21:47:17 INFO]: DÚbut runnable
[21:47:17 INFO]: Ancien pitch : 14.100033
Nouveau pitch : 15.100033
[21:47:17 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:18 INFO]: DÚbut runnable
[21:47:18 INFO]: Ancien pitch : 15.100033
Nouveau pitch : 16.100033
[21:47:18 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:20 INFO]: DÚbut runnable
[21:47:20 INFO]: Ancien pitch : 16.100033
Nouveau pitch : 17.100033
[21:47:20 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:21 INFO]: DÚbut runnable
[21:47:21 INFO]: Ancien pitch : 17.100033
Nouveau pitch : 18.100033
[21:47:21 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:22 INFO]: DÚbut runnable
[21:47:22 INFO]: Ancien pitch : 18.100033
Nouveau pitch : 19.100033
[21:47:22 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:23 INFO]: DÚbut runnable
[21:47:23 INFO]: Ancien pitch : 19.100033
Nouveau pitch : 20.100033
[21:47:23 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:24 INFO]: DÚbut runnable
[21:47:24 INFO]: Ancien pitch : 20.100033
Nouveau pitch : 21.100033
[21:47:24 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:25 INFO]: DÚbut runnable
[21:47:25 INFO]: Ancien pitch : 21.100033
Nouveau pitch : 22.100033
[21:47:25 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:26 INFO]: DÚbut runnable
[21:47:26 INFO]: Ancien pitch : 22.100033
Nouveau pitch : 23.100033
[21:47:26 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:27 INFO]: DÚbut runnable
[21:47:27 INFO]: Ancien pitch : 23.100033
Nouveau pitch : 24.100033
[21:47:27 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:28 INFO]: DÚbut runnable
[21:47:28 INFO]: Ancien pitch : 24.100033
Nouveau pitch : 25.100033
[21:47:28 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:29 INFO]: DÚbut runnable
[21:47:29 INFO]: Ancien pitch : 25.100033
Nouveau pitch : 26.100033
[21:47:29 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:30 INFO]: DÚbut runnable
[21:47:30 INFO]: Ancien pitch : 26.100033
Nouveau pitch : 27.100033
[21:47:30 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:31 INFO]: DÚbut runnable
[21:47:31 INFO]: Ancien pitch : 27.100033
Nouveau pitch : 28.100033
[21:47:31 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:32 INFO]: DÚbut runnable
[21:47:32 INFO]: Ancien pitch : 28.100033
Nouveau pitch : 29.100033
[21:47:32 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:33 INFO]: DÚbut runnable
[21:47:33 INFO]: Ancien pitch : 29.100033
Nouveau pitch : 30.100033
[21:47:33 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:34 INFO]: DÚbut runnable
[21:47:34 INFO]: Ancien pitch : 30.100033
Nouveau pitch : 31.100033
[21:47:34 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:35 INFO]: DÚbut runnable
[21:47:35 INFO]: Ancien pitch : 31.100033
Nouveau pitch : 32.100033
[21:47:35 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:36 INFO]: DÚbut runnable
[21:47:36 INFO]: Ancien pitch : 32.100033
Nouveau pitch : 33.100033
[21:47:36 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:37 INFO]: DÚbut runnable
[21:47:37 INFO]: Ancien pitch : 33.100033
Nouveau pitch : 34.100033
[21:47:37 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:38 INFO]: DÚbut runnable
[21:47:38 INFO]: Ancien pitch : 34.100033
Nouveau pitch : 35.100033
[21:47:38 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:39 INFO]: DÚbut runnable
[21:47:39 INFO]: Ancien pitch : 34.100033
Nouveau pitch : 35.100033
[21:47:39 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:40 INFO]: DÚbut runnable
[21:47:40 INFO]: Ancien pitch : 34.100033
Nouveau pitch : 35.100033
[21:47:40 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:41 INFO]: DÚbut runnable
[21:47:41 INFO]: Ancien pitch : 34.100033
Nouveau pitch : 35.100033
[21:47:41 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
[21:47:42 INFO]: DÚbut runnable
[21:47:42 INFO]: Ancien pitch : 34.100033
Nouveau pitch : 35.100033
[21:47:42 INFO]: Stand tÚlÚportÚ, nouveau runnable appelÚ.
Bon nous passerons outre les U a la place des é xD Mais bizarre que tout fonctionne et que l'armorstand ne bouge pas :/
AlexFatta