Yes, it's the underlying issue of MC-126244
Searching for structures loads/gens every chunk until it hits what it's looking for in a 100 chunk radius
Looks like some structures features where removed down the line between 1.14 > 1.15 somewhere, these haven't been removed from chunks as they're loaded, however
Was going to create an issue about this a few days ago but the Jira was dying, spigot mappings here, but:
private void y() {
Collection<EntityPlayer> var0 = this.r.getPlayers();// 256
Set<EntityPlayer> var1 = Sets.newHashSet(var0);// 257
Iterator var3 = var0.iterator();// 259
while(var3.hasNext()) {
EntityPlayer var3 = (EntityPlayer)var3.next();
BlockPosition var4 = new BlockPosition(var3);// 260
if (this.k.c_(var4) != this) {// 261
var1.remove(var3);// 262
this.r.removePlayer(var3);// 263
}
}
The getPlayers call returns an `UnmodifiableSet` of which the backing collection is modified in removePlayer, which ends up throwing a CME when next() is called, fix on our side was simply to use an iterator over the newly created HashSet
This issue would be caused whenever a player leaves a raid while it's running, once it's stopped all is fine, as the backing object for that set cleans up after the raid has finished
This issue being marked as works as intended makes very little sense in regards to the logic, especially as with Mojangs mappings we can see the intent of the field in play, at least by the name: `lastPosition`. The only way I could see this as being WAI is if it's just an "acceptable bug" given its age.
The logic pulled out in this issue generally intends to demonstrate that the minecart should behave like a hopper when standing still, but should serve to slurp items away when moving around, as this field is not updated, the cart just follows through assuming its a new block and skips the cooldown, unless it's in 0, 0, 0, in which case the cooldowns work as logically expected here.