MFF

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

    Separation client serveur

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.7.2
    14 Messages 4 Publieurs 2.8k Vues 1 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Le side only prend par rapport au type de l’application. Donc @SideOnly(Side.SERVER) correspond au serveur intégré seulement. C’est pour ça que j’ai dis que normalement dans un mod normal, il ne devrait pas servir.

      1 réponse Dernière réponse Répondre Citer 0
      • RedRelayR Hors-ligne
        RedRelay Moddeurs confirmés
        dernière édition par

        Ah ok d’accord je comprend mieux 🙂
        C’est pas super optimisé je trouve _

        –------------------------------------------------------------------------------------
        Si tu trouves mon intervention pertinente, n'hésite pas a m…

        1 réponse Dernière réponse Répondre Citer 0
        • RedRelayR Hors-ligne
          RedRelay Moddeurs confirmés
          dernière édition par

          La pour le coups j’ai encore un problème ^^
          J’ai un gui qui a besoin d’informations concernant le client, seulement ses informations sont initialisée lorsque le client rejoint une partie.

          Du coups je me retrouve avec des null pointer exceptions.

          Comment je peux faire pour initialiser mon GUI proprement uniquement lorsqu’il rejoint une partie ?

          J’ai essayé ça :

          private GuiJob guiJob;
          
          @SubscribeEvent
          public void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) {
          System.out.println("Player join : "+Minecraft.getMinecraft().thePlayer);
          if(event.player.getDisplayName().equals(Minecraft.getMinecraft().thePlayer.getDisplayName())) {
          System.out.println("player is me");
          guiJob = new GuiJob();
          FMLCommonHandler.instance().bus().register(guiJob);
          }
          }
          
          @SubscribeEvent
          public void onPlayerLeave(PlayerEvent.PlayerLoggedOutEvent event) {
          if(event.player.getDisplayName().equals(Minecraft.getMinecraft().thePlayer.getDisplayName())) {
          FMLCommonHandler.instance().bus().unregister(guiJob);
          guiJob = null;
          }
          }
          

          Mais Minecraft.getMinecraft().thePlayer est toujours null :'/

          –------------------------------------------------------------------------------------
          Si tu trouves mon intervention pertinente, n'hésite pas a m…

          1 réponse Dernière réponse Répondre Citer 0
          • jglrxavpokJ Hors-ligne
            jglrxavpok Modérateurs
            dernière édition par

            Normal. Minecraft.getMinecraft() est côté client seulement 😉
            Utilise le player de l’event

            Modérateur sur MFF. 
            Mon Github: http://github.com/jglrxavpok
            Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

            1 réponse Dernière réponse Répondre Citer 0
            • RedRelayR Hors-ligne
              RedRelay Moddeurs confirmés
              dernière édition par

              J’ai mis des @SideOnly(Side.CLIENT), mais thePlayer est toujours null 😕
              Je préfèrerai ne pas utiliser le player de l’event, car si un autre joueur se connect, je vais aussi initialisé la chose 😕

              Autre chose,
              J’ai une class Lumberjack que voici :

              package fr.mff.eyzox.job.defaultjob.common;
              
              /*import …*/
              
              public class Lumberjack extends Job {
              
              public static final String NAME = "Lumberjack";
              public static final ResourceLocation TEXTURE = new ResourceLocation(Main.MODID, "lumberjack.png");
              
              @Override
              public String getName() {
              return NAME;
              }
              
              @Override
              public int getIconID() {
              return Minecraft.getMinecraft().renderEngine.getTexture(TEXTURE).getGlTextureId();
              }
              
              public Lumberjack() {
              MinecraftForge.EVENT_BUS.register(this);
              Minecraft.getMinecraft().renderEngine.bindTexture(TEXTURE);
              }
              
              @SubscribeEvent
              public void onBlockBreak(BlockEvent.BreakEvent event) {
              if(event.block instanceof BlockLog) {
              EyJobPlayer player = (EyJobPlayer) ExtensiblePlayer.getPlayerAddon(event.getPlayer(), EyJobPlayer.ADDON_NAME);
              if(player != null) {
              JobLevel jobLevel = player.getJob(this);
              if(jobLevel != null) {
              jobLevel.setEXP(jobLevel.getEXP()+1);
              }
              }
              }
              
              }
              
              }
              

              Comment faire la séparation proprement entre le serveur et le client ?

              –------------------------------------------------------------------------------------
              Si tu trouves mon intervention pertinente, n'hésite pas a m…

              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

                Étrange que le player soit null. Pour séparer le client et le serveur, les proxys sont tes amis.

                1 réponse Dernière réponse Répondre Citer 0
                • RedRelayR Hors-ligne
                  RedRelay Moddeurs confirmés
                  dernière édition par

                  La problème des poxies c’est qu’il me faut obligatoirement un attribut static non ?
                  Je peux pas faire un proxy dans une methode ?

                  Et ça veut dire qu’a chaque fois que je vais devoir créé un metier, il va me falloir un LumberjackServer et un LumberjackClient extend LumberjackServer ??

                  –------------------------------------------------------------------------------------
                  Si tu trouves mon intervention pertinente, n'hésite pas a m…

                  1 réponse Dernière réponse Répondre Citer 0
                  • Superloup10S Hors-ligne
                    Superloup10 Modérateurs
                    dernière édition par

                    De toutes façon, pour un mod, le proxy est obligatoire, sinon, crash.

                    Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                    Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

                    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

                      Non x)
                      Tu appelle ta méthode comme ça :
                      ClassePrincipale.proxy.methode()
                      Et ensuite dans cette méthode tu mets ce que tu veux.

                      Sinon si tu as l’objet du monde tu peux aussi utiliser world.isRemote.

                      1 réponse Dernière réponse Répondre Citer 0
                      • RedRelayR Hors-ligne
                        RedRelay Moddeurs confirmés
                        dernière édition par

                        J’ai pas l’objet world 😕

                        Et ça veut dire qu’a chaque fois que je vais devoir créé un metier, il va me falloir un LumberjackServer et un LumberjackClient extend LumberjackServer ??

                        –------------------------------------------------------------------------------------
                        Si tu trouves mon intervention pertinente, n'hésite pas a m…

                        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

                          Non, absolument pas. Dans ta classe Lumberjack, tu appelle le proxy, et dans le proxy tu fais ce que tu veux.

                          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