• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java ServerChunkDataPacket类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java TypeMap类代码示例发布时间:2022-05-22
下一篇:
Java ParseMode类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap