• Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).
nahkd123

Tin Minecraft Java Edition 1.20.5

nahkd123

DEVELOPER
THÀNH VIÊN
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.
  • 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.
2. Mob mới
  • 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.
3. 1.21 content
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
4. Item component
Ở 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
  • {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 để inherit
    • custom_color (uint24 / 0xRRGGBB): Màu của potion bottle
    • custom_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.
Danh sách các component mới:
  • 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_damage
  • minecraft: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ới custom_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.
5. Transfer packet
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).
6. Command
  • Thay đổi lại lệnh /give để nhập item component
    • Khi component thiếu data (VD như thiếu target trong lodestone_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 /item/loot
  • Thêm execute if/unless items predicate 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.properties thì người chơi mới connect được.
7. More
Ae có thể xem thêm changes ở mấy cái threads này:
 
Similar content Most view Xem thêm
Back
Top Bottom