當前位置: 首頁>>代碼示例>>Java>>正文


Java PacketContainer類代碼示例

本文整理匯總了Java中com.comphenix.protocol.events.PacketContainer的典型用法代碼示例。如果您正苦於以下問題:Java PacketContainer類的具體用法?Java PacketContainer怎麽用?Java PacketContainer使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


PacketContainer類屬於com.comphenix.protocol.events包,在下文中一共展示了PacketContainer類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: newObjectivePacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
private PacketContainer newObjectivePacket(UpdateType mode) {
    // http://wiki.vg/Protocol#Scoreboard_Objective
    PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_OBJECTIVE);

    // set name - limited to String(16)
    packet.getStrings().write(0, getId());

    // set mode - 0 to create the scoreboard. 1 to remove the scoreboard. 2 to update the display text.
    packet.getIntegers().write(0, mode.getCode());

    // set display name - limited to String(16) - Only if mode is 0 or 2. The text to be displayed for the score
    packet.getStrings().write(1, getDisplayName());

    // set type - either "integer" or "hearts"
    packet.getEnumModifier(HealthDisplay.class, 2).write(0, HealthDisplay.INTEGER);

    return packet;
}
 
開發者ID:lucko,項目名稱:helper,代碼行數:19,代碼來源:PacketScoreboardObjective.java

示例2: newScorePacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
private PacketContainer newScorePacket(String name, int value, ScoreboardAction action) {
    // http://wiki.vg/Protocol#Update_Score
    PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_SCORE);

    // set "Entity name" - aka the name of the score - limited to 40.
    packet.getStrings().write(0, name);

    // set the action - 0 to create/update an item. 1 to remove an item.
    packet.getScoreboardActions().write(0, action);

    // set objective name - The name of the objective the score belongs to
    packet.getStrings().write(1, getId());

    // set value of the score- The score to be displayed next to the entry. Only sent when Action does not equal 1.
    packet.getIntegers().write(0, value);

    return packet;
}
 
開發者ID:lucko,項目名稱:helper,代碼行數:19,代碼來源:PacketScoreboardObjective.java

示例3: newTeamMemberUpdatePacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
private PacketContainer newTeamMemberUpdatePacket(String player, MemberAction action) {
    // http://wiki.vg/Protocol#Teams
    PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_TEAM);

    // set team name - 	String (16)
    packet.getStrings().write(0, getId());

    // set mode
    switch (action) {
        case ADD:
            packet.getIntegers().write(1, UpdateType.ADD_PLAYERS.getCode());
            break;
        case REMOVE:
            packet.getIntegers().write(1, UpdateType.REMOVE_PLAYERS.getCode());
            break;
        default:
            throw new RuntimeException();
    }

    // set players - Array of String (40)
    packet.getSpecificModifier(Collection.class).write(0, Collections.singletonList(player));
    
    return packet;
}
 
開發者ID:lucko,項目名稱:helper,代碼行數:25,代碼來源:PacketScoreboardTeam.java

示例4: sendTabListAddPacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
@Override
public void sendTabListAddPacket(Player playerToAdd, GameProfileWrapper newProfile, Player seer) {
    PacketContainer packet = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.PLAYER_INFO);
    int ping = (int) ReflectUtil.getFieldValue(ReflectUtil.invokeMethod(playerToAdd, GET_HANDLE).getOrThrow(), PING).getOrThrow();
    packet.getPlayerInfoAction().write(0, EnumWrappers.PlayerInfoAction.ADD_PLAYER);
    PlayerInfoData playerInfoData = new PlayerInfoData(getProtocolLibProfileWrapper(newProfile), ping, EnumWrappers.NativeGameMode.fromBukkit(playerToAdd.getGameMode()), WrappedChatComponent.fromText(playerToAdd.getPlayerListName()));
    packet.getPlayerInfoDataLists().write(0, Collections.singletonList(playerInfoData));
    try {
        ProtocolLibrary.getProtocolManager().sendServerPacket(seer, packet);
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }
}
 
開發者ID:Alvin-LB,項目名稱:NameTagChanger,代碼行數:14,代碼來源:ProtocolLibPacketHandler.java

示例5: sendNamedEntitySpawnPacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
@Override
public void sendNamedEntitySpawnPacket(Player playerToSpawn, Player seer) {
    PacketContainer packet = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.NAMED_ENTITY_SPAWN);
    packet.getIntegers().write(0, playerToSpawn.getEntityId());
    packet.getUUIDs().write(0, playerToSpawn.getUniqueId());
    if (ReflectUtil.isVersionHigherThan(1, 8, 8)) {
        packet.getDoubles().write(0, playerToSpawn.getLocation().getX());
        packet.getDoubles().write(1, playerToSpawn.getLocation().getY());
        packet.getDoubles().write(2, playerToSpawn.getLocation().getZ());
    } else {
        packet.getIntegers().write(0, (int) Math.floor(playerToSpawn.getLocation().getX() * 32D));
        packet.getIntegers().write(1, (int) Math.floor(playerToSpawn.getLocation().getY() * 32D));
        packet.getIntegers().write(2, (int) Math.floor(playerToSpawn.getLocation().getZ() * 32D));
    }
    packet.getBytes().write(0, (byte) (playerToSpawn.getLocation().getYaw() * 256F / 360F));
    packet.getBytes().write(1, (byte) (playerToSpawn.getLocation().getPitch() * 256F / 360F));
    try {
        ProtocolLibrary.getProtocolManager().sendServerPacket(seer, packet);
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }
}
 
開發者ID:Alvin-LB,項目名稱:NameTagChanger,代碼行數:23,代碼來源:ProtocolLibPacketHandler.java

示例6: openFor

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
@Override
public void openFor(Player player) throws InvocationTargetException {
	if (AuthMeApi.getInstance().isAuthenticated(player)) {
		return;
	}
	PacketContainer fakeBlockChange = new PacketContainer(PacketType.Play.Server.BLOCK_CHANGE);
	PacketContainer updateEntity = new PacketContainer(PacketType.Play.Server.TILE_ENTITY_DATA);
	PacketContainer sign = new PacketContainer(PacketType.Play.Server.OPEN_SIGN_EDITOR);
	Location block = player.getLocation().getBlock().getLocation();
	BlockPosition position = new BlockPosition(block.getBlockX(), block.getBlockY() + 1, block.getBlockZ());
	fakeBlockChange.getBlockPositionModifier().write(0, position);
	fakeBlockChange.getBlockData().write(0, WrappedBlockData.createData(Material.SIGN_POST));
	protocolManager.sendServerPacket(player, fakeBlockChange);
	updateEntity.getBlockPositionModifier().write(0, position);
	updateEntity.getIntegers().write(0, 9);
	NbtCompound signNbt = (NbtCompound) updateEntity.getNbtModifier().read(0);
	signNbt = signNbt == null ? NbtFactory.ofCompound("") : signNbt;
	List<String> lines = this.getInfoFor(player);
	for (int i = 0; i < lines.size() || i < 4; i++) {
		signNbt.put("Text" + (i + 1), "{\"text\":\"" + lines.get(i) + "\"}");
	}
	updateEntity.getNbtModifier().write(0, signNbt);
	protocolManager.sendServerPacket(player, updateEntity);
	sign.getBlockPositionModifier().write(0, position);
	protocolManager.sendServerPacket(player, sign);
}
 
開發者ID:lj2000lj,項目名稱:AuthMeGUI,代碼行數:27,代碼來源:SignLoginWindow.java

示例7: fromMapPacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
/**
 * Construct a chunk packet processor from a givne MAP_CHUNK packet.
 * @param packet - the map chunk packet.
 * @return The chunk packet processor.
 */
public static ChunkPacketProcessor fromMapPacket(PacketContainer packet, World world) {
	if (!packet.getType().equals(PacketType.Play.Server.MAP_CHUNK))
		throw new IllegalArgumentException(packet + " must be a MAP_CHUNK packet.");
	
	StructureModifier<Integer> ints = packet.getIntegers();
	StructureModifier<byte[]> byteArray = packet.getByteArrays();
    
    // Create an info objects
	ChunkPacketProcessor processor = new ChunkPacketProcessor();
	processor.world = world;
    processor.chunkX = ints.read(0); 	 // packet.a;
    processor.chunkZ = ints.read(1); 	 // packet.b;
    processor.chunkMask = ints.read(2);  // packet.c;
    processor.extraMask = ints.read(3);  // packet.d;
    processor.data = byteArray.read(1);  // packet.inflatedBuffer;
    processor.startIndex = 0;

    if (packet.getBooleans().size() > 0) {
    	processor.hasContinous = packet.getBooleans().read(0);
    }
    return processor;
}
 
開發者ID:Vrekt,項目名稱:Arc-v2,代碼行數:28,代碼來源:ChunkPacketProcessor.java

示例8: hideEntity

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
/**
 * Prevent the observer from seeing a given entity.
 * @param observer - the player observer.
 * @param entity - the entity to hide.
 * @return TRUE if the entity was previously visible, FALSE otherwise.
 */
public boolean hideEntity(Player observer, Entity entity) {
	validate(observer, entity);
	boolean visibleBefore = setVisibility(observer, entity.getEntityId(), false);

	if (visibleBefore) {
		PacketContainer destroyEntity = new PacketContainer(ENTITY_DESTROY);
		destroyEntity.getIntegerArrays().write(0, new int[] { entity.getEntityId() });

		// Make the entity disappear
		try {
			manager.sendServerPacket(observer, destroyEntity);
		} catch (InvocationTargetException e) {
			throw new RuntimeException("Cannot send server packet.", e);
		}
	}
	return visibleBefore;
}
 
開發者ID:ijoeleoli,項目名稱:ZorahPractice,代碼行數:24,代碼來源:EntityHider.java

示例9: sendMessage

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
public static void sendMessage(Player player, String message, int slot, int second) {
    ItemStack item = player.getOpenInventory().getItem(slot);
    if (item != null && item.getType() != Material.AIR) {
        ItemStack newItem = new ItemBuilder(item)
                .display(message)
                .build();
        PlayerWrapper wrapper = new PlayerWrapper(player);

        Bukkit.getScheduler().runTask(MCLibrary.getPlugin(), () -> {
            PacketContainer packet = MCLibrary.getPacketFactory().createSetSlot(
                    wrapper.getContainerCounter(), slot, newItem
            );
            MCUtils.sendPacket(player, packet);
            Bukkit.getScheduler().runTaskLater(MCLibrary.getPlugin(), () -> {
                packet.getItemModifier().write(0, item);
                MCUtils.sendPacket(player, packet);
            }, second * 20L);
        });
    }
}
 
開發者ID:EntryPointKR,項目名稱:MCLibrary,代碼行數:21,代碼來源:Inventories.java

示例10: sendKeepAlive

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
public static void sendKeepAlive(List<Player> player) {
	for (Player p : player) {
		try {
			PacketContainer packet = get().createPacket(PacketType.Play.Client.KEEP_ALIVE);
			packet.getIntegers().write(0, random.nextInt());
			get().sendServerPacket(p, packet);
		} catch (InvocationTargetException ex) {
			ex.printStackTrace();
		}
	}
}
 
開發者ID:jiongjionger,項目名稱:NeverLag,代碼行數:12,代碼來源:ProtocolUtils.java

示例11: newDisplaySlotPacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
private PacketContainer newDisplaySlotPacket(DisplaySlot displaySlot) {
    // http://wiki.vg/Protocol#Display_Scoreboard
    PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_DISPLAY_OBJECTIVE);

    // set position
    final int slot;
    switch (displaySlot) {
        case PLAYER_LIST:
            slot = 0;
            break;
        case SIDEBAR:
            slot = 1;
            break;
        case BELOW_NAME:
            slot = 2;
            break;
        default:
            throw new RuntimeException();
    }

    packet.getIntegers().write(0, slot);

    // set objective name - The unique name for the scoreboard to be displayed.
    packet.getStrings().write(0, getId());

    return packet;
}
 
開發者ID:lucko,項目名稱:helper,代碼行數:28,代碼來源:PacketScoreboardObjective.java

示例12: sendPacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
/**
 * Sends a packet to a player, absorbing any exceptions thrown in the process
 *
 * @param packet the packet to send
 * @param player the player to send the packet to
 */
void sendPacket(PacketContainer packet, Player player) {
    try {
        protocolManager.sendServerPacket(player, packet);
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 
開發者ID:lucko,項目名稱:helper,代碼行數:14,代碼來源:PacketScoreboard.java

示例13: newCreatePacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
private PacketContainer newCreatePacket() {
    // create an update packet (as that contains a number of values required by the create packet)
    PacketContainer packet = newUpdatePacket();

    // set mode - byte
    packet.getIntegers().write(1, UpdateType.CREATE.getCode());

    // add player info - array of String(40)
    List<String> players = new ArrayList<>(getPlayers());

    // set players - ProtocolLib handles setting 'Entity Count'
    packet.getSpecificModifier(Collection.class).write(0, players);
    
    return packet;
}
 
開發者ID:lucko,項目名稱:helper,代碼行數:16,代碼來源:PacketScoreboardTeam.java

示例14: newRemovePacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
private PacketContainer newRemovePacket() {
    // http://wiki.vg/Protocol#Teams
    PacketContainer packet = new PacketContainer(PacketType.Play.Server.SCOREBOARD_TEAM);

    // remove packet only has the default fields

    // set team name - 	String (16)
    packet.getStrings().write(0, getId());

    // set mode - byte
    packet.getIntegers().write(1, UpdateType.REMOVE.getCode());

    return packet;
}
 
開發者ID:lucko,項目名稱:helper,代碼行數:15,代碼來源:PacketScoreboardTeam.java

示例15: sendTabListRemovePacket

import com.comphenix.protocol.events.PacketContainer; //導入依賴的package包/類
@Override
public void sendTabListRemovePacket(Player playerToRemove, Player seer) {
    PacketContainer packet = ProtocolLibrary.getProtocolManager().createPacket(PacketType.Play.Server.PLAYER_INFO);
    packet.getPlayerInfoAction().write(0, EnumWrappers.PlayerInfoAction.REMOVE_PLAYER);
    PlayerInfoData playerInfoData = new PlayerInfoData(WrappedGameProfile.fromPlayer(playerToRemove), 0, EnumWrappers.NativeGameMode.NOT_SET, null);
    packet.getPlayerInfoDataLists().write(0, Collections.singletonList(playerInfoData));
    try {
        ProtocolLibrary.getProtocolManager().sendServerPacket(seer, packet);
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    }
}
 
開發者ID:Alvin-LB,項目名稱:NameTagChanger,代碼行數:13,代碼來源:ProtocolLibPacketHandler.java


注:本文中的com.comphenix.protocol.events.PacketContainer類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。