Multiverse-NetherPortals icon indicating copy to clipboard operation
Multiverse-NetherPortals copied to clipboard

The obsidian platform in the end is generated in wrong y places for MC 1.21

Open KagefumiMerry opened this issue 1 year ago • 1 comments

Information

  • Server version: This server is running CraftBukkit version 4242-Spigot-0a642bd-515fe49 (MC: 1.21) (Implementing API version 1.21-R0.1-SNAPSHOT)

  • Full output of /mv version -p: https://paste.gg/p/anonymous/701c684147d64c7c9492ba7e1d3a51e3

  • Server log: https://gist.github.com/KagefumiMerry/2e8384a4a70751bacace0e7f44012dc0

Details

I was able to reproduce my issue on a freshly setup and up-to-date server with the latest version of Multiverse plugins with no other plugins and with no kinds of other server or client mods.

Description
When player enter the end, the obsidian platform is generated wrongly above the platform generated by the Multiverse-NetherPortals. Once Multiverse-NetherPortals plugin removed, the behavior returned to vanilla one.

Steps to reproduce

  1. Enter the end portal in the stronghold
  2. the obsidian platform is generated, but with double its thickness.
  3. all the blocks not obsidian or air are just missing

Expected behavior

  1. the obsidian platform should be generated
  2. all the blocks not obsidian or air should be the drop item entities (the 1.21 behavior)

Screenshots
2024-06-27_15 25 52

I check a bit the source code, it maybe related the NetherPortals handling in src/main/java/com/onarandombox/MultiverseNetherPortals/listeners/MVNPEntityListener.java src/main/java/com/onarandombox/MultiverseNetherPortals/listeners/MVNPPlayerListener.java

            } else if (toWorld.getEnvironment() == World.Environment.THE_END && type == PortalType.ENDER) {
                Location loc = new Location(event.getTo().getWorld(), 100, 50, 0); // This is the vanilla location for obsidian platform.
                event.setTo(loc);
                Block block = loc.getBlock();
                for (int x = block.getX() - 2; x <= block.getX() + 2; x++) {
                    for (int z = block.getZ() - 2; z <= block.getZ() + 2; z++) {
                        Block platformBlock = loc.getWorld().getBlockAt(x, block.getY() - 1, z);
                        if (platformBlock.getType() != Material.OBSIDIAN) {
                            platformBlock.setType(Material.OBSIDIAN);
                        }
                        for (int yMod = 1; yMod <= 3; yMod++) {
                            Block b = platformBlock.getRelative(BlockFace.UP, yMod);
                            if (b.getType() != Material.AIR) {
                                b.setType(Material.AIR);
                            }
                        }
                    }
                }
            }

Also, I need to mention that Entity spawn in a bit different position, but current spawn point command only support single type.

From Wiki: Players who enter the End spawn at coordinates (100, 49, 0), facing west towards the main island; other entities that enter the End spawn at coordinates (100.5, 50, 0.5), in the middle of and 1 block higher than the platform

KagefumiMerry avatar Jun 27 '24 08:06 KagefumiMerry

Thanks for the detailed report! I’ll look in to this soon

zax71 avatar Jun 27 '24 20:06 zax71

A dev build can be downloaded from "artifacts" here

zax71 avatar Aug 23 '24 11:08 zax71

可以从 “artifacts” 下载开发版本 此处

I also have the wrong,but this dev build I can't download now

SnubSum31041247 avatar May 16 '25 08:05 SnubSum31041247

the latest release already include this fix

benwoo1110 avatar May 16 '25 08:05 benwoo1110

I have the same wrong in multiverse-netherportals-4.2.3

SnubSum31041247 avatar May 16 '25 08:05 SnubSum31041247

update to mv5, its already on modrinth and dev bukkit website.

benwoo1110 avatar May 16 '25 08:05 benwoo1110

ok,the problem has been reloved,thanks a lot :-)

SnubSum31041247 avatar May 16 '25 08:05 SnubSum31041247