Besoin d'un code bien particulier…


  • J’aurais besoin d’un code qui permettrai au joueur de réapparaître à l’endroit ou il est mort sans que son stuff soit looté si il a un item précis dans son inventaire même si on est en HARDCORE. L’item en question disparais lors de l’utilisation de ce code.

    Merci de bien vouloir m’aider car je sais absolument pas comment faire…

  • Administrateurs Rédacteurs Moddeurs confirmés

    Enregistre un event bus de Forge. Dans la classe enregistré, ajoute ça :

    @ForgeSubscribe
    public void onLivingDeath(LivingDeathEvent event)
    {
    if(event.entity instanceof EntityPlayer)
    {
    EntityPlayer player = (EntityPlayer)event.entity;
    for(int slotId = 0; slotId < player.inventory.getSizeInventory(); slotId++)
    {
    if(player.inventory.getStackInSlot(slotId) != null)
    {
    if(player.inventory.getStackInSlot(slotId).getItem().itemID == ModTutoriel.ItemTutorial.itemID)
    {
    player.setSpawnChunk(new ChunkCoordinates((int)player.posX, (int)player.posY, (int)player.posZ), true);
    player.inventory.getStackInSlot(slotId).stackSize–;
    }
    }
    }
    }
    }
    

    Parcontre ça change les coord de respawn pour toujours, sauf si le joueur dort ailleurs.
    Pour le hardcore, j’ai pas trouvé comment faire, c’est pas une boolean dans le joueur mais dans le WorldSetting, et elle est en private et final, à par avec la réflexion, je vois pas comment faire, et ça risque de repasser le monde en mode normal.


  • Merci bien, je suis malheureusement en vacance… Loin de mon ordi… Pendant une semaine 😞


  • UP!

    Merci pour le code! 🙂 Est-il possible de faire respawn le joueur immédiatement après sa mort sans action de sa part?

  • Administrateurs Rédacteurs Moddeurs confirmés

    Hum, je crois pas que c’est possible sans modifier les classes de base de minecraft, et même la je sais pas quel classe il faudrait modifier pour enlever le gui de respawn.


  • Tant pis…

    Et est il possible que sont stuff ne soit PAS looté?

  • Modérateurs

    Regarde dans le code du gamerule keepInventory.


  • Je l’avais oublié celle là x)


  • Plop pour respawn directement utilise les ticks (ITickHandler) 😉
    Après j’ai ma p’tite idée, tu check si GuiGameOver est ouvert, tu fais l’action de respawn et tu ouvre un gui null (en gros ça n’ouvre aucun gui).