Bonjour à tous aujourd’hui j’ai un petit problème de lit,
Donc voilà j’ai créé une bague qui permet une fois dans l’inventaire du joueur mort de respawn à l’endroit de sa mort, le code :
public class EmotionLifeEvent
{
private boolean ring;
private BlockPos position;
@SubscribeEvent
public void whenHurt(LivingAttackEvent e)
{
if(e.entity instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer)e.entity;
BlockPos pos = player.getPosition();
position = pos;
// Check All Inventory
for(int i = 0; i < player.inventory.getSizeInventory(); i++)
{
if(player.inventory.getStackInSlot(i) != null && player.inventory.getStackInSlot(i).getItem() == EmotionItems.purpuraRing)
ring = true;
}
}
}
@SubscribeEvent
public void whenSpawn(Clone e)
{
EntityPlayer player = e.entityPlayer;
if(e.wasDeath == true)
{
if(ring == true)
{
int posX = position.getX();
int posY = position.getY() + 1;
int posZ = position.getZ();
for(int i = 0; i <= 5; ++i)
{
if(i == 5)
{
// Prevent The Lava Death
player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 800, 0, true, false));
player.setPosition(posX, posY, posZ);
ring = false;
}
}
}
}
}
}
Rien de très compliqué en soit, je pense que le code seras clair pour tout le monde. Bon déjà d’une je pense que malheureusement ce code ne tienne pas la route spécialement quand deux joueurs meurs en même temps et même si c’est sûrement la chose la plus rare je pense devoir prévenir ce genre d’éventualité (je pense rajouter un tableau des joueurs et les effacer quand ils respawnent mais je ne suis pas sûr du résultat alors je préfère attendre vos commentaires), second problème et pas des moindres j’ai remarqué en jouant avec que si le point de spawn était déjà définie par un lit la téléportation ne fonctionne plus et je n’ai aucune idée du pourquoi du comment
Donc voilà si quelqu’un à déjà côtoyé ce genre de problème ou est assez pro pour savoir comment le résoudre, merci d’avance !