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:
70
src/net/mc_pandacraft/java/util/bukkit/EntityStackUtil.java
Normal file
70
src/net/mc_pandacraft/java/util/bukkit/EntityStackUtil.java
Normal 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));
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user