public override void OnEntityCollide(IWorldAccessor world, Entity entity, BlockPos pos, BlockFacing facing, Vec3d collideSpeed, bool isImpact)
        {
            base.OnEntityCollide(world, entity, pos, facing, collideSpeed, isImpact);

            BlockEntityTeleporter be = world.BlockAccessor.GetBlockEntity(pos) as BlockEntityTeleporter;

            if (be == null)
            {
                return;
            }
            be.OnEntityCollide(entity);
        }
        private void OnSetLocationReceived(IServerPlayer fromPlayer, TeleporterLocation networkMessage)
        {
            Locations[networkMessage.SourcePos].SourcePos  = networkMessage.SourcePos;
            Locations[networkMessage.SourcePos].TargetPos  = networkMessage.TargetPos;
            Locations[networkMessage.SourcePos].SourceName = networkMessage.SourceName;
            Locations[networkMessage.SourcePos].TargetName = networkMessage.TargetName;

            BlockEntityTeleporter be = sapi.World.BlockAccessor.GetBlockEntity(networkMessage.SourcePos) as BlockEntityTeleporter;

            if (be != null)
            {
                be.MarkDirty();
            }
        }