MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Crash Server EntityPlayerSP

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    3 Messages 2 Publieurs 264 Vues 2 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • D Hors-ligne
      Drastic
      dernière édition par

      Bonjour,
      dans une class j’ai appelé l’objet Minecraft.getMinecraft().player qui est un EntityPlayerSP.
      Le problème c’est que cette classe est “SinglePlayer”. Or, à cause de ça, mon serveur crash.
      Comment pourrais-je utiliser une classe multijoueur (EntityPlayerMP) ?
      Merci.
      Mon code :

      package com.avonia.mod.util.handlers;
      
      import java.time.Duration;
      import java.time.LocalTime;
      
      import org.jline.utils.PumpReader;
      import org.lwjgl.opengl.GL11;
      
      import com.avonia.mod.init.ItemInit;
      import com.avonia.mod.init.objects.ItemRadar;
      import com.avonia.mod.util.Reference;
      
      import net.minecraft.block.BlockDoublePlant.EnumPlantType;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.gui.FontRenderer;
      import net.minecraft.client.gui.Gui;
      import net.minecraft.client.renderer.ItemRenderer;
      import net.minecraft.client.renderer.RenderItem;
      import net.minecraft.client.renderer.block.model.ModelManager;
      import net.minecraft.client.renderer.color.ItemColors;
      import net.minecraft.client.renderer.texture.TextureManager;
      import net.minecraft.client.resources.IResourceManager;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Blocks;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.EnumHand;
      import net.minecraft.util.ResourceLocation;
      import net.minecraftforge.client.event.RenderGameOverlayEvent;
      import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
      import net.minecraftforge.fml.relauncher.Side;
      import net.minecraftforge.fml.relauncher.SideOnly;
      
      public class RadarHandler extends Gui
      {
          private static Minecraft mc;
              
          public static int amountTiles = 0;
                        
          ItemRenderer itemRenderer = Minecraft.getMinecraft().getItemRenderer();
          
          FontRenderer fontRender;
          
          final ResourceLocation te0_5 = new ResourceLocation(Reference.MODID + ":textures/gui/radar_0-5.png");
          final ResourceLocation te6_10 = new ResourceLocation(Reference.MODID + ":textures/gui/radar_6-10.png");
          final ResourceLocation te11_25 = new ResourceLocation(Reference.MODID + ":textures/gui/radar_11-25.png");
          final ResourceLocation te26_more = new ResourceLocation(Reference.MODID + ":textures/gui/radar_26+.png");
      
          public RadarHandler()
          {
              this.mc = Minecraft.getMinecraft();
              this.fontRender = this.mc.fontRenderer;
          }
          
          @SideOnly(Side.CLIENT)
          @SubscribeEvent
          public void onRenderPre(RenderGameOverlayEvent.Pre event)
          {
            
              if(event.getType() == RenderGameOverlayEvent.ElementType.HELMET && mc.player.getHeldItem(EnumHand.MAIN_HAND).getItem() == ItemInit.radar /*&& ItemRadar.isUsed == 1*/)
              {
                      
                   amountTiles = mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                              mc.player.chunkCoordZ + 0).getTileEntityMap().values().size();
                      
                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                              mc.player.chunkCoordZ + 1).getTileEntityMap().values().size();
                      
                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 0,
                              mc.player.chunkCoordZ - 1).getTileEntityMap().values().size();
                      
                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX + 1,
                              mc.player.chunkCoordZ).getTileEntityMap().values().size();
                      
                   amountTiles = amountTiles + mc.world.getChunkFromChunkCoords(mc.player.chunkCoordX - 1,
                              mc.player.chunkCoordZ).getTileEntityMap().values().size();   
      
                   if(amountTiles <= 5)
                   {
                       mc.getTextureManager().bindTexture(this.te0_5);
                       
                       drawModalRectWithCustomSizedTexture(5,5,0,0,32,32,32,32);       
                   }
                   else if(amountTiles <= 10 && amountTiles >=6)
                   {
                       mc.getTextureManager().bindTexture(this.te6_10);
                       
                       drawModalRectWithCustomSizedTexture(5,5,0,0,32,32,32,32);       
                   }
                   else if(amountTiles <= 25 && amountTiles >=11)
                   {
                       mc.getTextureManager().bindTexture(this.te11_25);
                       
                       drawModalRectWithCustomSizedTexture(5,5,0,0,32,32,32,32);       
                   }
                   else if(amountTiles >=26)
                   {
                       mc.getTextureManager().bindTexture(this.te26_more);
                       
                       drawModalRectWithCustomSizedTexture(5,5,0,0,32,32,32,32);       
                   }
                   drawCenteredString(this.mc.fontRenderer, this.amountTiles + "%", 23, 39, -1);
                   drawCenteredString(this.mc.fontRenderer, this.formatDuration(), 23, 48, -1);
      
                   
                   event.setCanceled(true);
              }
          }
          
          public static String formatDuration()
          {
              ItemStack stack = mc.player.getHeldItem(EnumHand.MAIN_HAND);
              
              int maxD = stack.getMaxDamage();
              int itemD = stack.getItemDamage();                
              
              int damage = maxD - itemD;
              
              Duration duration = Duration.ofSeconds(damage / 20);
              long seconds = duration.getSeconds();
              long absSeconds = Math.abs(seconds);
              String positive = String.format(
                  "%d:%02d:%02d",
                  absSeconds / 3600,
                  (absSeconds % 3600) / 60,
                  absSeconds % 60);
              return seconds < 0 ? "-" + positive : positive;
          }
           
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • D Hors-ligne
        Drastic @robin4002
        dernière édition par

        @robin4002 bonjour.
        Merci de votre réponse.
        j’avais juste laissé un bout de code inutile -_-

        1 réponse Dernière réponse Répondre Citer 0
        • robin4002R Hors-ligne
          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
          dernière édition par

          Bonsoir,
          Vu ton code, il n’y a aucun problème à utiliser du code client ici vu qu’il s’agit d’un gui.

          Si ton serveur crash, c’est qu’il essaie de charger cette classe alors qu’il ne devrait pas : seul le client devrait.

          Le problème ne vient donc pas de la classe elle-même mais de où tu l’utilises.

          D 1 réponse Dernière réponse Répondre Citer 0
          • D Hors-ligne
            Drastic @robin4002
            dernière édition par

            @robin4002 bonjour.
            Merci de votre réponse.
            j’avais juste laissé un bout de code inutile -_-

            1 réponse Dernière réponse Répondre Citer 0
            • 1 / 1
            • Premier message
              Dernier message
            Design by Woryk
            ContactMentions Légales

            MINECRAFT FORGE FRANCE © 2024

            Powered by NodeBB