MFF

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

    Exécuter commande à un joueur en tant que OP sans l'être

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    13 Messages 5 Publieurs 3.1k 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.
    • Benjamin LoisonB Hors-ligne
      Benjamin Loison
      dernière édition par

      Salut, j’aimerais faire éxécuter une commande OP à un joueur non OP comment faire ? Passer par des packets ?

      Ps: Je sais que sur Bukkit c’est possible mais sur Forge je ne trouve pas…

      Merci d’avance !

      >! Développeur de Altis-Life (Arma III) sur Minecraft !
      >! Site web     : https://lemnoslife.com

      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

        Le plus simple est de faire directement la même action que cette de la commande.

        1 réponse Dernière réponse Répondre Citer 0
        • SCAREXS Hors-ligne
          SCAREX
          dernière édition par

          Je comprends pas trop l’utilité. Mais tu as juste à utiliser les events pour savoir lorsqu’une commande est appelée et annuler l’event, puis ré-exécuter la commande voulue après sans regarder le niveau d’op qu’il a.

          Site web contenant mes scripts : http://SCAREXgaming.github.io

          Pas de demandes de support par MP ni par skype SVP.
          Je n'accepte sur skype que l…

          1 réponse Dernière réponse Répondre Citer 0
          • Benjamin LoisonB Hors-ligne
            Benjamin Loison
            dernière édition par

            C’est par rapport à un plugin pour récolter l’information /money et éxécuté un /eco take Joueur Argent des idées ?

            >! Développeur de Altis-Life (Arma III) sur Minecraft !
            >! Site web     : https://lemnoslife.com

            1 réponse Dernière réponse Répondre Citer 0
            • SCAREXS Hors-ligne
              SCAREX
              dernière édition par

              Ce serait plus simple si le dev du plugin utilisait les paquets, il faut regarder si c’est le cas. Mais sinon tu peux envoyer la commande au serveur, par contre pour savoir quand la réponse est reçue, çà risque d’être plus dur.

              Site web contenant mes scripts : http://SCAREXgaming.github.io

              Pas de demandes de support par MP ni par skype SVP.
              Je n'accepte sur skype que l…

              1 réponse Dernière réponse Répondre Citer 0
              • FolganskyF Hors-ligne
                Folgansky Correcteurs
                dernière édition par

                Je suis pleinement concerné par ce soucis, j’essaie de faire exécuter la commande:

                MinecraftServer.getServer().getCommandManager().executeCommand(MinecraftServer.getServer(), "eco give " + player.getDisplayName() + " 20");
                

                Et sur serveur ça ne fonctionne pas. J’ai cru lire dans un autre topic que Essantials pouvait empêcher la bonne exécution de la commande…

                Pas de solution à ça?

                1 réponse Dernière réponse Répondre Citer 0
                • SCAREXS Hors-ligne
                  SCAREX
                  dernière édition par

                  Essentials -> grosse daube
                  Vu qu’il y a essential, ça veut dire Cauldron sponge ou quelque chose dans le genre -> grosse daube

                  Donc oui le problème peut venir de là

                  Site web contenant mes scripts : http://SCAREXgaming.github.io

                  Pas de demandes de support par MP ni par skype SVP.
                  Je n'accepte sur skype que l…

                  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

                    les commandes bukkit ne fonctionnent pas avec cette méthode.

                    1 réponse Dernière réponse Répondre Citer 0
                    • Benjamin LoisonB Hors-ligne
                      Benjamin Loison
                      dernière édition par

                      Je sors ce soir un tutoriel pour les intéressés qui ont ce genre de problèmes.

                      EDIT: Tutoriel: https://www.minecraftforgefrance.fr/showthread.php?tid=3861

                      >! Développeur de Altis-Life (Arma III) sur Minecraft !
                      >! Site web     : https://lemnoslife.com

                      1 réponse Dernière réponse Répondre Citer 0
                      • FolganskyF Hors-ligne
                        Folgansky Correcteurs
                        dernière édition par

                        J’ai un p’tit crash sur EntityClientPlayerMP, tout à la fin du paste

                        @SubscribeEvent
                            public void onEntityKilled(LivingDeathEvent event)
                            {
                                Random rand = new Random();
                                ItemStack stack1 = new ItemStack(ModPg2.itemRandomMunition, 1); //Munition
                                ItemStack stack2 = new ItemStack(ModPg2.itemMetadata, 1, 0); //Insigne
                                ItemStack stack3 = new ItemStack(ModPg2.itemMetadata, 1, 26);//Petit Butin  R1
                                ItemStack stack4 = new ItemStack(ModPg2.itemMetadata, 1, 27);
                                ItemStack stack5 = new ItemStack(ModPg2.itemMetadata, 1, 28);
                                ItemStack stack6 = new ItemStack(ModPg2.itemMetadata, 1, 29);
                                ItemStack stack7 = new ItemStack(ModPg2.itemMetadata, 1, 30);
                                ItemStack stack8 = new ItemStack(ModPg2.itemMetadata, 1, 31);//Petit Butin  R6
                                ItemStack stack9= new ItemStack(ModPg2.itemMetadata, 1, 32);//Butin  R1
                                ItemStack stack10= new ItemStack(ModPg2.itemMetadata, 1, 33);
                                ItemStack stack11= new ItemStack(ModPg2.itemMetadata, 1, 34);
                                ItemStack stack12= new ItemStack(ModPg2.itemMetadata, 1, 35);
                                ItemStack stack13= new ItemStack(ModPg2.itemMetadata, 1, 36);
                                ItemStack stack14= new ItemStack(ModPg2.itemMetadata, 1, 37);//Butin  R6
                                ItemStack stack15 = new ItemStack(ModPg2.itemRandomMunitionPlasma, 1); //Munition Plasma
                                if (event.source.getEntity() instanceof EntityPlayer)
                                {
                                    int randInt = rand.nextInt(100);
                                    EntityPlayer player = (EntityPlayer) event.source.getEntity();
                                    if(!event.entityLiving.worldObj.isRemote && !player.worldObj.isRemote && event.entityLiving instanceof EntityR1Cac || event.entityLiving instanceof EntityR1Ranged)
                                    {
                                        if(event.entityLiving instanceof EntityR1Cac)
                                        {
                                            for(int j = 0 ; j < 2; ++j)
                                            {
                                                if (randInt <= 5)
                                                {   // 5/100
                                                    event.entityLiving.entityDropItem(stack9, 1);
                                                }
                                                if (randInt > 5 && randInt <= 40)
                                                {   // 35/100
                                                    event.entityLiving.entityDropItem(stack3, 1);
                                                }
                                                if (randInt > 40 && randInt <= 50)
                                                {   // 10/100
                                                    event.entityLiving.entityDropItem(stack2, 1);
                                                }
                                                if (randInt > 50)
                                                {   // 50/100
                                                    event.entityLiving.entityDropItem(stack1, 1);
                                                }
                                            }
                                        }
                                        if(event.entityLiving instanceof EntityR1Ranged)
                                        {
                                            for(int j = 0 ; j < 2; ++j)
                                            {
                                                if (randInt <= 10)
                                                {   // 10/100
                                                    event.entityLiving.entityDropItem(stack9, 1);
                                                }
                                                if (randInt > 10 && randInt <= 30)
                                                {   // 20/100
                                                    event.entityLiving.entityDropItem(stack3, 1);
                                                }
                                                if (randInt > 30 && randInt <= 50)
                                                {   // 20/100
                                                    event.entityLiving.entityDropItem(stack2, 1);
                                                }
                                                if (randInt > 50)
                                                {   // 50/100
                                                    event.entityLiving.entityDropItem(stack1, 1);
                                                }
                                            }
                                        }
                                        if(player != null)
                                        {
                                            int killR1 = player.getEntityData().getInteger("killR1");
                                            if(!player.worldObj.isRemote)
                                            {
                                                killR1++;
                                                player.getEntityData().setInteger("killR1", killR1);
                                            }
                                            if(killR1 == 10)
                                            {
                                                player.triggerAchievement(ModPg2.achievementKillR1a);
                                                ByteArrayDataOutput out = ByteStreams.newDataOutput();
                                                out.writeUTF("achievementKillR1a accomplis par " + player.getDisplayName());
                                                ((EntityClientPlayerMP)player).sendQueue.addToSendQueue(new C17PacketCustomPayload("achievementKillR1a", out.toByteArray()));                    }
                                          […]
                        
                        

                        Le rapport:

                        –-- Minecraft Crash Report ----
                        // I bet Cylons wouldn’t have this problem.

                        Time: 27/08/16 12:01
                        Description: Ticking entity

                        java.lang.ClassCastException: net.minecraft.entity.player.EntityPlayerMP cannot be cast to net.minecraft.client.entity.EntityClientPlayerMP
                            at fr.powergame.modpg2.common.LivingEventHandler.onEntityKilled(LivingEventHandler.java:114)
                            at cpw.mods.fml.common.eventhandler.ASMEventHandler_9_LivingEventHandler_onEntityKilled_LivingDeathEvent.invoke(.dynamic)
                            at cpw.mods.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:54)
                            at cpw.mods.fml.common.eventhandler.EventBus.post(EventBus.java:138)
                            at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:305)
                            at net.minecraft.entity.EntityLivingBase.onDeath(EntityLivingBase.java:982)
                            at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:940)
                            at net.minecraft.entity.monster.EntityMob.attackEntityFrom(EntityMob.java:84)
                            at fr.powergame.modpg2.common.EntityBulletPlasmaGun.onImpact(EntityBulletPlasmaGun.java:98)
                            at net.minecraft.entity.projectile.EntityThrowable.onUpdate(EntityThrowable.java:229)
                            at fr.powergame.modpg2.common.EntityBulletPlasmaGun.onUpdate(EntityBulletPlasmaGun.java:118)
                            at net.minecraft.world.World.updateEntityWithOptionalForce(World.java:2298)
                            at net.minecraft.world.WorldServer.updateEntityWithOptionalForce(WorldServer.java:684)
                            at net.minecraft.world.World.updateEntity(World.java:2258)
                            at net.minecraft.world.World.updateEntities(World.java:2108)
                            at net.minecraft.world.WorldServer.updateEntities(WorldServer.java:515)
                            at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:703)
                            at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:614)
                            at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:118)
                            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485)
                            at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752)

                        1 réponse Dernière réponse Répondre Citer 0
                        • AymericRedA Hors-ligne
                          AymericRed
                          dernière édition par

                          Tu essayes de cast le joueur sur serveur au jouer client, mets un if(World.isRemote) à la dernière condition.

                          Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                          AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                          Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                          Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                          1 réponse Dernière réponse Répondre Citer 0
                          • FolganskyF Hors-ligne
                            Folgansky Correcteurs
                            dernière édition par

                            Sacré bordel dans mon esprit pour le Side…

                            Voici ce qu’est devenu le code

                            
                            public class LivingEventHandler
                            {
                                @SubscribeEvent
                                public void onEntityKilled(LivingDeathEvent event)
                                {
                                    Random rand = new Random();
                                    ItemStack stack1 = new ItemStack(ModPg2.itemRandomMunition, 1); // Munition
                                    ItemStack stack2 = new ItemStack(ModPg2.itemMetadata, 1, 0); // Insigne
                                    ItemStack stack3 = new ItemStack(ModPg2.itemMetadata, 1, 26);// Petit Butin R1
                                    ItemStack stack4 = new ItemStack(ModPg2.itemMetadata, 1, 27);
                                    ItemStack stack5 = new ItemStack(ModPg2.itemMetadata, 1, 28);
                                    ItemStack stack6 = new ItemStack(ModPg2.itemMetadata, 1, 29);
                                    ItemStack stack7 = new ItemStack(ModPg2.itemMetadata, 1, 30);
                                    ItemStack stack8 = new ItemStack(ModPg2.itemMetadata, 1, 31);// Petit Butin R6
                                    ItemStack stack9 = new ItemStack(ModPg2.itemMetadata, 1, 32);// Butin R1
                                    ItemStack stack10 = new ItemStack(ModPg2.itemMetadata, 1, 33);
                                    ItemStack stack11 = new ItemStack(ModPg2.itemMetadata, 1, 34);
                                    ItemStack stack12 = new ItemStack(ModPg2.itemMetadata, 1, 35);
                                    ItemStack stack13 = new ItemStack(ModPg2.itemMetadata, 1, 36);
                                    ItemStack stack14 = new ItemStack(ModPg2.itemMetadata, 1, 37);// Butin R6
                                    ItemStack stack15 = new ItemStack(ModPg2.itemRandomMunitionPlasma, 1); // Munition Plasma
                                    if(event.source.getEntity() instanceof EntityPlayer)
                                    {
                                        EntityPlayer player = (EntityPlayer)event.source.getEntity();
                                        if(event.entityLiving instanceof EntityR1Cac || event.entityLiving instanceof EntityR1Ranged)
                                        {
                                            for(int j = 0; j < 2; ++j)
                                            {
                                                if(event.entityLiving instanceof EntityR1Cac && !player.worldObj.isRemote) //Serveur
                                                {
                                                    int randInt = rand.nextInt(100);
                                                    if(randInt <= 5)
                                                    {   // 5/100
                                                        event.entityLiving.entityDropItem(stack9, 1);
                                                    }
                                                    if(randInt > 5 && randInt <= 40)
                                                    {   // 35/100
                                                        event.entityLiving.entityDropItem(stack3, 1);
                                                    }
                                                    if(randInt > 40 && randInt <= 50)
                                                    {   // 10/100
                                                        event.entityLiving.entityDropItem(stack2, 1);
                                                    }
                                                    if(randInt > 50)
                                                    {   // 50/100
                                                        event.entityLiving.entityDropItem(stack1, 1);
                                                    }
                            
                                                }
                                                if(event.entityLiving instanceof EntityR1Ranged && !player.worldObj.isRemote) //Serveur
                                                {
                                                    int randInt = rand.nextInt(100);
                                                    if(randInt <= 10)
                                                    {   // 10/100
                                                        event.entityLiving.entityDropItem(stack9, 1);
                                                    }
                                                    if(randInt > 10 && randInt <= 30)
                                                    {   // 20/100
                                                        event.entityLiving.entityDropItem(stack3, 1);
                                                    }
                                                    if(randInt > 30 && randInt <= 50)
                                                    {   // 20/100
                                                        event.entityLiving.entityDropItem(stack2, 1);
                                                    }
                                                    if(randInt > 50)
                                                    {   // 50/100
                                                        event.entityLiving.entityDropItem(stack1, 1);
                                                    }
                            
                                                }
                                            }
                                            if(player != null)
                                            {
                                                int killR1 = player.getEntityData().getInteger("killR1");
                                                if(!player.worldObj.isRemote)  //Serveur
                                                {
                                                    killR1++;
                                                    player.getEntityData().setInteger("killR1", killR1);
                                                }
                                                if(player.worldObj.isRemote)  //Client
                                                {
                                                    if(killR1 == 10)
                                                    {
                                                        player.triggerAchievement(ModPg2.achievementKillR1a);
                                                        ByteArrayDataOutput out = ByteStreams.newDataOutput();
                                                        out.writeUTF("achievementKillR1a accomplis par " + player.getDisplayName());
                                                        ((EntityClientPlayerMP)player).sendQueue.addToSendQueue(new C17PacketCustomPayload("achievementKillR1a", out.toByteArray()));
                                                    }
                                                    if(killR1 == 100)
                                                    {
                                                        player.triggerAchievement(ModPg2.achievementKillR1b);
                                                        ByteArrayDataOutput out = ByteStreams.newDataOutput();
                                                        out.writeUTF("achievementKillR1b accomplis par " + player.getDisplayName());
                                                        ((EntityClientPlayerMP)player).sendQueue.addToSendQueue(new C17PacketCustomPayload("achievementKillR1b", out.toByteArray()));   
                                                    }
                                                    if(killR1 == 300)
                                                    {
                                                        player.triggerAchievement(ModPg2.achievementKillR1c);
                                                        ByteArrayDataOutput out = ByteStreams.newDataOutput();
                                                        out.writeUTF("achievementKillR1c accomplis par " + player.getDisplayName());
                                                        ((EntityClientPlayerMP)player).sendQueue.addToSendQueue(new C17PacketCustomPayload("achievementKillR1c", out.toByteArray()));
                                                    }
                                                    if(killR1 == 1000)
                                                    {
                                                        player.triggerAchievement(ModPg2.achievementKillR1d);
                                                        ByteArrayDataOutput out = ByteStreams.newDataOutput();
                                                        out.writeUTF("achievementKillR1d accomplis par " + player.getDisplayName());
                                                        ((EntityClientPlayerMP)player).sendQueue.addToSendQueue(new C17PacketCustomPayload("achievementKillR1d", out.toByteArray()));
                                                    }
                                                }
                                            }
                                        }
                            
                            

                            Le soucis c’est que l’achievement ne sera pas pris en compte il me semble. Je dois faire une nouvelle arborescence de if pour valider l’achievement?

                            1 réponse Dernière réponse Répondre Citer 0
                            • FolganskyF Hors-ligne
                              Folgansky Correcteurs
                              dernière édition par

                              ça ne crash plus mais ça n’a pas l’air d’être appelé car je n’ai pas le message en jeu

                              if(event.entityLiving instanceof EntityR1Cac || event.entityLiving instanceof EntityR1Ranged)
                                          {
                                              killR1++;
                                              player.getEntityData().setInteger("killR1", killR1);
                                              if(killR1 == 10)
                                              {
                                                  player.triggerAchievement(ModPg2.achievementKillR1a);
                                                  if(player.worldObj.isRemote)
                                                  {
                                                      System.out.println("Test achievement");
                                                      player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.DARK_AQUA + "Power Game"));
                              
                                                      ByteArrayDataOutput out = ByteStreams.newDataOutput();
                                                      out.writeUTF("achievementKillR1a accomplis par " + player.getDisplayName());
                                                      ((EntityClientPlayerMP)player).sendQueue.addToSendQueue(new C17PacketCustomPayload("achievementKillR1a", out.toByteArray()));
                                                  }
                                              }
                              
                              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