The bug
Vexes summoned by evokers do not transfer over their team tag to the vexes. This results in vexes attacking members of the team the evoker is on.
How to reproduce
Create a team and join the team.
/team add yellow /team join yellow @s
Summon an evoker being a member of the team.
/summon evoker ~ ~1 ~ {Team:"yellow"}
Switch to survival or adventure mode
→ ✔ The evoker does not attack youSummon a villager and wait for the evoker to spawn vexes.
/summon villager ~ ~ ~ {NoAI:1b}
→ ✔ The vexes attack villager
Wait for the villager to die.
→ ❌ When the villager is dead the vexes attack you, but the evoker who summoned them is on your team
Code analysis
The following is based on yarn 1.15.2 names.
In the method net.minecraft.entity.mob.EvokerEntity$SummonVexGoal.castSpell()
sets the initial stuff (angles, position, ect...) but there's no call to set a team. To fix this issue, this call should be added (before the spawn of the entity):
vexEntity4.world.getScoreboard().addPlayerToTeam(vexEntity4.getUuidAsString(), EvokerEntity.this.getScoreboardTeam().getName());
Linked issues
is duplicated by 1
testing discovered 1
Attachments
Comments 12
command syntax has changed
/scoreboard teams add Yellow
is now
/team add Yellow
/scoreboard teams join Yellow
is now
/team join Yellow
/summon evocation_illager ~ ~1 ~ {Team:"Yellow"}
is now
/summon evoker ~ ~1 ~ {Team:"Yellow"}
vexes now kill you even when the villager is still alive.
can confirm this bug for Minecraft java 1.15.2
thx marcono1234 🙂