Краш

Версия Minecraft
1.7.10
API
Forge
Здраствуйте!
Столкнулся с проблемой... Вроде как мод был сбилжен нормально, при билде использовался UTF-8. Но как ставлю на сервер - то сразу крашит, причем ошибка не понятна мне.
Как я понимаю крашит из-за cpw.mods.fml.common.LoaderException: java.lang.NoSuchMethodError: ght.initializeH()V - но как фикс не знаю😞
Извините я новенький, мало знаю.
ght:
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

public class  ght {
    public static float p=0.7F;
    public static float d=1.5F;


   static void initialize(){
       if (Compilation.SERVER) {
           Thread d = new Thread(() -> {
               try (BufferedReader reader = new BufferedReader(
                       new InputStreamReader(
                               new FileInputStream("config.json"), StandardCharsets.UTF_8))) {
                   String line;
                   line = reader.readLine();
                   ght.d = Float.parseFloat(line.split("#")[0]);
                   ght.p = Float.parseFloat(line.split("#")[1]);
                   System.out.println("Из файла была загружена конфигурация защиты и урона " + ght.p+"  "+ght.d);

               } catch (IOException e) {
                   e.printStackTrace();
               }

           });
           d.start();
       }
       }
   static void initializeH(){
        if (Compilation.SERVER) {
            Thread d = new Thread(() -> {
                try (BufferedReader reader = new BufferedReader(
                        new InputStreamReader(
                                new FileInputStream("bannedHWID.cfg"), StandardCharsets.UTF_8))){
                    String line;
                    AC.h.clear();
                    while ((line = reader.readLine()) != null) {
                        AC.h.add(line);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                    System.out.println("Exception");
                }
                AC.initializeAll();
                System.out.println("Из файла были загружены забаненные HWIDs");
            });
            d.start();

        }
    }

}
Не знаю, надо или нет, но вот еще build.gradle:
buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
    }
}

apply plugin: 'forge'

sourceCompatibility = targetCompatibility = '1.8'
tasks.withType(JavaCompile) {
sourceCompatibility = targetCompatibility = '1.8'
}
compileJava.options.encoding = 'UTF-8'

tasks.withType(JavaCompile) {
    options.encoding = 'UTF-8'
}

version = "1.0"
group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

minecraft {
    version = "1.7.10-10.13.4.1614-1.7.10"
    runDir = "eclipse"
}

dependencies {
    // you may put jars on which you depend on in ./libs
    // or you may define them like so..
    //compile "some.group:artifact:version:classifier"
    //compile "some.group:artifact:version"
    
    // real examples
    //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev'  // adds buildcraft to the dev env
    //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env

    // for more info...
    // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
    // http://www.gradle.org/docs/current/userguide/dependency_management.html

}

processResources
{
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
              
        // replace version and mcversion
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
      
    // copy everything else, thats not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}
 
Краш-лог
---- Minecraft Crash Report ----
// You're mean.

Time: 1/17/22 9:14 PM
Description: Exception in server tick loop

cpw.mods.fml.common.LoaderException: java.lang.NoSuchMethodError: ght.initializeH()V
at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:559)
at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88)
at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:320)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:176)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:643)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: ght.initializeH()V
at AC.onFMLPreInitialization(AC.java:123)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
at com.google.common.eventbus.EventBus.post(EventBus.java:275)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556)
... 5 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
Minecraft Version: 1.7.10
Thermos Version: cyberdynecc:Thermos:1.7.10-1614.58
Plugins: ~~ERROR~~ NullPointerException: null
Disabled Plugins: ~~ERROR~~ NullPointerException: null
Operating System: Linux (amd64) version 5.4.0-29-generic
Java Version: 1.8.0_312, Oracle Corporation
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 387580184 bytes (369 MB) / 545783808 bytes (520 MB) up to 1674051584 bytes (1596 MB)
JVM Flags: 0 total;
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 8 mods loaded, 8 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
UCH mcp{9.05} [Minecraft Coder Pack] (minecraft.jar)
UCH FML{7.10.99.99} [Forge Mod Loader] (Thermos.jar)
UCH Forge{10.13.4.1614} [Minecraft Forge] (Thermos.jar)
UCH kimagine{0.2} [KImagine] (minecraft.jar)
UCH divinerpg{2.4.9} [DivineRPG] (divinerpg-2.4.9.jar)
UCE {1.0} [ ] (modid-1.0.jar)
UCH levels{1.8} [Levels] (omegalevels-server.jar)
UCH sl{1.0} [SL] (staticloader-server-new.jar)
Profiler Position: N/A (disabled)
Is Modded: Definitely; Server brand changed to 'thermos,cauldron,craftbukkit,mcpc,kcauldron,fml,forge'
Type: Dedicated Server (map_server.txt)
Краш-лог:
---- Minecraft Crash Report ----
// You're mean.

Time: 1/17/22 9:14 PM
Description: Exception in server tick loop

cpw.mods.fml.common.LoaderException: java.lang.NoSuchMethodError: ght.initializeH()V
	at cpw.mods.fml.common.LoadController.transition(LoadController.java:163)
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:559)
	at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:88)
	at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:320)
	at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:176)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:643)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: ght.initializeH()V
	at AC.onFMLPreInitialization(AC.java:123)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:532)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
	at com.google.common.eventbus.EventBus.post(EventBus.java:275)
	at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:212)
	at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:190)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74)
	at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47)
	at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322)
	at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304)
	at com.google.common.eventbus.EventBus.post(EventBus.java:275)
	at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:119)
	at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:556)
	... 5 more


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- System Details --
Details:
	Minecraft Version: 1.7.10
	Thermos Version: cyberdynecc:Thermos:1.7.10-1614.58
	Plugins: ~~ERROR~~ NullPointerException: null
	Disabled Plugins: ~~ERROR~~ NullPointerException: null
	Operating System: Linux (amd64) version 5.4.0-29-generic
	Java Version: 1.8.0_312, Oracle Corporation
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 387580184 bytes (369 MB) / 545783808 bytes (520 MB) up to 1674051584 bytes (1596 MB)
	JVM Flags: 0 total; 
	AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
	IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
	FML: MCP v9.05 FML v7.10.99.99 Minecraft Forge 10.13.4.1614 8 mods loaded, 8 mods active
	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored
	UCH	mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) 
	UCH	FML{7.10.99.99} [Forge Mod Loader] (Thermos.jar) 
	UCH	Forge{10.13.4.1614} [Minecraft Forge] (Thermos.jar) 
	UCH	kimagine{0.2} [KImagine] (minecraft.jar) 
	UCH	divinerpg{2.4.9} [DivineRPG] (divinerpg-2.4.9.jar) 
	UCE	 {1.0} [ ] (modid-1.0.jar) 
	UCH	levels{1.8} [Levels] (omegalevels-server.jar) 
	UCH	sl{1.0} [SL] (staticloader-server-new.jar) 
	Profiler Position: N/A (disabled)
	Is Modded: Definitely; Server brand changed to 'thermos,cauldron,craftbukkit,mcpc,kcauldron,fml,forge'
	Type: Dedicated Server (map_server.txt)
Последнее редактирование модератором:
Решение
Я таки без понятия шо там у тебя происходит 🤷

Половина кода выглядит обфусцированной, но при этом это же твой код (вроде как), зачем называть классы ght и так далее, что такое Compilation.SERVER (и какое у него взаимодействие с байткодом).

Если всё это проигнорировать то проблем быть не должно, просто предполагаю что происходит какая-то магия с байткодом, которой по этому коду не видно - и даже в build.gradle ничего такого.

Или эти файлы в разных джарниках и один из них почему-то обфусцирован и потом в IDE фордж деобфусцирует и потому джава не может найти метод в классе ght потому-что он переименовался во что-то человеческое..

хызы крч, что-то ты творишь неведомое где-то в общем

Ну или это как обычно грэдл...

necauqua

когда-то был anti344
Администратор
1,216
27
172
Что я вообще наблюдаю..

Покажи класс AC ещё, в методе AC.onFMLPreInitialization ты вызываешь этот ght.initializeH и джава его найти не может почему-то - что-то намудрено с компиляцией/байткодом каким-то неведомым образом.
 
@necauqua

AC:
package net.AlexSmir;


import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicReference;

import org.lwjgl.opengl.Display;

import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.event.FMLServerStartingEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.TickEvent;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
import cpw.mods.fml.relauncher.Side;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.player.AttackEntityEvent;


@Mod(modid="ac", name="AC", version="beta")
public class AC {
    public  static List<String> worlds=new ArrayList<>();
   


    static final SimpleNetworkWrapper channel = NetworkRegistry.INSTANCE.newSimpleChannel("anticheat");
    @Mod.Instance

    static AC INSTANCE;
    //время до синхронизации
    private int syncTime;
    //экземпляр класса для получения hwid
    static hwd dd;
    //список забаненных железяк
    static List<String> h = new ArrayList<>();

    private static String all="";






    @Mod.EventHandler
    public void serverStarting(FMLServerStartingEvent event) {



        if (Compilation.SERVER) {
    event.registerServerCommand(new CommandSendMessage());
    event.registerServerCommand(new CommandReloadConfig());
    event.registerServerCommand(new CommandCheck());
}

    }



    @Mod.EventHandler
    public void init(FMLInitializationEvent event) {

        if (!Compilation.SERVER){
            dd = new hwd();

        }

        if (!Compilation.SERVER) {
            Minecraft var10000 = Minecraft.getMinecraft();
            Field fld = FontRenderer.class.getDeclaredFields()[6];

            fld.setAccessible(true);
            AdvFontRenderer var10001;
            Object var10003 = null;
            try {
                var10003 = fld.get(Minecraft.getMinecraft().fontRenderer);
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            if (var10003 == null) {

            } else {
                var10001 = new AdvFontRenderer((ResourceLocation) var10003);
                var10000.fontRenderer = var10001;
            }



        }

    }
    @SubscribeEvent
    public void onEntityJoinWorld(EntityJoinWorldEvent event) {
        if (Compilation.SERVER)
            if (all!=null)
            if (event.entity instanceof EntityPlayerMP) {

                channel.sendTo(new mch(all + "-" + fls.size), (EntityPlayerMP)event.entity);
            }
    }

    @Mod.EventHandler
    public void onFMLPreInitialization(FMLPreInitializationEvent event) {





        if (Compilation.SERVER) {
            //инициализация дамага и защиты
            ght.initialize();
            //инициализация забаненных HWID'ов
            ght.initializeH();
            //синхронизация

            syncF();


        }
        if (!Compilation.SERVER) {




            fls.loadWords();
            Display.setTitle("ExtroWorld.net | PrisonRPG");


        }


            FMLCommonHandler.instance().bus().register(new EnderTeleport());

            MinecraftForge.EVENT_BUS.register(new EnderTeleport());




        channel.registerMessage(MessageImprove.HANDLER, MessageImprove.class, 0, Side.SERVER);
        channel.registerMessage(MessageProcess.Handler.class, MessageProcess.class, 1, Side.CLIENT);
        channel.registerMessage(mch.Handler.class, mch.class, 2, Side.CLIENT);
        channel.registerMessage(mchs.Handler.class, mchs.class, 3, Side.CLIENT);
        channel.registerMessage(mchc.Handler.class, mchc.class, 4, Side.SERVER);
        MinecraftForge.EVENT_BUS.register(INSTANCE);
        FMLCommonHandler.instance().bus().register(INSTANCE);

    }



  @SubscribeEvent
  public void tickServer(TickEvent.ServerTickEvent event){
    if (Compilation.SERVER) {

        if (event.phase == TickEvent.Phase.END) {
            ++syncTime;

            if (syncTime >= 1200) {



                sync();
                syncF();
                initializeAll();
                syncTime = 0;
            }
        }
    }
  }

   public static void initializeAll(){
        if (Compilation.SERVER) {
            AtomicReference<String> temp = new AtomicReference<>("");
            h.forEach((c) -> {
                        temp.set(temp.get() + c + "$");
                    }
            );
            if (!temp.get().equals(all)) {
                System.out.println("Список забаненных HWIDs: " + temp.get() + "  " + all);
                all = temp.get();
            }
        }
    }

     void sync(){
         if (Compilation.SERVER) {

             if (h.size() > 100) {
                 h.clear();
             }
             Thread d = new Thread(() -> {

                 try (FileWriter writer = new FileWriter("bannedHWID.cfg", false)) {

                     for (String s : h) {
                         writer.write(s);
                         writer.append('\n');
                     }
                     writer.flush();
                     System.out.println("Синхронизация с файлом выполнена успешно");

                 } catch (IOException ex) {

                     System.out.println(ex.getMessage());
                 }
             });
             d.start();
         }
    }

    void syncF(){

        if (Compilation.SERVER) {
            Thread d = new Thread(() -> {
                fls.tempSize = 0;
                System.out.println(new File("/root/launcher/updates/DivineRPG/").exists());
                processFilesFromFolder(new File("/root/launcher/updates/DivineRPG/"));

                if (fls.tempSize != fls.size) {
                    fls.size = fls.tempSize;
                }
                System.out.println("Server folder file size " + fls.size);


            });
            d.start();
        }

    }
    private static void processFilesFromFolder(File folder)
    {
        if (Compilation.SERVER) {
            File[] folderEntries = folder.listFiles();
            if (folderEntries != null)
                for (File entry : folderEntries) {
                    if (entry.isDirectory() && entry.getName().equalsIgnoreCase("mods")) {
                        processFilesFromFolder(entry);
                        continue;
                    }

                    //file

                    {

                        if (entry.getName().endsWith(".jar"))
                            fls.tempSize += entry.length();
                    }
                }
        }

    }



    @SubscribeEvent
    public void onAttackEntity(AttackEntityEvent event) {
    }

}
 
Последнее редактирование:
175
14
25
Посоветовал бы юзать данную сборку ._.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Я таки без понятия шо там у тебя происходит 🤷

Половина кода выглядит обфусцированной, но при этом это же твой код (вроде как), зачем называть классы ght и так далее, что такое Compilation.SERVER (и какое у него взаимодействие с байткодом).

Если всё это проигнорировать то проблем быть не должно, просто предполагаю что происходит какая-то магия с байткодом, которой по этому коду не видно - и даже в build.gradle ничего такого.

Или эти файлы в разных джарниках и один из них почему-то обфусцирован и потом в IDE фордж деобфусцирует и потому джава не может найти метод в классе ght потому-что он переименовался во что-то человеческое..

хызы крч, что-то ты творишь неведомое где-то в общем

Ну или это как обычно грэдл во всём виноват ¯\_(ツ)_/¯
 
Сверху