I'd like to reiterate that this mod is not officially or unofficially related to TerraFirmaCraft, and is in no way based off of it. In fact, I had not heard of TFC until after the initial release. The original idea came from AnonTheMouse, and his idea "Noobcraft". The reason I went with "BetterBeginnings" is because there was already an existing mod named "Noobcraft" from 1.5 that had the exact opposite purpose of this mod, was a base edit, and was fairly low on features.
Yeah I didn't mean to imply there was any link, sorry. The spirit of balancing the early progression in Minecraft survival is where I relate the two, but your mod is more concise and much more compatible with other mods. TFC is great, but they choose to tackle everything from a total conversion standpoint, alienating themselves from established mods that already do certain things very well (like terrain generation).
To share my thoughts: I really liked how you require a knife to make sticks and leather strips, so I expanded on it in a huge way. I made the knife necessary for making many things, such as leather from hide, twine from sticks, etc. The hatchet is needed for making planks from logs, and higher tier hatchets increase the output of planks. I'd like to create more tools specifically for expanding recipes in your new crafting table, for ex. making paper should require a bucket of water and strainer in the side slots.
I'd especially like to expand on the campfire, so that you need a stick to cook meats, a bowl to cook stews, a mould to cook bricks, etc. I love the idea of the campfire/oven.etc being a combination of crafting table and forge. ModTweaker support would be amazing, since it's designed to allow tweaking recipes for your special blocks!
I'm not a programmer, but I'm also in IT and have done scripting and basic programming in the past. I have your source loaded in eclipse with a couple others and been playing with it, learning as I go. I'll wait for the 1.0 update though before trying anything crazy.
I'm working on a private modpack that is just focused on strengthening the core game-play of minecraft, by fixing a lot of balance issues, adding needed mechanics, and fleshing out the progression of survival/adventure play. My goal is to create a solid foundation for more content and theme-based mods to stand on, so everything becomes a more immersive and enjoyable experience. Your mod has been a tremendous help!
According to the wiki, this should overwrite the default drop tables for leaf blocks on trees, and give them a chance to drop sticks. This configuration follows the wiki example almost exactly, yet for some reason does not work. What am I doing wrong?
Hello einsteinsci. I'm a big fan of re-balancing the basic mechanics of Minecraft, especially around the beginning stages, to be more intuitive and and immersive with the whole survival aspect. I'm also a big fan of the many changes made in TerraFirmaCraft, however I don't like its incompatibility with other mods.
I have been putting together a modpack to best simulate TerraFirmaCraft, but with more compatibility with other mods, and your BetterBeginnings mod has been very helpful. I wanted to say thanks for making this mod, and ask if you're interested in sharing ideas on making survival a better experience. I'm learning mod-making through eclipse and would love to ask you question here and there. What do you think?
Hello. I'm working on making some contributions to Better Beginnings mod for 1.7.10. One of the mod features is to restrict block breaking to the right tools, kind of like adventure mode, however the current implementation is awkward and doesn't work well with content added by other mods. For example, there's an item class ItemKnife that inherits the ItemTool class. While the knife can be restricted in what blocks it can mine for drops, it can still break *any* block and this is not good.
I'd like to setup a blacklist/whitelist on what blocks it's even allowed to damage, so that the knife can be used to cut through grass/leaves/webs/etc, but completely unable to break wood or stone. What are the best methods for doing this? I'd love some examples!
I'm completely brand new to modding. I just got the source setup in an eclipse workspace and able to run in a test client. Literally flying by the seat of my pants here. But I'm willing to learn!
Just to test things out, deleted the JAS config folder completely and reloaded the game to regenerate it. The Entity and Spawn folders are not generating at all, for anything. Ruh'oh.
The one on the right is the new one, of course. Note the lack of Lycanite's entries.
Correct me if I'm wrong, but the files are generated by emptying the existing spawn tables. If you disabled the internal spawner on Lycanites, there's no existing spawn tables to empty, and so there's nothing to generate.
I would think that, regardless if the zero weighted biome entries generated in the file, the structure of the file itself should still generate; it would just have the zero weight biomes omitted from the arrays. Have you tried switching Lycanite's spawner back on and then regenerating the files?
erm, not sure I'm to thrilled about that one. I have EVERYTHING set to 0-0-0-0 while I'm editing. So if I was was to update right now, I would lose everything I haven't gotten to yet
I'm pretty sure this should only come into effect when generating new configs; it shouldn't affect existing configs.
Would it put them at 0-0-0-0? or make them the default 0-4-0-4 thing? Because it took me a while to change those 0-4-0-4's to 0-0-0-0 XD.
Even plain ol' Notepad has a replace function that takes 5 seconds. Are you doing this all by hand?
Spawning now works. Only limited stuff is spawning but that could be my fault with how I have things weighted. I can at least move forward with balancing spawns with improved biomes and weights. One problem that I noticed is that JAS is flooding my log with commands and the game seems a bit more laggy. I know there's an overhead with logging enabled, but I don't know if spamming this many commands is considered normal.
[15:58:37] [Server thread/ERROR]: Error processing Overworld content from A|OVERWORLD. The component A|OVERWORLD does not exist.
I also noticed that you have some groups that are purely negative
That might be left over from my trial and error to figure out what syntax was acceptable. I probably deleted the A|OVERWORLD tag from that group, which is why it looks strange.
And did the line it report indicate the correct line?
It reported the correct line the second time, and maybe even first time as well. But without naming the line of which file, it's difficult for me to trance an ominous error about BiomeGroups to a separate spawn config file.
I have updated to the latest version of JAS and so far my spawn configs are not being erased, however nothing is spawning and JAS is spamming the logs repeatedly with:
[Server thread/INFO]: Entity not Spawned due to Empty CREATURE List.
Earlier in the logs slows JAS successfully building the biome spawn lists, creatures and all, so I'm not sure what the problem is. I have not touched the EntityHandler or other configs.
Edit: Also for what it's worth, I deliberately added some misplaced commas to my vanilla spawn config to see what would happen, and here is the result:
eption: com.google.gson.stream.MalformedJsonException: Expected name at line 19 column 8
at com.google.gson.internal.Streams.parse(Streams.java:56) ~[Streams.class:?]
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
at com.google.gson.Gson.fromJson(Gson.java:803) ~[Gson.class:?]
at com.google.gson.Gson.fromJson(Gson.java:741) ~[Gson.class:?]
at jas.common.GsonHelper.readOrCreateFromGson(GsonHelper.java:44) ~[GsonHelper.class:?]
at jas.common.spawner.creature.entry.BiomeSpawnListRegistry.loadFromConfig(BiomeSpawnListRegistry.java:232) ~[BiomeSpawnListRegistry.class:?]
at jas.common.WorldSettings.loadWorldSettings(WorldSettings.java:86) ~[WorldSettings.class:?]
at jas.common.WorldSettings.(WorldSettings.java:43) ~[WorldSettings.class:?]
at jas.common.JustAnotherSpawner.serverStart(JustAnotherSpawner.java:115) ~[JustAnotherSpawner.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[modpack.jar:?]
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[modpack.jar:?]
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[modpack.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?]
at cpw.mods.fml.common.Loader.serverStarting(Loader.java:739) [Loader.class:?]
at cpw.mods.fml.common.FMLCommonHandler.handleServerStarting(FMLCommonHandler.java:278) [FMLCommonHandler.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at Reflector.callBoolean(Reflector.java:332) [Reflector.class:?]
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:161) [bsx.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:387) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [?:?]
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 19 column 8
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:494) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403) ~[JsonReader.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.Streams.parse(Streams.java:44) ~[Streams.class:?]
... 43 more
[13:10:49] [Server thread/ERROR]: A fatal exception occurred during the server starting event
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 19 column 8
at com.google.gson.internal.Streams.parse(Streams.java:56) ~[Streams.class:?]
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
at com.google.gson.Gson.fromJson(Gson.java:803) ~[Gson.class:?]
at com.google.gson.Gson.fromJson(Gson.java:741) ~[Gson.class:?]
at jas.common.GsonHelper.readOrCreateFromGson(GsonHelper.java:44) ~[GsonHelper.class:?]
at jas.common.spawner.creature.entry.BiomeSpawnListRegistry.loadFromConfig(BiomeSpawnListRegistry.java:232) ~[BiomeSpawnListRegistry.class:?]
at jas.common.WorldSettings.loadWorldSettings(WorldSettings.java:86) ~[WorldSettings.class:?]
at jas.common.WorldSettings.(WorldSettings.java:43) ~[WorldSettings.class:?]
at jas.common.JustAnotherSpawner.serverStart(JustAnotherSpawner.java:115) ~[JustAnotherSpawner.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[modpack.jar:?]
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[LoadController.class:?]
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[LoadController.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) ~[LoadController.class:?]
at cpw.mods.fml.common.Loader.serverStarting(Loader.java:739) [Loader.class:?]
at cpw.mods.fml.common.FMLCommonHandler.handleServerStarting(FMLCommonHandler.java:278) [FMLCommonHandler.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at Reflector.callBoolean(Reflector.java:332) [Reflector.class:?]
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:161) [bsx.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:387) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [?:?]
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 19 column 8
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:494) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403) ~[JsonReader.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.Streams.parse(Streams.java:44) ~[Streams.class:?]
... 43 more
[13:10:49] [Server thread/INFO]: Applying holder lookups
There is logging. It clearly didn't work. Care to share where it was so it may be possible to improve it?
JAS seems to do some internal consolidation of the config data, is there logging before that point? My error was something very simple like a misplaced comma, for example:
I have all the syntax errors fixed, but now every-time I load a world, JAS deletes all of the spawn configs and then regenerates them with zero weighted biomes. No errors or anything, just deletes all my settings and starts fresh. I give up at this point.
No, it was not even in the same file. I assume that if there's a syntax error in how a biome is being referenced in the spawn configs, the logfie is going to trace that exception back to the biome config, because minecraft can't see past the results of JAS interpreting the config data. JAS would need to have it's own debugging to catch such things, but there's no documentation on that topic.
0
Yeah I didn't mean to imply there was any link, sorry. The spirit of balancing the early progression in Minecraft survival is where I relate the two, but your mod is more concise and much more compatible with other mods. TFC is great, but they choose to tackle everything from a total conversion standpoint, alienating themselves from established mods that already do certain things very well (like terrain generation).
To share my thoughts: I really liked how you require a knife to make sticks and leather strips, so I expanded on it in a huge way. I made the knife necessary for making many things, such as leather from hide, twine from sticks, etc. The hatchet is needed for making planks from logs, and higher tier hatchets increase the output of planks. I'd like to create more tools specifically for expanding recipes in your new crafting table, for ex. making paper should require a bucket of water and strainer in the side slots.
I'd especially like to expand on the campfire, so that you need a stick to cook meats, a bowl to cook stews, a mould to cook bricks, etc. I love the idea of the campfire/oven.etc being a combination of crafting table and forge. ModTweaker support would be amazing, since it's designed to allow tweaking recipes for your special blocks!
I'm not a programmer, but I'm also in IT and have done scripting and basic programming in the past. I have your source loaded in eclipse with a couple others and been playing with it, learning as I go. I'll wait for the 1.0 update though before trying anything crazy.
I'm working on a private modpack that is just focused on strengthening the core game-play of minecraft, by fixing a lot of balance issues, adding needed mechanics, and fleshing out the progression of survival/adventure play. My goal is to create a solid foundation for more content and theme-based mods to stand on, so everything becomes a more immersive and enjoyable experience. Your mod has been a tremendous help!
0
First of all, thank you very much for this mod! I hope I can get it to work, but I'm having trouble.
I'm trying to add sticks as a drop item for leaf blocks, using the following .json:
According to the wiki, this should overwrite the default drop tables for leaf blocks on trees, and give them a chance to drop sticks. This configuration follows the wiki example almost exactly, yet for some reason does not work. What am I doing wrong?
0
Hello einsteinsci. I'm a big fan of re-balancing the basic mechanics of Minecraft, especially around the beginning stages, to be more intuitive and and immersive with the whole survival aspect. I'm also a big fan of the many changes made in TerraFirmaCraft, however I don't like its incompatibility with other mods.
I have been putting together a modpack to best simulate TerraFirmaCraft, but with more compatibility with other mods, and your BetterBeginnings mod has been very helpful. I wanted to say thanks for making this mod, and ask if you're interested in sharing ideas on making survival a better experience. I'm learning mod-making through eclipse and would love to ask you question here and there. What do you think?
0
Check out TerraFirmaCraft. It's a comprehensive survival mod that does all of these things and more.
1
Hello. I'm working on making some contributions to Better Beginnings mod for 1.7.10. One of the mod features is to restrict block breaking to the right tools, kind of like adventure mode, however the current implementation is awkward and doesn't work well with content added by other mods. For example, there's an item class ItemKnife that inherits the ItemTool class. While the knife can be restricted in what blocks it can mine for drops, it can still break *any* block and this is not good.
I'd like to setup a blacklist/whitelist on what blocks it's even allowed to damage, so that the knife can be used to cut through grass/leaves/webs/etc, but completely unable to break wood or stone. What are the best methods for doing this? I'd love some examples!
I'm completely brand new to modding. I just got the source setup in an eclipse workspace and able to run in a test client. Literally flying by the seat of my pants here. But I'm willing to learn!
0
These new versions are coming out very quickly. You are a busy man!
0
0
Correct me if I'm wrong, but the files are generated by emptying the existing spawn tables. If you disabled the internal spawner on Lycanites, there's no existing spawn tables to empty, and so there's nothing to generate.
I would think that, regardless if the zero weighted biome entries generated in the file, the structure of the file itself should still generate; it would just have the zero weight biomes omitted from the arrays. Have you tried switching Lycanite's spawner back on and then regenerating the files?
I'm pretty sure this should only come into effect when generating new configs; it shouldn't affect existing configs.
Even plain ol' Notepad has a replace function that takes 5 seconds. Are you doing this all by hand?
0
Spawning now works. Only limited stuff is spawning but that could be my fault with how I have things weighted. I can at least move forward with balancing spawns with improved biomes and weights. One problem that I noticed is that JAS is flooding my log with commands and the game seems a bit more laggy. I know there's an overhead with logging enabled, but I don't know if spamming this many commands is considered normal.
Here is another copy of my logfile.
0
Just for reference,here is a link to my full log, before upgrading to your newest release. I noticed this line:
[15:58:37] [Server thread/ERROR]: Error processing Overworld content from A|OVERWORLD. The component A|OVERWORLD does not exist.
That might be left over from my trial and error to figure out what syntax was acceptable. I probably deleted the A|OVERWORLD tag from that group, which is why it looks strange.
It reported the correct line the second time, and maybe even first time as well. But without naming the line of which file, it's difficult for me to trance an ominous error about BiomeGroups to a separate spawn config file.
0
Earlier in the logs slows JAS successfully building the biome spawn lists, creatures and all, so I'm not sure what the problem is. I have not touched the EntityHandler or other configs.
This is my full config folder at the moment: JustAnotherSpawner.zip
Edit: Also for what it's worth, I deliberately added some misplaced commas to my vanilla spawn config to see what would happen, and here is the result:
at com.google.gson.internal.Streams.parse(Streams.java:56) ~[Streams.class:?]
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
at com.google.gson.Gson.fromJson(Gson.java:803) ~[Gson.class:?]
at com.google.gson.Gson.fromJson(Gson.java:741) ~[Gson.class:?]
at jas.common.GsonHelper.readOrCreateFromGson(GsonHelper.java:44) ~[GsonHelper.class:?]
at jas.common.spawner.creature.entry.BiomeSpawnListRegistry.loadFromConfig(BiomeSpawnListRegistry.java:232) ~[BiomeSpawnListRegistry.class:?]
at jas.common.WorldSettings.loadWorldSettings(WorldSettings.java:86) ~[WorldSettings.class:?]
at jas.common.WorldSettings.(WorldSettings.java:43) ~[WorldSettings.class:?]
at jas.common.JustAnotherSpawner.serverStart(JustAnotherSpawner.java:115) ~[JustAnotherSpawner.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[modpack.jar:?]
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[modpack.jar:?]
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[modpack.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?]
at cpw.mods.fml.common.Loader.serverStarting(Loader.java:739) [Loader.class:?]
at cpw.mods.fml.common.FMLCommonHandler.handleServerStarting(FMLCommonHandler.java:278) [FMLCommonHandler.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at Reflector.callBoolean(Reflector.java:332) [Reflector.class:?]
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:161) [bsx.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:387) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [?:?]
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 19 column 8
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:494) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403) ~[JsonReader.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.Streams.parse(Streams.java:44) ~[Streams.class:?]
... 43 more
[13:10:49] [Server thread/ERROR]: A fatal exception occurred during the server starting event
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected name at line 19 column 8
at com.google.gson.internal.Streams.parse(Streams.java:56) ~[Streams.class:?]
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:54) ~[TreeTypeAdapter.class:?]
at com.google.gson.Gson.fromJson(Gson.java:803) ~[Gson.class:?]
at com.google.gson.Gson.fromJson(Gson.java:741) ~[Gson.class:?]
at jas.common.GsonHelper.readOrCreateFromGson(GsonHelper.java:44) ~[GsonHelper.class:?]
at jas.common.spawner.creature.entry.BiomeSpawnListRegistry.loadFromConfig(BiomeSpawnListRegistry.java:232) ~[BiomeSpawnListRegistry.class:?]
at jas.common.WorldSettings.loadWorldSettings(WorldSettings.java:86) ~[WorldSettings.class:?]
at jas.common.WorldSettings.(WorldSettings.java:43) ~[WorldSettings.class:?]
at jas.common.JustAnotherSpawner.serverStart(JustAnotherSpawner.java:115) ~[JustAnotherSpawner.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[modpack.jar:?]
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[LoadController.class:?]
at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[LoadController.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-16.0.jar:?]
at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-16.0.jar:?]
at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-16.0.jar:?]
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) ~[LoadController.class:?]
at cpw.mods.fml.common.Loader.serverStarting(Loader.java:739) [Loader.class:?]
at cpw.mods.fml.common.FMLCommonHandler.handleServerStarting(FMLCommonHandler.java:278) [FMLCommonHandler.class:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_71]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_71]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_71]
at Reflector.callBoolean(Reflector.java:332) [Reflector.class:?]
at net.minecraft.server.integrated.IntegratedServer.func_71197_b(IntegratedServer.java:161) [bsx.class:?]
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:387) [MinecraftServer.class:?]
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685) [?:?]
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 19 column 8
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1505) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:494) ~[JsonReader.class:?]
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:403) ~[JsonReader.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:666) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:667) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.bind.TypeAdapters$25.read(TypeAdapters.java:642) ~[TypeAdapters$25.class:?]
at com.google.gson.internal.Streams.parse(Streams.java:44) ~[Streams.class:?]
... 43 more
[13:10:49] [Server thread/INFO]: Applying holder lookups
0
JAS seems to do some internal consolidation of the config data, is there logging before that point? My error was something very simple like a misplaced comma, for example:
I have updated to the latest version of JAS and will try again.
0
0
0
No, it was not even in the same file. I assume that if there's a syntax error in how a biome is being referenced in the spawn configs, the logfie is going to trace that exception back to the biome config, because minecraft can't see past the results of JAS interpreting the config data. JAS would need to have it's own debugging to catch such things, but there's no documentation on that topic.