Closed Sir-Will closed 10 years ago
It is not fixed, I still get the warnings with mcMMO 1.4.08-dev1-b3429
@gmcferrin, note that the null in this case is an mcMMOPlayer object.
Also getting similar warning (not the severe message though):
[WARNING] [mcMMO] A valid mcMMOPlayer object could not be found for [MoCreatures].
mcpc-plus-1.6.4-R2.1-forge953-B184
mcMMO b3422
DrZharks MoCreatures Mod v6.1.0-DEV-R2
@SirWilli Can you paste a log with the new error messages from b3429 for me?
I got now a complete new error:
2014-01-06 13:48:01 [INFO] [mcMMO] Enabling mcMMO v1.4.08-dev1-b3429
2014-01-06 13:48:01 [SEVERE] Cannot load plugins/mcMMO/config.yml
org.bukkit.configuration.InvalidConfigurationException: while parsing a block mapping
in 'string', line 107, column 5:
Power_Level_Tags: false
^
expected <block end>, but found BlockMappingStart
in 'string', line 124, column 9:
Top:
^
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105)
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175)
at org.bukkit.plugin.java.JavaPlugin.reloadConfig(JavaPlugin.java:117)
at org.bukkit.plugin.java.JavaPlugin.getConfig(JavaPlugin.java:111)
at com.gmail.nossr50.util.LogFilter.<init>(LogFilter.java:13)
at com.gmail.nossr50.mcMMO.onEnable(mcMMO.java:119)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:467)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugin(CraftServer.java:277)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.enablePlugins(CraftServer.java:259)
at cpw.mods.fml.common.event.FMLServerAboutToStartEvent.<init>(FMLServerAboutToStartEvent.java:30)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at cpw.mods.fml.common.LoaderState.getEvent(LoaderState.java:84)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112)
at cpw.mods.fml.common.Loader.serverAboutToStart(Loader.java:817)
at cpw.mods.fml.common.FMLCommonHandler.handleServerAboutToStart(FMLCommonHandler.java:309)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:222)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:634)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: while parsing a block mapping
in 'string', line 107, column 5:
Power_Level_Tags: false
^
expected <block end>, but found BlockMappingStart
in 'string', line 124, column 9:
Top:
^
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159)
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:400)
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
... 24 more
2014-01-06 13:48:01 [SEVERE] Cannot load plugins/mcMMO/config.yml
org.bukkit.configuration.InvalidConfigurationException: while parsing a block mapping
in 'string', line 107, column 5:
Power_Level_Tags: false
^
expected <block end>, but found BlockMappingStart
in 'string', line 124, column 9:
Top:
^
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138)
at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105)
at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175)
at com.gmail.nossr50.config.ConfigLoader.loadFile(ConfigLoader.java:44)
at com.gmail.nossr50.config.AutoUpdateConfigLoader.loadFile(AutoUpdateConfigLoader.java:28)
at com.gmail.nossr50.config.ConfigLoader.<init>(ConfigLoader.java:26)
at com.gmail.nossr50.config.AutoUpdateConfigLoader.<init>(AutoUpdateConfigLoader.java:23)
at com.gmail.nossr50.config.Config.<init>(Config.java:20)
at com.gmail.nossr50.config.Config.getInstance(Config.java:26)
at com.gmail.nossr50.locale.LocaleLoader.initialize(LocaleLoader.java:81)
at com.gmail.nossr50.locale.LocaleLoader.getString(LocaleLoader.java:33)
at com.gmail.nossr50.locale.LocaleLoader.getString(LocaleLoader.java:21)
at com.gmail.nossr50.datatypes.skills.ToolType.<clinit>(ToolType.java:10)
at com.gmail.nossr50.datatypes.skills.SkillType.<clinit>(SkillType.java:39)
at com.gmail.nossr50.config.AdvancedConfig.getMaxChance(AdvancedConfig.java:618)
at com.gmail.nossr50.config.AdvancedConfig.validateKeys(AdvancedConfig.java:46)
at com.gmail.nossr50.config.ConfigLoader.validate(ConfigLoader.java:62)
at com.gmail.nossr50.config.AdvancedConfig.<init>(AdvancedConfig.java:20)
at com.gmail.nossr50.config.AdvancedConfig.getInstance(AdvancedConfig.java:25)
at com.gmail.nossr50.mcMMO.loadConfigFiles(mcMMO.java:352)
at com.gmail.nossr50.mcMMO.onEnable(mcMMO.java:130)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:467)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:383)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.loadPlugin(CraftServer.java:277)
at org.bukkit.craftbukkit.v1_6_R3.CraftServer.enablePlugins(CraftServer.java:259)
at cpw.mods.fml.common.event.FMLServerAboutToStartEvent.<init>(FMLServerAboutToStartEvent.java:30)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at cpw.mods.fml.common.LoaderState.getEvent(LoaderState.java:84)
at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:112)
at cpw.mods.fml.common.Loader.serverAboutToStart(Loader.java:817)
at cpw.mods.fml.common.FMLCommonHandler.handleServerAboutToStart(FMLCommonHandler.java:309)
at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:222)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:634)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: while parsing a block mapping
in 'string', line 107, column 5:
Power_Level_Tags: false
^
expected <block end>, but found BlockMappingStart
in 'string', line 124, column 9:
Top:
^
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:570)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at org.yaml.snakeyaml.parser.ParserImpl.checkEvent(ParserImpl.java:143)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:230)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159)
at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:237)
at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:159)
at org.yaml.snakeyaml.composer.Composer.composeDocument(Composer.java:122)
at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:105)
at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:120)
at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:481)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:400)
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
... 38 more
2014-01-06 13:48:01 [INFO] [mcMMO] MCPC+ implementation found, but the custom tool config for mcMMO is disabled!
2014-01-06 13:48:01 [INFO] [mcMMO] To enable, set Mods.Tool_Mods_Enabled to TRUE in config.yml.
2014-01-06 13:48:01 [INFO] [mcMMO] MCPC+ implementation found, but the custom armor config for mcMMO is disabled!
2014-01-06 13:48:01 [INFO] [mcMMO] To enable, set Mods.Armor_Mods_Enabled to TRUE in config.yml.
2014-01-06 13:48:01 [INFO] [mcMMO] MCPC+ implementation found, but the custom block config for mcMMO is disabled!
2014-01-06 13:48:01 [INFO] [mcMMO] To enable, set Mods.Block_Mods_Enabled to TRUE in config.yml.
2014-01-06 13:48:01 [INFO] [mcMMO] MCPC+ implementation found, but the custom entity config for mcMMO is disabled!
2014-01-06 13:48:01 [INFO] [mcMMO] To enable, set Mods.Entity_Mods_Enabled to TRUE in config.yml.
2014-01-06 13:48:02 [INFO] [Fe] Enabling Fe v0.7-SNAPSHOT
2014-01-06 13:48:03 [INFO] [Fe] [Fe] Vault support enabled.
2014-01-06 13:48:03 [INFO] [AutoSaveWorld] Enabling AutoSaveWorld v4.12.1
2014-01-06 13:48:03 [INFO] Preparing level "HorizonsWorld"
2014-01-06 13:48:03 [INFO] Registered command debug with permission node vanilla.command.debug
2014-01-06 13:48:03 [INFO] Registered command spreadplayers with permission node vanilla.command.spreadplayers
2014-01-06 13:48:03 [INFO] Registered command playsound with permission node vanilla.command.playsound
2014-01-06 13:48:03 [INFO] Registered command scoreboard with permission node vanilla.command.scoreboard
2014-01-06 13:48:04 [INFO] Trying to inject method
2014-01-06 13:48:04 [INFO] abn
2014-01-06 13:48:04 [INFO] .
2014-01-06 13:48:04 [INFO] canSpawnAnything
2014-01-06 13:48:04 [INFO]
2014-01-06 13:48:04 [INFO] ()Z
2014-01-06 13:48:04 [INFO] Found method node
2014-01-06 13:48:04 [INFO] abn
2014-01-06 13:48:04 [INFO] .
2014-01-06 13:48:04 [INFO] canSpawnAnything
2014-01-06 13:48:04 [INFO]
2014-01-06 13:48:04 [INFO] ()Z
2014-01-06 13:48:04 [INFO] in Coremod. Injecting !
2014-01-06 13:48:04 [INFO] Trying to overwrite method
2014-01-06 13:48:04 [INFO] abn
2014-01-06 13:48:04 [INFO] .
2014-01-06 13:48:04 [INFO] g
2014-01-06 13:48:04 [INFO]
2014-01-06 13:48:04 [INFO] ()V
2014-01-06 13:48:04 [INFO] Found method node
2014-01-06 13:48:04 [INFO] abn
2014-01-06 13:48:04 [INFO] .
2014-01-06 13:48:04 [INFO] g
2014-01-06 13:48:04 [INFO]
2014-01-06 13:48:04 [INFO] ()V
2014-01-06 13:48:04 [INFO] in Vanilla.
2014-01-06 13:48:04 [INFO] Found method node
2014-01-06 13:48:04 [INFO] abn
2014-01-06 13:48:04 [INFO] .
2014-01-06 13:48:04 [INFO] g
2014-01-06 13:48:04 [INFO]
2014-01-06 13:48:04 [INFO] ()V
2014-01-06 13:48:04 [INFO] in Coremod.
^ That's an entirely different issue, its a duplicate of https://github.com/mcMMO-Dev/mcMMO/issues/1583 - regenerating your config.yml file fixed it.
Hm I wonder that I have a corrupt config suddenly. I checked the log now and cant find the the warning from above only this one:
2014-01-06 16:30:18 [WARNING] [mcMMO] A valid mcMMOPlayer object could not be found for DarkDarkelb.
2014-01-06 16:30:18 [SEVERE] Could not pass event PlayerInteractEvent to mcMMO v1.4.08-dev1-b3429
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:437)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:193)
at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:490)
at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:880)
at net.minecraft.network.packet.Packet15Place.func_73279_a(Packet15Place.java:79)
at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:470)
at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:233)
at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54)
at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:34)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:914)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:330)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:781)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:663)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at com.gmail.nossr50.listeners.PlayerListener.onPlayerInteractMonitor(PlayerListener.java:527)
at sun.reflect.GeneratedMethodAccessor125.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:435)
... 17 more
I will have a look in the logs and report it if the warning with CoFH comes again. (I oped the fakeplayer [CoFH] yesterday, so it coul be that this removed the warning.)
Ups.. missclick sorry :S
Here you are:
2014-01-07 00:47:04 [WARNING] [mcMMO] A valid mcMMOPlayer object could not be found for [CoFH].
2014-01-07 00:47:04 [SEVERE] Could not pass event BlockDamageEvent to mcMMO v1.4.08-dev1-b3429
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:437)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:31)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464)
at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callBlockDamageEvent(CraftEventFactory.java:229)
at net.minecraft.item.ItemInWorldManager.func_73074_a(ItemInWorldManager.java:250)
at thermalexpansion.block.device.TileActivator.simLeftClick(TileActivator.java:265)
at thermalexpansion.block.device.TileActivator.doDeploy(TileActivator.java:132)
at thermalexpansion.block.device.TileActivator.func_70316_g(TileActivator.java:110)
at net.minecraft.world.World.func_72939_s(World.java:2775)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:887)
at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:330)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:781)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:663)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at com.gmail.nossr50.listeners.BlockListener.onBlockDamage(BlockListener.java:283)
at sun.reflect.GeneratedMethodAccessor158.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:435)
... 15 more
Just a note that I updated to 3431 and I do not seem to be getting that message anymore. Thank you.
I updated now also too 3431 and I have still the errors.
Weird. When does it happen for you?
I dont know what the trigger is of this spamm error.
For me it was when a player would kill a mob that was not vanilla (Mo' Creatures in my case).
Nothing happens if I kill a tinkers construct mob with a vanilla sword.
@SirWilli, do you have any non-vanilla mobs or NPCs that can damage or break a block, maybe in a similar fashion to a zombie with a door?
I dont remember a mob who destroys blocks at the moment.
What type of server are you running. If it's MCPC+, they recently patched entities and block breaks, which may have been what fixed my issue.
Minceraft 1.6.4 with MCPC+
*version B206 of MCPC+
Any news here? :/
Have you tried updating MCPC+ as @bhi-elliot suggested? I don't know where exactly to find the build server, so I can't confirm whether or nor you're on the latest version, but his comment does seem promising.
The version he mentioned contained the fix I was referring to.
I have the lates version of MCP+
I think I found the trigger, if the Autonomous Activator from Thermal Expansion destroys a block then I get the error.
Is there no option to add fake players who get ignored from mcMMO?
Btw, why has this issue the tag "Fixed"?
still not solved with latest dev build and my console is running out of memory because of the spam. about 30 exceptions per tick :(
The check fo the cofh fake player from commit e0358d42d6177005ccff3ee2dc015bea60e10a17 won't work as you're checking the class of the bukkit wrapper object, however as the fake player comes from a forge mod you'd have to check the internal minecraft class.
However as far as i can see it's much simpler; just check whether your
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
is null before you use it, and if it is just leave. That will fix the problem for ALL fake players, not just for those you listed explicitly in some check method.
The problem with that is that there are a LOT of places to make that check, and each one of those checks slows down the project just a bit. I've made several comments detailing a mildly better solution, but it has yet to be implemented because I don't have the necessary time and the rest of the team doesn't seem to understand the details, potentially because I'm not very good at explaining the solution.
well I think a simple null check (that's three bytecode instructions if i'm right) shouldn't slow it down that much. It would definetely be faster than explicitly checking the EntityPlayer implementation class (which is what you do right now)
Meh, my solution involved adding a single null-check. It would be prior to returning in UserManager.getPlayer(), which would not reduce the number of checks made. It would reduce the maintenance cost of the code, however. If it detected null, it would return an empty "shell" class that simulates an McMMOPlayer without actually doing anything to the database. (Basically, it would be a level zero player with no ability to actually level up). The problem being, I'm not sure the rest of the team understands that, and I have too little time to implement it safely.
if ( speed > smooth running/bug solving ) { return @Glitchfinder } don´t understand it wrong^^
@Slind14, I believe you've misunderstood me. I did not say that we should not address this issue. I simply said that dropping null-checks into every class that uses an McMMOPlayer object would be entirely pointless, when we can simply drop one null-check into the UserManager class and return an empty class that prevents errors from happening. That significantly reduces the amount of work needed down the line to keep the code working when it gets updated, and achieves the same effect now with less work than would be required of dropping a null-check in a few dozen different classes. I just don't have the time to do that at the moment, because I would have to make sure it worked properly, didn't cause any issues on its own, and that it didn't break other things. And to do that, I would have to have a local server which had this error in the first place, which I do not. Thus, I would be required to spend at least a few hours, likely more, setting up a new local server and testing it with various plugins known to cause this issue in an attempt to trigger it, so that I can fix it. That would likely take at least a full day of work, which I do not have available to me in the near future due to other obligations on my time, such as my job, college, and family.
@Glitchfinder make a dev build and I test it for you. or if setting up the test server is such a big deal. I can send you one with a small testsetup. but a devbuild I can test my self would be easier as I wouldn´t have to upload the whole server.
I was planning on doing so. However, I do not actually have any free time until after this weekend, as I work full shifts both Saturday and Sunday, which is part of why this issue has been unresolved for so long. Once I have time, I'll set it up on my end and push the changes as a new development branch for you to test. That will likely be Monday or Tuesday, assuming my scheduling isn't shifted radically.
@Glitchfinder Aside from the fact that I believe you would be better capable of implementing this fix this:
That would likely take at least a full day of work, which I do not have available to me in the near future due to other obligations on my time, such as my job, college, and family.
is also my (and probably GJ's) problem as well.
I figured as much. I'll likely be able to get to it by Monday, but I really can't ever offer guarantees, with my current job's schedule constantly changing.
any news ?
The news is that I'm apparently the only one working my job who did NOT slash their available hours at the start of the college semester, and now I'm filling what used to be three peoples' shifts.
I don´t want to push you its just that mcmmo runs the console out of memory and creates nearly gb logs.
I have a idea of how to handle this, will start up a dev branch and see where it goes
@t00thpick1 is your dev build uploaded?
Any news?
Right it should be in the latest dev I think.
Im useing the version 1.4.08 of mcMMO and it spams my log with this warnings:
CoFH is a Thermal Expansion mod block. They really disturbing, please fix this fast. :/