当前位置: 首页>>代码示例>>Java>>正文


Java ServerChunkDataPacket类代码示例

本文整理汇总了Java中org.spacehq.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket的典型用法代码示例。如果您正苦于以下问题:Java ServerChunkDataPacket类的具体用法?Java ServerChunkDataPacket怎么用?Java ServerChunkDataPacket使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ServerChunkDataPacket类属于org.spacehq.mc.protocol.packet.ingame.server.world包,在下文中一共展示了ServerChunkDataPacket类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: onPacket

import org.spacehq.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket; //导入依赖的package包/类
@Override
public boolean onPacket(PacketStream stream, PacketData data) {
    try {
        Packet packet = data.getPacket();
        jsonWriter.beginObject();
        jsonWriter.name("time").value(data.getTime());
        jsonWriter.name("type").value(data.getPacket().getClass().getSimpleName());
        jsonWriter.name("data");
        if (packet instanceof ServerChunkDataPacket && !dumpChunks) {
            ServerChunkDataPacket p = (ServerChunkDataPacket) packet;
            jsonWriter.beginObject();
            jsonWriter.name("x").value(p.getX());
            jsonWriter.name("z").value(p.getZ());
            jsonWriter.name("chunks").value(p.getChunks().length);
            jsonWriter.name("biomeData").value(p.getBiomeData().length);
            jsonWriter.endObject();
        } else if (packet instanceof ServerMultiChunkDataPacket && !dumpChunks) {
            jsonWriter.beginObject();
            jsonWriter.name("chunks").value(((ServerMultiChunkDataPacket) packet).getColumns());
            jsonWriter.endObject();
        } else {
            gson.toJson(data.getPacket(), data.getPacket().getClass(), jsonWriter);
        }
        jsonWriter.endObject();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return true;
}
 
开发者ID:ReplayMod,项目名称:ReplayStudio,代码行数:30,代码来源:JsonConverterFilter.java

示例2: tick

import org.spacehq.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket; //导入依赖的package包/类
@Override
public synchronized void tick(long dt) {
	super.tick(dt);

	int chunkX = (int) (this.x / 16);
	int chunkZ = (int) (this.z / 16);
	int viewDistance = Integer.valueOf(MainMain.config.getProperty("render-distance"));
	if (this.world != null) {
		for (int dx = -viewDistance; dx <= viewDistance; dx++) {
			for (int dz = -viewDistance; dz <= viewDistance; dz++) {
				int currentChunkX = chunkX + dx;
				int currentChunkZ = chunkZ + dz;
				if (this.world.isChunkLoaded(currentChunkX, currentChunkZ)) {
					Column currentColumn = this.world.getColumn(currentChunkX, currentChunkZ);
					if (!loadedColumns.contains(currentColumn)) {
						session.send(new ServerChunkDataPacket(currentColumn));
						loadedColumns.add(currentColumn);
					}
				} else {
					this.world.requestChunkLoad(currentChunkX, currentChunkZ);
				}
			}
		}
	}
	for (Iterator<Column> i = this.loadedColumns.iterator(); i.hasNext();) {
		Column column = i.next();

		if (column.getX() > chunkX + viewDistance + 2 || column.getX() < chunkX - viewDistance - 2
				|| column.getZ() > chunkZ + viewDistance + 2 || column.getZ() < chunkZ - viewDistance - 2) {
			i.remove();
			session.send(new ServerUnloadChunkPacket(column.getX(), column.getZ()));
		}
	}

	if (this.world != null) {
		List<ServerEntity> nearbyEntities = this.world.getNearbyEntities(this.x, this.y, this.z);
		for (ServerEntity entity : nearbyEntities) {
			if (!this.loadedEntities.contains(entity) && entity != this) {
				this.loadedEntities.add(entity);
				session.send(entity.getSpawnPacket());
			}
		}

		for (Iterator<ServerEntity> i = loadedEntities.iterator(); i.hasNext();) {
			ServerEntity loadedEntity = i.next();

			if (nearbyEntities.contains(loadedEntity) == false) {
				this.loadedEntities.remove(loadedEntity);
				session.send(loadedEntity.getDespawnPacket());
			}
		}
	}

}
 
开发者ID:MineGuard-dev,项目名称:TestServer_Java,代码行数:55,代码来源:ServerPlayer.java

示例3: tick

import org.spacehq.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket; //导入依赖的package包/类
@Override
public synchronized void tick(long dt) {
	super.tick(dt);
       
       int chunkX = (int)(this.x / 16);
       int chunkZ = (int)(this.z / 16);
       
       
       //TODO: read this from config.
       int viewDistance = 3;

	// Load the needed chunks for the client.
	if (this.world != null) {
		// TODO: read this from config.
		for (int dx = -viewDistance; dx <= viewDistance; dx++) {
			for (int dz = -viewDistance; dz <= viewDistance; dz++) {
				int currentChunkX = chunkX + dx;
				int currentChunkZ = chunkZ + dz;
				
				// Check if the chunk is ready to be sent, otherwise
				// load it.
				if (this.world.isChunkLoaded(currentChunkX, currentChunkZ)) {

					Column currentColumn = this.world.getColumn(currentChunkX, currentChunkZ);

					if (!loadedColumns.contains(currentColumn)) {
						session.send(new ServerChunkDataPacket(currentColumn));
						loadedColumns.add(currentColumn);
					}
				} else {
						this.world.requestChunkLoad(currentChunkX, currentChunkZ);
				}
			}
		}
	}

	// Unload the chunks that are far away from the player.
       
       for(Iterator<Column> i = this.loadedColumns.iterator(); i.hasNext(); ){
           Column column = i.next();
           
           if(column.getX() > chunkX + viewDistance + 2
           || column.getX() < chunkX - viewDistance - 2
           || column.getZ() > chunkZ + viewDistance + 2
           || column.getZ() < chunkZ - viewDistance - 2
           )
           {
               i.remove();
               session.send(new ServerUnloadChunkPacket(column.getX(), column.getZ()));
           }
       }
       
       // Entity adding / removing
       
       if(this.world != null){
           List<NetherEntity> nearbyEntities = this.world.getNearbyEntities(this.x, this.y, this.z);
           
           // Spawn the entities near the player
           for(NetherEntity entity: nearbyEntities){
               if(!this.loadedEntities.contains(entity) && entity != this){
                   this.loadedEntities.add(entity);
                   session.send(entity.getSpawnPacket());
               }
           }
           
           // Despawn the entities far away from the player
           for(Iterator<NetherEntity> i = loadedEntities.iterator(); i.hasNext();){
               NetherEntity loadedEntity = i.next();
               
               if(nearbyEntities.contains(loadedEntity) == false){
               	this.loadedEntities.remove(loadedEntity);
                   session.send(loadedEntity.getDespawnPacket());
               }
           }
       }
       
}
 
开发者ID:netherrack,项目名称:netherrack,代码行数:78,代码来源:NetherPlayer.java

示例4: sendChunk

import org.spacehq.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket; //导入依赖的package包/类
@Override
public void sendChunk(Chunk chunk) {
    CyanChunk cchunk = (CyanChunk) chunk;
    ServerChunkDataPacket packet = new ServerChunkDataPacket(chunk.getX(), chunk.getZ(), cchunk.getSections(), chunk.getBiomeData());
    getPlayerNetwork().sendPacket(packet);
}
 
开发者ID:BeYkeRYkt,项目名称:CyanWool,代码行数:7,代码来源:CyanPlayer.java

示例5: updateChunk

import org.spacehq.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket; //导入依赖的package包/类
@Override
public void updateChunk(Chunk chunk) {
    CyanChunk cchunk = (CyanChunk) chunk;
    ServerChunkDataPacket packet = new ServerChunkDataPacket(chunk.getX(), chunk.getZ(), cchunk.getSections());
    getPlayerNetwork().sendPacket(packet);
}
 
开发者ID:BeYkeRYkt,项目名称:CyanWool,代码行数:7,代码来源:CyanPlayer.java


注:本文中的org.spacehq.mc.protocol.packet.ingame.server.world.ServerChunkDataPacket类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。