Jump to content

[1.12.2] Weird missing model variant error (#null/inventory)


Recommended Posts

Posted

Okay, so I have a mod that creates "invisible" tile entities that do not go onto any creative tab. I think I initially didn't make any block state variant for "inventory" but I think that gave me some errors. So I added the "inventory" to my block state and registered accordingly. However, I must have screwed something up because (although the game works) I'm getting error in the console:

 

[09:07:05] [main/ERROR] [FML]: Exception loading model for variant movinglightsource:null#inventory for items ["movinglightsource:movinglightsource_11", "movinglightsource:movinglightsource_12", "movinglightsource:movinglightsource_13", "movinglightsource:movinglightsource_14", "movinglightsource:movinglightsource_15", "movinglightsource:movinglightsource", "movinglightsource:movinglightsource_7", "movinglightsource:movinglightsource_9"], normal location exception: 
net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model movinglightsource:item/null with loader VanillaLoader.INSTANCE, skipping

 

The whole console log is:

Spoiler

[09:06:46] [main/INFO] [GradleStart]: Extra: []
[09:06:46] [main/INFO] [GradleStart]: Running with arguments: [--userProperties, {}, --assetsDir, C:/Users/Aaron/.gradle/caches/minecraft/assets, --assetIndex, 1.12, --accessToken{REDACTED}, --version, 1.12.2, --tweakClass, net.minecraftforge.fml.common.launcher.FMLTweaker, --tweakClass, net.minecraftforge.gradle.tweakers.CoremodTweaker]
[09:06:46] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[09:06:46] [main/INFO] [LaunchWrapper]: Using primary tweak class name net.minecraftforge.fml.common.launcher.FMLTweaker
[09:06:46] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.CoremodTweaker
[09:06:46] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLTweaker
[09:06:46] [main/INFO] [FML]: Forge Mod Loader version 14.23.5.2768 for Minecraft 1.12.2 loading
[09:06:46] [main/INFO] [FML]: Java is Java HotSpot(TM) 64-Bit Server VM, version 1.8.0_171, running on Windows 10:amd64:10.0, installed at C:\Program Files\Java\jre1.8.0_171
[09:06:46] [main/ERROR] [FML]: Apache Maven library folder was not in the format expected. Using default libraries directory.
[09:06:46] [main/ERROR] [FML]: Full: C:\Users\Aaron\.gradle\caches\modules-2\files-2.1\org.apache.maven\maven-artifact\3.5.3\7dc72b6d6d8a6dced3d294ed54c2cc3515ade9f4\maven-artifact-3.5.3.jar
[09:06:46] [main/ERROR] [FML]: Trimmed: c:/users/aaron/.gradle/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.5.3/
[09:06:46] [main/INFO] [FML]: Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation
[09:06:46] [main/INFO] [FML]: Detected deobfuscated environment, loading log configs for colored console logs.
2018-10-14 09:06:47,569 main WARN Disabling terminal, you're running in an unsupported environment.
[09:06:47] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLCorePlugin (net.minecraftforge.fml.relauncher.FMLCorePlugin), we are in deobf and it's a forge core plugin
[09:06:47] [main/INFO] [FML]: Ignoring missing certificate for coremod FMLForgePlugin (net.minecraftforge.classloading.FMLForgePlugin), we are in deobf and it's a forge core plugin
[09:06:47] [main/INFO] [FML]: Searching E:\Modding Workspace\run\assets\.\mods for mods
[09:06:47] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.CoremodTweaker
[09:06:47] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.fml.relauncher.FMLCorePlugin
[09:06:47] [main/INFO] [GradleStart]: Injecting location in coremod net.minecraftforge.classloading.FMLForgePlugin
[09:06:47] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[09:06:47] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[09:06:47] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[09:06:47] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[09:06:47] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLInjectionAndSortingTweaker
[09:06:47] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[09:06:48] [main/ERROR] [FML]: FML appears to be missing any signature data. This is not a good thing
[09:06:48] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.relauncher.CoreModManager$FMLPluginWrapper
[09:06:48] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.FMLDeobfTweaker
[09:06:49] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.gradle.tweakers.AccessTransformerTweaker
[09:06:49] [main/INFO] [LaunchWrapper]: Loading tweak class name net.minecraftforge.fml.common.launcher.TerminalTweaker
[09:06:49] [main/INFO] [LaunchWrapper]: Calling tweak class net.minecraftforge.fml.common.launcher.TerminalTweaker
[09:06:49] [main/INFO] [LaunchWrapper]: Launching wrapped minecraft {net.minecraft.client.main.Main}
[09:06:49] [main/INFO] [minecraft/Minecraft]: Setting user: Player636
[09:06:51] [main/INFO] [minecraft/Minecraft]: LWJGL Version: 2.9.4
[09:06:52] [main/INFO] [FML]: -- System Details --
Details:
    Minecraft Version: 1.12.2
    Operating System: Windows 10 (amd64) version 10.0
    Java Version: 1.8.0_171, Oracle Corporation
    Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
    Memory: 90299280 bytes (86 MB) / 415236096 bytes (396 MB) up to 1895825408 bytes (1808 MB)
    JVM Flags: 0 total; 
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    FML: 
    Loaded coremods (and transformers): 
    GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 416.16' Renderer: 'GeForce GTX 760/PCIe/SSE2'
[09:06:52] [main/INFO] [FML]: MinecraftForge v14.23.5.2768 Initialized
[09:06:52] [main/INFO] [FML]: Starts to replace vanilla recipe ingredients with ore ingredients.
[09:06:52] [main/INFO] [FML]: Replaced 1036 ore ingredients
[09:06:53] [main/INFO] [FML]: Searching E:\Modding Workspace\run\assets\.\mods for mods
[09:06:54] [main/INFO] [FML]: Forge Mod Loader has identified 7 mods to load
[09:06:54] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, movinglightsource, flying_things, bonetorch] at CLIENT
[09:06:54] [main/INFO] [FML]: Attempting connection with missing mods [minecraft, mcp, FML, forge, movinglightsource, flying_things, bonetorch] at SERVER
[09:06:55] [main/INFO] [minecraft/SimpleReloadableResourceManager]: Reloading ResourceManager: Default, FMLFileResourcePack:Forge Mod Loader, FMLFileResourcePack:Minecraft Forge, FMLFileResourcePack:Torches and Moving Light Sources, FMLFileResourcePack:The Flying Things, FMLFileResourcePack:Bone Torch Mod
[09:06:55] [main/INFO] [FML]: Processing ObjectHolder annotations
[09:06:55] [main/INFO] [FML]: Found 1184 ObjectHolder annotations
[09:06:55] [main/INFO] [FML]: Identifying ItemStackHolder annotations
[09:06:55] [main/INFO] [FML]: Found 0 ItemStackHolder annotations
[09:06:55] [main/INFO] [FML]: Configured a dormant chunk cache size of 0
[09:06:55] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Starting version check at http://files.minecraftforge.net/maven/net/minecraftforge/forge/promotions_slim.json
[09:06:55] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.proxy.CommonProxy:initConfig:73]: Torches and Moving Light Sources config path = E:\Modding Workspace\run\assets\config\movinglightsource.cfg
[09:06:55] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.proxy.CommonProxy:initConfig:74]: Config file exists = true
[09:06:55] [Thread-3/INFO] [FML]: Using sync timing. 200 frames of Display.update took 102594808 nanos
[09:06:55] [main/INFO] [FML]: Applying holder lookups
[09:06:55] [main/INFO] [FML]: Holder lookups applied
[09:06:55] [main/INFO] [FML]: Applying holder lookups
[09:06:55] [main/INFO] [FML]: Holder lookups applied
[09:06:55] [main/INFO] [FML]: Applying holder lookups
[09:06:55] [main/INFO] [FML]: Holder lookups applied
[09:06:55] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry$RegistrationHandler:onModelEvent:106]: Registering block models
[09:06:55] [main/INFO] [FML]: Applying holder lookups
[09:06:55] [main/INFO] [FML]: Holder lookups applied
[09:06:55] [main/INFO] [FML]: Injecting itemstacks
[09:06:55] [main/INFO] [FML]: Itemstack injection complete
[09:06:55] [Forge Version Check/INFO] [forge.VersionCheck]: [forge] Found status: UP_TO_DATE Target: null
[09:06:55] [Forge Version Check/INFO] [forge.VersionCheck]: [flying_things] Starting version check at https://raw.githubusercontent.com/Corail31/trash/master/update_flying_things.json
[09:06:55] [Forge Version Check/INFO] [forge.VersionCheck]: [flying_things] Found status: UP_TO_DATE Target: null
[09:07:01] [Sound Library Loader/INFO] [minecraft/SoundManager]: Starting up SoundSystem...
[09:07:01] [Thread-5/INFO] [minecraft/SoundManager]: Initializing LWJGL OpenAL
[09:07:01] [Thread-5/INFO] [minecraft/SoundManager]: (The LWJGL binding of OpenAL.  For more information, see http://www.lwjgl.org)
AL lib: (EE) DoReset: Failed to check format support: 0x88890008
AL lib: (EE) DoReset: Failed to initialize audio client: 0x88890008
Exception in thread "Thread-5" [09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]: org.lwjgl.openal.OpenALException: Invalid Device
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at org.lwjgl.openal.Util.checkALCError(Util.java:55)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at org.lwjgl.openal.ALC10.alcCreateContext(ALC10.java:251)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at org.lwjgl.openal.AL.init(AL.java:173)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at org.lwjgl.openal.AL.create(AL.java:143)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at org.lwjgl.openal.AL.create(AL.java:102)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at org.lwjgl.openal.AL.create(AL.java:206)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.libraries.LibraryLWJGLOpenAL.init(LibraryLWJGLOpenAL.java:164)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.SoundSystem.CommandNewLibrary(SoundSystem.java:1576)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.SoundSystem.CommandQueue(SoundSystem.java:2572)
[09:07:01] [Thread-5/INFO] [STDERR]: [java.lang.ThreadGroup:uncaughtException:-1]:     at paulscode.sound.CommandThread.run(CommandThread.java:121)
[09:07:05] [main/INFO] [FML]: Max texture size: 16384
[09:07:05] [main/INFO] [minecraft/TextureMap]: Created: 512x512 textures-atlas
[09:07:05] [main/ERROR] [FML]: Exception loading model for variant movinglightsource:null#inventory for items ["movinglightsource:movinglightsource_11", "movinglightsource:movinglightsource_12", "movinglightsource:movinglightsource_13", "movinglightsource:movinglightsource_14", "movinglightsource:movinglightsource_15", "movinglightsource:movinglightsource", "movinglightsource:movinglightsource_7", "movinglightsource:movinglightsource_9"], normal location exception: 
net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model movinglightsource:item/null with loader VanillaLoader.INSTANCE, skipping
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:161) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:302) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:175) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:151) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:132) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:25) [start/:?]
Caused by: java.io.FileNotFoundException: movinglightsource:models/item/null.json
    at net.minecraft.client.resources.FallbackResourceManager.getResource(FallbackResourceManager.java:73) ~[FallbackResourceManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:65) ~[SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadModel(ModelBakery.java:334) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.access$1400(ModelLoader.java:115) ~[ModelLoader.class:?]
    at net.minecraftforge.client.model.ModelLoader$VanillaLoader.loadModel(ModelLoader.java:861) ~[ModelLoader$VanillaLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:157) ~[ModelLoaderRegistry.class:?]
    ... 20 more
[09:07:05] [main/ERROR] [FML]: Exception loading model for variant movinglightsource:null#inventory for items ["movinglightsource:movinglightsource_11", "movinglightsource:movinglightsource_12", "movinglightsource:movinglightsource_13", "movinglightsource:movinglightsource_14", "movinglightsource:movinglightsource_15", "movinglightsource:movinglightsource", "movinglightsource:movinglightsource_7", "movinglightsource:movinglightsource_9"], blockstate location exception: 
net.minecraftforge.client.model.ModelLoaderRegistry$LoaderException: Exception loading model movinglightsource:null#inventory with loader VariantLoader.INSTANCE, skipping
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:161) ~[ModelLoaderRegistry.class:?]
    at net.minecraftforge.client.model.ModelLoader.loadItemModels(ModelLoader.java:296) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelBakery.loadVariantItemModels(ModelBakery.java:175) ~[ModelBakery.class:?]
    at net.minecraftforge.client.model.ModelLoader.setupModelRegistry(ModelLoader.java:151) ~[ModelLoader.class:?]
    at net.minecraft.client.renderer.block.model.ModelManager.onResourceManagerReload(ModelManager.java:28) [ModelManager.class:?]
    at net.minecraft.client.resources.SimpleReloadableResourceManager.registerReloadListener(SimpleReloadableResourceManager.java:132) [SimpleReloadableResourceManager.class:?]
    at net.minecraft.client.Minecraft.init(Minecraft.java:559) [Minecraft.class:?]
    at net.minecraft.client.Minecraft.run(Minecraft.java:421) [Minecraft.class:?]
    at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
    at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
    at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
    at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
    at GradleStart.main(GradleStart.java:25) [start/:?]
Caused by: net.minecraft.client.renderer.block.model.ModelBlockDefinition$MissingVariantException
    at net.minecraft.client.renderer.block.model.ModelBlockDefinition.getVariant(ModelBlockDefinition.java:83) ~[ModelBlockDefinition.class:?]
    at net.minecraftforge.client.model.ModelLoader$VariantLoader.loadModel(ModelLoader.java:1175) ~[ModelLoader$VariantLoader.class:?]
    at net.minecraftforge.client.model.ModelLoaderRegistry.getModel(ModelLoaderRegistry.java:157) ~[ModelLoaderRegistry.class:?]
    ... 20 more
[09:07:06] [main/INFO] [FML]: Applying holder lookups
[09:07:06] [main/INFO] [FML]: Holder lookups applied
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:97]: Found a mod block = bonetorch:bonetorch with light level = 14
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:117]: List of all light-emitting items is: 
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:glowstone Block{movinglightsource:movinglightsource_15}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:sea_lantern Block{movinglightsource:movinglightsource_15}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:beacon Block{movinglightsource:movinglightsource_15}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:redstone_torch Block{movinglightsource:movinglightsource_9}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:lit_pumpkin Block{movinglightsource:movinglightsource_15}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:end_rod Block{movinglightsource:movinglightsource_14}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:redstone_ore Block{movinglightsource:movinglightsource_7}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:glowstone_dust Block{movinglightsource:movinglightsource_15}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: bonetorch:bonetorch Block{movinglightsource:movinglightsource_14}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:torch Block{movinglightsource:movinglightsource_14}
[09:07:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource:initMapLightSources:122]: minecraft:lava_bucket Block{movinglightsource:movinglightsource_15}
[09:07:06] [main/INFO] [FML]: Injecting itemstacks
[09:07:06] [main/INFO] [FML]: Itemstack injection complete
[09:07:06] [main/INFO] [FML]: Forge Mod Loader has successfully loaded 7 mods
[09:07:06] [main/INFO] [mojang/NarratorWindows]: Narrator library for x64 successfully loaded
[09:07:07] [Realms Notification Availability checker #1/INFO] [mojang/RealmsClient]: Could not authorize you against Realms server: Invalid session id
[09:07:41] [Sound Library Loader/WARN] [minecraft/SoundManager]: ERROR MESSAGE:
[09:07:41] [Sound Library Loader/INFO] [minecraft/SoundManager]: SoundSystem did not load after 30 seconds.
[09:07:41] [Sound Library Loader/INFO] [minecraft/SoundManager]: Starting up SoundSystem...
[09:07:42] [Thread-8/INFO] [minecraft/SoundManager]: Switching to No Sound
[09:07:42] [Thread-8/INFO] [minecraft/SoundManager]: (Silent Mode)
[09:07:42] [Sound Library Loader/INFO] [minecraft/SoundManager]: Sound engine started
[09:12:51] [main/INFO] [minecraft/Minecraft]: Stopping!
[09:12:51] [main/INFO] [minecraft/SoundManager]: SoundSystem shutting down...
[09:12:51] [main/WARN] [minecraft/SoundManager]: Author: Paul Lamb, www.paulscode.com
 


So the blockstate JSON is simple:

{
    "forge_marker": 1,
    "variants": {
        "normal": { "model": "movinglightsource:movinglightsource" },
        "inventory": { "model": "movinglightsource:movinglightsource" }
    }
}

 

And block model JSON is simple:

{      

    "textures": 
    {
        "pole": "blocks/log_big_oak"
    },
   "elements":[  
      {  
         "__comment":"basically make it have no surface area so it is invisible", 
         "from":[ 0.5, 0.5, 0.5 ],
         "to":[ 0.5, 0.5, 0.5 ],
         "faces":{  
            "down":{ "uv": [ 0, 0, 15, 15 ], "texture":"#pole" },
            "up":{ "uv": [ 0, 0, 15, 15 ], "texture": "#pole" },
            "north":{ "uv": [ 0, 0, 15, 15 ], "texture":"#pole" },
            "south":{ "uv": [ 0, 0, 15, 15 ], "texture":"#pole" },
            "west":{ "uv": [ 0, 0, 15, 15 ], "texture":"#pole" },
            "east":{ "uv": [ 0, 0, 15, 15 ], "texture":"#pole" }
         }
      }
   ]
}

 

and the item model JSON is simple:

{
    "parent": "movinglightsource:block/movinglightsource",
    "display": {
        "thirdperson": {
            "rotation": [ 10, -45, 170 ],
            "translation": [ 0, 1.5, -2.75 ],
            "scale": [ 0.375, 0.375, 0.375 ]
        }
    }
}

 

And here is my class that does all the registration:

Spoiler

package com.blogspot.jabelarminecraft.movinglightsource.registries;

import com.blogspot.jabelarminecraft.movinglightsource.MainMod;
import com.blogspot.jabelarminecraft.movinglightsource.blocks.BlockMovingLightSource;
import com.blogspot.jabelarminecraft.movinglightsource.utilities.Utilities;

import net.minecraft.block.Block;
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.model.ModelLoader;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.registries.IForgeRegistry;

@ObjectHolder(MainMod.MODID)
public class BlockRegistry
{
     // instantiate blocks
    public final static BlockMovingLightSource movinglightsource = null;
    public final static BlockMovingLightSource movinglightsource_15 = null;
    public final static BlockMovingLightSource movinglightsource_14 = null;
    public final static BlockMovingLightSource movinglightsource_13 = null;
    public final static BlockMovingLightSource movinglightsource_12 = null;
    public final static BlockMovingLightSource movinglightsource_11 = null;
    public final static BlockMovingLightSource movinglightsource_9 = null;
    public final static BlockMovingLightSource movinglightsource_7 = null;
    
    // instantiate itemblocks
    @ObjectHolder("movinglightsource")
    public final static ItemBlock itemblock_movinglightsource = null;
    @ObjectHolder("movinglightsource_15")
    public final static ItemBlock itemblock_movinglightsource_15 = null;
    @ObjectHolder("movinglightsource_14")
    public final static ItemBlock itemblock_movinglightsource_14 = null;
    @ObjectHolder("movinglightsource_13")
    public final static ItemBlock itemblock_movinglightsource_13 = null;
    @ObjectHolder("movinglightsource_12")
    public final static ItemBlock itemblock_movinglightsource_12 = null;
    @ObjectHolder("movinglightsource_11")
    public final static ItemBlock itemblock_movinglightsource_11 = null;
    @ObjectHolder("movinglightsource_9")
    public final static ItemBlock itemblock_movinglightsource_9 = null;
    @ObjectHolder("movinglightsource_7")
    public final static ItemBlock itemblock_movinglightsource_7 = null;
    

    @Mod.EventBusSubscriber(modid = MainMod.MODID)
    static class RegistrationHandler
    {
        /**
         * Register this mod's {@link Block}s.
         *
         * @param event The event
         */
        @SubscribeEvent
        public static void onEvent(final RegistryEvent.Register<Block> event)
        {
            final IForgeRegistry<Block> registry = event.getRegistry();
            
            registry.register(new BlockMovingLightSource("movinglightsource"));
            registry.register(new BlockMovingLightSource("movinglightsource_15", 1.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_14", 14.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_13", 13.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_12", 12.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_11", 11.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_9", 9.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_7", 7.0F / 15.0F));
        }

        /**
         * Register this mod's {@link ItemBlock}s.
         *
         * @param event The event
         */
        @SubscribeEvent
        public static void registerItemBlocks(final RegistryEvent.Register<Item> event)
        {
            final IForgeRegistry<Item> registry = event.getRegistry();

            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource), movinglightsource.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_15), movinglightsource_15.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_14), movinglightsource_14.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_13), movinglightsource_13.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_12), movinglightsource_12.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_11), movinglightsource_11.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_9), movinglightsource_9.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_7), movinglightsource_7.getRegistryName().getPath()));
        }
        
        /**
         * On model event.
         *
         * @param event the event
         */
        @SubscribeEvent
        @SideOnly(Side.CLIENT)
        public static void onModelEvent(final ModelRegistryEvent event)
        {
            // DEBUG
            System.out.println("Registering block models");

            registerBlockModel(movinglightsource);
            registerBlockModel(movinglightsource_15);
            registerBlockModel(movinglightsource_14);
            registerBlockModel(movinglightsource_13);
            registerBlockModel(movinglightsource_12);
            registerBlockModel(movinglightsource_11);
            registerBlockModel(movinglightsource_9);
            registerBlockModel(movinglightsource_7);
            registerItemBlockModels();
        }
    }

    /**
     * Register block model.
     *
     * @param parBlock the par block
     */
    @SideOnly(Side.CLIENT)
    public static void registerBlockModel(Block parBlock)
    {
        registerBlockModel(parBlock, 0);
    }

    /**
     * Register block model.
     *
     * @param parBlock the par block
     * @param parMetaData the par meta data
     */
    @SideOnly(Side.CLIENT)
    public static void registerBlockModel(Block parBlock, int parMetaData)
    {
//        // DEBUG
//        System.out.println("Registering block model for"
//                + ": " + parBlock.getRegistryName());

        ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(parBlock), parMetaData,
                new ModelResourceLocation(MainMod.MODID + ":" + parBlock.getTranslationKey().substring(5), "inventory"));
    }

    /**
     * Register item block models.
     */
    @SideOnly(Side.CLIENT)
    public static void registerItemBlockModels()
    {
        registerItemBlockModel(itemblock_movinglightsource);
        registerItemBlockModel(itemblock_movinglightsource_15);
        registerItemBlockModel(itemblock_movinglightsource_14);
        registerItemBlockModel(itemblock_movinglightsource_13);
        registerItemBlockModel(itemblock_movinglightsource_12);
        registerItemBlockModel(itemblock_movinglightsource_11);
        registerItemBlockModel(itemblock_movinglightsource_9);
        registerItemBlockModel(itemblock_movinglightsource_7);
    }

    /**
     * Register item block model.
     *
     * @param parBlock the item block
     */
    @SideOnly(Side.CLIENT)
    public static void registerItemBlockModel(ItemBlock parBlock)
    {
        registerItemBlockModel(parBlock, 0);
    }

    /**
     * Register item block model.
     *
     * @param parBlock the item block
     * @param parMetaData the metadata
     */
    @SideOnly(Side.CLIENT)
    public static void registerItemBlockModel(ItemBlock parBlock, int parMetaData)
    {
//        // DEBUG
//        System.out.println("Registering item block model for"
//                + ": " + parBlock.getRegistryName());
        
        ModelLoader.setCustomModelResourceLocation(parBlock, parMetaData,
                new ModelResourceLocation(parBlock.getRegistryName(), "inventory"));
    }
}

 

Summary -- what does the "null" in the "variant movinglightsource:null#inventory for items" error mean? -- what is that looking for?

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted (edited)
4 minutes ago, jabelar said:

public final static BlockMovingLightSource movinglightsource = null;
    public final static BlockMovingLightSource movinglightsource_15 = null;
    public final static BlockMovingLightSource movinglightsource_14 = null;
    public final static BlockMovingLightSource movinglightsource_13 = null;
    public final static BlockMovingLightSource movinglightsource_12 = null;
    public final static BlockMovingLightSource movinglightsource_11 = null;
    public final static BlockMovingLightSource movinglightsource_9 = null;
    public final static BlockMovingLightSource movinglightsource_7 = null;

First off never visually instantiated. Which will cause an issue.

 

Edited by Animefan8888

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted

Try not registering null items.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted (edited)
40 minutes ago, Draco18s said:

Try not registering null items.

If only I had thought of that! ?, but the weird thing is that it seems to know what the item is -- the item itself isn't null at least according to the error message:

 

[09:07:05] [main/ERROR] [FML]: Exception loading model for variant movinglightsource:null#inventory for items ["movinglightsource:movinglightsource_11", "movinglightsource:movinglightsource_12", "movinglightsource:movinglightsource_13", "movinglightsource:movinglightsource_14", "movinglightsource:movinglightsource_15", "movinglightsource:movinglightsource", "movinglightsource:movinglightsource_7", "movinglightsource:movinglightsource_9"], normal location exception: 
 

So it is the item variant that seems to be null. But the weird thing is that the block (and related item block) don't have any intended variants. Obviously I have done something to make it think there are variants somehow, but my block has no Property that would create non-default variants.

 

I know with JSON it is usually just a simple typographical error, but just looking at where to look for this error. Why would it think there is a variant "#null/inventory" based on my JSONs? I will try to trace my registry code execution to see if a null occurs there, but just seems weird as I use the same code setup a lot without this error.

Edited by jabelar

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
13 minutes ago, jabelar said:

I know with JSON it is usually just a simple typographical error, but just looking at where to look for this error. Why would it think there is a variant "#null/inventory" based on my JSONs? I will try to trace my registry code execution to see if a null occurs there, but just seems weird as I use the same code setup a lot without this error.

I believe it is the registry name that is null.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted (edited)
55 minutes ago, Animefan8888 said:

I believe it is the registry name that is null.

But if you look at that line of the error message it says the error is for a list of items that it properly lists out their registry names. So it is saying the problem variant is #null/inventory for a number of items which it then lists out.

 

I'll work on figuring this out, but just trying to see if anyone knows where best to look since JSON can fail in so many ways.

 

I THINK the proper way is to register an ItemBlock for a Block and I think that then the item will try to match models for each blockstate of the associated block. In my case though I don't have any custom blockstates, so it is just about the default model types (I think), which includes "inventory". I am registering the block and the item block with same registry name and I think I have the @ObjectHolder reference names matching. But of course all it takes is one typo for any of these strings to not match....

Edited by jabelar

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
2 hours ago, jabelar said:

movinglightsource:item/null

modid:item(folder)/filename

2 hours ago, jabelar said:

movinglightsource:null#inventory

modid:filename#variant

 

filename = your registry name for your block/item

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted

All the item blocks seem to be registered. If, in the init stage, I dump all the registered items with:

        System.out.println("All registered items = "+ForgeRegistries.ITEMS.getEntries());

 

The console output lists all my items:

movinglightsource:movinglightsource=net.minecraft.item.ItemBlock@12919b7b, movinglightsource:movinglightsource_15=net.minecraft.item.ItemBlock@4901ff51, movinglightsource:movinglightsource_14=net.minecraft.item.ItemBlock@3033e54c, movinglightsource:movinglightsource_13=net.minecraft.item.ItemBlock@e31d9c2, movinglightsource:movinglightsource_12=net.minecraft.item.ItemBlock@10e5c13c, movinglightsource:movinglightsource_11=net.minecraft.item.ItemBlock@56584f06, movinglightsource:movinglightsource_9=net.minecraft.item.ItemBlock@796ed904, movinglightsource:movinglightsource_7=net.minecraft.item.ItemBlock@7991e022

 

So there does appear to be registered item with corresponding expected registry name for all my blocks.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
3 minutes ago, jabelar said:

So there does appear to be registered item with corresponding expected registry name for all my blocks.

I don't see how this is possible seeing as how none of your Block fields are instantiated and you base all of your Items off of those fields.

2 hours ago, jabelar said:

public final static BlockMovingLightSource movinglightsource = null;
    public final static BlockMovingLightSource movinglightsource_15 = null;
    public final static BlockMovingLightSource movinglightsource_14 = null;
    public final static BlockMovingLightSource movinglightsource_13 = null;
    public final static BlockMovingLightSource movinglightsource_12 = null;
    public final static BlockMovingLightSource movinglightsource_11 = null;
    public final static BlockMovingLightSource movinglightsource_9 = null;
    public final static BlockMovingLightSource movinglightsource_7 = null;

 

2 hours ago, jabelar said:

        public static void onEvent(final RegistryEvent.Register<Block> event)
        {
            final IForgeRegistry<Block> registry = event.getRegistry();
            
            registry.register(new BlockMovingLightSource("movinglightsource"));
            registry.register(new BlockMovingLightSource("movinglightsource_15", 1.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_14", 14.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_13", 13.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_12", 12.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_11", 11.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_9", 9.0F / 15.0F));
            registry.register(new BlockMovingLightSource("movinglightsource_7", 7.0F / 15.0F));
        }
        public static void registerItemBlocks(final RegistryEvent.Register<Item> event)
        {
            final IForgeRegistry<Item> registry = event.getRegistry();

            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource), movinglightsource.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_15), movinglightsource_15.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_14), movinglightsource_14.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_13), movinglightsource_13.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_12), movinglightsource_12.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_11), movinglightsource_11.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_9), movinglightsource_9.getRegistryName().getPath()));
            registry.register(Utilities.setItemName(new ItemBlock(movinglightsource_7), movinglightsource_7.getRegistryName().getPath()));
        }

 

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Posted

I don't see how this is possible seeing as how none of your Block fields are instantiated .

 

You need to study the concept of @ObjectHolder annotation. All those null fields are populated in several passes between the registry events. If you watch the console in your mods you'll see a bunch of FML messages saying "Applying holder lookups" then "Holder lookups applied".

 

Basically what happens is that after the block registry event, your code is scanned for @ObjectHolder annotations. Wherever the type and name (i.e. the actual field name in Java, no string needed) match, the null field will get populated FROM the registry. Then the process is repeated for items after they are registered.

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted
5 minutes ago, jabelar said:

You need to study the concept of @ObjectHolder annotation. All those null fields are populated in several passes between the registry events.

Those fields @Animefan8888 is talking about are not annotated with @ObjectHolder though as far as I can see.

 

2 hours ago, jabelar said:

public final static BlockMovingLightSource movinglightsource = null;
    public final static BlockMovingLightSource movinglightsource_15 = null;
    public final static BlockMovingLightSource movinglightsource_14 = null;
    public final static BlockMovingLightSource movinglightsource_13 = null;
    public final static BlockMovingLightSource movinglightsource_12 = null;
    public final static BlockMovingLightSource movinglightsource_11 = null;
    public final static BlockMovingLightSource movinglightsource_9 = null;
    public final static BlockMovingLightSource movinglightsource_7 = null;

 

Posted (edited)
14 minutes ago, V0idWa1k3r said:

Those fields @Animefan8888 is talking about are not annotated with @ObjectHolder though as far as I can see.

 

 

They don't need to be -- the whole class is. You only need annotation on the field if the Java name doesn't match the registry name. For item blocks I'm appending "itemblock_" to the Java field names so do need the @ObjectHolder annotation directly on each field.

Edited by jabelar

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

Posted (edited)

Just to emphasize that the object holder instantiation works (i.e. the blocks are not null at time I try to register item block models), I put a debug print in my registerItemBlocks() method. The method is now:

    @SideOnly(Side.CLIENT)
    public static void registerItemBlockModel(ItemBlock parBlock, int parMetaData)
    {
//        // DEBUG
        System.out.println("Registering item block model for"
                + ": " + parBlock.getRegistryName());
        
        ModelLoader.setCustomModelResourceLocation(parBlock, parMetaData,
                new ModelResourceLocation(parBlock.getRegistryName(), "inventory"));
    }

 

And the output is:

[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource
[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource_15
[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource_14
[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource_13
[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource_12
[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource_11
[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource_9
[11:49:06] [main/INFO] [STDOUT]: [com.blogspot.jabelarminecraft.movinglightsource.registries.BlockRegistry:registerItemBlockModel:191]: Registering item block model for: movinglightsource:movinglightsource_7

 

In other words, when it goes to register the item block model, the actual block must exist (non null) since it returns a registry name (which is also correct). It doesn't try to register any custom model for a "null:inventory" resource location...

Edited by jabelar

Check out my tutorials here: http://jabelarminecraft.blogspot.com/

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



×
×
  • Create New...

Important Information

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