Jump to content

Recommended Posts

Posted (edited)

Hey, I have a reflection problem only on my "true" minecraft (not on eclipse) : it seams that he can not change enableSnow value... I also have two more questions : my mod is supposed to manage seasons (summer and winter), but I want that these seasons are the same for all the players. So is my code right or should I put "@SideOnly(Side.SERVER)" before each method that update seasons ? How could I do  stop the time when there is no player on the server ? Maybe I should use WorldTickEvent.setCancelled(true); but only on server side ? Should I also cancel ServerTickEvent etc. Thank you.

package com.laurentoutang.hardmod.Seasons;

import java.util.Collection;

import com.laurentoutang.hardmod.Main;
import com.laurentoutang.hardmod.Init.BiomeInit;
import com.laurentoutang.hardmod.Init.ItemInit;
import com.laurentoutang.hardmod.capabilities.IMentalTemperature;
import com.laurentoutang.hardmod.capabilities.MentalTemperatureProvider;

import net.minecraft.block.BlockBeetroot;
import net.minecraft.block.BlockCarrot;
import net.minecraft.block.BlockCocoa;
import net.minecraft.block.BlockCrops;
import net.minecraft.block.BlockMelon;
import net.minecraft.block.BlockPotato;
import net.minecraft.block.BlockPumpkin;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Biomes;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome;
import net.minecraftforge.event.CommandEvent;
import net.minecraftforge.event.entity.player.PlayerWakeUpEvent;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.event.world.BlockEvent.CropGrowEvent;
import net.minecraftforge.fml.client.FMLClientHandler;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.ObfuscationReflectionHelper;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent.PlayerTickEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent.WorldTickEvent;
import net.minecraftforge.fml.common.registry.ForgeRegistries;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.fml.server.FMLServerHandler;

@EventBusSubscriber
public class SeasonEventHandler {
	
	private static boolean transition = true;
	

	@SubscribeEvent
	public static void onWakeUp(PlayerWakeUpEvent event)
	{
		SeasonWorldProvider.season_manager.isDay = true;
	}
	
	@SubscribeEvent
	public static void onPlayerCommandTimeSet(CommandEvent event)
	{
		if(event.getCommand().getName() == "time" && "set".equals(event.getParameters()[0]))		
		{
			event.setCanceled(true);
		}		
	}
	
	@SubscribeEvent
	public static void onBlockDestroyed(BlockEvent.BreakEvent event)
	{ 
			if(SeasonWorldProvider.season_manager.getSeason() == SeasonManager.seasons.Winter && (
	    		   event.getState().getBlock() instanceof BlockBeetroot || 
	    		   event.getState().getBlock() instanceof BlockCarrot || 
	    		   event.getState().getBlock() instanceof BlockPotato || 
	    		   event.getState().getBlock() instanceof BlockCrops || 
	    		   event.getState().getBlock() instanceof BlockCocoa || 
	    		   event.getState().getBlock() instanceof BlockMelon || 
	    		   event.getState().getBlock() instanceof BlockPumpkin
			))
	       {
	            event.setCanceled(true);
	       }
	}
	
	@SubscribeEvent
	public static void onPlayerTick(PlayerTickEvent event)
	{
		EntityPlayer player = event.player;
		
		
		if (player.world.isRemote) 
			return;
		else
			registerArmorTemperature(player);
		
	}
	
	@SubscribeEvent()
	public static void onWorldTick(WorldTickEvent event)
	{		
		MinecraftServer server = FMLClientHandler.instance().getServer();
								
		if(server != null)
		{
			if(server.getOnlinePlayerNames().length > 0)
			{
				if(SeasonWorldProvider.season_manager.getSeason() == SeasonManager.seasons.Winter)
					loadWinterProperties(event.world);
				else
					loadSummerProperties();
				
			}
		}	
	}
	
	private static void registerArmorTemperature(EntityPlayer player)
	{
		IMentalTemperature mt = player.getCapability(MentalTemperatureProvider.MentalTemperature_CAP, null);
		
		
		if(player.inventory.armorItemInSlot(0).getItem().equals(ItemInit.WOOLEN_BOOTS))
		{
			if(mt.getBootsTemperature() == 0)
			{
				mt.setBootsTemperature(10.f);		
			}
		}
		else
		{
			mt.setBootsTemperature(0.f);
		}
		
		
		if(player.inventory.armorItemInSlot(1).getItem().equals(ItemInit.WOOLEN_LEGGINS))
		{
			if(mt.getLegginsTemperature() == 0)
			{
				mt.setLegginsTemperature(10.f);		
			}
		}
		else
		{
			mt.setLegginsTemperature(0.f);
		}
		
		
		if(player.inventory.armorItemInSlot(2).getItem().equals(ItemInit.WOOLEN_CHESTPLATE))
		{
			if(mt.getChestplateTemperature() == 0)
			{
				mt.setChestplateTemperature(10.f);		
			}
		}
		else
		{
			mt.setChestplateTemperature(0.f);
		}
		
		
		
		if(player.inventory.armorItemInSlot(3).getItem().equals(ItemInit.WOOLEN_HELMET))
		{
			if(mt.getHelmetTemperature() == 0)
			{
				mt.setHelmetTemperature(10.f);		
			}
		}
		else
		{
			mt.setHelmetTemperature(0.f);
		}
	}
	
	private static void loadWinterProperties(World world)
	{
		Collection<Biome> allBiomes  = ForgeRegistries.BIOMES.getValuesCollection();
		for(Biome b : allBiomes)
		{
			if(b != Biomes.HELL && b != Biomes.SKY && b != Biomes.VOID)
			{
				ObfuscationReflectionHelper.setPrivateValue(Biome.class, b, true, "enableSnow");
				ObfuscationReflectionHelper.setPrivateValue(Biome.class, b, 0.0F, "temperature");
			}
			
		}
		//Custom biome
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, BiomeInit.forestRemastered, true, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, BiomeInit.forestRemastered, 0.0F, "temperature");
		if(transition)
		{
			world.getWorldInfo().setRainTime(288000);
			transition = false;
		}
			
	}
	
	private static void loadSummerProperties()
	{
		if( transition == false)
			transition = true;	
		
		Collection<Biome> allBiomes  = ForgeRegistries.BIOMES.getValuesCollection();
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.OCEAN, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.OCEAN, 0.5F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.BEACH, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.BEACH, 0.8F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.BIRCH_FOREST, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.BIRCH_FOREST, 0.6F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.BIRCH_FOREST_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.BIRCH_FOREST_HILLS, 0.6F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.COLD_BEACH, 0.05F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.COLD_TAIGA, -0.5F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.COLD_TAIGA_HILLS, -0.5F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.DEEP_OCEAN, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.DEEP_OCEAN, 0.5F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.DESERT, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.DESERT, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.DESERT_HILLS, false, "enableSnow");			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.DESERT_HILLS, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.EXTREME_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.EXTREME_HILLS, 0.2F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.EXTREME_HILLS_EDGE, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.EXTREME_HILLS_EDGE, 0.2F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.EXTREME_HILLS_WITH_TREES, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.EXTREME_HILLS_WITH_TREES, 0.2F, "temperature");		
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.FOREST, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.FOREST, 0.7F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, BiomeInit.forestRemastered, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, BiomeInit.forestRemastered, 0.7F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.FOREST_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.FOREST_HILLS, 0.7F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.FROZEN_OCEAN, 0.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.FROZEN_RIVER, 0.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.ICE_MOUNTAINS, 0.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.ICE_PLAINS, 0.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.JUNGLE, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.JUNGLE, 0.95F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.JUNGLE_EDGE, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.JUNGLE_EDGE, 0.95F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.JUNGLE_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.JUNGLE_HILLS, 0.95F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MESA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MESA, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MESA_CLEAR_ROCK, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MESA_CLEAR_ROCK, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MESA_ROCK, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MESA_ROCK, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUSHROOM_ISLAND, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUSHROOM_ISLAND, 0.9F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUSHROOM_ISLAND_SHORE, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUSHROOM_ISLAND_SHORE, 0.9F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_BIRCH_FOREST, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_BIRCH_FOREST, 0.6F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_BIRCH_FOREST_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_BIRCH_FOREST_HILLS, 0.6F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_DESERT, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_DESERT, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_EXTREME_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_EXTREME_HILLS, 0.2F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_EXTREME_HILLS_WITH_TREES, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_EXTREME_HILLS_WITH_TREES, 0.2F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_FOREST, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_FOREST, 0.6F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_ICE_FLATS, 0.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_JUNGLE, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_JUNGLE, 0.95F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_JUNGLE_EDGE, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_JUNGLE_EDGE, 0.95F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_MESA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_MESA, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_MESA_CLEAR_ROCK, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_MESA_CLEAR_ROCK, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_MESA_ROCK, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_MESA_ROCK, 2.0F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_PLAINS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_PLAINS, 0.8F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_REDWOOD_TAIGA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_REDWOOD_TAIGA, 0.25F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_REDWOOD_TAIGA_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_REDWOOD_TAIGA_HILLS, 0.25F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_ROOFED_FOREST, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_ROOFED_FOREST, 0.7F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_SAVANNA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_SAVANNA, 1.2F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_SAVANNA_ROCK, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_SAVANNA_ROCK, 1.2F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_SWAMPLAND, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_SWAMPLAND, 0.8F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_TAIGA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_TAIGA, 0.25F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.MUTATED_TAIGA_COLD, -0.5F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.PLAINS, false, "enableSnow");			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.PLAINS, 0.8F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.REDWOOD_TAIGA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.REDWOOD_TAIGA, 0.25F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.REDWOOD_TAIGA_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.REDWOOD_TAIGA_HILLS, 0.25F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.RIVER, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.RIVER, 0.5F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.ROOFED_FOREST, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.ROOFED_FOREST, 0.7F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.SAVANNA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.SAVANNA, 1.2F, "temperature");		
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.SAVANNA_PLATEAU, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.SAVANNA_PLATEAU, 1.2F, "temperature");
		
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.STONE_BEACH, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.STONE_BEACH, 0.2F, "temperature");			

		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.SWAMPLAND, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.SWAMPLAND, 0.8F, "temperature");

		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.TAIGA, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.TAIGA, 0.25F, "temperature");
			
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.TAIGA_HILLS, false, "enableSnow");
		ObfuscationReflectionHelper.setPrivateValue(Biome.class, Biomes.TAIGA_HILLS, 0.25F, "temperature");		
	}
}
---- Minecraft Crash Report ----
// Would you like a cupcake?

Time: 12/16/18 3:45 PM
Description: Exception in server tick loop

net.minecraftforge.fml.relauncher.ReflectionHelper$UnableToAccessFieldException: net.minecraftforge.fml.relauncher.ReflectionHelper$UnableToFindFieldException: java.lang.NoSuchFieldException: enableSnow
	at net.minecraftforge.fml.relauncher.ReflectionHelper.setPrivateValue(ReflectionHelper.java:170)
	at net.minecraftforge.fml.common.ObfuscationReflectionHelper.setPrivateValue(ObfuscationReflectionHelper.java:98)
	at com.laurentoutang.hardmod.Seasons.SeasonEventHandler.loadSummerProperties(SeasonEventHandler.java:200)
	at com.laurentoutang.hardmod.Seasons.SeasonEventHandler.onWorldTick(SeasonEventHandler.java:107)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_11_SeasonEventHandler_onWorldTick_WorldTickEvent.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:179)
	at net.minecraftforge.fml.common.FMLCommonHandler.onPreWorldTick(FMLCommonHandler.java:286)
	at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:750)
	at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:666)
	at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:185)
	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:524)
	at java.lang.Thread.run(Thread.java:745)
Caused by: net.minecraftforge.fml.relauncher.ReflectionHelper$UnableToFindFieldException: java.lang.NoSuchFieldException: enableSnow
	at net.minecraftforge.fml.relauncher.ReflectionHelper.findField(ReflectionHelper.java:117)
	at net.minecraftforge.fml.relauncher.ReflectionHelper.setPrivateValue(ReflectionHelper.java:166)
	... 12 more
Caused by: java.lang.NoSuchFieldException: enableSnow
	at java.lang.Class.getDeclaredField(Class.java:2070)
	at net.minecraftforge.fml.relauncher.ReflectionHelper.findField(ReflectionHelper.java:108)
	... 13 more


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

-- System Details --
Details:
	Minecraft Version: 1.12.2
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_51, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 229862328 bytes (219 MB) / 637534208 bytes (608 MB) up to 2147483648 bytes (2048 MB)
	JVM Flags: 8 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
	IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94
	FML: MCP 9.42 Powered by Forge 14.23.2.2611 6 mods loaded, 6 mods active
	States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored

	| State     | ID                | Version      | Source                        | Signature                                |
	|:--------- |:----------------- |:------------ |:----------------------------- |:---------------------------------------- |
	| UCHIJAAAA | minecraft         | 1.12.2       | minecraft.jar                 | None                                     |
	| UCHIJAAAA | mcp               | 9.42         | minecraft.jar                 | None                                     |
	| UCHIJAAAA | FML               | 8.0.99.99    | forge-1.12.2-14.23.2.2611.jar | e3c3d50c7c986df74c645c0ac54639741c90a557 |
	| UCHIJAAAA | forge             | 14.23.2.2611 | forge-1.12.2-14.23.2.2611.jar | e3c3d50c7c986df74c645c0ac54639741c90a557 |
	| UCHIJAAAA | mercurius_updater | 1.0          | MercuriusUpdater-1.12.2.jar   | None                                     |
	| UCHIJAAAA | hm                | 1.1          | Hard_Mod-1.7.jar              | None                                     |

	Loaded coremods (and transformers): 
	GL info: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
	Profiler Position: N/A (disabled)
	Player Count: 1 / 8; [EntityPlayerMP['JeanMichouAK47'/1391, l='Test_Vache_Sound', x=-24.50, y=68.00, z=-96.50]]
	Type: Integrated Server (map_client.txt)
	Is Modded: Definitely; Client brand changed to 'fml,forge'

 

Edited by LaurentOutang
Posted
  On 12/16/2018 at 3:37 PM, LaurentOutang said:

should I put "@SideOnly(Side.SERVER)" before each method that update seasons ?

Expand  

Read and understand: https://mcforge.readthedocs.io/en/latest/concepts/sides/

 

  On 12/16/2018 at 3:37 PM, LaurentOutang said:

Maybe I should use WorldTickEvent.setCancelled(true); but only on server side ? Should I also cancel ServerTickEvent etc

Expand  

You can't cancel a TickEvent, they don't have a @Canellable annotation. Cancelling them would make no sense anyway,

 

  On 12/16/2018 at 3:37 PM, LaurentOutang said:

How could I do  stop the time when there is no player on the server ?

Expand  

Have an internal timer that only decrements when there are players on the server.

 

  On 12/16/2018 at 3:37 PM, LaurentOutang said:

Caused by: java.lang.NoSuchFieldException: enableSnow

Expand  
  On 12/16/2018 at 3:37 PM, LaurentOutang said:

ObfuscationReflectionHelper.setPrivateValue(Biome.class, BiomeInit.forestRemastered, true, "enableSnow");

Expand  

You must provide both the MCP(deobfuscated) and the SRG field names.(if you are using newer forge version then SRG only will suffice). You can get the SRG name of a field from mcpbot or from your local gradle caches.

 

  On 12/16/2018 at 3:37 PM, LaurentOutang said:

MinecraftServer server = FMLClientHandler.instance().getServer(); if(server != null) {

Expand  

Don't do this, you might be reaching across logical sides. Check that you are on a server in the first place.

 

  On 12/16/2018 at 3:37 PM, LaurentOutang said:

private static void loadWinterProperties(World world)

Expand  

You are invoking this method each tick. Inside of this method you are changing a bunch of values using reflection, while not caching the fields. This is a horrendous performance loss. First of all only change the data when the "season" changes. Also cache your fields.

 

  On 12/16/2018 at 3:37 PM, LaurentOutang said:

//Custom biome

Expand  

You custom biome will already be in forge's biome registry which you are iterating anyway.

 

  On 12/16/2018 at 3:37 PM, LaurentOutang said:

private static void loadSummerProperties()

Expand  

Whatever on earth is happening here is insane. Don't do whatever it is you are doing in this method. Cache the defaults for each biome on startup, then restore them here.

Posted (edited)

Thank you for answering and sorry for my english.

 

  On 12/16/2018 at 3:47 PM, V0idWa1k3r said:
Expand  

If I have the same .jar for physical client and server I don't have to deal with @SideOnly, right?

 

FMLClientHandler.instance().getServer();
FMLServerHandler.instance().getServer();
FMLCommonHandler.instance().getServer();

What is the difference between these three things (with logical / physical explanation please) ?

 

In the link, it is said :

 

  Quote

Use this check whenever you need to determine if game logic and other mechanics should be run. For example, if you want to damage the player every time they click your block, or have your machine process dirt into diamonds, you should only do so after ensuring world.isRemote is false. Applying game logic to the logical client can cause desynchronization (ghost entities, desynchronized stats, etc.) in the lightest case, and crashes in the worst case.

Expand  

 

Then for every method that is related to season I should check if world.isRemote == false in order not to desynchronize (the cycle of seasons is game logic)?

 

  On 12/16/2018 at 3:47 PM, V0idWa1k3r said:

You must provide both the MCP(deobfuscated) and the SRG field names.(if you are using newer forge version then SRG only will suffice). You can get the SRG name of a field from mcpbot or from your local gradle caches.

 

Expand  

I really don't understand this, what do you mean by MCP and SRG ? what should I change in my code ?

 

  On 12/16/2018 at 3:47 PM, V0idWa1k3r said:
  On 12/16/2018 at 3:37 PM, LaurentOutang said:

MinecraftServer server = FMLClientHandler.instance().getServer(); if(server != null) {

Expand  

Don't do this, you might be reaching across logical sides. Check that you are on a server in the first place.

Expand  

Should I check !world.isRemote ?

 

What do you mean when you say "cache your fields" please I don't understand it ?

 

Sorry for all these questions and thank you very much.
 

Edited by LaurentOutang
Posted
  On 12/16/2018 at 5:55 PM, LaurentOutang said:

If I have the same .jar for physical client and server I don't have to deal with @SideOnly, right?

Expand  

Well, you do, rarely. You pretty much shouldn't be using it on your own methods though.

 

  On 12/16/2018 at 5:55 PM, LaurentOutang said:

What is the difference between these three things (with logical / physical explanation please) ?

 

Expand  

These are basically somewhat of a proxy(ish) for forge. Client/Server execute side-specific stuff while common executes common code. Note however that they are NOT a proxy, and you shouldn't have a common proxy. But it doesn't matter anyway since you shouldn't get the server like that. Get it from a respective WorldServer instance.

 

  On 12/16/2018 at 5:55 PM, LaurentOutang said:

Then for every method that is related to season I should check id world.isRemote == false in order not to desynchronize (the cycle of seasons is game logic)?

Expand  

Well, kinda. It's not about synchronization, it's about running logic on the server. You still need to notify the clients of the change using the packets though.

 

  On 12/16/2018 at 5:55 PM, LaurentOutang said:

I really don't understand this, what do you mean by MCP and SRG ? what should I change in my code ?

 

Expand  

Minecraft is an obfuscated game, meaning that things like Minecraft.getMinecraft().player.swingArm() are actually ada.b.a.d() in the compiled binary. The ada.b.a.d() nonesense is called NOTCH names and that is how the game looks when you download it from the official website. Not very good for modders, so a group of people decided to deobfuscate the game by manually "translating" this giberrish into human-readable names. It is done in two steps - first the names are translated into still non-human readable but consistent names - func_141242 for example. You don't know what this means and neither do I but this stays consistent between versions which allows for a simple database to be setup. These are called SRG names. Finally these are translated locally on your machine when deobfuscating into human-readable MCP names(like swingArm). When the game launches with forge it runs SRG names, so when mods are compiled a backwards process is applied - the MCP names the mod references turn into SRG names. Thus we come to reflection issues - since reflection searches by name there is an issue since the compiled binary has different names than the one you are running in your dev environment. So forge has helper methods that allow you to pass multiple names to reflect on or in case of the later forge you only need the SRG name. Why SRG? Because it's consistent. MCP names may change as often as each day, but the SRG stay consistent. So yeah, here you go, I guess :D

 

  On 12/16/2018 at 5:55 PM, LaurentOutang said:

What do you mean when you say "cache your fields" please I don't understand it ?

 

Expand  

https://en.wikipedia.org/wiki/Memoization

Posted

About the obfuscation

Notch - obfuscated name

SRG - stays the same between versions, named after Searge who invented the system

MCP - deobfscated, translated from SRG with mappings, can change between mappings.

A great site is http://mcp.thiakil.com/

About Me

  Reveal hidden contents

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Verified user can get a $100 off Temu   Coupon code using the code ((“aci789589”)). This Temu   $100 Off code is specifically for new and existing customers both and can be redeemed to receive a $100 discount on your purchase. Our exclusive Temu   Coupon code offers a flat $100 off your purchase, plus an additional 100% discount on top of that. You can slash prices by up to $100 as a new Temu   customer using code ((“aci789589”)). Existing users can enjoy $100 off their next haul with this code. But that’s not all! With our Temu   Coupon codes for 2025, you can get up to 90% discount on select items and clearance sales. Whether you’re a new customer or an existing shopper, our Temu   codes provide extra discounts tailored just for you. Save up to 100% with these current Temu   Coupons ["^"aci789589 "^"] for April 2025. The latest Temu   coupon codes at here. New users at Temu   receive a $100 discount on orders over $100 Use the code ((“aci789589”)) during checkout to get Temu   Coupon $100 Off For New Users. You can save $100 Off your first order with the coupon code available for a limited time only. Temu   90% Off promo code ((“aci789589”)) will save you $100 on your order. To get a discount, click on the item to purchase and enter the code. Yes, Temu   offers $100 Off coupon code “aci789589” for first time users. You can get a $100 bonus plus $100 Off any purchase at Temu   with the $100 Coupon Bundle at Temu   if you sign up with the referral code ((“aci789589”)) and make a first purchase of $100 or more. Free Temu   codes $100 off — ((“aci789589”)) Temu   Coupon $100 off — ((“aci789589”)) Temu   Coupon 100% off — ((“aci789589”)) Temu   Memorial Day Sale $100 off — ((“aci789589”)) Temu   Coupon code today — ((“aci789589”)) Temu   free gift code — ["^"aci789589"^"](Without inviting friends or family member) Temu   Coupon code for  USA      - $100 Off— ((“aci789589”)) Temu   Coupon code  USA     - $100 Off— ((“aci789589”)) Temu   Coupon code USA  - $100 Off — ((“aci789589”)) Temu   Coupon code Japan - $100 Off — ((“aci789589”)) Temu   Coupon code Mexico - $100 Off — ((“aci789589”)) Temu   Coupon code Chile - $100 Off — ((“aci789589”)) Temu   Coupon code USA - $100 Off — ((“aci789589”)) Temu   Coupon code Colombia - $100 Off — ((“aci789589”)) Temu   Coupon code Malaysia - $100 Off — ((“aci789589”)) Temu   Coupon code Philippines - $100 Off — ((“aci789589”)) Temu   Coupon code South Korea - $100 Off — ((“aci789589”)) Redeem Free Temu   Coupon Code ["^"aci789589"^"] for first-time users Get a $100 discount on your Temu   order with the promo code "aci789589". You can get a discount by clicking on the item to purchase and entering this Temu   Coupon code $100 off ((“aci789589”)). Temu   New User Coupon ((“aci789589)): Up To $100 OFF For First-Time Users Our Temu   first-time user coupon codes are designed just for new customers, offering the biggest discounts and the best deals currently available on Temu  . To maximize your savings, download the Temu   app and apply our Temu   new user coupon during checkout. Temu   Coupon Codes For Existing Users ((“aci789589”)): $100 Price Slash Have you been shopping on Temu   for a while? Our Temu   Coupon for existing customers is here to reward you for your continued support, offering incredible discounts on your favorite products. Temu   Coupon For $100 Off ((“aci789589”)): Get A Flat $100 Discount On Order Value Get ready to save big with our incredible Temu   Coupon for $100 off! Our amazing Temu   $100 off coupon code will give you a flat $100 discount on your order value, making your shopping experience even more rewarding. Temu   Coupon Code For $100 Off ((“aci789589”)): For Both New And Existing Customers Our incredible Temu   Coupon code for $100 off is here to help you save big on your purchases. Whether you’re a new user or an existing customer, our $100 off code for Temu   will give you an additional discount! Temu   Coupon Bundle ((“aci789589”)): Flat $100 Off + Up To $100 Discount Get ready for an unbelievable deal with our Temu   Coupon bundle for 2025! Our Temu   Coupon bundles will give you a flat $100 discount and an additional $100 off on top of it. Free Temu   Coupons ((“aci789589”)): Unlock Unlimited Savings! Get ready to unlock a world of savings with our free Temu   Coupons! We’ve got you covered with a wide range of Temu   Coupon code options that will help you maximize your shopping experience. 100% Off Temu   Coupons, Promo Codes + 25% Cash Back ((“aci789589”)) Redeem Temu   Coupon Code ((“aci789589”)) Temu   Coupon $100 OFF ((“aci789589”)) Temu   Coupon $100 OFF FOR EXISTING CUSTOMERS ((“aci789589”)) Temu   Coupon $100 OFF FIRST ORDER ((“aci789589”)) Temu   Coupon $100 OFF REDDIT ((“aci789589”)) Temu   Coupon $100 OFF FOR EXISTING CUSTOMERS REDDIT ((“aci789589”)) Temu   $100 OFF CODE ((“aci789589”)) Temu   70 OFF COUPON 2025 ((“aci789589”)) DOMINOS 70 RS OFF COUPON CODE ((“aci789589”)) WHAT IS A COUPON RATE ((“aci789589”)) Temu   $100 OFF FOR EXISTING CUSTOMERS ((“aci789589”)) Temu   $100 OFF FIRST ORDER ((“aci789589”)) Temu   $100 OFF FREE SHIPPING ((“aci789589”)) You can get an exclusive $100 off discount on your Temu   purchase with the code [aci789589] Or [aci789589].This code is specially designed for new customers and offers a significant price cut on your shopping. Make your first purchase on Temu   more rewarding by using this code to get $100 off instantly. Temu   Coupon Code For $100 Off [aci789589] Or [aci789589]: Get A Flat $100 Discount On Order Value Get ready to save big with our incredible Temu   coupon for $100 off! Our coupon code will give you a flat $100 discount on your order value, making your shopping experience even more rewarding. Exclusive Temu   Discount Code [aci789589] Or [aci789589]: Flat $200 OFF for New and Existing Customers Using our Temu   promo code you can get A$ 200 off your order and 100% off using our Temu   promo code [aci789589] Or [aci789589]. As a new Temu   customer, you can save up to $100 using this promo code. For returning users, our Temu   promo code offers a $100 price slash on your next shopping spree. This is our way of saying thank you for shopping with us! Best Temu   Deals and Coupons [aci789589] Or [aci789589]: During 2025, Temu   coupon codes offer discounts of up to 90% on select items, making it possible for both new and existing users to get incredible deals. From $100 off deals to 100% discounts, our Temu   promo codes make shopping more affordable than ever. Temu   Coupon Code For $100% Off [aci789589] Or [aci789589]: For Both New And Existing Customers Free Temu   $100 Off Code — [aci789589] Or [aci789589] Temu   Coupon 100% Off — [aci789589] Or [aci789589] Temu   Memorial Day Sale - $100 Off — [aci789589] Or [aci789589] Temu   Free Gift Code — [aci789589] Or [aci789589] Temu   $500 Off Code — [aci789589 ] Or [aci789589] Best Temu   $200 Off Code — [aci789589 ] Or [aci789589] Temu   Coupon Code first order — [aci789589] Or [aci789589] Temu   Coupon Code for New user — [aci789589] Or [aci789589] Temu   Coupon Code A$100 off — [aci789589] Or [aci789589] Temu   Coupon Code $50 off — [aci789589] Or [aci789589] Temu   Coupon Code $100 off — [aci789589] Or [aci789589] Temu   Promo Code 2025 — [aci789589] Or [aci789589] Temu   Coupon Code $200 off — [aci789589] Or [aci789589] Temu   Coupon Code $90 off — [aci789589] Or [aci789589] Temu   Sign up Bonus Code — [aci789589] Or [aci789589] Temu   Coupon Code A$120 off — [aci789589] Or [aci789589] Our exclusive Temu   coupon code allows you to take a flat $200 off your purchase with an added 100% discount on top. As a new Temu   shopper, you can save up to $100 using code [aci789589] Or [aci789589]. Returning customers can also enjoy a $100 discount on their next purchases with this code. Temu   Coupon Code for Your Country Sign-up Bonus Temu   $100 Off Code  USA      [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA     [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code USA  [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Japan [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Mexico [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Chile [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code USA [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Colombia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Malaysia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Philippines [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code South Korea [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA      [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Pakistan [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Finland [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Saudi Arabia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Qatar [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code France [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Germany [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA   [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Israel [aci789589] Or [aci789589] - 100% off Get a $100 discount on your Temu   order with the promo code [aci789589] Or [aci789589]. You can get a discount by clicking on the item to purchase and entering this Temu   coupon code $100 off [aci789589] Or [aci789589]. Temu   Coupon Code [aci789589] Or [aci789589]: Get Up To 90% OFF In NOV 2025 Are you looking for the best Temu   coupon codes to get amazing discounts? Our Temu   coupons are perfect for getting those extra savings you crave. We regularly test our coupon codes for Temu   to ensure they work flawlessly, giving you a guaranteed discount every time. Temu   New User Coupon [aci789589] Or [aci789589]: Up To $100 OFF For First-Time Users Our Temu   first-time user coupon codes are designed just for new customers, offering the biggest discounts and the best deals currently available on Temu  . To maximize your savings, download the Temu   app and apply our Temu   new user coupon during checkout.
    • Verified user can get a $100 off Temu   Coupon code using the code ((“aci789589”)). This Temu   $100 Off code is specifically for new and existing customers both and can be redeemed to receive a $100 discount on your purchase. Our exclusive Temu   Coupon code offers a flat $100 off your purchase, plus an additional 100% discount on top of that. You can slash prices by up to $100 as a new Temu   customer using code ((“aci789589”)). Existing users can enjoy $100 off their next haul with this code. But that’s not all! With our Temu   Coupon codes for 2025, you can get up to 90% discount on select items and clearance sales. Whether you’re a new customer or an existing shopper, our Temu   codes provide extra discounts tailored just for you. Save up to 100% with these current Temu   Coupons ["^"aci789589 "^"] for April 2025. The latest Temu   coupon codes at here. New users at Temu   receive a $100 discount on orders over $100 Use the code ((“aci789589”)) during checkout to get Temu   Coupon $100 Off For New Users. You can save $100 Off your first order with the coupon code available for a limited time only. Temu   90% Off promo code ((“aci789589”)) will save you $100 on your order. To get a discount, click on the item to purchase and enter the code. Yes, Temu   offers $100 Off coupon code “aci789589” for first time users. You can get a $100 bonus plus $100 Off any purchase at Temu   with the $100 Coupon Bundle at Temu   if you sign up with the referral code ((“aci789589”)) and make a first purchase of $100 or more. Free Temu   codes $100 off — ((“aci789589”)) Temu   Coupon $100 off — ((“aci789589”)) Temu   Coupon 100% off — ((“aci789589”)) Temu   Memorial Day Sale $100 off — ((“aci789589”)) Temu   Coupon code today — ((“aci789589”)) Temu   free gift code — ["^"aci789589"^"](Without inviting friends or family member) Temu   Coupon code for  USA      - $100 Off— ((“aci789589”)) Temu   Coupon code  USA     - $100 Off— ((“aci789589”)) Temu   Coupon code USA  - $100 Off — ((“aci789589”)) Temu   Coupon code Japan - $100 Off — ((“aci789589”)) Temu   Coupon code Mexico - $100 Off — ((“aci789589”)) Temu   Coupon code Chile - $100 Off — ((“aci789589”)) Temu   Coupon code USA - $100 Off — ((“aci789589”)) Temu   Coupon code Colombia - $100 Off — ((“aci789589”)) Temu   Coupon code Malaysia - $100 Off — ((“aci789589”)) Temu   Coupon code Philippines - $100 Off — ((“aci789589”)) Temu   Coupon code South Korea - $100 Off — ((“aci789589”)) Redeem Free Temu   Coupon Code ["^"aci789589"^"] for first-time users Get a $100 discount on your Temu   order with the promo code "aci789589". You can get a discount by clicking on the item to purchase and entering this Temu   Coupon code $100 off ((“aci789589”)). Temu   New User Coupon ((“aci789589)): Up To $100 OFF For First-Time Users Our Temu   first-time user coupon codes are designed just for new customers, offering the biggest discounts and the best deals currently available on Temu  . To maximize your savings, download the Temu   app and apply our Temu   new user coupon during checkout. Temu   Coupon Codes For Existing Users ((“aci789589”)): $100 Price Slash Have you been shopping on Temu   for a while? Our Temu   Coupon for existing customers is here to reward you for your continued support, offering incredible discounts on your favorite products. Temu   Coupon For $100 Off ((“aci789589”)): Get A Flat $100 Discount On Order Value Get ready to save big with our incredible Temu   Coupon for $100 off! Our amazing Temu   $100 off coupon code will give you a flat $100 discount on your order value, making your shopping experience even more rewarding. Temu   Coupon Code For $100 Off ((“aci789589”)): For Both New And Existing Customers Our incredible Temu   Coupon code for $100 off is here to help you save big on your purchases. Whether you’re a new user or an existing customer, our $100 off code for Temu   will give you an additional discount! Temu   Coupon Bundle ((“aci789589”)): Flat $100 Off + Up To $100 Discount Get ready for an unbelievable deal with our Temu   Coupon bundle for 2025! Our Temu   Coupon bundles will give you a flat $100 discount and an additional $100 off on top of it. Free Temu   Coupons ((“aci789589”)): Unlock Unlimited Savings! Get ready to unlock a world of savings with our free Temu   Coupons! We’ve got you covered with a wide range of Temu   Coupon code options that will help you maximize your shopping experience. 100% Off Temu   Coupons, Promo Codes + 25% Cash Back ((“aci789589”)) Redeem Temu   Coupon Code ((“aci789589”)) Temu   Coupon $100 OFF ((“aci789589”)) Temu   Coupon $100 OFF FOR EXISTING CUSTOMERS ((“aci789589”)) Temu   Coupon $100 OFF FIRST ORDER ((“aci789589”)) Temu   Coupon $100 OFF REDDIT ((“aci789589”)) Temu   Coupon $100 OFF FOR EXISTING CUSTOMERS REDDIT ((“aci789589”)) Temu   $100 OFF CODE ((“aci789589”)) Temu   70 OFF COUPON 2025 ((“aci789589”)) DOMINOS 70 RS OFF COUPON CODE ((“aci789589”)) WHAT IS A COUPON RATE ((“aci789589”)) Temu   $100 OFF FOR EXISTING CUSTOMERS ((“aci789589”)) Temu   $100 OFF FIRST ORDER ((“aci789589”)) Temu   $100 OFF FREE SHIPPING ((“aci789589”)) You can get an exclusive $100 off discount on your Temu   purchase with the code [aci789589] Or [aci789589].This code is specially designed for new customers and offers a significant price cut on your shopping. Make your first purchase on Temu   more rewarding by using this code to get $100 off instantly. Temu   Coupon Code For $100 Off [aci789589] Or [aci789589]: Get A Flat $100 Discount On Order Value Get ready to save big with our incredible Temu   coupon for $100 off! Our coupon code will give you a flat $100 discount on your order value, making your shopping experience even more rewarding. Exclusive Temu   Discount Code [aci789589] Or [aci789589]: Flat $200 OFF for New and Existing Customers Using our Temu   promo code you can get A$ 200 off your order and 100% off using our Temu   promo code [aci789589] Or [aci789589]. As a new Temu   customer, you can save up to $100 using this promo code. For returning users, our Temu   promo code offers a $100 price slash on your next shopping spree. This is our way of saying thank you for shopping with us! Best Temu   Deals and Coupons [aci789589] Or [aci789589]: During 2025, Temu   coupon codes offer discounts of up to 90% on select items, making it possible for both new and existing users to get incredible deals. From $100 off deals to 100% discounts, our Temu   promo codes make shopping more affordable than ever. Temu   Coupon Code For $100% Off [aci789589] Or [aci789589]: For Both New And Existing Customers Free Temu   $100 Off Code — [aci789589] Or [aci789589] Temu   Coupon 100% Off — [aci789589] Or [aci789589] Temu   Memorial Day Sale - $100 Off — [aci789589] Or [aci789589] Temu   Free Gift Code — [aci789589] Or [aci789589] Temu   $500 Off Code — [aci789589 ] Or [aci789589] Best Temu   $200 Off Code — [aci789589 ] Or [aci789589] Temu   Coupon Code first order — [aci789589] Or [aci789589] Temu   Coupon Code for New user — [aci789589] Or [aci789589] Temu   Coupon Code A$100 off — [aci789589] Or [aci789589] Temu   Coupon Code $50 off — [aci789589] Or [aci789589] Temu   Coupon Code $100 off — [aci789589] Or [aci789589] Temu   Promo Code 2025 — [aci789589] Or [aci789589] Temu   Coupon Code $200 off — [aci789589] Or [aci789589] Temu   Coupon Code $90 off — [aci789589] Or [aci789589] Temu   Sign up Bonus Code — [aci789589] Or [aci789589] Temu   Coupon Code A$120 off — [aci789589] Or [aci789589] Our exclusive Temu   coupon code allows you to take a flat $200 off your purchase with an added 100% discount on top. As a new Temu   shopper, you can save up to $100 using code [aci789589] Or [aci789589]. Returning customers can also enjoy a $100 discount on their next purchases with this code. Temu   Coupon Code for Your Country Sign-up Bonus Temu   $100 Off Code  USA      [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA     [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code USA  [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Japan [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Mexico [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Chile [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code USA [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Colombia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Malaysia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Philippines [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code South Korea [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA      [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Pakistan [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Finland [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Saudi Arabia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Qatar [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code France [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Germany [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA   [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Israel [aci789589] Or [aci789589] - 100% off Get a $100 discount on your Temu   order with the promo code [aci789589] Or [aci789589]. You can get a discount by clicking on the item to purchase and entering this Temu   coupon code $100 off [aci789589] Or [aci789589]. Temu   Coupon Code [aci789589] Or [aci789589]: Get Up To 90% OFF In NOV 2025 Are you looking for the best Temu   coupon codes to get amazing discounts? Our Temu   coupons are perfect for getting those extra savings you crave. We regularly test our coupon codes for Temu   to ensure they work flawlessly, giving you a guaranteed discount every time. Temu   New User Coupon [aci789589] Or [aci789589]: Up To $100 OFF For First-Time Users Our Temu   first-time user coupon codes are designed just for new customers, offering the biggest discounts and the best deals currently available on Temu  . To maximize your savings, download the Temu   app and apply our Temu   new user coupon during checkout.
    • Verified user can get a $100 off Temu   Coupon code using the code ((“aci789589”)). This Temu   $100 Off code is specifically for new and existing customers both and can be redeemed to receive a $100 discount on your purchase. Our exclusive Temu   Coupon code offers a flat $100 off your purchase, plus an additional 100% discount on top of that. You can slash prices by up to $100 as a new Temu   customer using code ((“aci789589”)). Existing users can enjoy $100 off their next haul with this code. But that’s not all! With our Temu   Coupon codes for 2025, you can get up to 90% discount on select items and clearance sales. Whether you’re a new customer or an existing shopper, our Temu   codes provide extra discounts tailored just for you. Save up to 100% with these current Temu   Coupons ["^"aci789589 "^"] for April 2025. The latest Temu   coupon codes at here. New users at Temu   receive a $100 discount on orders over $100 Use the code ((“aci789589”)) during checkout to get Temu   Coupon $100 Off For New Users. You can save $100 Off your first order with the coupon code available for a limited time only. Temu   90% Off promo code ((“aci789589”)) will save you $100 on your order. To get a discount, click on the item to purchase and enter the code. Yes, Temu   offers $100 Off coupon code “aci789589” for first time users. You can get a $100 bonus plus $100 Off any purchase at Temu   with the $100 Coupon Bundle at Temu   if you sign up with the referral code ((“aci789589”)) and make a first purchase of $100 or more. Free Temu   codes $100 off — ((“aci789589”)) Temu   Coupon $100 off — ((“aci789589”)) Temu   Coupon 100% off — ((“aci789589”)) Temu   Memorial Day Sale $100 off — ((“aci789589”)) Temu   Coupon code today — ((“aci789589”)) Temu   free gift code — ["^"aci789589"^"](Without inviting friends or family member) Temu   Coupon code for  USA      - $100 Off— ((“aci789589”)) Temu   Coupon code  USA     - $100 Off— ((“aci789589”)) Temu   Coupon code USA  - $100 Off — ((“aci789589”)) Temu   Coupon code Japan - $100 Off — ((“aci789589”)) Temu   Coupon code Mexico - $100 Off — ((“aci789589”)) Temu   Coupon code Chile - $100 Off — ((“aci789589”)) Temu   Coupon code USA - $100 Off — ((“aci789589”)) Temu   Coupon code Colombia - $100 Off — ((“aci789589”)) Temu   Coupon code Malaysia - $100 Off — ((“aci789589”)) Temu   Coupon code Philippines - $100 Off — ((“aci789589”)) Temu   Coupon code South Korea - $100 Off — ((“aci789589”)) Redeem Free Temu   Coupon Code ["^"aci789589"^"] for first-time users Get a $100 discount on your Temu   order with the promo code "aci789589". You can get a discount by clicking on the item to purchase and entering this Temu   Coupon code $100 off ((“aci789589”)). Temu   New User Coupon ((“aci789589)): Up To $100 OFF For First-Time Users Our Temu   first-time user coupon codes are designed just for new customers, offering the biggest discounts and the best deals currently available on Temu  . To maximize your savings, download the Temu   app and apply our Temu   new user coupon during checkout. Temu   Coupon Codes For Existing Users ((“aci789589”)): $100 Price Slash Have you been shopping on Temu   for a while? Our Temu   Coupon for existing customers is here to reward you for your continued support, offering incredible discounts on your favorite products. Temu   Coupon For $100 Off ((“aci789589”)): Get A Flat $100 Discount On Order Value Get ready to save big with our incredible Temu   Coupon for $100 off! Our amazing Temu   $100 off coupon code will give you a flat $100 discount on your order value, making your shopping experience even more rewarding. Temu   Coupon Code For $100 Off ((“aci789589”)): For Both New And Existing Customers Our incredible Temu   Coupon code for $100 off is here to help you save big on your purchases. Whether you’re a new user or an existing customer, our $100 off code for Temu   will give you an additional discount! Temu   Coupon Bundle ((“aci789589”)): Flat $100 Off + Up To $100 Discount Get ready for an unbelievable deal with our Temu   Coupon bundle for 2025! Our Temu   Coupon bundles will give you a flat $100 discount and an additional $100 off on top of it. Free Temu   Coupons ((“aci789589”)): Unlock Unlimited Savings! Get ready to unlock a world of savings with our free Temu   Coupons! We’ve got you covered with a wide range of Temu   Coupon code options that will help you maximize your shopping experience. 100% Off Temu   Coupons, Promo Codes + 25% Cash Back ((“aci789589”)) Redeem Temu   Coupon Code ((“aci789589”)) Temu   Coupon $100 OFF ((“aci789589”)) Temu   Coupon $100 OFF FOR EXISTING CUSTOMERS ((“aci789589”)) Temu   Coupon $100 OFF FIRST ORDER ((“aci789589”)) Temu   Coupon $100 OFF REDDIT ((“aci789589”)) Temu   Coupon $100 OFF FOR EXISTING CUSTOMERS REDDIT ((“aci789589”)) Temu   $100 OFF CODE ((“aci789589”)) Temu   70 OFF COUPON 2025 ((“aci789589”)) DOMINOS 70 RS OFF COUPON CODE ((“aci789589”)) WHAT IS A COUPON RATE ((“aci789589”)) Temu   $100 OFF FOR EXISTING CUSTOMERS ((“aci789589”)) Temu   $100 OFF FIRST ORDER ((“aci789589”)) Temu   $100 OFF FREE SHIPPING ((“aci789589”)) You can get an exclusive $100 off discount on your Temu   purchase with the code [aci789589] Or [aci789589].This code is specially designed for new customers and offers a significant price cut on your shopping. Make your first purchase on Temu   more rewarding by using this code to get $100 off instantly. Temu   Coupon Code For $100 Off [aci789589] Or [aci789589]: Get A Flat $100 Discount On Order Value Get ready to save big with our incredible Temu   coupon for $100 off! Our coupon code will give you a flat $100 discount on your order value, making your shopping experience even more rewarding. Exclusive Temu   Discount Code [aci789589] Or [aci789589]: Flat $200 OFF for New and Existing Customers Using our Temu   promo code you can get A$ 200 off your order and 100% off using our Temu   promo code [aci789589] Or [aci789589]. As a new Temu   customer, you can save up to $100 using this promo code. For returning users, our Temu   promo code offers a $100 price slash on your next shopping spree. This is our way of saying thank you for shopping with us! Best Temu   Deals and Coupons [aci789589] Or [aci789589]: During 2025, Temu   coupon codes offer discounts of up to 90% on select items, making it possible for both new and existing users to get incredible deals. From $100 off deals to 100% discounts, our Temu   promo codes make shopping more affordable than ever. Temu   Coupon Code For $100% Off [aci789589] Or [aci789589]: For Both New And Existing Customers Free Temu   $100 Off Code — [aci789589] Or [aci789589] Temu   Coupon 100% Off — [aci789589] Or [aci789589] Temu   Memorial Day Sale - $100 Off — [aci789589] Or [aci789589] Temu   Free Gift Code — [aci789589] Or [aci789589] Temu   $500 Off Code — [aci789589 ] Or [aci789589] Best Temu   $200 Off Code — [aci789589 ] Or [aci789589] Temu   Coupon Code first order — [aci789589] Or [aci789589] Temu   Coupon Code for New user — [aci789589] Or [aci789589] Temu   Coupon Code A$100 off — [aci789589] Or [aci789589] Temu   Coupon Code $50 off — [aci789589] Or [aci789589] Temu   Coupon Code $100 off — [aci789589] Or [aci789589] Temu   Promo Code 2025 — [aci789589] Or [aci789589] Temu   Coupon Code $200 off — [aci789589] Or [aci789589] Temu   Coupon Code $90 off — [aci789589] Or [aci789589] Temu   Sign up Bonus Code — [aci789589] Or [aci789589] Temu   Coupon Code A$120 off — [aci789589] Or [aci789589] Our exclusive Temu   coupon code allows you to take a flat $200 off your purchase with an added 100% discount on top. As a new Temu   shopper, you can save up to $100 using code [aci789589] Or [aci789589]. Returning customers can also enjoy a $100 discount on their next purchases with this code. Temu   Coupon Code for Your Country Sign-up Bonus Temu   $100 Off Code  USA      [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA     [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code USA  [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Japan [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Mexico [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Chile [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code USA [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Colombia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Malaysia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Philippines [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code South Korea [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA      [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Pakistan [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Finland [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Saudi Arabia [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Qatar [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code France [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Germany [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code  USA   [aci789589] Or [aci789589] - 100% off Temu   $100 Off Code Israel [aci789589] Or [aci789589] - 100% off Get a $100 discount on your Temu   order with the promo code [aci789589] Or [aci789589]. You can get a discount by clicking on the item to purchase and entering this Temu   coupon code $100 off [aci789589] Or [aci789589]. Temu   Coupon Code [aci789589] Or [aci789589]: Get Up To 90% OFF In NOV 2025 Are you looking for the best Temu   coupon codes to get amazing discounts? Our Temu   coupons are perfect for getting those extra savings you crave. We regularly test our coupon codes for Temu   to ensure they work flawlessly, giving you a guaranteed discount every time. Temu   New User Coupon [aci789589] Or [aci789589]: Up To $100 OFF For First-Time Users Our Temu   first-time user coupon codes are designed just for new customers, offering the biggest discounts and the best deals currently available on Temu  . To maximize your savings, download the Temu   app and apply our Temu   new user coupon during checkout.
    • Looking to score big savings on your favorite products? The acr639380 Temu coupon code is your ticket to maximum benefits — whether you’re in the USA, Canada, or Europe. This powerful discount code is perfect for both new and existing customers, unlocking exclusive discounts, special offers, free gifts, and unique bundles. So, whether you’re searching for a Temu 40% off coupon for new customers or a Temu coupon code for existing users in 2025, this guide has got you covered. Let’s dive into how you can make the most out of this amazing discount.  What Is the Temu 40% Off Coupon Code? The Temu 40% off coupon code is an exclusive promotional offer designed to help shoppers save big across a wide variety of products. Best of all — it works for both first-time users and returning shoppers.  Key Benefits of Using Code acr639380: 40% off your first order for new customers.   $100 coupon bundle for new users, redeemable across multiple purchases.   40% discount for existing customers on select items.   Additional $100 off promo code for loyal customers in the USA and Canada.   Free shipping to over 68 countries, including the USA, Canada, and Europe.   Extra 30% off on any item, stacking with ongoing promotions.   Free gifts with express shipping for loyal customers.   This makes it one of the most versatile and rewarding discount codes available on Temu right now.  Temu Coupon Code 40% Off for New Users If you’re new to Temu, you’re in luck! The acr639380 code brings new users unmatched benefits: Flat 40% off your first purchase — making it the ideal chance to grab your wishlist items.   $100 coupon bundle available immediately after signup.   Up to $100 in bonus coupon packs for future purchases.   Free shipping to over 68 countries.   An additional 30% discount on select products for first-time customers.   New shoppers should definitely take advantage of this code to experience Temu’s massive catalog without overspending.  How to Redeem the Temu 40% Off Coupon Code (For New Customers) Redeeming the code is easy — just follow these steps: Visit the Temu website or open the app.   Sign up for a new account.   Browse and add items to your shopping cart.   At checkout, enter the code acr639380 in the promo code box.   Click ‘Apply’ — your total will instantly reduce by 40%.   Complete your order and enjoy your savings!    Temu Coupon Code 40% Off for Existing Customers Good news — it’s not just new users who get to save. Existing Temu shoppers can also use the acr639380 code to access great discounts: 40% off select items.   $100 coupon bundle for multiple purchases.   Free express shipping and gifts for loyal customers in the USA and Canada.   An additional 30% discount on top of other ongoing deals.   Free shipping to 68+ countries.   It’s an excellent way to continue enjoying deals even after your first order.  How to Use the Temu 40% Off Coupon Code (For Existing Users) If you already have a Temu account: Log into your Temu account.   Add your favorite products to your cart.   Proceed to checkout and enter acr639380 in the “Apply Coupon” section.   Click ‘Apply’ and watch your total drop by 40%.   Complete your purchase and enjoy those savings.    Where to Find the Latest Temu 40% Off Coupon Codes Want to stay ahead with fresh discounts? Here’s where to find verified, up-to-date Temu coupons: Sign up for Temu’s newsletter to receive promo codes directly to your inbox.   Follow Temu’s official social media pages for exclusive discount announcements.   Check reputable coupon websites that regularly update new Temu promo codes.   Visit Temu’s in-app promotions section for seasonal offers and flash sales.    How Temu 40% Off Coupons Work The Temu 40% off coupons apply directly at checkout, reducing your order total by 40%. These codes often don’t have expiration dates and can be combined with other promotions in select cases. Simply enter the code before finalizing payment to enjoy instant savings.  How to Earn 40% Off Coupons as a New Customer New customers can unlock this special offer easily: Sign up for the Temu app or website.   Receive a welcome package of promo codes and discounts via email.   Apply the acr639380 code during your first purchase for instant 40% off.    Advantages of Using Temu 40% Off Coupons Why use this code? Here’s what makes it worth it: Massive 40% discount on your first order.   $100 coupon bundle for new shoppers.   70% off popular products on top of existing deals.   Additional 30% off for existing customers.   Free international shipping to 68 countries.   No expiration date for ongoing savings.    Temu Free Gifts and Special Deals (2025) More than just discounts — using acr639380 gives you access to these exclusive perks: Free gift for new customers with your first order.   40% off first and existing customer purchases.   Extra 30% off storewide.   Up to 70% off select trending products.   Free express shipping to the USA, Canada, and Europe.    Pros and Cons of Using Temu 40% Off Coupon Code Pros Cons 40% off for both new and existing customers Some items may not be eligible for discounts $100 coupon bundle for new customers Limited regional availability for certain coupons Additional 30% discounts on selected products May only apply to specific product categories Free shipping to 68+ countries Occasional limited stock on high-demand items No expiration date on most promo codes Not all promotions can be stacked together  Temu 40% Off Coupon Terms & Conditions (2025) Valid for both new and existing users.   Available in USA, Canada, Europe, and 68 other countries.   No minimum purchase required.   Multiple uses permitted as per promo eligibility.   Most codes, including acr639380, have no set expiration date.   Cannot be combined with select limited-time sitewide promotions.    Final Thoughts The Temu coupon code 40% off (acr639380) is one of the best ways to save big on your favorite products in 2025. Whether you’re a new shopper looking for your first big discount or a loyal customer hunting for the next great deal, this code delivers value every time. Don’t miss out — apply the acr639380 code at checkout and start saving today!  FAQs About Temu 40% Off Coupon Code Q: Is the Temu 40% off coupon for first-time users only? No — it’s available for both new and existing customers. Q: How do I redeem the Temu coupon code 40% off? Enter acr639380 in the promo code box at checkout and click ‘Apply’. Q: Can I use this code for multiple purchases? Yes — depending on promo rules and item eligibility. Q: Does the Temu 40% off coupon have an expiration date? No — most Temu codes, including this one, don’t expire. Q: Can I share the Temu coupon code with my friends? Absolutely! Share the acr639380 code and let them enjoy the savings too.
    • Thank you so much! I didnt see it in the log😭😭  
  • Topics

×
×
  • Create New...

Important Information

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