SOLVED Changer la visibilité d'un boolean en 'public'


  • Salut c'est encore moi x) Voilà j'ai créer une class qui permet de ne pas cheater en quelques sortes , de ne pas utiliser de logiciel de hacks ect… et enfaite le problème c'est quand je fait 'Minecraft.running' Il me demande de changer la visibilité de 'running' en 'public' ( Dans la class Minecraft si vous l'aurez viens compris ) mais bon.. Je ne peut pas modifier ça sur Forge .. Comment pourrai-je faire 😕 ?


  • Regarde avec la reflection.

  • Moddeurs confirmés Rédacteurs Administrateurs

    Pourquoi tu veux modifier cette variable ?


  • Bref c'est bon j'ai réussi par contre le problème c'est que j'aimerais ajouté quelque chose dans la class Main.class, comment pourrai-je faire ?

    Je dois ajouté ça dedans

    if (Util.getOSType() == EnumOS.WINDOWS) {
    new a(var34, "Power-Process").start();
    }
    

    Existe t-il un Event ?


  • Nope il faut utiliser l'ASM ou alors ajouter ton code dans le pré init


  • Je vais test sa


  • ASM c'est dead car il y a énormement de class à remêttre , dans la fonction pré init comment je pourrai faire pour que la variable sois importé ?

    if (Util.getOSType() == EnumOS.WINDOWS) {
    new a(minecraft, "Power-Process").start();
    }
    

    le 'minecraft' est la variable que je dois mêttre dans ma fonction preinit mais… la variable est dans la class Main

  • Moddeurs confirmés Rédacteurs Administrateurs

    Minecraft.getMinecraft()


  • Euhh ça vient pas de la class Minecraft hein mais de la class Main

  • Moddeurs confirmés Rédacteurs Administrateurs

    Ce qu'il te faut c'est l'instance de minecraft non ?
    Il y a quoi dans ta classe a ?


  • package net.minecraft.client.main;
    
    import java.awt.Frame;
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.HashSet;
    import java.util.regex.Pattern;
    import javax.swing.JOptionPane;
    
    import net.minecraft.client.Minecraft;
    
    public class a extends Thread
    {
     public Minecraft applet;
     public HashSet name = new HashSet(32);
     public volatile boolean running = true;
     public String yolo = "Crédit à SoftHack pour la realisation de ce script";
     private static final Pattern COMPILEouPAS = Pattern.compile(",");
    
     public a(Minecraft client, String name) {
       super(name);
       this.applet = client;
       this.name.add("\"Original.exe\"");
     }
    
     public void shutdown()
     {
         this.running = false;
     }
    
     public void run() {
     this.running = true;
       while (running) {
         if (checkProcess()) {
           System.exit(0);
         }
         try
         {
           Thread.sleep(10000L);
         }
         catch (InterruptedException ignored)
         {
         }
       }
     }
    
     private boolean checkProcess() {
       InputStreamReader reader = null;
       BufferedReader buffer = null;
       try
       {
         Process process = Runtime.getRuntime().exec(System.getenv("windir") + "\\system32\\" + "tasklist.exe /fo csv /nh");
         reader = new InputStreamReader(process.getInputStream());
         buffer = new BufferedReader(reader);
         String current;
         while ((current = buffer.readLine()) != null)
           if (this.name.contains(COMPILEouPAS.split(current)[0])) {
             buffer.close();
             reader.close();
             int i = 1;
             return true;
           }
         buffer.close();
         reader.close();
       } catch (IOException ignored) {
       } finally {
         try {
           if (buffer != null) buffer.close();
           if (reader != null) reader.close();
         }
         catch (IOException ignored)
         {
         }
       }
       return false;
     }
    }
    

    Voici ma class a au dessus et voilà ma class Main :

    package net.minecraft.client.main;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import java.io.File;
    import java.net.Authenticator;
    import java.net.InetSocketAddress;
    import java.net.PasswordAuthentication;
    import java.net.Proxy;
    import java.net.Proxy.Type;
    import java.util.List;
    import joptsimple.ArgumentAcceptingOptionSpec;
    import joptsimple.NonOptionArgumentSpec;
    import joptsimple.OptionParser;
    import joptsimple.OptionSet;
    import net.minecraft.client.Minecraft;
    import net.minecraft.util.Session;
    
    @SideOnly(Side.CLIENT)
    public class Main
    {
       private static final String __OBFID = "CL_00001461";
    
       public static void main(String[] par0ArrayOfStr)
       {
           System.setProperty("java.net.preferIPv4Stack", "true");
           OptionParser optionparser = new OptionParser();
           optionparser.allowsUnrecognizedOptions();
           optionparser.accepts("demo");
           optionparser.accepts("fullscreen");
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec = optionparser.accepts("server").withRequiredArg();
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec1 = optionparser.accepts("port").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(25565), new Integer[0]);
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec2 = optionparser.accepts("gameDir").withRequiredArg().ofType(File.class).defaultsTo(new File("."), new File[0]);
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec3 = optionparser.accepts("assetsDir").withRequiredArg().ofType(File.class);
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec4 = optionparser.accepts("resourcePackDir").withRequiredArg().ofType(File.class);
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec5 = optionparser.accepts("proxyHost").withRequiredArg();
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec6 = optionparser.accepts("proxyPort").withRequiredArg().defaultsTo("8080", new String[0]).ofType(Integer.class);
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec7 = optionparser.accepts("proxyUser").withRequiredArg();
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec8 = optionparser.accepts("proxyPass").withRequiredArg();
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec9 = optionparser.accepts("username").withRequiredArg().defaultsTo("Player" + Minecraft.getSystemTime() % 1000L, new String[0]);
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec10 = optionparser.accepts("uuid").withRequiredArg();
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec11 = optionparser.accepts("accessToken").withRequiredArg().required();
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec12 = optionparser.accepts("version").withRequiredArg().required();
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec13 = optionparser.accepts("width").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(854), new Integer[0]);
           ArgumentAcceptingOptionSpec argumentacceptingoptionspec14 = optionparser.accepts("height").withRequiredArg().ofType(Integer.class).defaultsTo(Integer.valueOf(480), new Integer[0]);
           NonOptionArgumentSpec nonoptionargumentspec = optionparser.nonOptions();
           OptionSet optionset = optionparser.parse(par0ArrayOfStr);
           List list = optionset.valuesOf(nonoptionargumentspec);
           String s = (String)optionset.valueOf(argumentacceptingoptionspec5);
           Proxy proxy = Proxy.NO_PROXY;
    
           if (s != null)
           {
               try
               {
                   proxy = new Proxy(Type.SOCKS, new InetSocketAddress(s, ((Integer)optionset.valueOf(argumentacceptingoptionspec6)).intValue()));
               }
               catch (Exception exception)
               {
                   ;
               }
           }
    
           final String s1 = (String)optionset.valueOf(argumentacceptingoptionspec7);
           final String s2 = (String)optionset.valueOf(argumentacceptingoptionspec8);
    
           if (!proxy.equals(Proxy.NO_PROXY) && func_110121_a(s1) && func_110121_a(s2))
           {
               Authenticator.setDefault(new Authenticator()
               {
                   private static final String __OBFID = "CL_00000828";
                   protected PasswordAuthentication getPasswordAuthentication()
                   {
                       return new PasswordAuthentication(s1, s2.toCharArray());
                   }
               });
           }
    
           int i = ((Integer)optionset.valueOf(argumentacceptingoptionspec13)).intValue();
           int j = ((Integer)optionset.valueOf(argumentacceptingoptionspec14)).intValue();
           boolean flag = optionset.has("fullscreen");
           boolean flag1 = optionset.has("demo");
           String s3 = (String)optionset.valueOf(argumentacceptingoptionspec12);
           File file1 = (File)optionset.valueOf(argumentacceptingoptionspec2);
           File file2 = optionset.has(argumentacceptingoptionspec3) ? (File)optionset.valueOf(argumentacceptingoptionspec3) : new File(file1, "assets/");
           File file3 = optionset.has(argumentacceptingoptionspec4) ? (File)optionset.valueOf(argumentacceptingoptionspec4) : new File(file1, "resourcepacks/");
           String s4 = optionset.has(argumentacceptingoptionspec10) ? (String)argumentacceptingoptionspec10.value(optionset) : (String)argumentacceptingoptionspec9.value(optionset);
           Session session = new Session((String)argumentacceptingoptionspec9.value(optionset), s4, (String)argumentacceptingoptionspec11.value(optionset));
           Minecraft minecraft = new Minecraft(session, i, j, flag, flag1, file1, file2, file3, proxy, s3);
           String s5 = (String)optionset.valueOf(argumentacceptingoptionspec);
    
           if (s5 != null)
           {
               minecraft.setServer(s5, ((Integer)optionset.valueOf(argumentacceptingoptionspec1)).intValue());
           }
    
           Runtime.getRuntime().addShutdownHook(new Thread("Client Shutdown Thread")
           {
               private static final String __OBFID = "CL_00000829";
               public void run()
               {
                   Minecraft.stopIntegratedServer();
               }
           });
    
           if (!list.isEmpty())
           {
               System.out.println("Completely ignored arguments: " + list);
           }
    
           Thread.currentThread().setName("Client thread");
           minecraft.run();
       }
    
       private static boolean func_110121_a(String par0Str)
       {
           return par0Str != null && !par0Str.isEmpty();
       }
    }
    

    'Minecraft minecraft = new Minecraft(session, i, j, flag, flag1, file1, file2, file3, proxy, s3);' voilà ce que je dois reprendre le 'minecraft'

  • Moddeurs confirmés Rédacteurs Administrateurs

    Oui donc tu peux très bien utiliser Minecraft.getMinecraft() à la place.


  • Minecraft.getMinecraft().?  Personnelement je trouve pas.. 😕 Y'a aucune chose de la class Main

  • Moddeurs confirmés Rédacteurs Administrateurs


    Dans ta fonction preInit, tu mets :

    if (Util.getOSType() == EnumOS.WINDOWS) {
    
                new a(Minecraft.getMinecraft(), "Power-Process").start();
    
              }
    

  • Fonctionne pas ça me fait : The constructor a(azd, String) refers to the missing type azd .. 😕

  • Moddeurs confirmés Rédacteurs Administrateurs

    Heu ? Tu es en train de modder un environnement obfusqué ?


  • Je me suis trompé à limportation de la class j'ai pris celle obfusque au lieu de celle normal