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

Java PacketBuffer类代码示例

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

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



PacketBuffer类属于io.gomint.jraknet包,在下文中一共展示了PacketBuffer类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
public void serialize( PacketBuffer buffer ) {
    buffer.writeSignedVarInt( 0 );

    buffer.writeUnsignedVarInt( this.ingredients.length );
    for ( ItemStack ingredient : this.ingredients ) {
        Packet.writeItemStack( ingredient, buffer );
    }

    buffer.writeUnsignedVarInt( this.outcome.length );
    for ( ItemStack itemStack : this.outcome ) {
        Packet.writeItemStack( itemStack, buffer );
    }

    buffer.writeUUID( this.getUUID() );
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:17,代码来源:ShapelessRecipe.java


示例2: deserialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
/**
 * Deserialize a transaction action
 *
 * @param buffer Data from the packet
 */
public void deserialize( PacketBuffer buffer ) {
    this.sourceType = buffer.readUnsignedVarInt();

    switch ( this.sourceType ) {
        case SOURCE_CONTAINER:
        case SOURCE_WTF_IS_DIS:
            this.windowId = buffer.readSignedVarInt();
            break;
        case SOURCE_WORLD:
            this.unknown = buffer.readUnsignedVarInt();
            break;
        case SOURCE_CREATIVE:
            break;
        default:
            LOGGER.warn( "Unknown source type: " + this.sourceType );
    }

    this.slot = buffer.readUnsignedVarInt();
    this.oldItem = readItemStack( buffer );
    this.newItem = readItemStack( buffer );
}
 
开发者ID:GoMint,项目名称:ProxProx,代码行数:27,代码来源:PacketInventoryTransaction.java


示例3: writeGamerules

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
public void writeGamerules( Map<Gamerule, Object> gamerules, PacketBuffer buffer ) {
	if ( gamerules == null ) {
		buffer.writeUnsignedVarInt( 0 );
		return;
	}

	buffer.writeUnsignedVarInt( gamerules.size() );
	gamerules.forEach( new BiConsumer<Gamerule, Object>() {
		@Override
		public void accept( Gamerule gamerule, Object value ) {
			buffer.writeString( gamerule.getNbtName().toLowerCase() );

			if ( gamerule.getValueType() == Boolean.class ) {
				buffer.writeByte( (byte) 1 );
				buffer.writeBoolean( (Boolean) value );
			} else if ( gamerule.getValueType() == Integer.class ) {
				buffer.writeByte( (byte) 2 );
				buffer.writeUnsignedVarInt( (Integer) value );
			} else if ( gamerule.getValueType() == Float.class ) {
				buffer.writeByte( (byte) 3 );
				buffer.writeLFloat( (Float) value );
			}
		}
	} );
}
 
开发者ID:GoMint,项目名称:Proxy,代码行数:26,代码来源:Packet.java


示例4: dumpPacketbuffer

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
public static void dumpPacketbuffer( PacketBuffer buffer ) {
    StringBuilder lineBuilder = new StringBuilder();
    StringBuilder stringRepBuilder = new StringBuilder();
    while ( buffer.getRemaining() > 0 ) {
        for ( int i = 0; i < 64 && buffer.getRemaining() > 0; ++i ) {
            byte b = buffer.readByte();
            String hex = Integer.toHexString( ( (int) b ) & 0xFF );
            if ( hex.length() < 2 ) {
                hex = "0" + hex;
            }

            stringRepBuilder.append( (char) (b & 0xFF) );
            lineBuilder.append( hex );
            if ( i + 1 < 64 && buffer.getRemaining() > 0 ) {
                lineBuilder.append( " " );
            }
        }

        lineBuilder.append( " " ).append( stringRepBuilder );
        LOGGER.info( lineBuilder.toString() );
        lineBuilder = new StringBuilder();
        stringRepBuilder = new StringBuilder();
    }

    buffer.resetPosition();
}
 
开发者ID:GoMint,项目名称:ProxProx,代码行数:27,代码来源:DumpUtil.java


示例5: deserialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
public void deserialize( PacketBuffer buffer ) {
    // We only need the runtime id
    buffer.readSignedVarLong();
    this.runtimeEntityId = buffer.readUnsignedVarLong();

    // ignore gamemode
    this.gamemode = buffer.readSignedVarInt();

    this.spawnX = buffer.readLFloat();
    this.spawnY = buffer.readLFloat();
    this.spawnZ = buffer.readLFloat();
    this.spawnYaw = buffer.readLFloat();
    this.spawnPitch = buffer.readLFloat();

    buffer.readSignedVarInt();
    buffer.readSignedVarInt();
    buffer.readSignedVarInt();
    buffer.readSignedVarInt();

    this.difficulty = buffer.readSignedVarInt();
}
 
开发者ID:GoMint,项目名称:ProxProx,代码行数:23,代码来源:PacketStartGame.java


示例6: sendQueue

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
private void sendQueue() {
    if ( !this.packetQueue.isEmpty() ) {
        List<PacketBuffer> buffers = new ArrayList<>();
        this.packetQueue.drainTo( buffers );
        this.postProcessWorker.sendPackets( buffers );
    }

    if ( this.disconnect != null ) {
        this.connection.disconnect( this.disconnect );

        if ( this.pendingDownStream != null ) {
            this.pendingDownStream.disconnect( this.disconnect );
            this.pendingDownStream = null;
        }

        if ( this.currentDownStream != null ) {
            this.currentDownStream.disconnect( this.disconnect );
            this.currentDownStream = null;
        }
    }
}
 
开发者ID:GoMint,项目名称:ProxProx,代码行数:22,代码来源:UpstreamConnection.java


示例7: addPacket

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
public void addPacket( String from, String to, byte packetId, PacketBuffer buffer ) {
    /*StringBuilder builder = new StringBuilder( "[PKT] " ).append( from ).append( " -> " ).append( to );
    builder.append( " 0x" ).append( Integer.toHexString( packetId & 0xFF ) ).append( ": " );

    if ( buffer.getRemaining() > 64 ) {
        builder.append( "TRUNCATED " );
    }

    int showAmount = buffer.getRemaining();
    if ( showAmount > 64 ) {
        showAmount = 64;
    }

    int oldPosition = buffer.getPosition();
    for ( int i = 0; i < showAmount; i++ ) {
        byte b = buffer.readByte();
        builder.append( "0x" ).append( Integer.toHexString( b & 0xFF ) ).append( " " );
    }

    buffer.setPosition( oldPosition );
    addLine( builder.toString() );*/
}
 
开发者ID:GoMint,项目名称:ProxProx,代码行数:23,代码来源:Debugger.java


示例8: handleBatchPacket

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
private void handleBatchPacket(Client client, ByteBuf buf) {
    // Encrypted?
    byte[] input = new byte[buf.readableBytes()];
    buf.readBytes(input);

    if (client.getProtocolEncryption() != null) {
        input = client.getProtocolEncryption().decryptInputFromClient(input);
        if (input == null) {
            disconnectClient(client, "Invalid checksum");
            return;
        }
    }

    byte[] payload = ByteBufUtils.inflate(input);

    PacketBuffer buffer = new PacketBuffer(payload, 0);
    while (buffer.getRemaining() > 0) {
        int packetLength = buffer.readUnsignedVarInt();

        byte[] payloadData = new byte[packetLength];
        buffer.readBytes(payloadData);

        ByteBuf pktBuffer = ByteBufAllocator.DEFAULT.buffer(payloadData.length);
        pktBuffer.writeBytes(payloadData);

        pktBuffer.markReaderIndex();

        handleSocketData(client, pktBuffer);

        if (pktBuffer.readableBytes() > 0) {
            pktBuffer.resetReaderIndex();
            log.warn("Did not read packet ID 0x{} to completion", Integer.toHexString(pktBuffer.readByte()));
        }
    }
}
 
开发者ID:JungleTree,项目名称:JungleTree,代码行数:36,代码来源:JungleConnectivityManager.java


示例9: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
public void serialize( PacketBuffer buffer ) {
    // The type of this recipe is defined after the input metadata
    buffer.writeSignedVarInt( this.input.getData() == 0 ? 2 : 3 );

    // We need to custom write items
    buffer.writeSignedVarInt( ( (io.gomint.server.inventory.item.ItemStack) this.input ).getMaterial() );
    if ( this.input.getData() != 0 ) buffer.writeSignedVarInt( this.input.getData() );

    Packet.writeItemStack( this.outcome, buffer );
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:12,代码来源:SmeltingRecipe.java


示例10: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
public void serialize( PacketBuffer buffer ) {
    buffer.writeByte( this.type.getSoundId() );
    buffer.writeLFloat( this.position.getX() );
    buffer.writeLFloat( this.position.getY() );
    buffer.writeLFloat( this.position.getZ() );
    buffer.writeSignedVarInt( this.extraData );
    buffer.writeSignedVarInt( this.pitch );
    buffer.writeBoolean( this.unknownBool );
    buffer.writeBoolean( this.disableRelativeVolume );
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:12,代码来源:PacketWorldSoundEvent.java


示例11: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
void serialize( PacketBuffer buffer, int index ) {
    super.serialize( buffer, index );
    buffer.writeSignedVarInt( this.x );
    buffer.writeSignedVarInt( this.y );
    buffer.writeSignedVarInt( this.z );
}
 
开发者ID:GoMint,项目名称:Proxy,代码行数:8,代码来源:MetadataPosition.java


示例12: writeIntList

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
/**
 * Write a array of integers to the buffer
 *
 * @param integers which should be written to the buffer
 * @param buffer   which should be written to
 */
void writeIntList( int[] integers, PacketBuffer buffer ) {
    if ( integers == null || integers.length == 0 ) {
        buffer.writeUnsignedVarInt( 0 );
        return;
    }

    buffer.writeUnsignedVarInt( integers.length );

    for ( Integer integer : integers ) {
        buffer.writeSignedVarInt( integer );
    }
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:19,代码来源:Packet.java


示例13: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
/**
 * Serializes this metadata container into the specified buffer.
 *
 * @param buffer The buffer to serialize this metadata container into
 */
public void serialize( PacketBuffer buffer ) {
    buffer.writeUnsignedVarInt( this.entries.size() );
    this.entries.forEach( new ByteObjConsumer<MetadataValue>() {
        @Override
        public void accept( byte id, MetadataValue metadataValue ) {
            metadataValue.serialize( buffer, id );
        }
    } );
}
 
开发者ID:GoMint,项目名称:Proxy,代码行数:15,代码来源:MetadataContainer.java


示例14: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
public void serialize( PacketBuffer buffer ) {
    buffer.writeUnsignedVarLong( this.entityId );
    writeItemStack( this.helmet, buffer );
    writeItemStack( this.chestplate, buffer );
    writeItemStack( this.leggings, buffer );
    writeItemStack( this.boots, buffer );
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:9,代码来源:PacketMobArmorEquipment.java


示例15: send

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
/**
 * Sends the given packet to the player.
 *
 * @param reliability     The reliability to send the packet with
 * @param orderingChannel The ordering channel to send the packet on
 * @param packet          The packet to send to the player
 */
public void send( PacketReliability reliability, int orderingChannel, Packet packet ) {
    if ( !( packet instanceof PacketBatch ) ) {
        this.postProcessWorker.getQueuedPacketBatches().add( new Packet[]{ packet } );
    } else {
        PacketBuffer buffer = new PacketBuffer( 64 );
        buffer.writeByte( packet.getId() );
        packet.serialize( buffer );

        this.connection.send( reliability, orderingChannel, buffer.getBuffer(), 0, buffer.getPosition() );
    }
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:19,代码来源:PlayerConnection.java


示例16: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
public void serialize( PacketBuffer buffer ) {
    buffer.writeUUID( this.uuid );
    buffer.writeString( this.name );
    buffer.writeSignedVarLong( this.entityId );
    buffer.writeUnsignedVarLong( this.runtimeEntityId );

    buffer.writeLFloat( this.x );
    buffer.writeLFloat( this.y );
    buffer.writeLFloat( this.z );

    buffer.writeLFloat( this.velocityX );
    buffer.writeLFloat( this.velocityY );
    buffer.writeLFloat( this.velocityZ );

    buffer.writeLFloat( this.pitch );
    buffer.writeLFloat( this.headYaw );
    buffer.writeLFloat( this.yaw );

    writeItemStack( this.itemInHand, buffer );
    this.metadataContainer.serialize( buffer );

    buffer.writeUnsignedVarInt( this.flags );
    buffer.writeUnsignedVarInt( this.commandPermission );
    buffer.writeUnsignedVarInt( this.flags2 );
    buffer.writeUnsignedVarInt( this.playerPermission );
    buffer.writeUnsignedVarInt( this.customFlags );

    buffer.writeLLong( this.entityId );

    writeEntityLinks( this.links, buffer );
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:33,代码来源:PacketSpawnPlayer.java


示例17: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
public void serialize( PacketBuffer buffer ) {
    buffer.writeByte( this.status.getId() );
    buffer.writeLShort( (short) this.info.size() );
    for ( Map.Entry<String, String> entry : this.info.entrySet() ) {
        buffer.writeString( entry.getKey() );
        buffer.writeString( entry.getValue() );
    }
}
 
开发者ID:GoMint,项目名称:ProxProx,代码行数:10,代码来源:PacketResourcePackResponse.java


示例18: writeEntityLinks

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
public void writeEntityLinks( List<EntityLink> links, PacketBuffer buffer ) {
    if ( links == null ) {
        buffer.writeUnsignedVarInt( 0 );
    } else {
        buffer.writeUnsignedVarInt( links.size() );
        for ( EntityLink link : links ) {
            buffer.writeUnsignedVarLong( link.getFrom() );
            buffer.writeUnsignedVarLong( link.getTo() );
            buffer.writeByte( link.getUnknown1() );
            buffer.writeByte( link.getUnknown2() );
        }
    }
}
 
开发者ID:GoMint,项目名称:GoMint,代码行数:14,代码来源:Packet.java


示例19: readItemStack

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
public static ItemStack readItemStack( PacketBuffer buffer ) {
	int id = buffer.readSignedVarInt();
	if ( id == 0 ) {
		return new ItemStack( Material.AIR, (short) 0, 0, null );
	}

	int temp = buffer.readSignedVarInt();
	byte amount = (byte) ( temp & 0xFF );
	short data = (short) ( temp >> 8 );

	NBTTagCompound nbt = null;
	short extraLen = buffer.readLShort();
	if ( extraLen > 0 ) {
		ByteArrayInputStream bin = new ByteArrayInputStream( buffer.getBuffer(), buffer.getPosition(), extraLen );
		try {
			nbt = NBTTagCompound.readFrom( bin, false, ByteOrder.LITTLE_ENDIAN );
		} catch ( IOException e ) {
			e.printStackTrace();
		}

		buffer.skip( extraLen );
	}

	// They implemented additional data for item stacks aside from nbt
	int countPlacedOn = buffer.readSignedVarInt();
	for ( int i = 0; i < countPlacedOn; i++ ) {
		buffer.readString();    // TODO: Implement proper support once we know the string values
	}

	int countCanBreak = buffer.readSignedVarInt();
	for ( int i = 0; i < countCanBreak; i++ ) {
		buffer.readString();    // TODO: Implement proper support once we know the string values
	}

	return new ItemStack( EnumConnectors.MATERIAL_CONNECTOR.revert( MaterialMagicNumbers.valueOfWithId( id ) ), data, amount, nbt );
}
 
开发者ID:GoMint,项目名称:Proxy,代码行数:37,代码来源:Packet.java


示例20: serialize

import io.gomint.jraknet.PacketBuffer; //导入依赖的package包/类
@Override
void serialize( PacketBuffer buffer, int index ) {
    super.serialize( buffer, index );
    buffer.writeLFloat( this.value.getX() );
    buffer.writeLFloat( this.value.getY() );
    buffer.writeLFloat( this.value.getZ() );
}
 
开发者ID:GoMint,项目名称:Proxy,代码行数:8,代码来源:MetadataVector.java



注:本文中的io.gomint.jraknet.PacketBuffer类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

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

请发表评论

全部评论

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

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

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

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

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