Как убрать рамку которую создает портал при телепортации в dimensional

318
12
Здравствуйте, уважаемые форумачане. 
1.7.10.

Вот код блока:
Код:
public class BlockPortalDXD extends BlockBreakable {
    public BlockPortalDXD() {
        super("portal", Material.portal, false);
        this.setBlockName("portal_dxd");
        this.setCreativeTab(XModAnime.tabBase);
    }
    
    public int quantityDropped(Random rand){
        return 0;
    }
    
    public void updateTick(World p_149674_1_, int p_149674_2_, int p_149674_3_, int p_149674_4_, Random p_149674_5_) { 

    }
    
    public void onNeighborBlockChange(World p_149695_1_, int p_149695_2_, int p_149695_3_, int p_149695_4_, Block p_149695_5_) {
        
    }

    
    public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_)
    { 
        this.setBlockBounds(0, 0, 0, 1, 0.05F, 1);
    }
    
    public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_)
    {
        return null;
    }
    
    public boolean renderAsNormalBlock()
    {
        return false;
    }

    public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity){
        if(entity.ridingEntity == null && entity.riddenByEntity == null && entity instanceof EntityPlayerMP){
            EntityPlayerMP thePlayer = (EntityPlayerMP) entity;

            MinecraftServer server = MinecraftServer.getServer();
            if(entity instanceof EntityPlayerMP){
                if(thePlayer.timeUntilPortal > 0){
                    thePlayer.timeUntilPortal = 10;

                } else if(thePlayer.dimension != DimensionHelper.idDXDWorld){
                    thePlayer.timeUntilPortal = 10;
                    thePlayer.travelToDimension(DimensionHelper.idDXDWorld);
                    //thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, DimensionHelper.idDXDWorld);

                } else{
                    thePlayer.timeUntilPortal = 10;
                    thePlayer.travelToDimension(0);
                    //thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0);
                }

            }

        }
    }
}

В чанк провайдеру либо ворлд провайдеру - кода на создание портала нет. Значит это дело в самом блоке. И это походу из-за thePlayer.travelToDimension. Если мое предположение верно - как сделать свой телепорт в измерение, что бы рамка портала не создавалась из ванильного майна?
 
Нужно создавать свой портал (и чем больше в нём блоков, тем труднее будет тебе это написать). Потом просто заменяешь адский на него
 
Дело в телепортере (net.minecraft.world.Teleporter). Когда вызываешь thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, DimensionHelper.idDXDWorld); при телепортации используется стандартный телепортер который создает рамку, а нужен свой, который не создает. Для этого можно воспользоваться: thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(EntityPlayerMP игрок, int ID, Teleporter твой телепортер)
пример простого телепортера без рамки: https://github.com/fewizz/AT/blob/master/src/main/java/fewizz/at/world/ATTeleporter.java [1.9]
 
Оно рероутит на метод выше и юзает дефольтный телепортер же.
 
Как было сказано выше это вызывает стандартный телепортер, для своего нужно использовать это: 
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(EntityPlayerMP игрок, int ID, Teleporter твой телепортер)
 
nikita488 написал(а):
Как было сказано выше это вызывает стандартный телепортер, для своего нужно использовать это: 
thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(EntityPlayerMP игрок, int ID, Teleporter твой телепортер)
Если вы не заметили, то я поправил не последний премер, а первый, где указывался лишь ID
 
AlexSocol написал(а):
bestmem1134.png
 
Назад
Сверху