BetterPortals

BetterPortals

1M Downloads

Neteher portal not spawning and End portal exit not spawning

drago87 opened this issue ยท 5 comments

commented

Forced crash to get modlist ignore OTG (used to force crash) OpenEye

When building a Netherportal and light it the portal spawn as solid blocks and pushes the player to the side. somethine you manage to get a glimpt of the nether the the portal dissapers.
Disabling the mod and light the portal works and you kan get into the nether but the portal was destroyed missing 2 obsidian blocks.

The end portals entrance was working (if it's ment to spawn 10-15 blocks over the bedrock structure) but after defeting the End Dragon the egg spawns but not the portal

A log where i only start the game load the map and light the neather portal then exit the game after the portal disapers
latest.log

commented

There isn't anything obvious in the log.
As for mods, the only ones that seem a bit fishy (though they shouldn't cause what you're describing) are:

So, to figure out what causes this behavior, please try to remove as many mods as possible such that you're left with only BP + conflicting mod(s) (or just BP).

For now let's focus on the nether portal issue, both issues sound like they might be related and the nether portal one is quicker to test. We can check back on the end one once we're done with the nether one.

commented

I seam to have narrow it down to Glenn's Gasses
Only tested with the Nether portal

commented

Looks like Glenn's Gases replaces some of the frame blocks with this white gas which then causes the portal to close again.
I'm not familiar with Glenn's Gases and couldn't find anything in its code relating to either portal or obsidian blocks. I'd suggest you report this on the issue tracker of Glenn's Gases, they'll probably know what those white gas is and why it generates there.
It doesn't appear to happen when the obsidian frame is pre-built and also doesn't appear to happen everywhere (probably only specific coordinates are affected, maybe something to do with worldgen?).

Hastily taken screenshot:

BP's code which places portals:

fun placePortalFrame(world: World, axis: EnumFacing.Axis, portalBlocks: Set<BlockPos>) {
// Calculate frame blocks (thick/continuous frame)
val frameBlocks = mutableSetOf<BlockPos>()
portalBlocks.forEach { portalBlock ->
// For each portal block look at all eight surrounding blocks in the plane defined by axis
axis.parallelFaces.forEach { facing ->
for (i in listOf(0, 1)) {
val pos = portalBlock.offset(facing).offset(facing.rotateAround(axis), i)
// And add all non-portal blocks as frame blocks
if (pos !in portalBlocks) {
frameBlocks.add(pos)
}
}
}
}
val minY = portalBlocks.map { it.y }.min() ?: 0
// Make space inside, in front and behind of the portal and its frame
(frameBlocks + portalBlocks).forEach { pos ->
if (axis != EnumFacing.Axis.Y && pos.y < minY) {
return@forEach // skip bottom-most layer for standing portals to keep blocks for the player to walk on
}
for (i in if (axis == EnumFacing.Axis.Y) -3..2 else -1..1) {
world.setBlockToAir(pos.offset(axis.toFacing(EnumFacing.AxisDirection.POSITIVE), i))
}
}
// Place frame blocks
frameBlocks.forEach { pos ->
world.setBlockState(pos, frameBlock)
}
// Place step blocks for the player to step onto when leaving the portal
if (axis != EnumFacing.Axis.Y) { // except for portals the player has to fall through
frameBlocks.forEach { framePos ->
// Steps are placed next to every frame block which has a portal block above it
if (framePos.offset(EnumFacing.UP) in portalBlocks) {
for (direction in EnumFacing.AxisDirection.values()) {
val stepPos = framePos.offset(axis.toFacing(direction))
// Any other (already existing) solid blocks will do as well
if (!world.getBlockState(stepPos).material.isSolid) {
world.setBlockState(stepPos, frameStepsBlock)
}
}
}
}
}
}

commented

Will do. Going to give them a link to this thread

commented

Here is a link to the Glenn's Gasses report trentv4/GlennsGases#4