Spelunkery

Spelunkery

80.4k Downloads

compatibility with respawn obelisks

dadoirie opened this issue · 9 comments

commented

respawn obelisks changes how respawn anchors work and removes the possibility setting those on beds - with spelukery when falling in that fluid that teleports it teleports you to the world spawn - regardless if having already one spawn point set with the respawn obelisks
respawn obelisks is on fabric and forge - I'm using it on fabric 1.19.2

commented

@AstralOrdana you can close this.
Will be fixed(hopefully) in the next update of respawn obelisks.

commented

if that mod sets the player's spawnpoint in an abnormal way, there's no simple way for me to add integration. Spelunkery teleports the player to wherever the player's spawnpoint is set so that mod must change something.

commented

My mod (respawn obelisks, the mod in question) has a mixin for the findRespawnPositionAndUseSpawnBlock(mojmap) static method in Player(mojmap).
Idk what you're doing in order to find the player's respawn point, but if you use that method this issue should be fixed.

Essentially, minecraft hardcodes bed and respawn anchors to spawn the player to the side of them, since the actual spawn is marked inside that block(which is unacceptable for any other vanilla blocks).
I mixin here to add similar behavior for my block.

commented

would be lovely if this issue could be reopened and evaluated if a proper solution could be implemented

commented

i am using player.findRespawnPositionAndUseSpawnBlock();, you can see it here

is there a chance that with your mod, player.getRespawnPosition(); would be returning null?

commented

No, I use Player#setRespawnPosition for setting the position- It shouldn't ever be null.

commented

I'll have to test around at some point, I'll do that in the near future.

Er, I really don't feel like updating my 1.19.2 version. Sorry if that causes any inconveniences dado, I just don't want to have to maintain multiple versions because that's an enormous pain. I'll fix this when Spelunkery comes to 1.20.

commented

well, that's it then - issue can be closed
sadly create mod is still on 1.19.2 and will update my modpack once all major mods of it are on 1.20.x

commented

Sorry I'm back to this so late, but uh:
The issue is that I don't actually mixin to the Player.findRespawnPositionAndUseSpawnBlock method, I mixin to it's reference in PlayerList. Why? Because I need access to the player, and mixining into that method directly doesn't give me access to that player.
How can we fix this issue, ideally without me mixining into Spelunkery? Perhaps you could create some event so I can add additional handling for if the target block is a respawn obelisk?