Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
- {
- if (par5Entity.ridingEntity == null && par5Entity.riddenByEntity == null && !par1World.isRemote)
- {
- int time = 0;
- time = par5Entity.getEntityData().getInteger("HWPortalTime");
- //System.out.println(time);
- if (par5Entity instanceof EntityPlayerMP) {
- if (time++ > 300) {
- time = 0;
- TileEntityHWPortal portal = null;
- TileEntity te = par1World.getBlockTileEntity(par2, par3, par4);
- if (te instanceof TileEntityHWPortal) {
- portal = ((TileEntityHWPortal)te).getMainTileEntity();
- }
- if (portal != null) {
- //travelToDimension(par5Entity, par1World.provider.dimensionId == 0 ? HostileWorlds.instance.dimIDCatacombs : 0);
- if (portal.destDim == -1 && par1World.provider.dimensionId == 0) {
- System.out.println("-1 dim :/");
- MinecraftServer.getServer().getConfigurationManager().transferPlayerToDimension((EntityPlayerMP) par5Entity, par1World.provider.dimensionId == 0 ? 0 : 0, new HWTeleporter((WorldServer)par5Entity.worldObj));
- } else {
- if (DimensionManager.getWorld(portal.destDim) != null) {
- MinecraftServer.getServer().getConfigurationManager().transferPlayerToDimension((EntityPlayerMP) par5Entity, par1World.provider.dimensionId == 0 ? portal.destDim : 0, new HWTeleporter((WorldServer)par5Entity.worldObj));
- }
- }
- } else {
- System.out.println("error cant find tile entity");
- }
- }
- } else {
- if (time++ > 5) {
- time = 0;
- int destDim = 0;
- if (par1World.provider.dimensionId == 0) {
- TileEntityHWPortal portal = null;
- TileEntity te = par1World.getBlockTileEntity(par2, par3, par4);
- if (te instanceof TileEntityHWPortal) {
- portal = ((TileEntityHWPortal)te).getMainTileEntity();
- }
- if (portal != null) {
- destDim = portal.destDim;
- }
- }
- if (destDim == -1) {
- System.out.println("fail, portal.destDim is -1");
- } else {
- if (DimensionManager.getWorld(destDim) != null) {
- travelToDimension(par5Entity, par1World.provider.dimensionId == 0 ? destDim : 0);
- }
- }
- //MinecraftServer.getServer().getConfigurationManager().transferEntityToWorld(par5Entity, par2, (WorldServer)par1World, DimensionManager.getWorld(par1World.provider.dimensionId == 0 ? HostileWorlds.instance.dimIDCatacombs : 0), new HWTeleporter((WorldServer)par5Entity.worldObj));
- }
- }
- //needs a proper reset outside this method for when they step out of a portal before it teleports
- par5Entity.getEntityData().setInteger("HWPortalTime", time);
- }
- }
- public void travelToDimension(Entity ent, int par1)
- {
- if (!ent.worldObj.isRemote && !ent.isDead)
- {
- ent.worldObj.theProfiler.startSection("changeDimension");
- MinecraftServer var2 = MinecraftServer.getServer();
- int var3 = ent.dimension;
- WorldServer var4 = var2.worldServerForDimension(var3);
- WorldServer var5 = var2.worldServerForDimension(par1);
- ent.dimension = par1;
- ent.worldObj.setEntityDead(ent);
- ent.isDead = false;
- ent.worldObj.theProfiler.startSection("reposition");
- var2.getConfigurationManager().transferEntityToWorld(ent, var3, var4, var5, new HWTeleporter((WorldServer)ent.worldObj));
- ent.worldObj.theProfiler.endStartSection("reloading");
- Entity var6 = EntityList.createEntityByName(EntityList.getEntityString(ent), var5);
- if (var6 != null)
- {
- var6.copyDataFrom(ent, true);
- var5.spawnEntityInWorld(var6);
- }
- ent.isDead = true;
- ent.worldObj.theProfiler.endSection();
- var4.resetUpdateEntityTick();
- var5.resetUpdateEntityTick();
- ent.worldObj.theProfiler.endSection();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement