Blood Magic

Blood Magic

90M Downloads

1.11.2 entity.sentient specter.name Killing everyone

maxsil opened this issue ยท 12 comments

commented

Issue Description:

Dropping a sentient sword to a friend casused entity.sentient specter.name to spawn, it's invisible, i can't see it's hitbox with f3+b restarting server does nothing. It's killing everyone on the server if they're in the same chunk or whatever as me, if they respawn and come back they die, they don't need to attack me.

I've tried using the kill command but it doesn't work, i don't know the entities name (and variations of entity.sentient specter dont' work)

Edit:

Oh yeah i solved it by running a /kill @e, I even got my sword back. So if anyone else is being haunted, suicide is the only way out ;)

Steps to reproduce:

  1. Craft sentient sword
  2. have more than 1000 will
  3. drop sword
    ...

Affected Versions (Do not use "latest"):

  • BloodMagic: 2.1.4-73
  • Minecraft: 1.11.2
  • Forge: 13.20.0.2228
commented

Oh dear. I'm sorry but that is hilarious.

commented

Bigger issue than previously thought. None of the entities render.

E: still hilarious

commented

We didn't know what was going on at first, i was just giving my buddy a sentient sword and then people around me started dying, we resstarted the server and everything. Then i made a joke about the house being haunted. Which it turns out it literally was

commented

/kill @e[type=bloodmagic:scepter]?

edit: sorry about the ping

commented

In my testing, /kill @e[type=!Player] was correctly killing the specters, btw. So worst case, just run that. It'll kill all item frames though. If you're familiar with Vanilla commands you could probably find a way around that.

commented

Hey thanks for the replies! Yeah we solved it by killing everything ( which isn't that big of a deal thanks to the EXP book in this mod :) ), but we're bound to accidentally summon it again, and we'll run those commands then!

commented

Commenting here as I work on fixing this since I'm quite rusty on Forge specific code. I've still got my general debugging skills though, just posting things here as I find them in case someone else sees the fix before I figure it out from what I find.

I have discovered that the SentientSpectre entity isn't being spawned in the client at all. This is why the hitboxes don't render for them at all. They still operate perfectly fine on the server side, but the client just never loads them at all. The rendering code doesn't run, and these entities don't show up at all in the list of entities loaded in the Client-side world object. It's been years since I looked at the entity spawning code, and it is likely quite a bit different, but I'm digging back into it now to try to see why this is happening.

commented

@majikguy Interesting. Explains why I wasn't able to find any of the BM entities in the rendering data structures in my digging.

One thing I have noticed is that the BM entities do not have lowercase names in the code, which could cause some issues.

commented

@leviathan143 If that is the issue, I believe there was already either a PR or a commit with those fixes. Hopefully that fixes it. Bizzare bug and Kudos to Majikguy for figuring that out.

commented

@xenxero1 I have the latest BM source code in my dev env, the names aren't lowercase. Lowercasing them doesn't fix the issue though.

commented

Yeah, it's odd. Had a hunch this was what it was from the beginning, just didn't get a chance to actually test it until about an hour ago. Tried to make the Spectre spawn particles at its location every few ticks so I could keep track of them, then I realized that the onTick function is never called if the world isRemote. :/

commented

I fixed it. :)

Getting a pull request together now.