- Tham gia
- 21/01/2018
- Bài viết
- 728
Official article: Minecraft Java Edition 1.20.5 | Minecraft: Java Edition
Gọi là """minor""" update, nhưng mà Java Edition 1.20.5 có rất nhiều thay đổi so với 1.20.4, nhất là technical. Mods từ 1.20.4 chắc chắn không thể sử dụng trong 1.20.5 (trước thì mods cho 1.20.3 vẫn sử dụng được cho 1.20.4 vì 1.20.4 chỉ có mỗi patch lại critical issue).
1. Overview
Ở phần này chỉ liệt kê những thay đổi nổi bật nhất trong 1.20.5.
Lưu ý: để test thử mấy mục này, ae cần phải thêm "Update 1.21" built-in data pack ở world creation screen. Đối với dedicated server (VD: Bukkit), ae có thể enable 1.21 content trong
Ở snapshot 24w09a, Mojang đã thay thế hệ thống NBT bằng item component. Điều này giúp cải thiện hiệu năng một cách đáng kể, nhưng nó đồng thời broke toàn bộ các plugin mà sử dụng NBT bằng NMS (as it should be). VD như armor trim rendering (nó là phần overlay của armor nếu ae ko biết), nếu trước snapshot này thì trong render thread, client sẽ phải đọc trong NBT tree để render trim. Ở trong snapshot 24w09a, armor trim đọc trực tiếp trong item component data.
Ngoài ra, hệ thống item component còn có mấy cái khá hay ho, VD như custom food, custom pickaxe, custom stack size (tối thiểu là 1 và tối đa là 99) và custom durability. Khá là phù hợp cho RPG server ngl.
Danh sách các "NBT format" được chuyển thành item component:
Mojang thêm transfer packet để giúp network lớn chuyển người chơi từ lobby sang game server (và ngược lại). Điểm khác biệt so với proxy là... người chơi không connect qua proxy (obviously). Tức là latency sẽ được cải thiện giữa người chơi và game server (vì không phải đi qua proxy). Đối với network lớn như highpingxel, transfer packet có thể dùng để chia region để giảm latency theo vị trí địa lý (VD: NA + EU + Asia).
Ae có thể xem thêm changes ở mấy cái threads này:
Gọi là """minor""" update, nhưng mà Java Edition 1.20.5 có rất nhiều thay đổi so với 1.20.4, nhất là technical. Mods từ 1.20.4 chắc chắn không thể sử dụng trong 1.20.5 (trước thì mods cho 1.20.3 vẫn sử dụng được cho 1.20.4 vì 1.20.4 chỉ có mỗi patch lại critical issue).
1. Overview
Ở phần này chỉ liệt kê những thay đổi nổi bật nhất trong 1.20.5.
- Thêm content cho 1.21. Để test thử 1.21 content, ae phải thêm Update 1.21 datapack ở trong world creation screen. Dedicated server có thể thêm trong
server.properties - Hệ thống transfer packet: Cho phép người chơi connect trực tiếp đến máy chủ mà không cần thông qua proxy.
- Thêm mob mới: Armadillo.
- Thêm các loại chó sói (variants).
- Update lại giao diện: full trong suốt khi ở game menu; hiện thị nền nether portal khi đang teleport từ nether hoặc ngược lại, tương tự với the end.
- Đổi từ hệ thống item NBT sang components. Item sẽ không còn store NBT trực tiếp khi server đang chạy.
- Thêm Armadillo: drop ra Armadillo Scute, dùng để craft giáp cho chó
- Thêm các loại chó sói: variant dựa trên biome mà wolf sinh ra.
Lưu ý: để test thử mấy mục này, ae cần phải thêm "Update 1.21" built-in data pack ở world creation screen. Đối với dedicated server (VD: Bukkit), ae có thể enable 1.21 content trong
server.properties- Thêm Wind charge: Dùng để thổi bay entity (mob + items)
- Thêm mob Breeze (dùng trong Trial Chamber)
- Thêm cây Mace: gây sát thương dựa trên độ cao từ vị trí ban đầu của người chơi đến vị trí mà người chơi đang rơi tự do.
- Sát thương cơ bản là 3 HP (1.5 tim) cho mỗi block.
- Enchant "Mending", "Unbreaking", "Smite/Bane of Arthropods", "Fire Aspect" và "Curse of Vanishing" có thể apply lên cây Mace.
- Craft bằng 1 cục Heavy Core (kiếm được trong Ominous Trial Chamber) và 1 Breeze Rod (mob loot từ Breeze)
- Enchant mới: Density - +1 damage/block cho cây Mace
- Enchant mới: Breach - Giảm mức độ bảo vệ của áo giáp cho mob/player bị cây Mace đập vào. -15%/level
- Enchant mới: Wind Brust: đập chết mob = cây Mace sẽ nổ thành Wind Brust
- Thêm Trial Chamber: Có thể coi là dungeon trong vanilla MC
- Trial Spawner: Dùng để spawn quái dựa trên số lượng người chơi ở xung quanh
- Vault: Dùng để reward người chơi = 1 item ngẫu nhiên trong loot pool. Tốn 1 Trial Key để mở.
- Trial Key: Dùng để mở Vault. Mở xong thì bay mất key (coi như là gacha mechanic trong vanilla luôn).
- Thay đổi cơ chế hoạt động của Bad Omen
- Bad Omen không còn tự apply khi người chơi đánh bại Raid Captain. Thay vào đó, Ominous Bottle sẽ được drop ra.
- Uống Ominous Bottle sẽ apply Bad Omen trong vòng hơn 1 tiếng.
- Ominous Bottle có 5 cấp độ tối đa; có thể tìm thấy ở trong Trial Chamber hoặc đánh bại Raid Captain.
- Thêm hiệu ứng Raid Omen: Chuyển đổi từ Bad Omen khi đi đến làng và expire trong còng 30s (người chơi có thể uống sữa để cancel). Sau khi hết hiệu ứng Raid Omen, raid event sẽ bắt đầu.
- Thêm hiệu ứng Trial Omen: Chuyển đổi từ Bad Omen khi đừng gần Trial Spawner. Khi có hiệu ứng này, các Trial Spawner sẽ biến thành Ominous Trial Spawner (khi đứng ở gần, obviously). Hiệu ứng kéo dài trong 15 phút.
- Thêm Ominous Vault và Ominous Trial Key: Nhận được rewards hiếm hơn.
- Thêm mob Bogged: Skeleton variant này bắn ra mũi tên có độc; tốc độ attack châm hơn (3.5s); ít HP hơn (16 HP/8 tim).
- Thêm effect: Wind Charged, Weaving, Oozing và Infested
- Wind Charged: Khi dính effect này, mob sẽ bắn 1 Wind charge sau khi chết
- Weaving: Khi dính effect này, mob sẽ bắn ra cobweb sau khi chết
- Oozing: Khi dính effect này, mob sẽ spawn ra 2 con slime sau khi chết
- Infested: Khi dính effect này, mob sẽ có 10% spawn ra 1 đến 2 con silverfish khi dính damage.
- Các effect này thường được dùng trong Trial Chamber.
- Thêm Copper Grates block: dùng để trang trí Trial Chamber
- Thêm Pottery Sherds (a.k.a mảnh bình sứ): Flow, Guster và Scrape
- Thêm banner pattern: Flow và Guster
- Thêm armor trim: Bolt và Flow
Ở snapshot 24w09a, Mojang đã thay thế hệ thống NBT bằng item component. Điều này giúp cải thiện hiệu năng một cách đáng kể, nhưng nó đồng thời broke toàn bộ các plugin mà sử dụng NBT bằng NMS (as it should be). VD như armor trim rendering (nó là phần overlay của armor nếu ae ko biết), nếu trước snapshot này thì trong render thread, client sẽ phải đọc trong NBT tree để render trim. Ở trong snapshot 24w09a, armor trim đọc trực tiếp trong item component data.
Ngoài ra, hệ thống item component còn có mấy cái khá hay ho, VD như custom food, custom pickaxe, custom stack size (tối thiểu là 1 và tối đa là 99) và custom durability. Khá là phù hợp cho RPG server ngl.
Danh sách các "NBT format" được chuyển thành item component:
{damage: 727}=>minecraft:damage=727{RepairCost: 727}=>minecraft:repair_cost=727{Unbreakable:1b}=>minecraft:unbreakable=true{Enchantments:[]}=>minecraft:enchantments=[]{StoredEnchantments:[]}=>minecraft:stored_enchantments=[]{display:{Name:...}}=>minecraft:custom_name=...{display:{Lore:[]}}=>minecraft:lore=[]{CanDestroy:[]}=>minecraft:can_break=[]- Component này có thêm block predicate để check block NBT!!!
{CanPlaceOn:[]}=>minecraft:can_place_on=[]- Cũng tương tự như
can_break, có thể check = block predicate
- Cũng tương tự như
{display:{color:...}}=>minecraft:dyed_color=...{AttributeModifiers:[]}=>minecraft:attribute_modifiers=[]{Charged/ChargedProjectiles:[]}=>minecraft:charged_projectiles=[]{Items:[]}=>minecraft:bundle_contents=[]{display:{MapColor:...}}=>minecraft:map_color=...{Decorations:[]}=>minecraft:map_decorations=[]- ID số đổi thành ID chữ
{map:727}=>minecraft:map_id=727{CustomModelData:727}=>minecraft:custom_model_data=727{Potion/CustomPotionColor/custom_potion_effects:...}=>minecraft:potion_contents={...}potion (string): ID của potion để inheritcustom_color (uint24 / 0xRRGGBB): Màu của potion bottlecustom_effects (compound[]): Các effect sẽ apply khi người chơi uống potion
{pages/filtered_pages:[]}=>minecraft:writable_book_content={...}{pages/filtered_pages/title/filtered_title/author/generation/resolved:...}=>minecraft:written_book_content={...}{Trim:...}=>minecraft:trim=...{effects:...}=>minecraft:suspicious_stew=...{HideFlags:64}=>minecraft:hide_additional_tooltip={}{DebugProperty:...}=>minecraft:debug_stick_state=...{EntityTag:...}=>minecraft:entity_data=...{NoAI/Silent/NoGravity/Glowing/Invulnerable/Health/Age/Variant/HuntingCooldown/BucketVariantTag:...}=>minecraft:bucket_entity_data={...}{instrument:...}=>minecraft:instrument=...{Recipes:...}=>minecraft:recipes=...{LodestonePos/LodestoneDimension/LodestoneTracked:...}=>minecraft:lodestone_tracker={target:<block pos + dimension>,tracked:<bool>}{Explosion:{Type,Colors,FadeColors,Trail,Flicker}}=>minecraft:firework_explosion={shape,colors,fade_colors,has_trail,has_twinkle}{Fireworks:{Explosions:[],Flight}}=>minecraft:fireworks={explosions:[],flight_duration}{SkullOwner:...}=>minecraft:profile=...{BlockEntityTag:{note_block_sound:...}}=>minecraft:note_block_sound=...{BlockEntityTag:{Base:...}}=>minecraft:base_color=...{BlockEntityTag:{Patterns:...}}=>minecraft:banner_patterns=...{BlockEntityTag:{sherds:[]}}=>minecraft:pot_decorations=[]{BlockEntityTag:{Items:[]}}=>minecraft:container=[]{BlockEntityTag:{Bees:...}}=>minecraft:bees=...{Lock:"wysi"}=>minecraft:lock="wysi"{BlockEntityTag:{LootTable,LootTableSeed}}=>minecraft:container_loot={loot_table,seed}{BlockEntityTag:...}=>minecraft:block_entity_data{BLockStateTag:...}=>minecraft:block_state{...}=>minecraft:custom_data- Component này chỉ dành cho các data mà không thể convert được từ NBT sang component khi upgrade world.
minecraft:intangible_projectile={}: Khi crossbow bắn ra projectile, projectile đó chỉ có thể nhặt bởi người chơi ở chế độ sáng tạo.minecraft:enchantment_glint_override=true/false: Hiện thị hiệu ứng enchantment glint (mà ae toàn hay gọi là glow). Không cần enchant trong item.minecraft:food={nutrition,saturation,can_always_eat,eat_seconds,effects:[]}: Biến item hiện tại thành thức ăn (có thể ăn được bởi player). VD như ăn obsidian block hoặc ăn diamond pickaxe.minecraft:max_stack_size=<1 đến 99>: Set số lượng item tối đa trong 1 slot (đặt thành 63 nếu muốn tron). Bắt buộc không cómax_damageminecraft:max_damage=727: Đặt độ bền của item. Stack size bắt buộc phải là 1.minecraft:tool={rules:[{blocks:...,speed?,correct_for_drops?}...],default_mining_speed,damage_per_block}: Biến item thành công cụ dùng để đào blocks (với custom mining speed).minecraft:hide_tooltip={}: Ẩn toàn bộ tooltip (ae hay gọi là lore) khi người chơi di chuột lên item trong inventory. Rất phù hợp cho item dùng để trang trí trong GUI. Creative mode vẫn nhìn thấy tooltip.minecraft:item_name=...: Tên của item. Khác vớicustom_name, component này hoạt động như tên mặc định của item, tức là người chơi có thể đổi tên hoặc reset về tên ban đầu trong anvil.minecraft:fire_resistant={}: Làm cho item không thể bị phá hủy bởi lửa hoặc lava.minecraft:rarity="...": Độ hiếm của item. Cái này chỉ dùng để đổi màu tên của item (có thể kết hợp với client-side mods để hiện thị tooltip background dựa trên rarity).minecraft:ominous_bottle_amplifier=<0 đến 4>: Cấp độ của hiệu ứng Bad Omen khi uống Ominous Bottle.
Mojang thêm transfer packet để giúp network lớn chuyển người chơi từ lobby sang game server (và ngược lại). Điểm khác biệt so với proxy là... người chơi không connect qua proxy (obviously). Tức là latency sẽ được cải thiện giữa người chơi và game server (vì không phải đi qua proxy). Đối với network lớn như highpingxel, transfer packet có thể dùng để chia region để giảm latency theo vị trí địa lý (VD: NA + EU + Asia).
- Transfer packet có thể dùng trong configuration phase hoặc play phase.
- Configuration phase là phase dùng để sync dynamic registry giữa người chơi và server. Server có thể đẩy người chơi về configuration phase để sync sang một bộ dynamic registry mới, yêu cầu load resource pack, hoặc đẩy người chơi sang server khác.
- Thêm cookie packet: Cookie có thể set vào player và retrieve từ player (dữ liệu cookie tối đa 5KiB a.k.a 1024 * 5 bytes). Cookie data sẽ không mất khi chuyển qua lại giữa các server bằng transfer packet, nhưng toàn bộ data sẽ mất khi người chơi disconnect khỏi server (tự disconnect hoặc bị kick).
- Thay đổi lại lệnh
/giveđể nhập item component- Khi component thiếu data (VD như thiếu
targettronglodestone_tracker), game sẽ hiện thị lỗi thiếu field trong object (thay vì không hiện lỗi khi dùng item NBT) - Format của item argument là
<id>[<component id>=<component sNBT>]{<legacy sNBT>}.- Argument format này cũng áp dụng cho
/itemvà/loot
- Argument format này cũng áp dụng cho
- Khi component thiếu data (VD như thiếu
- Thêm
execute if/unless itemspredicate cho/execute: Dùng để test item trong block hoặc player. - Một số thay đổi đến item predicate (dùng để select item trong lệnh như
/clear) nma nó dài quá lmao - Thay đổi lệnh
/lootđể chạy inline loot function (thay vì phải viết thêm JSON rồi reload như trước kia) - Thêm lệnh
/transfer <host/IP> [port] [player(s)]- Dùng để yêu cầu người chơi connect trực tiếp đến địa chỉ server
- Bên server kia phải bật chế độ chấp nhận transfer trong
server.propertiesthì người chơi mới connect được.
Ae có thể xem thêm changes ở mấy cái threads này:
- 23w51a
- 24w03a <= thêm transfer packet
- 24w04a
- 24w05a <= thêm gacha vào vanilla
- 24w06a <= thêm mây cái attributes hay ho các kiểu abcxyz
- 24w07a
24w08atechnical issues, announced by slicedlime i think- 24w09a <= ngày item NBT chính thức bị khai tử (ít nhất là trong khi server đang chạy)
- 24w10a
- 24w11a
- 24w12a <= ngày mà Mojank actually cooked (new item components)
- 24w13a
- 24w14a + 24w14potato (april fools)
- Pre-releases
- Release candidate không có ở đây vì toàn bug fix lol
