• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Crash Server EntityPlayerSP

1.12.x
1.12.2
2
3
185
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
    Drastic dernière édition par 28 mai 2020, 17:06

    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
      Drastic @robin4002 dernière édition par 28 mai 2020, 18:18

      @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
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 28 mai 2020, 17:10

        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 28 mai 2020, 18:18 Répondre Citer 0
        • D
          Drastic @robin4002 dernière édition par 28 mai 2020, 18:18

          @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
          1 sur 3
          • Premier message
            1/3
            Dernier message
          Design by Woryk
          Contact / Mentions Légales

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB