- 69
- 3
- 3
Здравствуйте, мне необходимо телепортировать игрока, который подключается к обычному миру в ад, делаю я это таким образом:
Но при телепортации в ад он зависает, и в консоли повляется от одного до нескольких таких сообщений -
Пробовал телепортировать игрока с помощью
Пробовал синхронизировать время миров, но не помогло.
Java:
@SubscribeEvent
public static void OnPlayerJoinToSurface (EntityJoinWorldEvent Event)
{
if (Event.getEntity () != null && Event.getEntity () instanceof EntityPlayer && !Event.getWorld ().isRemote && Event.getWorld ().getWorldType () == Netherland.NetherlandWorld && Event.getWorld ().provider.isSurfaceWorld ())
{
Event.getWorld ().getMinecraftServer ().getPlayerList ().transferPlayerToDimension ((EntityPlayerMP)Event.getEntity (), -1, new Teleporter (Event.getWorld ().getMinecraftServer ().getWorld (-1)));
}
}
[Server thread/WARN] [minecraft/MinecraftServer]: Can't keep up! Did the system time change, or is the server overloaded? Running 4044ms behind, skipping 80 tick(s)
. Помогает только перезаход, зависает во всех типах мира, не только в моем (NetherlandWorld
).Пробовал телепортировать игрока с помощью
Entity#changeDimension
, со своим и дефолтным Teleporter, но с дефолтным происходил краш, а с моим - зависание.Пробовал синхронизировать время миров, но не помогло.
Java:
//===================================================================================================
package ru.harushitsune.netherland.world;
//===================================================================================================
import net.minecraft.init.Biomes;
import net.minecraft.world.World;
import net.minecraft.world.WorldType;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeProvider;
import net.minecraft.world.biome.BiomeProviderSingle;
import net.minecraft.world.gen.ChunkGeneratorFlat;
import net.minecraft.world.gen.FlatGeneratorInfo;
import net.minecraft.world.gen.IChunkGenerator;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
//===================================================================================================
public class NetherlandType extends WorldType
{
//=================================================================================================
public NetherlandType ()
{
super ("NETHERLAND");
this.onGUICreateWorldPress ();
}
//=================================================================================================
@SideOnly (Side.CLIENT)
public String getTranslationKey()
{
return "generator.NETHERLAND";
}
//-------------------------------------------------------------------------------------------------
public BiomeProvider getBiomeProvider ()
{
FlatGeneratorInfo Info = FlatGeneratorInfo.createFlatGeneratorFromString ("3;minecraft:air;1;");
return new BiomeProviderSingle (Biome.getBiome (Info.getBiome (), Biomes.VOID));
}
//-------------------------------------------------------------------------------------------------
public boolean isCustomizable ()
{
return false;
}
//-------------------------------------------------------------------------------------------------
public IChunkGenerator getChunkGenerator (World Nether)
{
return new ChunkGeneratorFlat (Nether, Nether.getSeed (), false, "3;minecraft:air;1;");
}
//=================================================================================================
}
//===================================================================================================
Java:
//===================================================================================================
package ru.harushitsune.netherland.world;
//---------------------------------------------------------------------------------------------------
import net.minecraft.entity.Entity;
import net.minecraft.world.World;
import net.minecraft.world.WorldServer;
//===================================================================================================
public class Teleporter extends net.minecraft.world.Teleporter
{
//=================================================================================================
public Teleporter (WorldServer Server)
{
super (Server);
}
public void placeInPortal(Entity entityIn, float rotationYaw) {
}
public boolean placeInExistingPortal(Entity entityIn, float rotationYaw) {
return true;
}
public boolean makePortal(Entity entityIn) {
return false;
}
//=================================================================================================
}
//===================================================================================================
Java:
//===================================================================================================
package ru.harushitsune.netherland.world;
//---------------------------------------------------------------------------------------------------
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import ru.harushitsune.netherland.Netherland;
//===================================================================================================
@EventBusSubscriber
public class Traveling
{
//=================================================================================================
@SubscribeEvent
public static void OnPlayerJoinToSurface (EntityJoinWorldEvent Event)
{
if (Event.getEntity () != null && Event.getEntity () instanceof EntityPlayer && !Event.getWorld ().isRemote && Event.getWorld ().getWorldType () == Netherland.NetherlandWorld && Event.getWorld ().provider.isSurfaceWorld ())
{
Event.getWorld ().getMinecraftServer ().getPlayerList ().transferPlayerToDimension ((EntityPlayerMP)Event.getEntity (), -1, new Teleporter (Event.getWorld ().getMinecraftServer ().getWorld (-1)));
}
}
//=================================================================================================
}
//===================================================================================================