Jump to content

[Solved] Custom Portal Creates Nether Portal in Custom Dimension when Teleported


Recommended Posts

Posted

This is what happens:

1. Player creates custom portal

2. Player teleports to custom dimension

3. Instead of another custom portal, a nether portal is created in the custom dimension

 

My code:

mod_MOreTrees: http://paste.minecraftforge.net/view/6847afd3

BlockPortalOreleans: http://paste.minecraftforge.net/view/ec0a8390

ChunkProviderOreleans: http://paste.minecraftforge.net/view/100e33ed

PortalPositionOreleans: http://paste.minecraftforge.net/view/ea275cb8

TeleporterOreleans: http://paste.minecraftforge.net/view/d3b49a9d

WorldProviderOreleans: http://paste.minecraftforge.net/view/1d8000f1

Before you even think about modding,

  Quote
Posted

I think I've managed to get the player to teleport into the custom portal, but I'm not sure. I can't tell because whenever I go into a portal, I immediately teleport back to the normal world.

Before you even think about modding,

  Quote
Posted

I've fixed it!

In Block PortalOreleans, I just had to change this:

    public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
    {
        if ((par5Entity.ridingEntity == null) && (par5Entity.riddenByEntity == null) && (par5Entity instanceof EntityPlayerMP))
        {
            EntityPlayerMP thePlayer = (EntityPlayerMP) par5Entity;
           
            if (thePlayer.timeUntilPortal > 0)
            {
                thePlayer.timeUntilPortal = 10;
            }
            else if (thePlayer.dimension != mod_MOreTrees.oreleansID)
            {
                thePlayer.timeUntilPortal = 10;
                thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, mod_MOreTrees.oreleansID);
            }
            else
            {
                thePlayer.timeUntilPortal = 10;
                thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0);
            }
        }
    }

Into this:

    public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
    {
        if ((par5Entity.ridingEntity == null) && (par5Entity.riddenByEntity == null) && (par5Entity instanceof EntityPlayerMP))
        {
            EntityPlayerMP thePlayer = (EntityPlayerMP) par5Entity;
            
            if (thePlayer.timeUntilPortal > 0)
            {
                thePlayer.timeUntilPortal = 10;
            }
            else if (thePlayer.dimension != mod_MOreTrees.oreleansID)
            {
                thePlayer.timeUntilPortal = 10;
                thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, mod_MOreTrees.oreleansID, new TeleporterOreleans(thePlayer.mcServer.worldServerForDimension(mod_MOreTrees.oreleansID)));
            }
            else
            {
                thePlayer.timeUntilPortal = 10;
                thePlayer.mcServer.getConfigurationManager().transferPlayerToDimension(thePlayer, 0, new TeleporterOreleans(thePlayer.mcServer.worldServerForDimension(0)));
            }
        }
    }

Before you even think about modding,

  Quote
Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • When you name a method like that, with no return value, it is a constructor. The constructor must have the same name as the class it constructs, in this case, ModItems. I would strongly advise reading up on some basic Java tutorials, because you will definitely be running into a lot more issues as you go along without the basics. *I should also add that the Forge documentation is a reference, not a tutorial. Even following tutorials, you should know Java basics, otherwise the smallest of mistakes will trip you up as you copy someone elses code.
    • so, I'm starting modding and I'm following the official documantation for forge: https://docs.minecraftforge.net, but in the registries part it is not working as it is in the docs:   public class ModItems { private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, DarkStarvation.MOD_ID); public static final RegistryObject<Item> TEST_ITEM = ITEMS.register("test_item", () -> new Item(new Item.Properties())); public DarkStarvation(FMLJavaModLoadingContext context) { ITEMS.register(context.getModEventBus()); } } in 'public DarkStarvation(...' the DarkStarvation has this error: Invalid method declaration; return type required and the getModEventBus(): Cannot resolve method 'getModEventBus' in 'FMLJavaModLoadingContext' please help, I asked gpt but it is saying that I'm using an old method, but I'm following the latest version of Forge Docs???
    • I merged your second post with the original , there is no need to post a new thread asking for an answer. If someone sees your post and can help, they will reply. If you are seeking a quicker response, you could try asking in the Minecraft Forge diacord.
    • Create a new instance and start with cobblemon - if this works, add the rest of your mods in groups   Maybe another mod is conflicting - like Sodium/Iris or Radical Cobblemon Trainers
    • https://forums.minecraftforge.net/topic/157393-1201-forge-rocket-flame-particle-trail-moves-up-and-crashes-into-the-rocket-during-flight/#comment-584134
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.