Nouvelle correction de bug du WorldBorder avec une pile d'entité + Affichage du MOTD que quand le serveur est fini de chargé

This commit is contained in:
2015-03-03 01:02:11 -05:00
parent 87453e9816
commit 8ee8b09384
5 changed files with 111 additions and 19 deletions

View File

@@ -0,0 +1,70 @@
package net.mc_pandacraft.java.util.bukkit;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
/**
* Permet de gérer les entités qui se transportent les uns les autres
*
* Ce groupement d'entité est appelé une "pile d'entité".
*
* Par exemple, un cheval et son monteur représente à eux deux une pile d'entité, dont
* l'élement tout en bas est le cheval
*/
public class EntityStackUtil {
/**
* Déplace une pile d'entité vers l'endroit défini
* @param e Une entité faisant parti de la pile d'entité à téléporter
* @param l La position vers lequel envoyer toute la pile
*/
public static void teleportStack(Entity e, Location l)
{
List<Entity> stack = new ArrayList<Entity>();
// on se place sur l'entité tout en bas de la pile
Entity entTemp = e;
while (entTemp.getVehicle() != null)
entTemp = entTemp.getVehicle();
do {
stack.add(entTemp);
entTemp = entTemp.getPassenger();
} while (entTemp != null);
if (stack.size() == 1) {
stack.get(0).teleport(l);
return;
}
stack.get(0).eject();
stack.get(0).teleport(l);
stack.get(0).setPassenger(stack.get(1));
}
}