Jump to content

[1.16.5] Help with ServerSided Configuration [SOLVED]


joelstoner

Recommended Posts

4 minutes ago, diesieben07 said:

Show what you tried.

Under FMLServerStoppingEvent I've also tried "Config.SERVER_SPEC.save();"

Bottom of the file, called on FMLServerStartedEvent

Spoiler

package com.github.joelgodofwar.sps.server.events;


import java.awt.Color;
import java.io.File;
import java.nio.file.Path;
import java.util.Random;

import org.apache.logging.log4j.Logger;

import com.github.joelgodofwar.sps.SinglePlayerSleepMod;
import com.github.joelgodofwar.sps.common.config.Config;
import com.github.joelgodofwar.sps.common.config.ConfigHelper;
import com.github.joelgodofwar.sps.common.config.ConfigHolder;
import com.github.joelgodofwar.sps.common.config.SinglePlayerSleepModConfig;
import com.github.joelgodofwar.sps.server.config.SPSConfig;
import com.mojang.brigadier.exceptions.CommandSyntaxException;

import net.minecraft.block.BedBlock;
import net.minecraft.client.renderer.entity.layers.EnergyLayer;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.entity.player.ServerPlayerEntity;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.Util;
import net.minecraft.util.text.ChatType;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraft.util.text.TextComponent;
import net.minecraft.util.text.TextComponentUtils;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.TranslationTextComponent;
import net.minecraft.world.World;
import net.minecraft.world.server.ServerWorld;
import net.minecraftforge.event.TickEvent.ServerTickEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.eventbus.api.Event.Result;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.config.ConfigTracker;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.loading.FMLConfig;
import net.minecraftforge.fml.loading.FMLPaths;

@SuppressWarnings("unused")
public class InteractEventHandler {
	public long daTimer = -1;
	public PlayerEntity sleepingPlayer;
	public World sleepingWorld;
	Logger log;
	private static long mobSpawningStartTime = 12541;//12600;
	private static long mobSpawningStopTime = 23600;
	
	public static String sleepMsg;
	public static boolean enabled;
	public static int delayLen;
	
    @SuppressWarnings("resource")
	@SubscribeEvent(priority = EventPriority.HIGHEST)
    public void playerSleep(PlayerInteractEvent.RightClickBlock event){
    	log = SinglePlayerSleepMod.LOGGER;
    	Result result = event.getResult();
    	boolean canceled = event.isCanceled();
    	
        if(!event.getWorld().isRemote) {
        	log.info("event.getWorld().isRemote=" + event.getWorld().isRemote);
        	final String modId = "singleplayersleepmod";
            final ModConfig.Type type = ModConfig.Type.SERVER;
            final String configFileName = ConfigTracker.INSTANCE.getConfigFileName(modId, type);
            if (configFileName != null) {
            	File f = new File(configFileName);
            	log.info("config file=" + f.getAbsolutePath());
            }else {
            	log.warn("Config file not found! - Warning");
            }
            final Path defaultConfigPath = FMLPaths.GAMEDIR.get().resolve(FMLConfig.defaultConfigPath());
            log.info("defaultConfigPath=" + defaultConfigPath);
            log.info("configFileName=" + configFileName);
            log.info("sleepMsg=" + Config.SERVER.str_singleplayersleep_SleepMessage.get());
            log.info("sleepLength=" + Config.SERVER.int_singleplayersleep_SleepLength.get());
            log.info("enabled=" + Config.SERVER.bool_singleplayersleep_Enabled.get());
            Config.SERVER.str_singleplayersleep_SleepMessage.save();
            //ConfigHelper.setValueAndSave(ConfigHelper.commonConfig, ConfigHelper.SleepLengthPath, 100);
        	//log.info("event.getWorld().isRemote=" + event.getWorld().isRemote);
        	
        	PlayerEntity player = event.getPlayer();
			World world = event.getWorld();
        	
            if (world.getBlockState(event.getPos()).getBlock() instanceof BedBlock) {
            	log.info("IsNight(world)=" + IsNight(world));
            	log.info("world.isThundering()=" + world.isThundering());
                if (!IsNight(world)&&!world.isThundering()) {
                    return;
                }
                if( result != Result.DENY && !canceled ) {
	                if(sleepingPlayer == null) {
	                	sleepingPlayer = player;
	                	log.info("sleepingPlayer SET");
	                }
	                if(sleepingWorld == null) {
	                	sleepingWorld = world;
	                	log.info("sleepingWorld SET");
	                }
	                daTimer = 200; // 200 = 10 seconds
                }
                
                //log.info("world.getDayTime=" + world.getDayTime());
                //log.info("world.getGameTime=" + world.getGameTime());
                //log.info("world.getTimeOfDay=" + world.getTimeOfDay(0));
            }
        }
    }
    
    @SubscribeEvent
	public void servertick(ServerTickEvent event){
    	if(daTimer == 0){
    		log.info("STE - timer finished");
			daTimer = -1;
			broadcast(sleepingWorld, "%1$s went to bed. Sweet dreams!");//"singleplayersleepmod.sleepmsg");
			log.info("STE - broadcast sent");
			setDatime(sleepingPlayer, sleepingWorld);
			log.info("STE - setTime run");
			sleepingPlayer = null;
			sleepingWorld = null;
			log.info("STE - variables reset");
    	}else if(daTimer > 0){
			daTimer--;
		}
    }
    
    public void setDatime(PlayerEntity player, World world){
        //int i = (300 + (new Random()).nextInt(600)) * 20;
        ServerWorld serverworld = (ServerWorld) world;
		if( world.isRaining() || world.isThundering()){
			serverworld.setWeather(60000, 0, false, false);
		}
		long Relative_Time = 24000 - world.getDayTime();
        serverworld.setDayTime(world.getDayTime() + Relative_Time);
		// TODO Add debug log here
	}
	
	public void broadcast(World world, String string){
		//MinecraftServer mcserver = world.getServer();
		StringTextComponent msg = new StringTextComponent(string);
    	msg.getStyle().applyFormatting(TextFormatting.GOLD);
    	
    	TranslationTextComponent component = new TranslationTextComponent(string, sleepingPlayer.getDisplayName());
		component.mergeStyle(TextFormatting.GOLD);
		log.info("B - String parsed");
		//MinecraftServer server = world.getServer().getPlayerList().sendMessageToTeamOrAllPlayers(sleepingPlayer, component);;
        /**for (ServerPlayerEntity player : world.getServer().getPlayerList().getPlayers()) {
    		player.sendMessage(component, Util.DUMMY_UUID);
    		log.info("B - Player " + player.getName() + " messaged");
    		//
        }//*/
        world.getServer().getPlayerList().func_232641_a_(component, ChatType.SYSTEM, sleepingPlayer.getUniqueID());//.sendMessageToTeamOrAllPlayers(sleepingPlayer, component);
        //mcserver.getPlayerList().broadcastMessage(component, ChatType.SYSTEM, Util.NIL_UUID);
        log.info("B - sleepMsg=" + sleepMsg);
        log.info("B - sleepLen=" + delayLen);
        log.info("B - enabled=" + enabled);
	}
	
	public static void writeChatMessage(PlayerEntity player, String translationKey, TextFormatting color) {
		TranslationTextComponent component = new TranslationTextComponent(translationKey);
		component.getStyle().applyFormatting(color);
		player.sendMessage(component, Util.DUMMY_UUID);
	}
	
	public static boolean IsNight(World world){
		long time = (world.getDayTime()) % 24000;
		return time >= mobSpawningStartTime && time < mobSpawningStopTime;
	}
	
	@SubscribeEvent
	public static void onModConfigEvent(final ModConfig.ModConfigEvent event) {
		final ModConfig config = event.getConfig();
		// Rebake the configs when they change
		if (config.getSpec() == ConfigHolder.CLIENT_SPEC) {
			ConfigHelper.bakeClient(config);
		}else if (config.getSpec() == ConfigHolder.SERVER_SPEC) {
			ConfigHelper.bakeServer(config);
		}else if (config.getSpec() == ConfigHolder.COMMON_SPEC) {
			ConfigHelper.bakeCommon(config);
		}
		
	}
	
	public void loadConfig() {
		sleepMsg = SinglePlayerSleepModConfig.str_singleplayersleep_SleepMessage;
		enabled = SinglePlayerSleepModConfig.bool_singleplayersleep_Enabled;
		delayLen = SinglePlayerSleepModConfig.int_singleplayersleep_SleepLength;
	}
	
	public void saveConfig() {
		Config.SERVER.str_singleplayersleep_SleepMessage.set(sleepMsg);
		Config.SERVER.int_singleplayersleep_SleepLength.set(delayLen);
		Config.SERVER.bool_singleplayersleep_Enabled.set(enabled);
		Config.SERVER.str_singleplayersleep_SleepMessage.save();
		Config.SERVER.int_singleplayersleep_SleepLength.save();
		Config.SERVER.bool_singleplayersleep_Enabled.save();
	}
}

 

 

Spoiler

package com.github.joelgodofwar.sps.server.config;

import org.apache.commons.lang3.tuple.Pair;

import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.common.ForgeConfigSpec.BooleanValue;
import net.minecraftforge.common.ForgeConfigSpec.IntValue;

public class SPSConfig {
	
	/**
     * General configuration that doesn't need to be synchronized but needs to be available before server startup
     */
    public static class Common {
        public final ForgeConfigSpec.ConfigValue<String> str_singleplayersleep_SleepMessage;//public final ForgeConfigSpec.ConfigValue<? extends String> str_singleplayersleep_SleepMessage;
        public final BooleanValue bool_singleplayersleep_Enabled;
        public final IntValue int_singleplayersleep_SleepLength;

        Common(ForgeConfigSpec.Builder builder)
        {
            builder.comment("General configuration settings")
                    .push("general");

            str_singleplayersleep_SleepMessage = builder
                    .comment("Defines the sleep message to be displayed when a player sleeps.",
                             "%1$s is a placeholder for the sleeping player's name.")
                    .translation("singleplayersleep.config.sleepmsg")
                    .define("str_singleplayersleep_SleepMessage", "%1$s went to bed. Sweet dreams!");

            bool_singleplayersleep_Enabled = builder
                    .comment("Enable or Disable this mod")
                    .translation("singleplayersleep.config.enabled")
                    .define("bool_singleplayersleep_Enabled", true);

            int_singleplayersleep_SleepLength = builder
                    .comment("Define the length of time to delay in ticks before changing the time.",
                    		"200(10 seconds) is default, as it is just over the vanilla length for single player.")
                    .translation("singleplayersleep.config.delay")
                    .defineInRange("int_singleplayersleep_SleepLength", 200, 0, Integer.MAX_VALUE);

            builder.pop();
        }

    }
    
    public static final ForgeConfigSpec commonSpec;
    public static final Common COMMON;
    static {
        final Pair<Common, ForgeConfigSpec> specPair = new ForgeConfigSpec.Builder().configure(Common::new);
        commonSpec = specPair.getRight();
        COMMON = specPair.getLeft();
    }
    
}

 

This is where I grabbed the values into variables.

Spoiler

package com.github.joelgodofwar.sps.common.config;

public class SinglePlayerSleepModConfig {

/** // Client	
public static boolean clientBoolean;
public static List<String> clientStringList;
public static EnumDyeColor clientEnumDyeColor;

// Server	
public static boolean serverBoolean;
public static List<String> serverStringList;
public static EnumDyeColor serverEnumDyeColor;*/
	
//Common	
public static String str_singleplayersleep_SleepMessage;//public final ForgeConfigSpec.ConfigValue<? extends String> str_singleplayersleep_SleepMessage;
public static Boolean bool_singleplayersleep_Enabled;
public static Integer int_singleplayersleep_SleepLength;

	
}

 

I think that's it, if not the repo has all of the files.

Link to comment
Share on other sites

13 hours ago, Ugdhar said:

I would honestly delete that entire repo and recreate it correctly, that privacy issue is still there for anyone that wants to find it.

Just trying to help keep ya safe buddy!

While I still don't see my login info in those files, I have deleted the repo and republished it using github Desktop. Thank you.

Link to comment
Share on other sites

For those interested this is the solution for me, instead of using server config, I setup common config.

This is the Config class.

Spoiler

 


package com.github.joelgodofwar.sps.common.config;

import net.minecraftforge.common.ForgeConfigSpec;
import net.minecraftforge.common.ForgeConfigSpec.BooleanValue;
import net.minecraftforge.common.ForgeConfigSpec.IntValue;

import org.apache.commons.lang3.tuple.Pair;

public class Config {
    //public static final ServerConfig SERVER;
    //public static final ForgeConfigSpec SERVER_SPEC;
    public static final CommonConfig COMMON;
    public static final ForgeConfigSpec COMMON_SPEC;

    static {
        final Pair<CommonConfig, ForgeConfigSpec> specPair = new ForgeConfigSpec.Builder().configure(CommonConfig::new);
        COMMON_SPEC = specPair.getRight();
        COMMON = specPair.getLeft();
    }
    
    public static String str_SleepMessage;
    public static Boolean bool_Enabled;
    public static Integer int_SleepLength;
    public static Boolean bool_CancelOnExit;
    public static Boolean bool_Debug;
    
    public static void load() {
    	str_SleepMessage = COMMON.str_SleepMessage.get();
    	bool_Enabled = COMMON.bool_Enabled.get();
    	int_SleepLength = COMMON.int_SleepLength.get();
    	bool_CancelOnExit = COMMON.bool_CancelOnExit.get();
    	bool_Debug = COMMON.bool_Debug.get();
    }
    
    public static class CommonConfig {
    	public final ForgeConfigSpec.ConfigValue<String> str_SleepMessage;
        public final BooleanValue bool_Enabled;
        public final IntValue int_SleepLength;
        public final BooleanValue bool_CancelOnExit;
        public final BooleanValue bool_Debug;
    		

    		
        CommonConfig(final ForgeConfigSpec.Builder builder) {
            builder.comment("Single Player Sleep Mod settings")
            .push("settings");

    		str_SleepMessage = builder
    		        .comment(" Defines the sleep message to be displayed when a player sleeps.",
    		                 " %1$s is a placeholder for the sleeping player's name.")
    		        .translation("singleplayersleep.config.sleepmsg")
    		        .define("str_SleepMessage", "%1$s went to bed. Sweet dreams!");
    		
    		bool_Enabled = builder
    		        .comment(" Enable or Disable this mod")
    		        .translation("singleplayersleep.config.enabled")
    		        .define("bool_Enabled", true);
    		
    		int_SleepLength = builder
    		        .comment(" Define the length of time to delay in ticks before changing the time.",
    		        		" 300(15 seconds) is default, as it is just over the vanilla length for single player.")
    		        .translation("singleplayersleep.config.delay")
    		        .defineInRange("int_SleepLength", 300, 20, Integer.MAX_VALUE);
    		
    		bool_CancelOnExit =  builder
    		        .comment(" Should SPS cancel sleep if the player exits the bed?")
    		        .translation("singleplayersleep.config.cancel_on_exit")
    		        .define("bool_CancelOnExit", true);
    		
    		bool_Debug =  builder
    		        .comment(" Should SPS log debug information in the console/log?")
    		        .translation("singleplayersleep.config.debug")
    		        .define("bool_Devug", false);
    		
    		builder.pop();
    		
    	}
    }
}

 

You register it like this, in the main class of your mod.

Spoiler

package com.github.joelgodofwar.sps;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.github.joelgodofwar.sps.common.config.Config;
import com.github.joelgodofwar.sps.server.events.InteractEventHandler;

import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
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.FMLServerStartedEvent;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.event.server.FMLServerStoppingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;

@Mod("singleplayersleepmod")
public class SinglePlayerSleepMod {
	
	// Directly reference a log4j logger.
    public static final Logger LOGGER = LogManager.getLogger();
    public static final String MOD_ID = "singleplayersleepmod";
    InteractEventHandler IEventHandler = new InteractEventHandler();

    public SinglePlayerSleepMod() {
        // 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);
        ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, Config.COMMON_SPEC, "singleplayersleepmod-common.toml");
        
        // 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("SinglePlayerSleep Loading...");
        
        //Config config = new Configuration(new File(event.getModConfigurationDirectory().getAbsolutePath() + "additional/path/to/your/config.cfg"));
    }

    private void enqueueIMC(final InterModEnqueueEvent event){ // Send InterModComms
        // 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){ // Receive InterModComms
        // 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()));
    }

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

    // 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");
    }
    @SubscribeEvent
    public void doServerStuff(final FMLServerStartedEvent  event) {
    	LOGGER.info("Registering Events...");
    	MinecraftForge.EVENT_BUS.register(new InteractEventHandler());
    	//IEventHandler.loadConfig();
    	LOGGER.info("Loading Complete.");
    }
    @SubscribeEvent
    public void doServerStuff(final FMLServerStoppingEvent  event) {
    	LOGGER.info("Saving configs...");
    	Config.COMMON_SPEC.save();
    }
}

 

and you use the values like this.

Spoiler

if(Config.COMMON.bool_Debug.get()){log.info("sleepingWorld SET");}

 

 

Link to comment
Share on other sites

  • joelstoner changed the title to [1.16.5] Help with ServerSided Configuration [SOLVED]

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • i will try thank you  
    • Fixed it, was calling scale before drawing everything else!
    • Hi, I wanted to find the entity the player is looking at. Thanks
    • I was using forge 1..18.2 (40.2.4) with many mods, just added few mods and it's not working for now   org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-9.1.3.jar:9.1.3+9.1.3+main.9b69c82a] {}     at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-9.1.3.jar:?] {}     at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-9.1.3.jar:?] {}     at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-9.1.3.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-1.0.8.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}     at net.minecraft.client.renderer.block.BlockRenderDispatcher.<init>(BlockRenderDispatcher.java:50) ~[client-1.18.2-20220404.173914-srg.jar%23126!/:?] {re:mixin,xf:OptiFine:default,re:classloading,xf:OptiFine:default,pl:mixin:APP:farmersdelight.mixins.json:HideBlockBreakProgressMixin,pl:mixin:A}     at net.minecraft.client.Minecraft.<init>(Minecraft.java:501) ~[client-1.18.2-20220404.173914-srg.jar%23126!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:flywheel.mixins.json:PausedPartialTickAccessor,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin,pl:mixin:APP:byg_forge.mixins.json:client.MixinMinecraft,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:169) ~[client-1.18.2-20220404.173914-srg.jar%23126!/:?] {re:classloading,re:mixin,pl:runtimedistcleaner:A,pl:mixin:A,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:31) ~[fmlloader-1.18.2-40.2.4.jar%2318!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.1.3.jar%235!/:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:149) [bootstraplauncher-1.0.0.jar:?] {} Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [valhelsia_core.mixins.json:client.ModelBlockRendererMixin] from phase [DEFAULT] in config [valhelsia_core.mixins.json] FAILED during APPLY     at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:636) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinApplyError(MixinProcessor.java:588) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:379) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     ... 29 more Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @ModifyVariable annotation on valhelsia_renderModelFaceFlat could not find any targets matching 'Lnet/minecraft/client/renderer/block/ModelBlockRenderer;m_111001_(Lnet/minecraft/world/level/BlockAndTintGetter;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;IIZLcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;Ljava/util/List;Ljava/util/BitSet;)V' in net.minecraft.client.renderer.block.ModelBlockRenderer. Using refmap valhelsia_core.refmap.json [PREINJECT Applicator Phase -> valhelsia_core.mixins.json:client.ModelBlockRendererMixin -> Prepare Injections ->  -> localvar$zoa000$valhelsia_renderModelFaceFlat(ILnet/minecraft/world/level/BlockAndTintGetter;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/BlockPos;)I -> Parse]     at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.validateTargets(InjectionInfo.java:656) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.findTargets(InjectionInfo.java:587) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.readAnnotation(InjectionInfo.java:330) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:316) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.<init>(InjectionInfo.java:308) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.injection.struct.ModifyVariableInjectionInfo.<init>(ModifyVariableInjectionInfo.java:45) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?] {}     at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?] {}     at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?] {}     at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?] {}     at org.spongepowered.asm.mixin.injection.struct.InjectionInfo$InjectorEntry.create(InjectionInfo.java:149) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.parse(InjectionInfo.java:708) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1311) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:1042) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:393) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:325) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:383) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:365) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     ... 29 more A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Thread: Render thread Stacktrace:     at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:250) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.service.modlauncher.MixinTransformationHandler.processClass(MixinTransformationHandler.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at org.spongepowered.asm.launch.MixinLaunchPluginLegacy.processClass(MixinLaunchPluginLegacy.java:131) ~[mixin-0.8.5.jar:0.8.5+Jenkins-b310.git-155314e6e91465dad727e621a569906a410cd6f4] {}     at cpw.mods.modlauncher.serviceapi.ILaunchPluginService.processClassWithFlags(ILaunchPluginService.java:156) ~[modlauncher-9.1.3.jar:9.1.3+9.1.3+main.9b69c82a] {}     at cpw.mods.modlauncher.LaunchPluginHandler.offerClassNodeToPlugins(LaunchPluginHandler.java:88) ~[modlauncher-9.1.3.jar:?] {}     at cpw.mods.modlauncher.ClassTransformer.transform(ClassTransformer.java:120) ~[modlauncher-9.1.3.jar:?] {}     at cpw.mods.modlauncher.TransformingClassLoader.maybeTransformClassBytes(TransformingClassLoader.java:50) ~[modlauncher-9.1.3.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.readerToClass(ModuleClassLoader.java:113) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.lambda$findClass$15(ModuleClassLoader.java:219) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadFromModule(ModuleClassLoader.java:229) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.findClass(ModuleClassLoader.java:219) ~[securejarhandler-1.0.8.jar:?] {}     at cpw.mods.cl.ModuleClassLoader.loadClass(ModuleClassLoader.java:135) ~[securejarhandler-1.0.8.jar:?] {}     at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?] {}     at net.minecraft.client.renderer.block.BlockRenderDispatcher.<init>(BlockRenderDispatcher.java:50) ~[client-1.18.2-20220404.173914-srg.jar%23126!/:?] {re:mixin,xf:OptiFine:default,re:classloading,xf:OptiFine:default,pl:mixin:APP:farmersdelight.mixins.json:HideBlockBreakProgressMixin,pl:mixin:A}     at net.minecraft.client.Minecraft.<init>(Minecraft.java:501) ~[client-1.18.2-20220404.173914-srg.jar%23126!/:?] {re:mixin,pl:accesstransformer:B,pl:runtimedistcleaner:A,re:classloading,pl:accesstransformer:B,pl:mixin:APP:bookshelf.common.mixins.json:client.AccessorMinecraft,pl:mixin:APP:blueprint.mixins.json:client.MinecraftMixin,pl:mixin:APP:ars_nouveau.mixins.json:light.ClientMixin,pl:mixin:APP:flywheel.mixins.json:PausedPartialTickAccessor,pl:mixin:APP:iceberg.mixins.json:MinecraftMixin,pl:mixin:APP:byg_forge.mixins.json:client.MixinMinecraft,pl:mixin:APP:create.mixins.json:client.WindowResizeMixin,pl:mixin:APP:ars_nouveau.mixins.json:camera.MinecraftMixin,pl:mixin:A,pl:runtimedistcleaner:A}   mods list : abnormals_delight-1.18.2-3.0.2.jar alexsabnormalities-1.2.3.jar alexsdelight-1.18.2-1.3.3.jar alexsmobs-1.18.6.jar Apotheosis-1.18.2-5.8.0.jar appleskin-forge-mc1.18.2-2.4.1.jar aquamirae-5.api10.jar ars_creo-1.18.2-2.2.0.jar ars_elemental-1.18.2-0.4.9.9.jar ars_instrumentum-1.18.2-2.4.2.jar ars_nouveau-1.18.2-2.9.0.jar blockui-1.18.2-0.0.71-ALPHA.jar blueprint-1.18.2-5.5.0.jar Bookshelf-Forge-1.18.2-13.3.56.jar born_in_chaos_[Forge]1.18.2_1.13.jar carryon-1.18.2-1.17.1.11.jar citadel-1.11.3-1.18.2.jar Clumps-forge-1.18.2-8.0.0+17.jar CNB-1.18.2-1.5.3.jar create-1.18.2-0.5.1.b.jar curios-forge-1.18.2-5.0.9.0.jar Delightful-1.18.2-2.6.jar domum_ornamentum-1.18.2-1.0.50-ALPHA-universal.jar Droplight-1.18.2-forge-1.0.7.jar DungeonsArise-1.18.2-2.1.52-release.jar EnchantmentDescriptions-Forge-1.18.2-10.0.12.jar FarmersDelight-1.18.2-1.2.1.jar flywheel-forge-1.18.2-0.6.8.a.jar forbidden_arcanus-1.18.2-2.1.2.jar GatewaysToEternity-1.18.2-2.3.0.jar geckolib-forge-1.18-3.0.57.jar Goblins_Dungeons_1.0.8.jar Highlighter-1.18.1-1.1.2.jar iceandfire-2.1.12-1.18.2-beta2.jar Iceberg-1.18.2-forge-1.0.49.jar illageandspillage-1.18.2-1.1.3.jar incubation-1.18.2-2.0.2.jar Jade-1.18.2-forge-5.3.0.jar JadeAddons-1.18.2-forge-2.5.0.jar jei-1.18.2-forge-10.2.1.1004.jar largemeals-1.18.2-2.0.jar LegendaryTooltips-1.18.2-1.3.1.jar list.txt L_Enders Cataclysm-0.51-changed Them -1.18.2.jar MaxHealthFix-Forge-1.18.2-5.0.1.jar minecolonies-1.18.2-1.0.966-RELEASE.jar MouseTweaks-forge-mc1.18-2.21.jar multi-piston-1.18.2-1.2.15-ALPHA.jar obscure_api-10.jar Oh_The_Biomes_You'll_Go-forge-1.18.2-1.4.7.jar overweightfarming-1.18.2-1.6.0-forge.jar Patchouli-1.18.2-71.1.jar Placebo-1.18.2-6.6.7.jar preview_OptiFine_1.18.2_HD_U_H9_pre3.jar Prism-1.18.2-1.0.1.jar rottencreatures-forge-1.18.2-1.0.0.jar scannable-1.18.2-forge-1.7.6+135af8a.jar sophisticatedbackpacks-1.18.2-3.18.52.846.jar sophisticatedcore-1.18.2-0.5.68.310.jar stalwart-dungeons-1.18.2-1.2.8.jar structurize-1.18.2-1.0.448-ALPHA.jar takesapillage-1.0.3-1.18.2.jar TerraBlender-forge-1.18.2-1.2.0.126.jar tombstone-7.6.5-1.18.2.jar upgrade_aquatic-1.18.2-4.0.0.jar valhelsia_core-forge-1.18.2-0.4.0.jar XaerosWorldMap_1.30.3_Forge_1.18.2.jar YungsApi-1.18.2-Forge-2.2.9.jar YungsBetterDesertTemples-1.18.2-Forge-1.3.1.jar YungsBetterDungeons-1.18.2-Forge-2.1.0.jar YungsBetterMineshafts-1.18.2-Forge-2.2.jar YungsBetterOceanMonuments-1.18.2-Forge-1.0.3.jar YungsBetterStrongholds-1.18.2-Forge-2.1.1.jar   I heard that you guys are the best in minecraft thx very much
    • How do I scale gui elements without scaling everything? When i tried matrices.scale(scale, scale, scale), it scaled the whole gui.
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.