Java Code Examples for com.nukkitx.nbt.CompoundTagBuilder#listTag()
The following examples show how to use
com.nukkitx.nbt.CompoundTagBuilder#listTag() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: EndGatewayBlockEntityTranslator.java From Geyser with MIT License | 5 votes |
@Override public com.nukkitx.nbt.tag.CompoundTag getDefaultBedrockTag(String bedrockId, int x, int y, int z) { CompoundTagBuilder tagBuilder = getConstantBedrockTag(bedrockId, x, y, z).toBuilder(); List<IntTag> tagsList = new ArrayList<>(); tagsList.add(new IntTag("", 0)); tagsList.add(new IntTag("", 0)); tagsList.add(new IntTag("", 0)); tagBuilder.listTag("ExitPortal", IntTag.class, tagsList); return tagBuilder.buildRootTag(); }
Example 2
Source File: InventoryUtils.java From Geyser with MIT License | 5 votes |
/** * Returns a barrier block with custom name and lore to explain why * part of the inventory is unusable. */ public static ItemData createUnusableSpaceBlock(String description) { CompoundTagBuilder root = CompoundTagBuilder.builder(); CompoundTagBuilder display = CompoundTagBuilder.builder(); display.stringTag("Name", ChatColor.RESET + "Unusable inventory space"); display.listTag("Lore", StringTag.class, Collections.singletonList(new StringTag("", ChatColor.RESET + ChatColor.DARK_PURPLE + description))); root.tag(display.build("display")); return ItemData.of(ItemRegistry.ITEM_ENTRIES.get(ItemRegistry.BARRIER_INDEX).getBedrockId(), (short) 0, 1, root.buildRootTag()); }
Example 3
Source File: BannerBlockEntityTranslator.java From Geyser with MIT License | 4 votes |
@Override public com.nukkitx.nbt.tag.CompoundTag getDefaultBedrockTag(String bedrockId, int x, int y, int z) { CompoundTagBuilder tagBuilder = getConstantBedrockTag(bedrockId, x, y, z).toBuilder(); tagBuilder.listTag("Patterns", com.nukkitx.nbt.tag.CompoundTag.class, new ArrayList<>()); return tagBuilder.buildRootTag(); }
Example 4
Source File: JavaTradeListTranslator.java From Geyser with MIT License | 4 votes |
@Override public void translate(ServerTradeListPacket packet, GeyserSession session) { Entity villager = session.getPlayerEntity(); session.setVillagerTrades(packet.getTrades()); villager.getMetadata().put(EntityData.TRADE_TIER, packet.getVillagerLevel() - 1); villager.getMetadata().put(EntityData.MAX_TRADE_TIER, 4); villager.getMetadata().put(EntityData.TRADE_XP, packet.getExperience()); villager.updateBedrockMetadata(session); UpdateTradePacket updateTradePacket = new UpdateTradePacket(); updateTradePacket.setTradeTier(packet.getVillagerLevel() - 1); updateTradePacket.setWindowId((short) packet.getWindowId()); updateTradePacket.setWindowType((short) ContainerType.TRADING.id()); String displayName; Entity realVillager = session.getEntityCache().getEntityByGeyserId(session.getLastInteractedVillagerEid()); if (realVillager != null && realVillager.getMetadata().containsKey(EntityData.NAMETAG) && realVillager.getMetadata().getString(EntityData.NAMETAG) != null) { displayName = realVillager.getMetadata().getString(EntityData.NAMETAG); } else { displayName = packet.isRegularVillager() ? "Villager" : "Wandering Trader"; } updateTradePacket.setDisplayName(displayName); updateTradePacket.setUnknownInt(0); updateTradePacket.setScreen2(true); updateTradePacket.setWilling(true); updateTradePacket.setPlayerUniqueEntityId(session.getPlayerEntity().getGeyserId()); updateTradePacket.setTraderUniqueEntityId(session.getPlayerEntity().getGeyserId()); CompoundTagBuilder builder = CompoundTagBuilder.builder(); List<CompoundTag> tags = new ArrayList<>(); for (VillagerTrade trade : packet.getTrades()) { CompoundTagBuilder recipe = CompoundTagBuilder.builder(); recipe.intTag("maxUses", trade.getMaxUses()); recipe.intTag("traderExp", trade.getXp()); recipe.floatTag("priceMultiplierA", trade.getPriceMultiplier()); recipe.tag(getItemTag(session, trade.getOutput(), "sell", 0)); recipe.floatTag("priceMultiplierB", 0.0f); recipe.intTag("buyCountB", trade.getSecondInput() != null ? trade.getSecondInput().getAmount() : 0); recipe.intTag("buyCountA", trade.getFirstInput().getAmount()); recipe.intTag("demand", trade.getDemand()); recipe.intTag("tier", packet.getVillagerLevel() - 1); recipe.tag(getItemTag(session, trade.getFirstInput(), "buyA", trade.getSpecialPrice())); if (trade.getSecondInput() != null) { recipe.tag(getItemTag(session, trade.getSecondInput(), "buyB", 0)); } recipe.intTag("uses", trade.getNumUses()); recipe.byteTag("rewardExp", (byte) 1); tags.add(recipe.buildRootTag()); } //Hidden trade to fix visual experience bug if (packet.isRegularVillager() && packet.getVillagerLevel() < 5) { tags.add(CompoundTagBuilder.builder() .intTag("maxUses", 0) .intTag("traderExp", 0) .floatTag("priceMultiplierA", 0.0f) .floatTag("priceMultiplierB", 0.0f) .intTag("buyCountB", 0) .intTag("buyCountA", 0) .intTag("demand", 0) .intTag("tier", 5) .intTag("uses", 0) .byteTag("rewardExp", (byte) 0) .buildRootTag()); } builder.listTag("Recipes", CompoundTag.class, tags); List<CompoundTag> expTags = new ArrayList<>(); expTags.add(CompoundTagBuilder.builder().intTag("0", 0).buildRootTag()); expTags.add(CompoundTagBuilder.builder().intTag("1", 10).buildRootTag()); expTags.add(CompoundTagBuilder.builder().intTag("2", 70).buildRootTag()); expTags.add(CompoundTagBuilder.builder().intTag("3", 150).buildRootTag()); expTags.add(CompoundTagBuilder.builder().intTag("4", 250).buildRootTag()); builder.listTag("TierExpRequirements", CompoundTag.class, expTags); updateTradePacket.setOffers(builder.buildRootTag()); session.sendUpstreamPacket(updateTradePacket); }