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.
    • 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