Random PSIdeas

Random PSIdeas

1M Downloads

[Severe] Crash

Xetaxheb opened this issue ยท 3 comments

commented

I'm on 1.9b uploaded 15 hours ago.

{spellName:"Platform",uuidMost:4322064252363558582L,validSpell:1b,spellList:[{data:{key:"selectorSneakStatus"},x:2,y:2},{data:{params:{_target:1},key:"trickDie"},x:2,y:3},{data:{params:{_target:2},key:"trickDie"},x:2,y:4},{data:{params:{_target:4},key:"rpsideas.operator_distance_from_ground"},x:2,y:5},{data:{key:"constantNumber",constantValue:"5"},x:2,y:6},{data:{key:"rpsideas.selector_caster_energy"},x:3,y:3},{data:{params:{_target:4},key:"trickDie"},x:3,y:4},{data:{key:"selectorCaster"},x:3,y:5},{data:{params:{_time:3,_position:4},key:"trickConjureBlock"},x:3,y:6},{data:{params:{_number2:4,_number1:3},key:"operatorDivide"},x:4,y:3},{data:{params:{_number:1},key:"operatorCeiling"},x:4,y:4},{data:{params:{_target:3},key:"operatorEntityPosition"},x:4,y:5},{data:{params:{_vector3:0,_vector2:4,_vector1:1},key:"operatorVectorSubtract"},x:4,y:6},{data:{key:"constantNumber",constantValue:"2500"},x:5,y:3},{data:{key:"constantNumber",constantValue:"2"},x:5,y:5},{data:{params:{_x:0,_y:1,_z:0},key:"operatorVectorConstruct"},x:5,y:6}],uuidLeast:-6576891940797166351L}

This spell (although I deleted the sneak>die and height-fromground>die nodes) cause an instant crash on pants.

The problem nodes are basically just trying to kill it if you're under # energy


caster remaining energy <> divided by <> 2500
----------------------------die <> ceiling------------


Description: Ticking entity

java.lang.NullPointerException: Ticking entity
	at vazkii.psi.common.spell.operator.number.PieceOperatorDivide.execute(PieceOperatorDivide.java:43)
	at vazkii.psi.api.spell.CompiledSpell$Action.execute(CompiledSpell.java:105)
	at vazkii.psi.api.spell.CompiledSpell.execute(CompiledSpell.java:54)
	at vazkii.psi.api.spell.CompiledSpell.safeExecute(CompiledSpell.java:75)
	at vazkii.psi.common.item.ItemSpellBullet.castSpell(ItemSpellBullet.java:145)
	at vazkii.psi.common.item.ItemCAD.cast(ItemCAD.java:202)
	at vazkii.psi.common.item.armor.ItemPsimetalArmor.cast(ItemPsimetalArmor.java:71)
	at vazkii.psi.common.item.armor.ItemPsimetalArmor.onEvent(ItemPsimetalArmor.java:82)
	at vazkii.psi.common.core.handler.PlayerDataHandler$EventHandler.onPsiArmorEvent(PlayerDataHandler.java:211)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1516_EventHandler_onPsiArmorEvent_PsiArmorEvent.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
	at vazkii.psi.api.exosuit.PsiArmorEvent.post(PsiArmorEvent.java:55)
	at vazkii.psi.common.core.handler.PlayerDataHandler$EventHandler.onPlayerTick(PlayerDataHandler.java:168)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1512_EventHandler_onPlayerTick_LivingUpdateEvent.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
	at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:567)
	at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:2088)
	at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:234)
	at net.minecraft.client.entity.EntityPlayerSP.func_70071_h_(EntityPlayerSP.java:181)
	at net.minecraft.world.World.func_72866_a(World.java:1993)
	at net.minecraft.world.World.func_72870_g(World.java:1955)
	at net.minecraft.world.World.func_72939_s(World.java:1759)
	at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1846)
	at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:1097)
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:397)
	at net.minecraft.client.main.Main.main(SourceFile:123)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
	at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.multimc.onesix.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:196)
	at org.multimc.onesix.OneSixLauncher.launch(OneSixLauncher.java:231)
	at org.multimc.EntryPoint.listen(EntryPoint.java:143)
	at org.multimc.EntryPoint.main(EntryPoint.java:34)


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

-- Head --
Thread: Client thread
Stacktrace:
	at vazkii.psi.common.spell.operator.number.PieceOperatorDivide.execute(PieceOperatorDivide.java:43)
	at vazkii.psi.api.spell.CompiledSpell$Action.execute(CompiledSpell.java:105)
	at vazkii.psi.api.spell.CompiledSpell.execute(CompiledSpell.java:54)
	at vazkii.psi.api.spell.CompiledSpell.safeExecute(CompiledSpell.java:75)
	at vazkii.psi.common.item.ItemSpellBullet.castSpell(ItemSpellBullet.java:145)
	at vazkii.psi.common.item.ItemCAD.cast(ItemCAD.java:202)
	at vazkii.psi.common.item.armor.ItemPsimetalArmor.cast(ItemPsimetalArmor.java:71)
	at vazkii.psi.common.item.armor.ItemPsimetalArmor.onEvent(ItemPsimetalArmor.java:82)
	at vazkii.psi.common.core.handler.PlayerDataHandler$EventHandler.onPsiArmorEvent(PlayerDataHandler.java:211)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1516_EventHandler_onPsiArmorEvent_PsiArmorEvent.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
	at vazkii.psi.api.exosuit.PsiArmorEvent.post(PsiArmorEvent.java:55)
	at vazkii.psi.common.core.handler.PlayerDataHandler$EventHandler.onPlayerTick(PlayerDataHandler.java:168)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_1512_EventHandler_onPlayerTick_LivingUpdateEvent.invoke(.dynamic)
	at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90)
	at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182)
	at net.minecraftforge.common.ForgeHooks.onLivingUpdate(ForgeHooks.java:567)
	at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:2088)
	at net.minecraft.entity.player.EntityPlayer.func_70071_h_(EntityPlayer.java:234)
	at net.minecraft.client.entity.EntityPlayerSP.func_70071_h_(EntityPlayerSP.java:181)
	at net.minecraft.world.World.func_72866_a(World.java:1993)
	at net.minecraft.world.World.func_72870_g(World.java:1955)
commented

Turns out since it's on pants I've got to figure out how to edit the pants off now, otherwise it just crashes on unpause after world load.

commented

Thank you for the crash report! This actually lead me to some other bugs that were undiscovered! I'm going to push a commit soon and push 1.9c to curseforge.
Also the spell is really cool! I played with it a bit and I'd change the conjure block duration from 5 to 10!

commented

@Kamefrede
Just to be clear, I was midway in adapting that spell from gun to pants (pants fires way faster and is more reliable); the basic pants version (with a psimetal or better frame so cost is 25 or less meaning you break even or regen) is this:

{spellName:"Platform Pants",uuidMost:-6446326594581609805L,validSpell:1b,spellList:[{data:{key:"selectorSneakStatus"},x:3,y:3},{data:{params:{_target:2},key:"operatorEntityPosition"},x:3,y:4},{data:{key:"selectorCaster"},x:3,y:5},{data:{params:{_target:3},key:"trickDie"},x:4,y:3},{data:{params:{_vector3:0,_vector2:4,_vector1:3},key:"operatorVectorSubtract"},x:4,y:4},{data:{params:{_time:4,_position:1},key:"trickConjureBlock"},x:4,y:5},{data:{key:"constantNumber",constantValue:"2"},x:5,y:3},{data:{params:{_x:0,_y:1,_z:0},key:"operatorVectorConstruct"},x:5,y:4},{data:{key:"constantNumber",constantValue:"5"},x:5,y:5}],uuidLeast:-4920584663347091317L}

Trying to use trick: die under # energy doesn't do anything on pants since they fire and consume psi anyway, but the height one can be useful if adapted into the duration as a multiplier (<2 = *0, >2 = *1)
Unfortunately it seems trick: conjure block will last indefinitely if any number under 1 is used, so trick:die is necessary after all.
Ultimately the Operator: Distance from ground triggers on conjured blocks as well, so basic conjure block won't work out with it although one could conjure a block sequence in a 3x3 or just where the player is facing.