mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
1.21.6 (#215)
This commit is contained in:
parent
319d144995
commit
ffbe7a3e42
39 changed files with 1684 additions and 957 deletions
|
@ -10,6 +10,7 @@ is breaking anyways, semantic versioning is not followed.
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- Update to Minecraft 1.21.6.
|
||||||
- `HitResult` now contains the entity that's being looked at.
|
- `HitResult` now contains the entity that's being looked at.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
@ -20,7 +21,7 @@ is breaking anyways, semantic versioning is not followed.
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
## [0.13.0] - 2025-06-15
|
## [0.13.0+mc1.21.5] - 2025-06-15
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
|
62
Cargo.lock
generated
62
Cargo.lock
generated
|
@ -209,7 +209,7 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea"
|
name = "azalea"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"azalea-auth",
|
"azalea-auth",
|
||||||
|
@ -249,7 +249,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-auth"
|
name = "azalea-auth"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-crypto",
|
"azalea-crypto",
|
||||||
|
@ -269,7 +269,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-block"
|
name = "azalea-block"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block-macros",
|
"azalea-block-macros",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
@ -278,7 +278,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-block-macros"
|
name = "azalea-block-macros"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -287,7 +287,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-brigadier"
|
name = "azalea-brigadier"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-chat",
|
"azalea-chat",
|
||||||
|
@ -298,7 +298,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-buf"
|
name = "azalea-buf"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf-macros",
|
"azalea-buf-macros",
|
||||||
"byteorder",
|
"byteorder",
|
||||||
|
@ -311,7 +311,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-buf-macros"
|
name = "azalea-buf-macros"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -320,7 +320,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-chat"
|
name = "azalea-chat"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-language",
|
"azalea-language",
|
||||||
|
@ -333,7 +333,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-client"
|
name = "azalea-client"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-compat",
|
"async-compat",
|
||||||
|
@ -370,7 +370,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-core"
|
name = "azalea-core"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-chat",
|
"azalea-chat",
|
||||||
|
@ -386,7 +386,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-crypto"
|
name = "azalea-crypto"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"aes",
|
"aes",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
@ -403,7 +403,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-entity"
|
name = "azalea-entity"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block",
|
"azalea-block",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
@ -426,7 +426,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-inventory"
|
name = "azalea-inventory"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-chat",
|
"azalea-chat",
|
||||||
|
@ -441,7 +441,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-inventory-macros"
|
name = "azalea-inventory-macros"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -450,7 +450,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-language"
|
name = "azalea-language"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"compact_str",
|
"compact_str",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -459,7 +459,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-physics"
|
name = "azalea-physics"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block",
|
"azalea-block",
|
||||||
"azalea-core",
|
"azalea-core",
|
||||||
|
@ -477,7 +477,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-protocol"
|
name = "azalea-protocol"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-recursion",
|
"async-recursion",
|
||||||
|
@ -513,7 +513,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-protocol-macros"
|
name = "azalea-protocol-macros"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
@ -522,7 +522,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-registry"
|
name = "azalea-registry"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
"azalea-registry-macros",
|
"azalea-registry-macros",
|
||||||
|
@ -532,7 +532,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-registry-macros"
|
name = "azalea-registry-macros"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quote",
|
"quote",
|
||||||
"syn",
|
"syn",
|
||||||
|
@ -540,7 +540,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "azalea-world"
|
name = "azalea-world"
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"azalea-block",
|
"azalea-block",
|
||||||
"azalea-buf",
|
"azalea-buf",
|
||||||
|
@ -1163,9 +1163,9 @@ checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crypto-bigint"
|
name = "crypto-bigint"
|
||||||
version = "0.7.0-pre.4"
|
version = "0.7.0-pre.5"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "edaae5fb9dac79a07260e0b2006799ff4f1d342ab243fd7d0892215113b27904"
|
checksum = "a06a5e703b883b3744ddac8b7c5eade2d800d6559ef99760566f8103e3ad39bf"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-traits",
|
"num-traits",
|
||||||
"rand_core 0.9.3",
|
"rand_core 0.9.3",
|
||||||
|
@ -2045,9 +2045,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libc"
|
name = "libc"
|
||||||
version = "0.2.173"
|
version = "0.2.174"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "d8cfeafaffdbc32176b64fb251369d52ea9f0a8fbc6f8759edffef7b525d64bb"
|
checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "libloading"
|
name = "libloading"
|
||||||
|
@ -2617,9 +2617,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "r-efi"
|
name = "r-efi"
|
||||||
version = "5.2.0"
|
version = "5.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5"
|
checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rand"
|
name = "rand"
|
||||||
|
@ -2871,9 +2871,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustls"
|
name = "rustls"
|
||||||
version = "0.23.27"
|
version = "0.23.28"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321"
|
checksum = "7160e3e10bf4535308537f3c4e1641468cd0e485175d6163087c0393c7d46643"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"ring",
|
"ring",
|
||||||
|
@ -3444,9 +3444,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tracing-attributes"
|
name = "tracing-attributes"
|
||||||
version = "0.1.29"
|
version = "0.1.30"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662"
|
checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
|
|
|
@ -22,7 +22,7 @@ resolver = "2"
|
||||||
# --- Workspace Settings ---
|
# --- Workspace Settings ---
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.13.0+mc1.21.5"
|
version = "0.13.0+mc1.21.6"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/azalea-rs/azalea"
|
repository = "https://github.com/azalea-rs/azalea"
|
||||||
|
|
|
@ -10,7 +10,7 @@ A collection of Rust crates for making Minecraft bots, clients, and tools.
|
||||||
|
|
||||||
<!-- The line below is automatically read and updated by the migrate script, so don't change it manually. -->
|
<!-- The line below is automatically read and updated by the migrate script, so don't change it manually. -->
|
||||||
|
|
||||||
_Currently supported Minecraft version: `1.21.5`._
|
_Currently supported Minecraft version: `1.21.6`._
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Azalea is still unfinished, though most crates are in a useable state.
|
> Azalea is still unfinished, though most crates are in a useable state.
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::fmt::Debug;
|
||||||
|
|
||||||
use azalea_block_macros::make_block_states;
|
use azalea_block_macros::make_block_states;
|
||||||
|
|
||||||
use crate::{BlockTrait, BlockBehavior, BlockState, BlockStates, Property};
|
use crate::{BlockBehavior, BlockState, BlockStates, BlockTrait, Property};
|
||||||
|
|
||||||
make_block_states! {
|
make_block_states! {
|
||||||
Properties => {
|
Properties => {
|
||||||
|
@ -1561,6 +1561,12 @@ make_block_states! {
|
||||||
_1,
|
_1,
|
||||||
_2,
|
_2,
|
||||||
},
|
},
|
||||||
|
"hydration" => DriedGhastHydration {
|
||||||
|
_0,
|
||||||
|
_1,
|
||||||
|
_2,
|
||||||
|
_3,
|
||||||
|
},
|
||||||
"pickles" => SeaPicklePickles {
|
"pickles" => SeaPicklePickles {
|
||||||
_1,
|
_1,
|
||||||
_2,
|
_2,
|
||||||
|
@ -4214,6 +4220,11 @@ make_block_states! {
|
||||||
sniffer_egg => BlockBehavior::new().strength(0.5, 0.5), {
|
sniffer_egg => BlockBehavior::new().strength(0.5, 0.5), {
|
||||||
"hatch": SnifferEggHatch::_0,
|
"hatch": SnifferEggHatch::_0,
|
||||||
},
|
},
|
||||||
|
dried_ghast => BlockBehavior::new().force_solid(true), {
|
||||||
|
"facing": FacingCardinal::North,
|
||||||
|
"hydration": DriedGhastHydration::_0,
|
||||||
|
"waterlogged": Waterlogged(false),
|
||||||
|
},
|
||||||
dead_tube_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
|
dead_tube_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
|
||||||
dead_brain_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
|
dead_brain_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
|
||||||
dead_bubble_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
|
dead_bubble_coral_block => BlockBehavior::new().requires_correct_tool_for_drops().strength(1.5, 6.0).force_solid(true), {},
|
||||||
|
|
|
@ -56,6 +56,8 @@ pub fn process_packet(ecs: &mut World, player: Entity, packet: &ClientboundConfi
|
||||||
select_known_packs,
|
select_known_packs,
|
||||||
custom_report_details,
|
custom_report_details,
|
||||||
server_links,
|
server_links,
|
||||||
|
clear_dialog,
|
||||||
|
show_dialog,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -220,4 +222,11 @@ impl ConfigPacketHandler<'_> {
|
||||||
pub fn custom_report_details(&mut self, p: &ClientboundCustomReportDetails) {
|
pub fn custom_report_details(&mut self, p: &ClientboundCustomReportDetails) {
|
||||||
debug!("Got custom report details packet {p:?}");
|
debug!("Got custom report details packet {p:?}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn clear_dialog(&mut self, p: &ClientboundClearDialog) {
|
||||||
|
debug!("Got clear dialog packet {p:?}");
|
||||||
|
}
|
||||||
|
pub fn show_dialog(&mut self, p: &ClientboundShowDialog) {
|
||||||
|
debug!("Got show dialog packet {p:?}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,6 +176,9 @@ pub fn process_packet(ecs: &mut World, player: Entity, packet: &ClientboundGameP
|
||||||
recipe_book_remove,
|
recipe_book_remove,
|
||||||
recipe_book_settings,
|
recipe_book_settings,
|
||||||
test_instance_block_status,
|
test_instance_block_status,
|
||||||
|
waypoint,
|
||||||
|
clear_dialog,
|
||||||
|
show_dialog,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1584,4 +1587,12 @@ impl GamePacketHandler<'_> {
|
||||||
pub fn recipe_book_remove(&mut self, _p: &ClientboundRecipeBookRemove) {}
|
pub fn recipe_book_remove(&mut self, _p: &ClientboundRecipeBookRemove) {}
|
||||||
pub fn recipe_book_settings(&mut self, _p: &ClientboundRecipeBookSettings) {}
|
pub fn recipe_book_settings(&mut self, _p: &ClientboundRecipeBookSettings) {}
|
||||||
pub fn test_instance_block_status(&mut self, _p: &ClientboundTestInstanceBlockStatus) {}
|
pub fn test_instance_block_status(&mut self, _p: &ClientboundTestInstanceBlockStatus) {}
|
||||||
|
pub fn waypoint(&mut self, _p: &ClientboundWaypoint) {}
|
||||||
|
|
||||||
|
pub fn clear_dialog(&mut self, p: &ClientboundClearDialog) {
|
||||||
|
debug!("Got clear dialog packet {p:?}");
|
||||||
|
}
|
||||||
|
pub fn show_dialog(&mut self, p: &ClientboundShowDialog) {
|
||||||
|
debug!("Got show dialog packet {p:?}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,6 +89,7 @@ impl From<EntityKind> for EntityDimensions {
|
||||||
EntityKind::GlowSquid => EntityDimensions::new(0.8, 0.8),
|
EntityKind::GlowSquid => EntityDimensions::new(0.8, 0.8),
|
||||||
EntityKind::Goat => EntityDimensions::new(0.9, 1.3),
|
EntityKind::Goat => EntityDimensions::new(0.9, 1.3),
|
||||||
EntityKind::Guardian => EntityDimensions::new(0.85, 0.85),
|
EntityKind::Guardian => EntityDimensions::new(0.85, 0.85),
|
||||||
|
EntityKind::HappyGhast => EntityDimensions::new(4.0, 4.0),
|
||||||
EntityKind::Hoglin => EntityDimensions::new(1.39648, 1.4),
|
EntityKind::Hoglin => EntityDimensions::new(1.39648, 1.4),
|
||||||
EntityKind::HopperMinecart => EntityDimensions::new(0.98, 0.7),
|
EntityKind::HopperMinecart => EntityDimensions::new(0.98, 0.7),
|
||||||
EntityKind::Horse => EntityDimensions::new(1.39648, 1.6),
|
EntityKind::Horse => EntityDimensions::new(1.39648, 1.6),
|
||||||
|
|
|
@ -4235,6 +4235,8 @@ impl Default for GiantMetadataBundle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
|
pub struct ItemFrameDirection(pub Direction);
|
||||||
#[derive(Component, Deref, DerefMut, Clone)]
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
pub struct ItemFrameItem(pub ItemStack);
|
pub struct ItemFrameItem(pub ItemStack);
|
||||||
#[derive(Component, Deref, DerefMut, Clone)]
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
|
@ -4247,7 +4249,7 @@ impl GlowItemFrame {
|
||||||
d: EntityDataItem,
|
d: EntityDataItem,
|
||||||
) -> Result<(), UpdateMetadataError> {
|
) -> Result<(), UpdateMetadataError> {
|
||||||
match d.index {
|
match d.index {
|
||||||
0..=9 => ItemFrame::apply_metadata(entity, d)?,
|
0..=10 => ItemFrame::apply_metadata(entity, d)?,
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
@ -4282,7 +4284,8 @@ impl Default for GlowItemFrameMetadataBundle {
|
||||||
pose: Pose::default(),
|
pose: Pose::default(),
|
||||||
ticks_frozen: TicksFrozen(Default::default()),
|
ticks_frozen: TicksFrozen(Default::default()),
|
||||||
},
|
},
|
||||||
item_frame_item: ItemFrameItem(ItemStack::Empty),
|
item_frame_direction: ItemFrameDirection(Default::default()),
|
||||||
|
item_frame_item: ItemFrameItem(Default::default()),
|
||||||
rotation: Rotation(0),
|
rotation: Rotation(0),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -4539,6 +4542,92 @@ impl Default for GuardianMetadataBundle {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
|
pub struct IsLeashHolder(pub bool);
|
||||||
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
|
pub struct StaysStill(pub bool);
|
||||||
|
#[derive(Component)]
|
||||||
|
pub struct HappyGhast;
|
||||||
|
impl HappyGhast {
|
||||||
|
pub fn apply_metadata(
|
||||||
|
entity: &mut bevy_ecs::system::EntityCommands,
|
||||||
|
d: EntityDataItem,
|
||||||
|
) -> Result<(), UpdateMetadataError> {
|
||||||
|
match d.index {
|
||||||
|
0..=16 => AbstractAnimal::apply_metadata(entity, d)?,
|
||||||
|
17 => {
|
||||||
|
entity.insert(IsLeashHolder(d.value.into_boolean()?));
|
||||||
|
}
|
||||||
|
18 => {
|
||||||
|
entity.insert(StaysStill(d.value.into_boolean()?));
|
||||||
|
}
|
||||||
|
_ => {}
|
||||||
|
}
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Bundle)]
|
||||||
|
pub struct HappyGhastMetadataBundle {
|
||||||
|
_marker: HappyGhast,
|
||||||
|
parent: AbstractAnimalMetadataBundle,
|
||||||
|
is_leash_holder: IsLeashHolder,
|
||||||
|
stays_still: StaysStill,
|
||||||
|
}
|
||||||
|
impl Default for HappyGhastMetadataBundle {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
_marker: HappyGhast,
|
||||||
|
parent: AbstractAnimalMetadataBundle {
|
||||||
|
_marker: AbstractAnimal,
|
||||||
|
parent: AbstractAgeableMetadataBundle {
|
||||||
|
_marker: AbstractAgeable,
|
||||||
|
parent: AbstractCreatureMetadataBundle {
|
||||||
|
_marker: AbstractCreature,
|
||||||
|
parent: AbstractInsentientMetadataBundle {
|
||||||
|
_marker: AbstractInsentient,
|
||||||
|
parent: AbstractLivingMetadataBundle {
|
||||||
|
_marker: AbstractLiving,
|
||||||
|
parent: AbstractEntityMetadataBundle {
|
||||||
|
_marker: AbstractEntity,
|
||||||
|
on_fire: OnFire(false),
|
||||||
|
shift_key_down: ShiftKeyDown(false),
|
||||||
|
sprinting: Sprinting(false),
|
||||||
|
swimming: Swimming(false),
|
||||||
|
currently_glowing: CurrentlyGlowing(false),
|
||||||
|
invisible: Invisible(false),
|
||||||
|
fall_flying: FallFlying(false),
|
||||||
|
air_supply: AirSupply(Default::default()),
|
||||||
|
custom_name: CustomName(Default::default()),
|
||||||
|
custom_name_visible: CustomNameVisible(Default::default()),
|
||||||
|
silent: Silent(Default::default()),
|
||||||
|
no_gravity: NoGravity(Default::default()),
|
||||||
|
pose: Pose::default(),
|
||||||
|
ticks_frozen: TicksFrozen(Default::default()),
|
||||||
|
},
|
||||||
|
auto_spin_attack: AutoSpinAttack(false),
|
||||||
|
abstract_living_using_item: AbstractLivingUsingItem(false),
|
||||||
|
health: Health(1.0),
|
||||||
|
effect_particles: EffectParticles(Default::default()),
|
||||||
|
effect_ambience: EffectAmbience(false),
|
||||||
|
arrow_count: ArrowCount(0),
|
||||||
|
stinger_count: StingerCount(0),
|
||||||
|
sleeping_pos: SleepingPos(None),
|
||||||
|
},
|
||||||
|
no_ai: NoAi(false),
|
||||||
|
left_handed: LeftHanded(false),
|
||||||
|
aggressive: Aggressive(false),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
abstract_ageable_baby: AbstractAgeableBaby(false),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
is_leash_holder: IsLeashHolder(false),
|
||||||
|
stays_still: StaysStill(false),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Component, Deref, DerefMut, Clone)]
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
pub struct HoglinImmuneToZombification(pub bool);
|
pub struct HoglinImmuneToZombification(pub bool);
|
||||||
#[derive(Component)]
|
#[derive(Component)]
|
||||||
|
@ -5096,7 +5185,7 @@ impl Default for ItemMetadataBundle {
|
||||||
pose: Pose::default(),
|
pose: Pose::default(),
|
||||||
ticks_frozen: TicksFrozen(Default::default()),
|
ticks_frozen: TicksFrozen(Default::default()),
|
||||||
},
|
},
|
||||||
item_item: ItemItem(ItemStack::Empty),
|
item_item: ItemItem(Default::default()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5191,7 +5280,7 @@ impl Default for ItemDisplayMetadataBundle {
|
||||||
abstract_display_height: AbstractDisplayHeight(0.0),
|
abstract_display_height: AbstractDisplayHeight(0.0),
|
||||||
glow_color_override: GlowColorOverride(-1),
|
glow_color_override: GlowColorOverride(-1),
|
||||||
},
|
},
|
||||||
item_display_item_stack: ItemDisplayItemStack(ItemStack::Empty),
|
item_display_item_stack: ItemDisplayItemStack(Default::default()),
|
||||||
item_display_item_display: ItemDisplayItemDisplay(Default::default()),
|
item_display_item_display: ItemDisplayItemDisplay(Default::default()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5207,9 +5296,12 @@ impl ItemFrame {
|
||||||
match d.index {
|
match d.index {
|
||||||
0..=7 => AbstractEntity::apply_metadata(entity, d)?,
|
0..=7 => AbstractEntity::apply_metadata(entity, d)?,
|
||||||
8 => {
|
8 => {
|
||||||
entity.insert(ItemFrameItem(d.value.into_item_stack()?));
|
entity.insert(ItemFrameDirection(d.value.into_direction()?));
|
||||||
}
|
}
|
||||||
9 => {
|
9 => {
|
||||||
|
entity.insert(ItemFrameItem(d.value.into_item_stack()?));
|
||||||
|
}
|
||||||
|
10 => {
|
||||||
entity.insert(Rotation(d.value.into_int()?));
|
entity.insert(Rotation(d.value.into_int()?));
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
@ -5222,6 +5314,7 @@ impl ItemFrame {
|
||||||
pub struct ItemFrameMetadataBundle {
|
pub struct ItemFrameMetadataBundle {
|
||||||
_marker: ItemFrame,
|
_marker: ItemFrame,
|
||||||
parent: AbstractEntityMetadataBundle,
|
parent: AbstractEntityMetadataBundle,
|
||||||
|
item_frame_direction: ItemFrameDirection,
|
||||||
item_frame_item: ItemFrameItem,
|
item_frame_item: ItemFrameItem,
|
||||||
rotation: Rotation,
|
rotation: Rotation,
|
||||||
}
|
}
|
||||||
|
@ -5246,7 +5339,8 @@ impl Default for ItemFrameMetadataBundle {
|
||||||
pose: Pose::default(),
|
pose: Pose::default(),
|
||||||
ticks_frozen: TicksFrozen(Default::default()),
|
ticks_frozen: TicksFrozen(Default::default()),
|
||||||
},
|
},
|
||||||
item_frame_item: ItemFrameItem(ItemStack::Empty),
|
item_frame_direction: ItemFrameDirection(Default::default()),
|
||||||
|
item_frame_item: ItemFrameItem(Default::default()),
|
||||||
rotation: Rotation(0),
|
rotation: Rotation(0),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6338,11 +6432,13 @@ impl Default for OminousItemSpawnerMetadataBundle {
|
||||||
pose: Pose::default(),
|
pose: Pose::default(),
|
||||||
ticks_frozen: TicksFrozen(Default::default()),
|
ticks_frozen: TicksFrozen(Default::default()),
|
||||||
},
|
},
|
||||||
ominous_item_spawner_item: OminousItemSpawnerItem(ItemStack::Empty),
|
ominous_item_spawner_item: OminousItemSpawnerItem(Default::default()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
|
pub struct PaintingDirection(pub Direction);
|
||||||
#[derive(Component, Deref, DerefMut, Clone)]
|
#[derive(Component, Deref, DerefMut, Clone)]
|
||||||
pub struct PaintingVariant(pub azalea_registry::PaintingVariant);
|
pub struct PaintingVariant(pub azalea_registry::PaintingVariant);
|
||||||
#[derive(Component)]
|
#[derive(Component)]
|
||||||
|
@ -6355,6 +6451,9 @@ impl Painting {
|
||||||
match d.index {
|
match d.index {
|
||||||
0..=7 => AbstractEntity::apply_metadata(entity, d)?,
|
0..=7 => AbstractEntity::apply_metadata(entity, d)?,
|
||||||
8 => {
|
8 => {
|
||||||
|
entity.insert(PaintingDirection(d.value.into_direction()?));
|
||||||
|
}
|
||||||
|
9 => {
|
||||||
entity.insert(PaintingVariant(d.value.into_painting_variant()?));
|
entity.insert(PaintingVariant(d.value.into_painting_variant()?));
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
|
@ -6367,6 +6466,7 @@ impl Painting {
|
||||||
pub struct PaintingMetadataBundle {
|
pub struct PaintingMetadataBundle {
|
||||||
_marker: Painting,
|
_marker: Painting,
|
||||||
parent: AbstractEntityMetadataBundle,
|
parent: AbstractEntityMetadataBundle,
|
||||||
|
painting_direction: PaintingDirection,
|
||||||
painting_variant: PaintingVariant,
|
painting_variant: PaintingVariant,
|
||||||
}
|
}
|
||||||
impl Default for PaintingMetadataBundle {
|
impl Default for PaintingMetadataBundle {
|
||||||
|
@ -6390,6 +6490,7 @@ impl Default for PaintingMetadataBundle {
|
||||||
pose: Pose::default(),
|
pose: Pose::default(),
|
||||||
ticks_frozen: TicksFrozen(Default::default()),
|
ticks_frozen: TicksFrozen(Default::default()),
|
||||||
},
|
},
|
||||||
|
painting_direction: PaintingDirection(Default::default()),
|
||||||
painting_variant: PaintingVariant(azalea_registry::PaintingVariant::new_raw(0)),
|
painting_variant: PaintingVariant(azalea_registry::PaintingVariant::new_raw(0)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12690,6 +12791,11 @@ pub fn apply_metadata(
|
||||||
Guardian::apply_metadata(entity, d)?;
|
Guardian::apply_metadata(entity, d)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
azalea_registry::EntityKind::HappyGhast => {
|
||||||
|
for d in items {
|
||||||
|
HappyGhast::apply_metadata(entity, d)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
azalea_registry::EntityKind::Hoglin => {
|
azalea_registry::EntityKind::Hoglin => {
|
||||||
for d in items {
|
for d in items {
|
||||||
Hoglin::apply_metadata(entity, d)?;
|
Hoglin::apply_metadata(entity, d)?;
|
||||||
|
@ -13325,6 +13431,9 @@ pub fn apply_default_metadata(
|
||||||
azalea_registry::EntityKind::Guardian => {
|
azalea_registry::EntityKind::Guardian => {
|
||||||
entity.insert(GuardianMetadataBundle::default());
|
entity.insert(GuardianMetadataBundle::default());
|
||||||
}
|
}
|
||||||
|
azalea_registry::EntityKind::HappyGhast => {
|
||||||
|
entity.insert(HappyGhastMetadataBundle::default());
|
||||||
|
}
|
||||||
azalea_registry::EntityKind::Hoglin => {
|
azalea_registry::EntityKind::Hoglin => {
|
||||||
entity.insert(HoglinMetadataBundle::default());
|
entity.insert(HoglinMetadataBundle::default());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use azalea_block::{BlockTrait, BlockBehavior};
|
use azalea_block::{BlockBehavior, BlockTrait};
|
||||||
use azalea_core::tier::get_item_tier;
|
use azalea_core::tier::get_item_tier;
|
||||||
use azalea_registry as registry;
|
use azalea_registry as registry;
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@
|
||||||
"advancements.adventure.crafters_crafting_crafters.title": "Crafters Crafting Crafters",
|
"advancements.adventure.crafters_crafting_crafters.title": "Crafters Crafting Crafters",
|
||||||
"advancements.adventure.fall_from_world_height.description": "Free fall from the top of the world (build limit) to the bottom of the world and survive",
|
"advancements.adventure.fall_from_world_height.description": "Free fall from the top of the world (build limit) to the bottom of the world and survive",
|
||||||
"advancements.adventure.fall_from_world_height.title": "Caves & Cliffs",
|
"advancements.adventure.fall_from_world_height.title": "Caves & Cliffs",
|
||||||
|
"advancements.adventure.heart_transplanter.description": "Place a Creaking Heart with the correct alignment between two Pale Oak Log blocks",
|
||||||
|
"advancements.adventure.heart_transplanter.title": "Heart Transplanter",
|
||||||
"advancements.adventure.hero_of_the_village.description": "Successfully defend a village from a raid",
|
"advancements.adventure.hero_of_the_village.description": "Successfully defend a village from a raid",
|
||||||
"advancements.adventure.hero_of_the_village.title": "Hero of the Village",
|
"advancements.adventure.hero_of_the_village.title": "Hero of the Village",
|
||||||
"advancements.adventure.honey_block_slide.description": "Jump into a Honey Block to break your fall",
|
"advancements.adventure.honey_block_slide.description": "Jump into a Honey Block to break your fall",
|
||||||
|
@ -150,6 +152,8 @@
|
||||||
"advancements.husbandry.netherite_hoe.title": "Serious Dedication",
|
"advancements.husbandry.netherite_hoe.title": "Serious Dedication",
|
||||||
"advancements.husbandry.obtain_sniffer_egg.description": "Obtain a Sniffer Egg",
|
"advancements.husbandry.obtain_sniffer_egg.description": "Obtain a Sniffer Egg",
|
||||||
"advancements.husbandry.obtain_sniffer_egg.title": "Smells Interesting",
|
"advancements.husbandry.obtain_sniffer_egg.title": "Smells Interesting",
|
||||||
|
"advancements.husbandry.place_dried_ghast_in_water.description": "Place a Dried Ghast block into water",
|
||||||
|
"advancements.husbandry.place_dried_ghast_in_water.title": "Stay Hydrated!",
|
||||||
"advancements.husbandry.plant_any_sniffer_seed.description": "Plant any Sniffer seed",
|
"advancements.husbandry.plant_any_sniffer_seed.description": "Plant any Sniffer seed",
|
||||||
"advancements.husbandry.plant_any_sniffer_seed.title": "Planting the Past",
|
"advancements.husbandry.plant_any_sniffer_seed.title": "Planting the Past",
|
||||||
"advancements.husbandry.plant_seed.description": "Plant a seed and watch it grow",
|
"advancements.husbandry.plant_seed.description": "Plant a seed and watch it grow",
|
||||||
|
@ -344,6 +348,7 @@
|
||||||
"argument.float.big": "Float must not be more than %s, found %s",
|
"argument.float.big": "Float must not be more than %s, found %s",
|
||||||
"argument.float.low": "Float must not be less than %s, found %s",
|
"argument.float.low": "Float must not be less than %s, found %s",
|
||||||
"argument.gamemode.invalid": "Unknown game mode: %s",
|
"argument.gamemode.invalid": "Unknown game mode: %s",
|
||||||
|
"argument.hexcolor.invalid": "Invalid hex color code '%s'",
|
||||||
"argument.id.invalid": "Invalid ID",
|
"argument.id.invalid": "Invalid ID",
|
||||||
"argument.id.unknown": "Unknown ID: %s",
|
"argument.id.unknown": "Unknown ID: %s",
|
||||||
"argument.integer.big": "Integer must not be more than %s, found %s",
|
"argument.integer.big": "Integer must not be more than %s, found %s",
|
||||||
|
@ -377,6 +382,7 @@
|
||||||
"argument.range.swapped": "Min cannot be bigger than max",
|
"argument.range.swapped": "Min cannot be bigger than max",
|
||||||
"argument.resource_or_id.failed_to_parse": "Failed to parse structure: %s",
|
"argument.resource_or_id.failed_to_parse": "Failed to parse structure: %s",
|
||||||
"argument.resource_or_id.invalid": "Invalid id or tag",
|
"argument.resource_or_id.invalid": "Invalid id or tag",
|
||||||
|
"argument.resource_or_id.no_such_element": "Can't find element '%s' in registry '%s'",
|
||||||
"argument.resource_selector.not_found": "No matches for selector '%s' of type '%s'",
|
"argument.resource_selector.not_found": "No matches for selector '%s' of type '%s'",
|
||||||
"argument.resource_tag.invalid_type": "Tag '%s' has wrong type '%s' (expected '%s')",
|
"argument.resource_tag.invalid_type": "Tag '%s' has wrong type '%s' (expected '%s')",
|
||||||
"argument.resource_tag.not_found": "Can't find tag '%s' of type '%s'",
|
"argument.resource_tag.not_found": "Can't find tag '%s' of type '%s'",
|
||||||
|
@ -390,6 +396,7 @@
|
||||||
"argument.time.invalid_unit": "Invalid unit",
|
"argument.time.invalid_unit": "Invalid unit",
|
||||||
"argument.time.tick_count_too_low": "The tick count must not be less than %s, found %s",
|
"argument.time.tick_count_too_low": "The tick count must not be less than %s, found %s",
|
||||||
"argument.uuid.invalid": "Invalid UUID",
|
"argument.uuid.invalid": "Invalid UUID",
|
||||||
|
"argument.waypoint.invalid": "Selected entity is not a waypoint",
|
||||||
"arguments.block.tag.unknown": "Unknown block tag '%s'",
|
"arguments.block.tag.unknown": "Unknown block tag '%s'",
|
||||||
"arguments.function.tag.unknown": "Unknown function tag '%s'",
|
"arguments.function.tag.unknown": "Unknown function tag '%s'",
|
||||||
"arguments.function.unknown": "Unknown function %s",
|
"arguments.function.unknown": "Unknown function %s",
|
||||||
|
@ -428,6 +435,7 @@
|
||||||
"attribute.name.block_break_speed": "Block Break Speed",
|
"attribute.name.block_break_speed": "Block Break Speed",
|
||||||
"attribute.name.block_interaction_range": "Block Interaction Range",
|
"attribute.name.block_interaction_range": "Block Interaction Range",
|
||||||
"attribute.name.burning_time": "Burning Time",
|
"attribute.name.burning_time": "Burning Time",
|
||||||
|
"attribute.name.camera_distance": "Camera Distance",
|
||||||
"attribute.name.entity_interaction_range": "Entity Interaction Range",
|
"attribute.name.entity_interaction_range": "Entity Interaction Range",
|
||||||
"attribute.name.explosion_knockback_resistance": "Explosion Knockback Resistance",
|
"attribute.name.explosion_knockback_resistance": "Explosion Knockback Resistance",
|
||||||
"attribute.name.fall_damage_multiplier": "Fall Damage Multiplier",
|
"attribute.name.fall_damage_multiplier": "Fall Damage Multiplier",
|
||||||
|
@ -485,6 +493,8 @@
|
||||||
"attribute.name.sweeping_damage_ratio": "Sweeping Damage Ratio",
|
"attribute.name.sweeping_damage_ratio": "Sweeping Damage Ratio",
|
||||||
"attribute.name.tempt_range": "Mob Tempt Range",
|
"attribute.name.tempt_range": "Mob Tempt Range",
|
||||||
"attribute.name.water_movement_efficiency": "Water Movement Efficiency",
|
"attribute.name.water_movement_efficiency": "Water Movement Efficiency",
|
||||||
|
"attribute.name.waypoint_receive_range": "Waypoint Receive Range",
|
||||||
|
"attribute.name.waypoint_transmit_range": "Waypoint Transmit Range",
|
||||||
"attribute.name.zombie.spawn_reinforcements": "Zombie Reinforcements",
|
"attribute.name.zombie.spawn_reinforcements": "Zombie Reinforcements",
|
||||||
"biome.minecraft.badlands": "Badlands",
|
"biome.minecraft.badlands": "Badlands",
|
||||||
"biome.minecraft.bamboo_jungle": "Bamboo Jungle",
|
"biome.minecraft.bamboo_jungle": "Bamboo Jungle",
|
||||||
|
@ -1592,6 +1602,7 @@
|
||||||
"block.minecraft.dragon_egg": "Dragon Egg",
|
"block.minecraft.dragon_egg": "Dragon Egg",
|
||||||
"block.minecraft.dragon_head": "Dragon Head",
|
"block.minecraft.dragon_head": "Dragon Head",
|
||||||
"block.minecraft.dragon_wall_head": "Dragon Wall Head",
|
"block.minecraft.dragon_wall_head": "Dragon Wall Head",
|
||||||
|
"block.minecraft.dried_ghast": "Dried Ghast",
|
||||||
"block.minecraft.dried_kelp_block": "Dried Kelp Block",
|
"block.minecraft.dried_kelp_block": "Dried Kelp Block",
|
||||||
"block.minecraft.dripstone_block": "Dripstone Block",
|
"block.minecraft.dripstone_block": "Dripstone Block",
|
||||||
"block.minecraft.dropper": "Dropper",
|
"block.minecraft.dropper": "Dropper",
|
||||||
|
@ -2343,6 +2354,7 @@
|
||||||
"block.minecraft.zombie_head": "Zombie Head",
|
"block.minecraft.zombie_head": "Zombie Head",
|
||||||
"block.minecraft.zombie_wall_head": "Zombie Wall Head",
|
"block.minecraft.zombie_wall_head": "Zombie Wall Head",
|
||||||
"book.byAuthor": "by %1$s",
|
"book.byAuthor": "by %1$s",
|
||||||
|
"book.edit.title": "Book Edit Screen",
|
||||||
"book.editTitle": "Enter Book Title:",
|
"book.editTitle": "Enter Book Title:",
|
||||||
"book.finalizeButton": "Sign and Close",
|
"book.finalizeButton": "Sign and Close",
|
||||||
"book.finalizeWarning": "Note! When you sign the book, it will no longer be editable.",
|
"book.finalizeWarning": "Note! When you sign the book, it will no longer be editable.",
|
||||||
|
@ -2351,8 +2363,13 @@
|
||||||
"book.generation.2": "Copy of a copy",
|
"book.generation.2": "Copy of a copy",
|
||||||
"book.generation.3": "Tattered",
|
"book.generation.3": "Tattered",
|
||||||
"book.invalid.tag": "* Invalid book tag *",
|
"book.invalid.tag": "* Invalid book tag *",
|
||||||
|
"book.page_button.next": "Next Page",
|
||||||
|
"book.page_button.previous": "Previous Page",
|
||||||
"book.pageIndicator": "Page %1$s of %2$s",
|
"book.pageIndicator": "Page %1$s of %2$s",
|
||||||
|
"book.sign.title": "Book Sign Screen",
|
||||||
|
"book.sign.titlebox": "Title",
|
||||||
"book.signButton": "Sign",
|
"book.signButton": "Sign",
|
||||||
|
"book.view.title": "Book View Screen",
|
||||||
"build.tooHigh": "Height limit for building is %s",
|
"build.tooHigh": "Height limit for building is %s",
|
||||||
"chat_screen.message": "Message to send: %s",
|
"chat_screen.message": "Message to send: %s",
|
||||||
"chat_screen.title": "Chat screen",
|
"chat_screen.title": "Chat screen",
|
||||||
|
@ -2535,6 +2552,12 @@
|
||||||
"commands.data.storage.get": "%s in storage %s after scale factor of %s is %s",
|
"commands.data.storage.get": "%s in storage %s after scale factor of %s is %s",
|
||||||
"commands.data.storage.modified": "Modified storage %s",
|
"commands.data.storage.modified": "Modified storage %s",
|
||||||
"commands.data.storage.query": "Storage %s has the following contents: %s",
|
"commands.data.storage.query": "Storage %s has the following contents: %s",
|
||||||
|
"commands.datapack.create.already_exists": "Pack with name '%s' already exists",
|
||||||
|
"commands.datapack.create.invalid_full_name": "Invalid new pack name '%s'",
|
||||||
|
"commands.datapack.create.invalid_name": "Invalid characters in new pack name '%s'",
|
||||||
|
"commands.datapack.create.io_failure": "Can't create pack with name '%s', check logs",
|
||||||
|
"commands.datapack.create.metadata_encode_failure": "Failed to encode metadata for pack with name '%s': %s",
|
||||||
|
"commands.datapack.create.success": "Created new empty pack with name '%s'",
|
||||||
"commands.datapack.disable.failed": "Pack '%s' is not enabled!",
|
"commands.datapack.disable.failed": "Pack '%s' is not enabled!",
|
||||||
"commands.datapack.disable.failed.feature": "Pack '%s' cannot be disabled, since it is part of an enabled flag!",
|
"commands.datapack.disable.failed.feature": "Pack '%s' cannot be disabled, since it is part of an enabled flag!",
|
||||||
"commands.datapack.enable.failed": "Pack '%s' is already enabled!",
|
"commands.datapack.enable.failed": "Pack '%s' is already enabled!",
|
||||||
|
@ -2558,6 +2581,10 @@
|
||||||
"commands.defaultgamemode.success": "The default game mode is now %s",
|
"commands.defaultgamemode.success": "The default game mode is now %s",
|
||||||
"commands.deop.failed": "Nothing changed. The player is not an operator",
|
"commands.deop.failed": "Nothing changed. The player is not an operator",
|
||||||
"commands.deop.success": "Made %s no longer a server operator",
|
"commands.deop.success": "Made %s no longer a server operator",
|
||||||
|
"commands.dialog.clear.multiple": "Cleared dialog for %s players",
|
||||||
|
"commands.dialog.clear.single": "Cleared dialog for %s",
|
||||||
|
"commands.dialog.show.multiple": "Displayed dialog to %s players",
|
||||||
|
"commands.dialog.show.single": "Displayed dialog to %s",
|
||||||
"commands.difficulty.failure": "The difficulty did not change; it is already set to %s",
|
"commands.difficulty.failure": "The difficulty did not change; it is already set to %s",
|
||||||
"commands.difficulty.query": "The difficulty is %s",
|
"commands.difficulty.query": "The difficulty is %s",
|
||||||
"commands.difficulty.success": "The difficulty has been set to %s",
|
"commands.difficulty.success": "The difficulty has been set to %s",
|
||||||
|
@ -2925,6 +2952,22 @@
|
||||||
"commands.trigger.failed.unprimed": "You cannot trigger this objective yet",
|
"commands.trigger.failed.unprimed": "You cannot trigger this objective yet",
|
||||||
"commands.trigger.set.success": "Triggered %s (set value to %s)",
|
"commands.trigger.set.success": "Triggered %s (set value to %s)",
|
||||||
"commands.trigger.simple.success": "Triggered %s",
|
"commands.trigger.simple.success": "Triggered %s",
|
||||||
|
"commands.version.build_time": "build_time = %s",
|
||||||
|
"commands.version.data": "data = %s",
|
||||||
|
"commands.version.header": "Server version info:",
|
||||||
|
"commands.version.id": "id = %s",
|
||||||
|
"commands.version.name": "name = %s",
|
||||||
|
"commands.version.pack.data": "pack_data = %s",
|
||||||
|
"commands.version.pack.resource": "pack_resource = %s",
|
||||||
|
"commands.version.protocol": "protocol = %s (%s)",
|
||||||
|
"commands.version.series": "series = %s",
|
||||||
|
"commands.version.stable.no": "stable = no",
|
||||||
|
"commands.version.stable.yes": "stable = yes",
|
||||||
|
"commands.waypoint.list.empty": "No waypoints in %s",
|
||||||
|
"commands.waypoint.list.success": "%s waypoint(s) in %s: %s",
|
||||||
|
"commands.waypoint.modify.color": "Waypoint color is now %s",
|
||||||
|
"commands.waypoint.modify.color.reset": "Reset waypoint color",
|
||||||
|
"commands.waypoint.modify.style": "Waypoint style changed",
|
||||||
"commands.weather.set.clear": "Set the weather to clear",
|
"commands.weather.set.clear": "Set the weather to clear",
|
||||||
"commands.weather.set.rain": "Set the weather to rain",
|
"commands.weather.set.rain": "Set the weather to rain",
|
||||||
"commands.weather.set.thunder": "Set the weather to rain & thunder",
|
"commands.weather.set.thunder": "Set the weather to rain & thunder",
|
||||||
|
@ -3043,6 +3086,8 @@
|
||||||
"credits_and_attribution.screen.title": "Credits and Attribution",
|
"credits_and_attribution.screen.title": "Credits and Attribution",
|
||||||
"dataPack.bundle.description": "Enables experimental Bundle item",
|
"dataPack.bundle.description": "Enables experimental Bundle item",
|
||||||
"dataPack.bundle.name": "Bundles",
|
"dataPack.bundle.name": "Bundles",
|
||||||
|
"dataPack.locator_bar.description": "Show the direction of other players in multiplayer",
|
||||||
|
"dataPack.locator_bar.name": "Locator Bar",
|
||||||
"dataPack.minecart_improvements.description": "Improved movement for Minecarts",
|
"dataPack.minecart_improvements.description": "Improved movement for Minecarts",
|
||||||
"dataPack.minecart_improvements.name": "Minecart Improvements",
|
"dataPack.minecart_improvements.name": "Minecart Improvements",
|
||||||
"dataPack.redstone_experiments.description": "Experimental Redstone changes",
|
"dataPack.redstone_experiments.description": "Experimental Redstone changes",
|
||||||
|
@ -3216,6 +3261,8 @@
|
||||||
"debug.show_hitboxes.help": "F3 + B = Show hitboxes",
|
"debug.show_hitboxes.help": "F3 + B = Show hitboxes",
|
||||||
"debug.show_hitboxes.off": "Hitboxes: hidden",
|
"debug.show_hitboxes.off": "Hitboxes: hidden",
|
||||||
"debug.show_hitboxes.on": "Hitboxes: shown",
|
"debug.show_hitboxes.on": "Hitboxes: shown",
|
||||||
|
"debug.version.header": "Client version info:",
|
||||||
|
"debug.version.help": "F3 + V = Client version info",
|
||||||
"demo.day.1": "This demo will last five game days. Do your best!",
|
"demo.day.1": "This demo will last five game days. Do your best!",
|
||||||
"demo.day.2": "Day Two",
|
"demo.day.2": "Day Two",
|
||||||
"demo.day.3": "Day Three",
|
"demo.day.3": "Day Three",
|
||||||
|
@ -3418,6 +3465,7 @@
|
||||||
"entity.minecraft.glow_squid": "Glow Squid",
|
"entity.minecraft.glow_squid": "Glow Squid",
|
||||||
"entity.minecraft.goat": "Goat",
|
"entity.minecraft.goat": "Goat",
|
||||||
"entity.minecraft.guardian": "Guardian",
|
"entity.minecraft.guardian": "Guardian",
|
||||||
|
"entity.minecraft.happy_ghast": "Happy Ghast",
|
||||||
"entity.minecraft.hoglin": "Hoglin",
|
"entity.minecraft.hoglin": "Hoglin",
|
||||||
"entity.minecraft.hopper_minecart": "Minecart with Hopper",
|
"entity.minecraft.hopper_minecart": "Minecart with Hopper",
|
||||||
"entity.minecraft.horse": "Horse",
|
"entity.minecraft.horse": "Horse",
|
||||||
|
@ -3649,6 +3697,8 @@
|
||||||
"gamerule.keepInventory": "Keep inventory after death",
|
"gamerule.keepInventory": "Keep inventory after death",
|
||||||
"gamerule.lavaSourceConversion": "Lava converts to source",
|
"gamerule.lavaSourceConversion": "Lava converts to source",
|
||||||
"gamerule.lavaSourceConversion.description": "When flowing lava is surrounded on two sides by lava sources it converts into a source.",
|
"gamerule.lavaSourceConversion.description": "When flowing lava is surrounded on two sides by lava sources it converts into a source.",
|
||||||
|
"gamerule.locatorBar": "Enable player Locator Bar",
|
||||||
|
"gamerule.locatorBar.description": "When enabled, a bar is shown on the screen to indicate the direction of players.",
|
||||||
"gamerule.logAdminCommands": "Broadcast admin commands",
|
"gamerule.logAdminCommands": "Broadcast admin commands",
|
||||||
"gamerule.maxCommandChainLength": "Command chain size limit",
|
"gamerule.maxCommandChainLength": "Command chain size limit",
|
||||||
"gamerule.maxCommandChainLength.description": "Applies to command block chains and functions.",
|
"gamerule.maxCommandChainLength.description": "Applies to command block chains and functions.",
|
||||||
|
@ -3836,6 +3886,7 @@
|
||||||
"gui.done": "Done",
|
"gui.done": "Done",
|
||||||
"gui.down": "Down",
|
"gui.down": "Down",
|
||||||
"gui.entity_tooltip.type": "Type: %s",
|
"gui.entity_tooltip.type": "Type: %s",
|
||||||
|
"gui.experience.level": "%s",
|
||||||
"gui.fileDropFailure.detail": "Rejected %s files",
|
"gui.fileDropFailure.detail": "Rejected %s files",
|
||||||
"gui.fileDropFailure.title": "Failed to add files",
|
"gui.fileDropFailure.title": "Failed to add files",
|
||||||
"gui.hours": "%s hour(s)",
|
"gui.hours": "%s hour(s)",
|
||||||
|
@ -3897,6 +3948,8 @@
|
||||||
"gui.toTitle": "Back to Title Screen",
|
"gui.toTitle": "Back to Title Screen",
|
||||||
"gui.toWorld": "Back to World List",
|
"gui.toWorld": "Back to World List",
|
||||||
"gui.up": "Up",
|
"gui.up": "Up",
|
||||||
|
"gui.waitingForResponse.button.inactive": "Back (%ss)",
|
||||||
|
"gui.waitingForResponse.title": "Waiting for Server",
|
||||||
"gui.yes": "Yes",
|
"gui.yes": "Yes",
|
||||||
"hanging_sign.edit": "Edit Hanging Sign Message",
|
"hanging_sign.edit": "Edit Hanging Sign Message",
|
||||||
"instrument.minecraft.admire_goat_horn": "Admire",
|
"instrument.minecraft.admire_goat_horn": "Admire",
|
||||||
|
@ -3949,6 +4002,7 @@
|
||||||
"item.minecraft.birch_chest_boat": "Birch Boat with Chest",
|
"item.minecraft.birch_chest_boat": "Birch Boat with Chest",
|
||||||
"item.minecraft.black_bundle": "Black Bundle",
|
"item.minecraft.black_bundle": "Black Bundle",
|
||||||
"item.minecraft.black_dye": "Black Dye",
|
"item.minecraft.black_dye": "Black Dye",
|
||||||
|
"item.minecraft.black_harness": "Black Harness",
|
||||||
"item.minecraft.blade_pottery_shard": "Blade Pottery Shard",
|
"item.minecraft.blade_pottery_shard": "Blade Pottery Shard",
|
||||||
"item.minecraft.blade_pottery_sherd": "Blade Pottery Sherd",
|
"item.minecraft.blade_pottery_sherd": "Blade Pottery Sherd",
|
||||||
"item.minecraft.blaze_powder": "Blaze Powder",
|
"item.minecraft.blaze_powder": "Blaze Powder",
|
||||||
|
@ -3957,6 +4011,7 @@
|
||||||
"item.minecraft.blue_bundle": "Blue Bundle",
|
"item.minecraft.blue_bundle": "Blue Bundle",
|
||||||
"item.minecraft.blue_dye": "Blue Dye",
|
"item.minecraft.blue_dye": "Blue Dye",
|
||||||
"item.minecraft.blue_egg": "Blue Egg",
|
"item.minecraft.blue_egg": "Blue Egg",
|
||||||
|
"item.minecraft.blue_harness": "Blue Harness",
|
||||||
"item.minecraft.bogged_spawn_egg": "Bogged Spawn Egg",
|
"item.minecraft.bogged_spawn_egg": "Bogged Spawn Egg",
|
||||||
"item.minecraft.bolt_armor_trim_smithing_template": "Smithing Template",
|
"item.minecraft.bolt_armor_trim_smithing_template": "Smithing Template",
|
||||||
"item.minecraft.bolt_armor_trim_smithing_template.new": "Bolt Armor Trim",
|
"item.minecraft.bolt_armor_trim_smithing_template.new": "Bolt Armor Trim",
|
||||||
|
@ -3976,6 +4031,7 @@
|
||||||
"item.minecraft.brown_bundle": "Brown Bundle",
|
"item.minecraft.brown_bundle": "Brown Bundle",
|
||||||
"item.minecraft.brown_dye": "Brown Dye",
|
"item.minecraft.brown_dye": "Brown Dye",
|
||||||
"item.minecraft.brown_egg": "Brown Egg",
|
"item.minecraft.brown_egg": "Brown Egg",
|
||||||
|
"item.minecraft.brown_harness": "Brown Harness",
|
||||||
"item.minecraft.brush": "Brush",
|
"item.minecraft.brush": "Brush",
|
||||||
"item.minecraft.bucket": "Bucket",
|
"item.minecraft.bucket": "Bucket",
|
||||||
"item.minecraft.bundle": "Bundle",
|
"item.minecraft.bundle": "Bundle",
|
||||||
|
@ -4034,6 +4090,7 @@
|
||||||
"item.minecraft.crossbow.projectile.single": "Projectile: %s",
|
"item.minecraft.crossbow.projectile.single": "Projectile: %s",
|
||||||
"item.minecraft.cyan_bundle": "Cyan Bundle",
|
"item.minecraft.cyan_bundle": "Cyan Bundle",
|
||||||
"item.minecraft.cyan_dye": "Cyan Dye",
|
"item.minecraft.cyan_dye": "Cyan Dye",
|
||||||
|
"item.minecraft.cyan_harness": "Cyan Harness",
|
||||||
"item.minecraft.danger_pottery_shard": "Danger Pottery Shard",
|
"item.minecraft.danger_pottery_shard": "Danger Pottery Shard",
|
||||||
"item.minecraft.danger_pottery_sherd": "Danger Pottery Sherd",
|
"item.minecraft.danger_pottery_sherd": "Danger Pottery Sherd",
|
||||||
"item.minecraft.dark_oak_boat": "Dark Oak Boat",
|
"item.minecraft.dark_oak_boat": "Dark Oak Boat",
|
||||||
|
@ -4165,14 +4222,18 @@
|
||||||
"item.minecraft.golden_sword": "Golden Sword",
|
"item.minecraft.golden_sword": "Golden Sword",
|
||||||
"item.minecraft.gray_bundle": "Gray Bundle",
|
"item.minecraft.gray_bundle": "Gray Bundle",
|
||||||
"item.minecraft.gray_dye": "Gray Dye",
|
"item.minecraft.gray_dye": "Gray Dye",
|
||||||
|
"item.minecraft.gray_harness": "Gray Harness",
|
||||||
"item.minecraft.green_bundle": "Green Bundle",
|
"item.minecraft.green_bundle": "Green Bundle",
|
||||||
"item.minecraft.green_dye": "Green Dye",
|
"item.minecraft.green_dye": "Green Dye",
|
||||||
|
"item.minecraft.green_harness": "Green Harness",
|
||||||
"item.minecraft.guardian_spawn_egg": "Guardian Spawn Egg",
|
"item.minecraft.guardian_spawn_egg": "Guardian Spawn Egg",
|
||||||
"item.minecraft.gunpowder": "Gunpowder",
|
"item.minecraft.gunpowder": "Gunpowder",
|
||||||
"item.minecraft.guster_banner_pattern": "Banner Pattern",
|
"item.minecraft.guster_banner_pattern": "Banner Pattern",
|
||||||
"item.minecraft.guster_banner_pattern.desc": "Guster",
|
"item.minecraft.guster_banner_pattern.desc": "Guster",
|
||||||
"item.minecraft.guster_banner_pattern.new": "Guster Banner Pattern",
|
"item.minecraft.guster_banner_pattern.new": "Guster Banner Pattern",
|
||||||
"item.minecraft.guster_pottery_sherd": "Guster Pottery Sherd",
|
"item.minecraft.guster_pottery_sherd": "Guster Pottery Sherd",
|
||||||
|
"item.minecraft.happy_ghast_spawn_egg": "Happy Ghast Spawn Egg",
|
||||||
|
"item.minecraft.harness": "Harness",
|
||||||
"item.minecraft.heart_of_the_sea": "Heart of the Sea",
|
"item.minecraft.heart_of_the_sea": "Heart of the Sea",
|
||||||
"item.minecraft.heart_pottery_shard": "Heart Pottery Shard",
|
"item.minecraft.heart_pottery_shard": "Heart Pottery Shard",
|
||||||
"item.minecraft.heart_pottery_sherd": "Heart Pottery Sherd",
|
"item.minecraft.heart_pottery_sherd": "Heart Pottery Sherd",
|
||||||
|
@ -4217,10 +4278,13 @@
|
||||||
"item.minecraft.leather_leggings": "Leather Pants",
|
"item.minecraft.leather_leggings": "Leather Pants",
|
||||||
"item.minecraft.light_blue_bundle": "Light Blue Bundle",
|
"item.minecraft.light_blue_bundle": "Light Blue Bundle",
|
||||||
"item.minecraft.light_blue_dye": "Light Blue Dye",
|
"item.minecraft.light_blue_dye": "Light Blue Dye",
|
||||||
|
"item.minecraft.light_blue_harness": "Light Blue Harness",
|
||||||
"item.minecraft.light_gray_bundle": "Light Gray Bundle",
|
"item.minecraft.light_gray_bundle": "Light Gray Bundle",
|
||||||
"item.minecraft.light_gray_dye": "Light Gray Dye",
|
"item.minecraft.light_gray_dye": "Light Gray Dye",
|
||||||
|
"item.minecraft.light_gray_harness": "Light Gray Harness",
|
||||||
"item.minecraft.lime_bundle": "Lime Bundle",
|
"item.minecraft.lime_bundle": "Lime Bundle",
|
||||||
"item.minecraft.lime_dye": "Lime Dye",
|
"item.minecraft.lime_dye": "Lime Dye",
|
||||||
|
"item.minecraft.lime_harness": "Lime Harness",
|
||||||
"item.minecraft.lingering_potion": "Lingering Potion",
|
"item.minecraft.lingering_potion": "Lingering Potion",
|
||||||
"item.minecraft.lingering_potion.effect.awkward": "Awkward Lingering Potion",
|
"item.minecraft.lingering_potion.effect.awkward": "Awkward Lingering Potion",
|
||||||
"item.minecraft.lingering_potion.effect.empty": "Lingering Uncraftable Potion",
|
"item.minecraft.lingering_potion.effect.empty": "Lingering Uncraftable Potion",
|
||||||
|
@ -4253,6 +4317,7 @@
|
||||||
"item.minecraft.mace": "Mace",
|
"item.minecraft.mace": "Mace",
|
||||||
"item.minecraft.magenta_bundle": "Magenta Bundle",
|
"item.minecraft.magenta_bundle": "Magenta Bundle",
|
||||||
"item.minecraft.magenta_dye": "Magenta Dye",
|
"item.minecraft.magenta_dye": "Magenta Dye",
|
||||||
|
"item.minecraft.magenta_harness": "Magenta Harness",
|
||||||
"item.minecraft.magma_cream": "Magma Cream",
|
"item.minecraft.magma_cream": "Magma Cream",
|
||||||
"item.minecraft.magma_cube_spawn_egg": "Magma Cube Spawn Egg",
|
"item.minecraft.magma_cube_spawn_egg": "Magma Cube Spawn Egg",
|
||||||
"item.minecraft.mangrove_boat": "Mangrove Boat",
|
"item.minecraft.mangrove_boat": "Mangrove Boat",
|
||||||
|
@ -4306,6 +4371,8 @@
|
||||||
"item.minecraft.music_disc_stal.desc": "C418 - stal",
|
"item.minecraft.music_disc_stal.desc": "C418 - stal",
|
||||||
"item.minecraft.music_disc_strad": "Music Disc",
|
"item.minecraft.music_disc_strad": "Music Disc",
|
||||||
"item.minecraft.music_disc_strad.desc": "C418 - strad",
|
"item.minecraft.music_disc_strad.desc": "C418 - strad",
|
||||||
|
"item.minecraft.music_disc_tears": "Music Disc",
|
||||||
|
"item.minecraft.music_disc_tears.desc": "Amos Roddy - Tears",
|
||||||
"item.minecraft.music_disc_wait": "Music Disc",
|
"item.minecraft.music_disc_wait": "Music Disc",
|
||||||
"item.minecraft.music_disc_wait.desc": "C418 - wait",
|
"item.minecraft.music_disc_wait.desc": "C418 - wait",
|
||||||
"item.minecraft.music_disc_ward": "Music Disc",
|
"item.minecraft.music_disc_ward": "Music Disc",
|
||||||
|
@ -4336,6 +4403,7 @@
|
||||||
"item.minecraft.ominous_trial_key": "Ominous Trial Key",
|
"item.minecraft.ominous_trial_key": "Ominous Trial Key",
|
||||||
"item.minecraft.orange_bundle": "Orange Bundle",
|
"item.minecraft.orange_bundle": "Orange Bundle",
|
||||||
"item.minecraft.orange_dye": "Orange Dye",
|
"item.minecraft.orange_dye": "Orange Dye",
|
||||||
|
"item.minecraft.orange_harness": "Orange Harness",
|
||||||
"item.minecraft.painting": "Painting",
|
"item.minecraft.painting": "Painting",
|
||||||
"item.minecraft.pale_oak_boat": "Pale Oak Boat",
|
"item.minecraft.pale_oak_boat": "Pale Oak Boat",
|
||||||
"item.minecraft.pale_oak_chest_boat": "Pale Oak Boat with Chest",
|
"item.minecraft.pale_oak_chest_boat": "Pale Oak Boat with Chest",
|
||||||
|
@ -4353,6 +4421,7 @@
|
||||||
"item.minecraft.pillager_spawn_egg": "Pillager Spawn Egg",
|
"item.minecraft.pillager_spawn_egg": "Pillager Spawn Egg",
|
||||||
"item.minecraft.pink_bundle": "Pink Bundle",
|
"item.minecraft.pink_bundle": "Pink Bundle",
|
||||||
"item.minecraft.pink_dye": "Pink Dye",
|
"item.minecraft.pink_dye": "Pink Dye",
|
||||||
|
"item.minecraft.pink_harness": "Pink Harness",
|
||||||
"item.minecraft.pitcher_plant": "Pitcher Plant",
|
"item.minecraft.pitcher_plant": "Pitcher Plant",
|
||||||
"item.minecraft.pitcher_pod": "Pitcher Pod",
|
"item.minecraft.pitcher_pod": "Pitcher Pod",
|
||||||
"item.minecraft.plenty_pottery_shard": "Plenty Pottery Shard",
|
"item.minecraft.plenty_pottery_shard": "Plenty Pottery Shard",
|
||||||
|
@ -4405,6 +4474,7 @@
|
||||||
"item.minecraft.pumpkin_seeds": "Pumpkin Seeds",
|
"item.minecraft.pumpkin_seeds": "Pumpkin Seeds",
|
||||||
"item.minecraft.purple_bundle": "Purple Bundle",
|
"item.minecraft.purple_bundle": "Purple Bundle",
|
||||||
"item.minecraft.purple_dye": "Purple Dye",
|
"item.minecraft.purple_dye": "Purple Dye",
|
||||||
|
"item.minecraft.purple_harness": "Purple Harness",
|
||||||
"item.minecraft.quartz": "Nether Quartz",
|
"item.minecraft.quartz": "Nether Quartz",
|
||||||
"item.minecraft.rabbit": "Raw Rabbit",
|
"item.minecraft.rabbit": "Raw Rabbit",
|
||||||
"item.minecraft.rabbit_foot": "Rabbit's Foot",
|
"item.minecraft.rabbit_foot": "Rabbit's Foot",
|
||||||
|
@ -4420,6 +4490,7 @@
|
||||||
"item.minecraft.recovery_compass": "Recovery Compass",
|
"item.minecraft.recovery_compass": "Recovery Compass",
|
||||||
"item.minecraft.red_bundle": "Red Bundle",
|
"item.minecraft.red_bundle": "Red Bundle",
|
||||||
"item.minecraft.red_dye": "Red Dye",
|
"item.minecraft.red_dye": "Red Dye",
|
||||||
|
"item.minecraft.red_harness": "Red Harness",
|
||||||
"item.minecraft.redstone": "Redstone Dust",
|
"item.minecraft.redstone": "Redstone Dust",
|
||||||
"item.minecraft.resin_brick": "Resin Brick",
|
"item.minecraft.resin_brick": "Resin Brick",
|
||||||
"item.minecraft.resin_clump": "Resin Clump",
|
"item.minecraft.resin_clump": "Resin Clump",
|
||||||
|
@ -4601,6 +4672,7 @@
|
||||||
"item.minecraft.wheat_seeds": "Wheat Seeds",
|
"item.minecraft.wheat_seeds": "Wheat Seeds",
|
||||||
"item.minecraft.white_bundle": "White Bundle",
|
"item.minecraft.white_bundle": "White Bundle",
|
||||||
"item.minecraft.white_dye": "White Dye",
|
"item.minecraft.white_dye": "White Dye",
|
||||||
|
"item.minecraft.white_harness": "White Harness",
|
||||||
"item.minecraft.wild_armor_trim_smithing_template": "Smithing Template",
|
"item.minecraft.wild_armor_trim_smithing_template": "Smithing Template",
|
||||||
"item.minecraft.wild_armor_trim_smithing_template.new": "Wild Armor Trim",
|
"item.minecraft.wild_armor_trim_smithing_template.new": "Wild Armor Trim",
|
||||||
"item.minecraft.wind_charge": "Wind Charge",
|
"item.minecraft.wind_charge": "Wind Charge",
|
||||||
|
@ -4618,6 +4690,7 @@
|
||||||
"item.minecraft.written_book": "Written Book",
|
"item.minecraft.written_book": "Written Book",
|
||||||
"item.minecraft.yellow_bundle": "Yellow Bundle",
|
"item.minecraft.yellow_bundle": "Yellow Bundle",
|
||||||
"item.minecraft.yellow_dye": "Yellow Dye",
|
"item.minecraft.yellow_dye": "Yellow Dye",
|
||||||
|
"item.minecraft.yellow_harness": "Yellow Harness",
|
||||||
"item.minecraft.zoglin_spawn_egg": "Zoglin Spawn Egg",
|
"item.minecraft.zoglin_spawn_egg": "Zoglin Spawn Egg",
|
||||||
"item.minecraft.zombie_horse_spawn_egg": "Zombie Horse Spawn Egg",
|
"item.minecraft.zombie_horse_spawn_egg": "Zombie Horse Spawn Egg",
|
||||||
"item.minecraft.zombie_spawn_egg": "Zombie Spawn Egg",
|
"item.minecraft.zombie_spawn_egg": "Zombie Spawn Egg",
|
||||||
|
@ -4686,6 +4759,7 @@
|
||||||
"jukebox_song.minecraft.relic": "Aaron Cherof - Relic",
|
"jukebox_song.minecraft.relic": "Aaron Cherof - Relic",
|
||||||
"jukebox_song.minecraft.stal": "C418 - stal",
|
"jukebox_song.minecraft.stal": "C418 - stal",
|
||||||
"jukebox_song.minecraft.strad": "C418 - strad",
|
"jukebox_song.minecraft.strad": "C418 - strad",
|
||||||
|
"jukebox_song.minecraft.tears": "Amos Roddy - Tears",
|
||||||
"jukebox_song.minecraft.wait": "C418 - wait",
|
"jukebox_song.minecraft.wait": "C418 - wait",
|
||||||
"jukebox_song.minecraft.ward": "C418 - ward",
|
"jukebox_song.minecraft.ward": "C418 - ward",
|
||||||
"key.advancements": "Advancements",
|
"key.advancements": "Advancements",
|
||||||
|
@ -4807,6 +4881,7 @@
|
||||||
"key.mouse.right": "Right Button",
|
"key.mouse.right": "Right Button",
|
||||||
"key.pickItem": "Pick Block",
|
"key.pickItem": "Pick Block",
|
||||||
"key.playerlist": "List Players",
|
"key.playerlist": "List Players",
|
||||||
|
"key.quickActions": "Quick Actions",
|
||||||
"key.right": "Strafe Right",
|
"key.right": "Strafe Right",
|
||||||
"key.saveToolbarActivator": "Save Hotbar Activator",
|
"key.saveToolbarActivator": "Save Hotbar Activator",
|
||||||
"key.screenshot": "Take Screenshot",
|
"key.screenshot": "Take Screenshot",
|
||||||
|
@ -4903,22 +4978,26 @@
|
||||||
"mco.configure.world.activityfeed.disabled": "Player feed temporarily disabled",
|
"mco.configure.world.activityfeed.disabled": "Player feed temporarily disabled",
|
||||||
"mco.configure.world.backup": "World Backups",
|
"mco.configure.world.backup": "World Backups",
|
||||||
"mco.configure.world.buttons.activity": "Player activity",
|
"mco.configure.world.buttons.activity": "Player activity",
|
||||||
"mco.configure.world.buttons.close": "Close Realm",
|
"mco.configure.world.buttons.close": "Temporarily Close Realm",
|
||||||
"mco.configure.world.buttons.delete": "Delete",
|
"mco.configure.world.buttons.delete": "Delete",
|
||||||
"mco.configure.world.buttons.done": "Done",
|
"mco.configure.world.buttons.done": "Done",
|
||||||
"mco.configure.world.buttons.edit": "Settings",
|
"mco.configure.world.buttons.edit": "Settings",
|
||||||
"mco.configure.world.buttons.invite": "Invite Player",
|
"mco.configure.world.buttons.invite": "Invite Player",
|
||||||
"mco.configure.world.buttons.moreoptions": "More options",
|
"mco.configure.world.buttons.moreoptions": "More options",
|
||||||
"mco.configure.world.buttons.open": "Open Realm",
|
"mco.configure.world.buttons.newworld": "New World",
|
||||||
|
"mco.configure.world.buttons.open": "Reopen Realm",
|
||||||
"mco.configure.world.buttons.options": "World Options",
|
"mco.configure.world.buttons.options": "World Options",
|
||||||
"mco.configure.world.buttons.players": "Players",
|
"mco.configure.world.buttons.players": "Players",
|
||||||
|
"mco.configure.world.buttons.region_preference": "Select Region...",
|
||||||
"mco.configure.world.buttons.resetworld": "Reset World",
|
"mco.configure.world.buttons.resetworld": "Reset World",
|
||||||
|
"mco.configure.world.buttons.save": "Save",
|
||||||
"mco.configure.world.buttons.settings": "Settings",
|
"mco.configure.world.buttons.settings": "Settings",
|
||||||
"mco.configure.world.buttons.subscription": "Subscription",
|
"mco.configure.world.buttons.subscription": "Subscription",
|
||||||
"mco.configure.world.buttons.switchminigame": "Switch Minigame",
|
"mco.configure.world.buttons.switchminigame": "Switch Minigame",
|
||||||
"mco.configure.world.close.question.line1": "Your Realm will become unavailable.",
|
"mco.configure.world.close.question.line1": "You can temporarily close your Realm, preventing play while you make adjustments. Open it back up when you're ready. \n\nThis does not cancel your Realms Subscription.",
|
||||||
"mco.configure.world.close.question.line2": "Are you sure you want to continue?",
|
"mco.configure.world.close.question.line2": "Are you sure you want to continue?",
|
||||||
"mco.configure.world.closing": "Closing the Realm...",
|
"mco.configure.world.close.question.title": "Need to make changes without disruption?",
|
||||||
|
"mco.configure.world.closing": "Temporarily closing the Realm...",
|
||||||
"mco.configure.world.commandBlocks": "Command Blocks",
|
"mco.configure.world.commandBlocks": "Command Blocks",
|
||||||
"mco.configure.world.delete.button": "Delete Realm",
|
"mco.configure.world.delete.button": "Delete Realm",
|
||||||
"mco.configure.world.delete.question.line1": "Your Realm will be permanently deleted",
|
"mco.configure.world.delete.question.line1": "Your Realm will be permanently deleted",
|
||||||
|
@ -4938,6 +5017,7 @@
|
||||||
"mco.configure.world.invites.remove.tooltip": "Remove",
|
"mco.configure.world.invites.remove.tooltip": "Remove",
|
||||||
"mco.configure.world.leave.question.line1": "If you leave this Realm you won't see it unless you are invited again",
|
"mco.configure.world.leave.question.line1": "If you leave this Realm you won't see it unless you are invited again",
|
||||||
"mco.configure.world.leave.question.line2": "Are you sure you want to continue?",
|
"mco.configure.world.leave.question.line2": "Are you sure you want to continue?",
|
||||||
|
"mco.configure.world.loading": "Loading Realm",
|
||||||
"mco.configure.world.location": "Location",
|
"mco.configure.world.location": "Location",
|
||||||
"mco.configure.world.minigame": "Current: %s",
|
"mco.configure.world.minigame": "Current: %s",
|
||||||
"mco.configure.world.name": "Realm Name",
|
"mco.configure.world.name": "Realm Name",
|
||||||
|
@ -4946,6 +5026,8 @@
|
||||||
"mco.configure.world.players.inviting": "Inviting player...",
|
"mco.configure.world.players.inviting": "Inviting player...",
|
||||||
"mco.configure.world.players.title": "Players",
|
"mco.configure.world.players.title": "Players",
|
||||||
"mco.configure.world.pvp": "PVP",
|
"mco.configure.world.pvp": "PVP",
|
||||||
|
"mco.configure.world.region_preference": "Region Preference",
|
||||||
|
"mco.configure.world.region_preference.title": "Region Preference Selection",
|
||||||
"mco.configure.world.reset.question.line1": "Your world will be regenerated and your current world will be lost",
|
"mco.configure.world.reset.question.line1": "Your world will be regenerated and your current world will be lost",
|
||||||
"mco.configure.world.reset.question.line2": "Are you sure you want to continue?",
|
"mco.configure.world.reset.question.line2": "Are you sure you want to continue?",
|
||||||
"mco.configure.world.resourcepack.question": "You need a custom resource pack to play on this Realm\n\nDo you want to download it and play?",
|
"mco.configure.world.resourcepack.question": "You need a custom resource pack to play on this Realm\n\nDo you want to download it and play?",
|
||||||
|
@ -4955,6 +5037,7 @@
|
||||||
"mco.configure.world.restore.download.question.line2": "Do you want to continue?",
|
"mco.configure.world.restore.download.question.line2": "Do you want to continue?",
|
||||||
"mco.configure.world.restore.question.line1": "Your world will be restored to date '%s' (%s)",
|
"mco.configure.world.restore.question.line1": "Your world will be restored to date '%s' (%s)",
|
||||||
"mco.configure.world.restore.question.line2": "Are you sure you want to continue?",
|
"mco.configure.world.restore.question.line2": "Are you sure you want to continue?",
|
||||||
|
"mco.configure.world.settings.expired": "You cannot edit settings of an expired Realm",
|
||||||
"mco.configure.world.settings.title": "Settings",
|
"mco.configure.world.settings.title": "Settings",
|
||||||
"mco.configure.world.slot": "World %s",
|
"mco.configure.world.slot": "World %s",
|
||||||
"mco.configure.world.slot.empty": "Empty",
|
"mco.configure.world.slot.empty": "Empty",
|
||||||
|
@ -4984,6 +5067,7 @@
|
||||||
"mco.configure.world.subscription.remaining.months": "%1$s month(s)",
|
"mco.configure.world.subscription.remaining.months": "%1$s month(s)",
|
||||||
"mco.configure.world.subscription.remaining.months.days": "%1$s month(s), %2$s day(s)",
|
"mco.configure.world.subscription.remaining.months.days": "%1$s month(s), %2$s day(s)",
|
||||||
"mco.configure.world.subscription.start": "Start Date",
|
"mco.configure.world.subscription.start": "Start Date",
|
||||||
|
"mco.configure.world.subscription.tab": "Subscription",
|
||||||
"mco.configure.world.subscription.timeleft": "Time Left",
|
"mco.configure.world.subscription.timeleft": "Time Left",
|
||||||
"mco.configure.world.subscription.title": "Your Subscription",
|
"mco.configure.world.subscription.title": "Your Subscription",
|
||||||
"mco.configure.world.subscription.unknown": "Unknown",
|
"mco.configure.world.subscription.unknown": "Unknown",
|
||||||
|
@ -4996,6 +5080,7 @@
|
||||||
"mco.connect.authorizing": "Logging in...",
|
"mco.connect.authorizing": "Logging in...",
|
||||||
"mco.connect.connecting": "Connecting to the Realm...",
|
"mco.connect.connecting": "Connecting to the Realm...",
|
||||||
"mco.connect.failed": "Failed to connect to the Realm",
|
"mco.connect.failed": "Failed to connect to the Realm",
|
||||||
|
"mco.connect.region": "Server region: %s",
|
||||||
"mco.connect.success": "Done",
|
"mco.connect.success": "Done",
|
||||||
"mco.create.world": "Create",
|
"mco.create.world": "Create",
|
||||||
"mco.create.world.error": "You must enter a name!",
|
"mco.create.world.error": "You must enter a name!",
|
||||||
|
@ -5034,6 +5119,7 @@
|
||||||
"mco.errorMessage.initialize.failed": "Failed to initialize Realm",
|
"mco.errorMessage.initialize.failed": "Failed to initialize Realm",
|
||||||
"mco.errorMessage.noDetails": "No error details provided",
|
"mco.errorMessage.noDetails": "No error details provided",
|
||||||
"mco.errorMessage.realmsService": "An error occurred (%s):",
|
"mco.errorMessage.realmsService": "An error occurred (%s):",
|
||||||
|
"mco.errorMessage.realmsService.configurationError": "An unexpected error occurred while editing world options",
|
||||||
"mco.errorMessage.realmsService.connectivity": "Could not connect to Realms: %s",
|
"mco.errorMessage.realmsService.connectivity": "Could not connect to Realms: %s",
|
||||||
"mco.errorMessage.realmsService.realmsError": "Realms (%s):",
|
"mco.errorMessage.realmsService.realmsError": "Realms (%s):",
|
||||||
"mco.errorMessage.realmsService.unknownCompatibility": "Could not check compatible version, got response: %s",
|
"mco.errorMessage.realmsService.unknownCompatibility": "Could not check compatible version, got response: %s",
|
||||||
|
@ -5070,6 +5156,7 @@
|
||||||
"mco.notification.visitUrl.buttonText.default": "Open Link",
|
"mco.notification.visitUrl.buttonText.default": "Open Link",
|
||||||
"mco.notification.visitUrl.message.default": "Please visit the link below",
|
"mco.notification.visitUrl.message.default": "Please visit the link below",
|
||||||
"mco.onlinePlayers": "Online Players",
|
"mco.onlinePlayers": "Online Players",
|
||||||
|
"mco.play.button.realm.closed": "Realm is closed",
|
||||||
"mco.question": "Question",
|
"mco.question": "Question",
|
||||||
"mco.reset.world.adventure": "Adventures",
|
"mco.reset.world.adventure": "Adventures",
|
||||||
"mco.reset.world.experience": "Experiences",
|
"mco.reset.world.experience": "Experiences",
|
||||||
|
@ -5083,7 +5170,7 @@
|
||||||
"mco.reset.world.warning": "This will replace the current world of your Realm",
|
"mco.reset.world.warning": "This will replace the current world of your Realm",
|
||||||
"mco.selectServer.buy": "Buy a Realm!",
|
"mco.selectServer.buy": "Buy a Realm!",
|
||||||
"mco.selectServer.close": "Close",
|
"mco.selectServer.close": "Close",
|
||||||
"mco.selectServer.closed": "Closed Realm",
|
"mco.selectServer.closed": "Deactivated Realm",
|
||||||
"mco.selectServer.closeserver": "Close Realm",
|
"mco.selectServer.closeserver": "Close Realm",
|
||||||
"mco.selectServer.configure": "Configure",
|
"mco.selectServer.configure": "Configure",
|
||||||
"mco.selectServer.configureRealm": "Configure Realm",
|
"mco.selectServer.configureRealm": "Configure Realm",
|
||||||
|
@ -5175,6 +5262,14 @@
|
||||||
"mco.version": "Version: %s",
|
"mco.version": "Version: %s",
|
||||||
"mco.warning": "Warning!",
|
"mco.warning": "Warning!",
|
||||||
"mco.worldSlot.minigame": "Minigame",
|
"mco.worldSlot.minigame": "Minigame",
|
||||||
|
"menu.custom_options": "Custom Options...",
|
||||||
|
"menu.custom_options.title": "Custom Options",
|
||||||
|
"menu.custom_options.tooltip": "Note: Custom options are provided by third-party servers and/or content.\nHandle with care!",
|
||||||
|
"menu.custom_screen_info.button_narration": "This is a custom screen. Learn more.",
|
||||||
|
"menu.custom_screen_info.contents": "The contents of this screen are controlled by third-party servers and maps that are not owned, operated, or supervised by Mojang Studios or Microsoft.\n\nHandle with care! Always be careful when following links and never give away your personal information, including login details.\n\nIf this screen prevents you from playing, you can also disconnect from the current server by using the button below.",
|
||||||
|
"menu.custom_screen_info.disconnect": "Custom screen rejected",
|
||||||
|
"menu.custom_screen_info.title": "Note about custom screens",
|
||||||
|
"menu.custom_screen_info.tooltip": "This is a custom screen. Click here to learn more.",
|
||||||
"menu.disconnect": "Disconnect",
|
"menu.disconnect": "Disconnect",
|
||||||
"menu.feedback": "Feedback...",
|
"menu.feedback": "Feedback...",
|
||||||
"menu.feedback.title": "Feedback",
|
"menu.feedback.title": "Feedback",
|
||||||
|
@ -5187,6 +5282,8 @@
|
||||||
"menu.playdemo": "Play Demo World",
|
"menu.playdemo": "Play Demo World",
|
||||||
"menu.playerReporting": "Player Reporting",
|
"menu.playerReporting": "Player Reporting",
|
||||||
"menu.preparingSpawn": "Preparing spawn area: %s%%",
|
"menu.preparingSpawn": "Preparing spawn area: %s%%",
|
||||||
|
"menu.quick_actions": "Quick Actions...",
|
||||||
|
"menu.quick_actions.title": "Quick Actions",
|
||||||
"menu.quit": "Quit Game",
|
"menu.quit": "Quit Game",
|
||||||
"menu.reportBugs": "Report Bugs",
|
"menu.reportBugs": "Report Bugs",
|
||||||
"menu.resetdemo": "Reset Demo World",
|
"menu.resetdemo": "Reset Demo World",
|
||||||
|
@ -5213,6 +5310,9 @@
|
||||||
"mirror.none": "|",
|
"mirror.none": "|",
|
||||||
"mount.onboard": "Press %1$s to Dismount",
|
"mount.onboard": "Press %1$s to Dismount",
|
||||||
"multiplayer.applyingPack": "Applying resource pack",
|
"multiplayer.applyingPack": "Applying resource pack",
|
||||||
|
"multiplayer.confirm_command.parse_errors": "You are trying to execute an unrecognized or invalid command.\nAre you sure?\nCommand: %s",
|
||||||
|
"multiplayer.confirm_command.permissions_required": "You are trying to execute a command that requires elevated permissions.\nThis might negatively affect your game.\nAre you sure?\nCommand: %s",
|
||||||
|
"multiplayer.confirm_command.title": "Confirm Command Execution",
|
||||||
"multiplayer.disconnect.authservers_down": "Authentication servers are down. Please try again later, sorry!",
|
"multiplayer.disconnect.authservers_down": "Authentication servers are down. Please try again later, sorry!",
|
||||||
"multiplayer.disconnect.bad_chat_index": "Detected missed or reordered chat message from server",
|
"multiplayer.disconnect.bad_chat_index": "Detected missed or reordered chat message from server",
|
||||||
"multiplayer.disconnect.banned": "You are banned from this server",
|
"multiplayer.disconnect.banned": "You are banned from this server",
|
||||||
|
@ -5296,6 +5396,71 @@
|
||||||
"multiplayerWarning.check": "Do not show this screen again",
|
"multiplayerWarning.check": "Do not show this screen again",
|
||||||
"multiplayerWarning.header": "Caution: Third-Party Online Play",
|
"multiplayerWarning.header": "Caution: Third-Party Online Play",
|
||||||
"multiplayerWarning.message": "Caution: Online play is offered by third-party servers that are not owned, operated, or supervised by Mojang Studios or Microsoft. During online play, you may be exposed to unmoderated chat messages or other types of user-generated content that may not be suitable for everyone.",
|
"multiplayerWarning.message": "Caution: Online play is offered by third-party servers that are not owned, operated, or supervised by Mojang Studios or Microsoft. During online play, you may be exposed to unmoderated chat messages or other types of user-generated content that may not be suitable for everyone.",
|
||||||
|
"music.game.a_familiar_room": "Aaron Cherof - A Familiar Room",
|
||||||
|
"music.game.an_ordinary_day": "Kumi Tanioka - An Ordinary Day",
|
||||||
|
"music.game.ancestry": "Lena Raine - Ancestry",
|
||||||
|
"music.game.below_and_above": "Amos Roddy - Below and Above",
|
||||||
|
"music.game.broken_clocks": "Amos Roddy - Broken Clocks",
|
||||||
|
"music.game.bromeliad": "Aaron Cherof - Bromeliad",
|
||||||
|
"music.game.clark": "C418 - Clark",
|
||||||
|
"music.game.comforting_memories": "Kumi Tanioka - Comforting Memories",
|
||||||
|
"music.game.creative.aria_math": "C418 - Aria Math",
|
||||||
|
"music.game.creative.biome_fest": "C418 - Biome Fest",
|
||||||
|
"music.game.creative.blind_spots": "C418 - Blind Spots",
|
||||||
|
"music.game.creative.dreiton": "C418 - Dreiton",
|
||||||
|
"music.game.creative.haunt_muskie": "C418 - Haunt Muskie",
|
||||||
|
"music.game.creative.taswell": "C418 - Taswell",
|
||||||
|
"music.game.crescent_dunes": "Aaron Cherof - Crescent Dunes",
|
||||||
|
"music.game.danny": "C418 - Danny",
|
||||||
|
"music.game.deeper": "Lena Raine - Deeper",
|
||||||
|
"music.game.dry_hands": "C418 - Dry Hands",
|
||||||
|
"music.game.echo_in_the_wind": "Aaron Cherof - Echo in the Wind",
|
||||||
|
"music.game.eld_unknown": "Lena Raine - Eld Unknown",
|
||||||
|
"music.game.end.alpha": "C418 - Alpha",
|
||||||
|
"music.game.end.boss": "C418 - Boss",
|
||||||
|
"music.game.end.the_end": "C418 - The End",
|
||||||
|
"music.game.endless": "Lena Raine - Endless",
|
||||||
|
"music.game.featherfall": "Aaron Cherof - Featherfall",
|
||||||
|
"music.game.fireflies": "Amos Roddy - Fireflies",
|
||||||
|
"music.game.floating_dream": "Kumi Tanioka - Floating Dream",
|
||||||
|
"music.game.haggstrom": "C418 - Haggstrom",
|
||||||
|
"music.game.infinite_amethyst": "Lena Raine - Infinite Amethyst",
|
||||||
|
"music.game.key": "C418 - Key",
|
||||||
|
"music.game.komorebi": "Kumi Tanioka - komorebi",
|
||||||
|
"music.game.left_to_bloom": "Lena Raine - Left to Bloom",
|
||||||
|
"music.game.lilypad": "Amos Roddy - Lilypad",
|
||||||
|
"music.game.living_mice": "C418 - Living Mice",
|
||||||
|
"music.game.mice_on_venus": "C418 - Mice on Venus",
|
||||||
|
"music.game.minecraft": "C418 - Minecraft",
|
||||||
|
"music.game.nether.ballad_of_the_cats": "C418 - Ballad of the Cats",
|
||||||
|
"music.game.nether.concrete_halls": "C418 - Concrete Halls",
|
||||||
|
"music.game.nether.crimson_forest.chrysopoeia": "Lena Raine - Chrysopoeia",
|
||||||
|
"music.game.nether.dead_voxel": "C418 - Dead Voxel",
|
||||||
|
"music.game.nether.nether_wastes.rubedo": "Lena Raine - Rubedo",
|
||||||
|
"music.game.nether.soulsand_valley.so_below": "Lena Raine - So Below",
|
||||||
|
"music.game.nether.warmth": "C418 - Warmth",
|
||||||
|
"music.game.one_more_day": "Lena Raine - One More Day",
|
||||||
|
"music.game.os_piano": "Amos Roddy - O's Piano",
|
||||||
|
"music.game.oxygene": "C418 - Oxyg\u00e8ne",
|
||||||
|
"music.game.pokopoko": "Kumi Tanioka - pokopoko",
|
||||||
|
"music.game.puzzlebox": "Aaron Cherof - Puzzlebox",
|
||||||
|
"music.game.stand_tall": "Lena Raine - Stand Tall",
|
||||||
|
"music.game.subwoofer_lullaby": "C418 - Subwoofer Lullaby",
|
||||||
|
"music.game.swamp.aerie": "Lena Raine - Aerie",
|
||||||
|
"music.game.swamp.firebugs": "Lena Raine - Firebugs",
|
||||||
|
"music.game.swamp.labyrinthine": "Lena Raine - Labyrinthine",
|
||||||
|
"music.game.sweden": "C418 - Sweden",
|
||||||
|
"music.game.watcher": "Aaron Cherof - Watcher",
|
||||||
|
"music.game.water.axolotl": "C418 - Axolotl",
|
||||||
|
"music.game.water.dragon_fish": "C418 - Dragon Fish",
|
||||||
|
"music.game.water.shuniji": "C418 - Shuniji",
|
||||||
|
"music.game.wending": "Lena Raine - Wending",
|
||||||
|
"music.game.wet_hands": "C418 - Wet Hands",
|
||||||
|
"music.game.yakusoku": "Kumi Tanioka - yakusoku",
|
||||||
|
"music.menu.beginning_2": "C418 - Beginning 2",
|
||||||
|
"music.menu.floating_trees": "C418 - Floating Trees",
|
||||||
|
"music.menu.moog_city_2": "C418 - Moog City 2",
|
||||||
|
"music.menu.mutation": "C418 - Mutation",
|
||||||
"narration.button": "Button: %s",
|
"narration.button": "Button: %s",
|
||||||
"narration.button.usage.focused": "Press Enter to activate",
|
"narration.button.usage.focused": "Press Enter to activate",
|
||||||
"narration.button.usage.hovered": "Left click to activate",
|
"narration.button.usage.hovered": "Left click to activate",
|
||||||
|
@ -5306,6 +5471,7 @@
|
||||||
"narration.cycle_button.usage.focused": "Press Enter to switch to %s",
|
"narration.cycle_button.usage.focused": "Press Enter to switch to %s",
|
||||||
"narration.cycle_button.usage.hovered": "Left click to switch to %s",
|
"narration.cycle_button.usage.hovered": "Left click to switch to %s",
|
||||||
"narration.edit_box": "Edit box: %s",
|
"narration.edit_box": "Edit box: %s",
|
||||||
|
"narration.item": "Item: %s",
|
||||||
"narration.recipe": "Recipe for %s",
|
"narration.recipe": "Recipe for %s",
|
||||||
"narration.recipe.usage": "Left click to select",
|
"narration.recipe.usage": "Left click to select",
|
||||||
"narration.recipe.usage.more": "Right click to show more recipes",
|
"narration.recipe.usage.more": "Right click to show more recipes",
|
||||||
|
@ -5525,6 +5691,11 @@
|
||||||
"options.mouseWheelSensitivity": "Scroll Sensitivity",
|
"options.mouseWheelSensitivity": "Scroll Sensitivity",
|
||||||
"options.multiplayer.title": "Multiplayer Settings...",
|
"options.multiplayer.title": "Multiplayer Settings...",
|
||||||
"options.multiplier": "%sx",
|
"options.multiplier": "%sx",
|
||||||
|
"options.music_frequency": "Music Frequency",
|
||||||
|
"options.music_frequency.constant": "Constant",
|
||||||
|
"options.music_frequency.default": "Default",
|
||||||
|
"options.music_frequency.frequent": "Frequent",
|
||||||
|
"options.music_frequency.tooltip": "Changes how frequently music plays while in a game world.",
|
||||||
"options.narrator": "Narrator",
|
"options.narrator": "Narrator",
|
||||||
"options.narrator.all": "Narrates All",
|
"options.narrator.all": "Narrates All",
|
||||||
"options.narrator.chat": "Narrates Chat",
|
"options.narrator.chat": "Narrates Chat",
|
||||||
|
@ -5561,6 +5732,7 @@
|
||||||
"options.realmsNotifications.tooltip": "Fetches Realms news and invites in the title screen and displays their respective icon on the Realms button.",
|
"options.realmsNotifications.tooltip": "Fetches Realms news and invites in the title screen and displays their respective icon on the Realms button.",
|
||||||
"options.reducedDebugInfo": "Reduced Debug Info",
|
"options.reducedDebugInfo": "Reduced Debug Info",
|
||||||
"options.renderClouds": "Clouds",
|
"options.renderClouds": "Clouds",
|
||||||
|
"options.renderCloudsDistance": "Cloud Distance",
|
||||||
"options.renderDistance": "Render Distance",
|
"options.renderDistance": "Render Distance",
|
||||||
"options.resourcepack": "Resource Packs...",
|
"options.resourcepack": "Resource Packs...",
|
||||||
"options.rotateWithMinecart": "Rotate with Minecarts",
|
"options.rotateWithMinecart": "Rotate with Minecarts",
|
||||||
|
@ -5570,6 +5742,8 @@
|
||||||
"options.sensitivity": "Sensitivity",
|
"options.sensitivity": "Sensitivity",
|
||||||
"options.sensitivity.max": "HYPERSPEED!!!",
|
"options.sensitivity.max": "HYPERSPEED!!!",
|
||||||
"options.sensitivity.min": "*yawn*",
|
"options.sensitivity.min": "*yawn*",
|
||||||
|
"options.showNowPlayingToast": "Show Music Toast",
|
||||||
|
"options.showNowPlayingToast.tooltip": "Displays a toast whenever a song starts playing. The same toast is constantly displayed in the in-game pause menu while a song is playing.",
|
||||||
"options.showSubtitles": "Show Subtitles",
|
"options.showSubtitles": "Show Subtitles",
|
||||||
"options.simulationDistance": "Simulation Distance",
|
"options.simulationDistance": "Simulation Distance",
|
||||||
"options.skinCustomisation": "Skin Customization...",
|
"options.skinCustomisation": "Skin Customization...",
|
||||||
|
@ -5747,6 +5921,31 @@
|
||||||
"quickplay.error.realm_connect": "Could not connect to Realm",
|
"quickplay.error.realm_connect": "Could not connect to Realm",
|
||||||
"quickplay.error.realm_permission": "Lacking permission to connect to this Realm",
|
"quickplay.error.realm_permission": "Lacking permission to connect to this Realm",
|
||||||
"quickplay.error.title": "Failed to Quick Play",
|
"quickplay.error.title": "Failed to Quick Play",
|
||||||
|
"realms.configuration.region_preference.automatic_owner": "Automatic (Realm owner ping)",
|
||||||
|
"realms.configuration.region_preference.automatic_player": "Automatic (first to join session)",
|
||||||
|
"realms.configuration.region.australia_east": "New South Wales, Australia",
|
||||||
|
"realms.configuration.region.australia_southeast": "Victoria, Australia",
|
||||||
|
"realms.configuration.region.brazil_south": "Brazil",
|
||||||
|
"realms.configuration.region.central_india": "India",
|
||||||
|
"realms.configuration.region.central_us": "Iowa, USA",
|
||||||
|
"realms.configuration.region.east_asia": "Hong Kong",
|
||||||
|
"realms.configuration.region.east_us": "Virginia, USA",
|
||||||
|
"realms.configuration.region.east_us_2": "North Carolina, USA",
|
||||||
|
"realms.configuration.region.france_central": "France",
|
||||||
|
"realms.configuration.region.japan_east": "Eastern Japan",
|
||||||
|
"realms.configuration.region.japan_west": "Western Japan",
|
||||||
|
"realms.configuration.region.korea_central": "South Korea",
|
||||||
|
"realms.configuration.region.north_central_us": "Illinois, USA",
|
||||||
|
"realms.configuration.region.north_europe": "Ireland",
|
||||||
|
"realms.configuration.region.south_central_us": "Texas, USA",
|
||||||
|
"realms.configuration.region.southeast_asia": "Singapore",
|
||||||
|
"realms.configuration.region.sweden_central": "Sweden",
|
||||||
|
"realms.configuration.region.uae_north": "United Arab Emirates (UAE)",
|
||||||
|
"realms.configuration.region.uk_south": "Southern England",
|
||||||
|
"realms.configuration.region.west_central_us": "Utah, USA",
|
||||||
|
"realms.configuration.region.west_europe": "Netherlands",
|
||||||
|
"realms.configuration.region.west_us": "California, USA",
|
||||||
|
"realms.configuration.region.west_us_2": "Washington, USA",
|
||||||
"realms.missing.snapshot.error.text": "Realms is currently not supported in snapshots",
|
"realms.missing.snapshot.error.text": "Realms is currently not supported in snapshots",
|
||||||
"recipe.notFound": "Unknown recipe: %s",
|
"recipe.notFound": "Unknown recipe: %s",
|
||||||
"recipe.toast.description": "Check your recipe book",
|
"recipe.toast.description": "Check your recipe book",
|
||||||
|
@ -5944,12 +6143,13 @@
|
||||||
"snbt.parser.undescore_not_allowed": "Underscore characters are not allowed at the start or end of a number",
|
"snbt.parser.undescore_not_allowed": "Underscore characters are not allowed at the start or end of a number",
|
||||||
"soundCategory.ambient": "Ambient/Environment",
|
"soundCategory.ambient": "Ambient/Environment",
|
||||||
"soundCategory.block": "Blocks",
|
"soundCategory.block": "Blocks",
|
||||||
"soundCategory.hostile": "Hostile Creatures",
|
"soundCategory.hostile": "Hostile Mobs",
|
||||||
"soundCategory.master": "Master Volume",
|
"soundCategory.master": "Master Volume",
|
||||||
"soundCategory.music": "Music",
|
"soundCategory.music": "Music",
|
||||||
"soundCategory.neutral": "Friendly Creatures",
|
"soundCategory.neutral": "Friendly Mobs",
|
||||||
"soundCategory.player": "Players",
|
"soundCategory.player": "Players",
|
||||||
"soundCategory.record": "Jukebox/Note Blocks",
|
"soundCategory.record": "Jukebox/Note Blocks",
|
||||||
|
"soundCategory.ui": "UI",
|
||||||
"soundCategory.voice": "Voice/Speech",
|
"soundCategory.voice": "Voice/Speech",
|
||||||
"soundCategory.weather": "Weather",
|
"soundCategory.weather": "Weather",
|
||||||
"spectatorMenu.close": "Close Menu",
|
"spectatorMenu.close": "Close Menu",
|
||||||
|
@ -5996,6 +6196,7 @@
|
||||||
"stat.minecraft.fill_cauldron": "Cauldrons Filled",
|
"stat.minecraft.fill_cauldron": "Cauldrons Filled",
|
||||||
"stat.minecraft.fish_caught": "Fish Caught",
|
"stat.minecraft.fish_caught": "Fish Caught",
|
||||||
"stat.minecraft.fly_one_cm": "Distance Flown",
|
"stat.minecraft.fly_one_cm": "Distance Flown",
|
||||||
|
"stat.minecraft.happy_ghast_one_cm": "Distance by Happy Ghast",
|
||||||
"stat.minecraft.horse_one_cm": "Distance by Horse",
|
"stat.minecraft.horse_one_cm": "Distance by Horse",
|
||||||
"stat.minecraft.inspect_dispenser": "Dispensers Searched",
|
"stat.minecraft.inspect_dispenser": "Dispensers Searched",
|
||||||
"stat.minecraft.inspect_dropper": "Droppers Searched",
|
"stat.minecraft.inspect_dropper": "Droppers Searched",
|
||||||
|
@ -6153,6 +6354,11 @@
|
||||||
"subtitles.block.dispenser.dispense": "Dispensed item",
|
"subtitles.block.dispenser.dispense": "Dispensed item",
|
||||||
"subtitles.block.dispenser.fail": "Dispenser failed",
|
"subtitles.block.dispenser.fail": "Dispenser failed",
|
||||||
"subtitles.block.door.toggle": "Door creaks",
|
"subtitles.block.door.toggle": "Door creaks",
|
||||||
|
"subtitles.block.dried_ghast.ambient": "Sounds of dryness",
|
||||||
|
"subtitles.block.dried_ghast.ambient_water": "Dried Ghast rehydrates",
|
||||||
|
"subtitles.block.dried_ghast.place_in_water": "Dried Ghast soaks",
|
||||||
|
"subtitles.block.dried_ghast.transition": "Dried Ghast feels better",
|
||||||
|
"subtitles.block.dry_grass.ambient": "Windy sounds",
|
||||||
"subtitles.block.enchantment_table.use": "Enchanting Table used",
|
"subtitles.block.enchantment_table.use": "Enchanting Table used",
|
||||||
"subtitles.block.end_portal_frame.fill": "Eye of Ender attaches",
|
"subtitles.block.end_portal_frame.fill": "Eye of Ender attaches",
|
||||||
"subtitles.block.end_portal.spawn": "End Portal opens",
|
"subtitles.block.end_portal.spawn": "End Portal opens",
|
||||||
|
@ -6215,6 +6421,8 @@
|
||||||
"subtitles.block.sniffer_egg.plop": "Sniffer plops",
|
"subtitles.block.sniffer_egg.plop": "Sniffer plops",
|
||||||
"subtitles.block.sponge.absorb": "Sponge sucks",
|
"subtitles.block.sponge.absorb": "Sponge sucks",
|
||||||
"subtitles.block.sweet_berry_bush.pick_berries": "Berries pop",
|
"subtitles.block.sweet_berry_bush.pick_berries": "Berries pop",
|
||||||
|
"subtitles.block.trapdoor.close": "Trapdoor closes",
|
||||||
|
"subtitles.block.trapdoor.open": "Trapdoor opens",
|
||||||
"subtitles.block.trapdoor.toggle": "Trapdoor creaks",
|
"subtitles.block.trapdoor.toggle": "Trapdoor creaks",
|
||||||
"subtitles.block.trial_spawner.about_to_spawn_item": "Ominous item prepares",
|
"subtitles.block.trial_spawner.about_to_spawn_item": "Ominous item prepares",
|
||||||
"subtitles.block.trial_spawner.ambient": "Trial Spawner crackles",
|
"subtitles.block.trial_spawner.ambient": "Trial Spawner crackles",
|
||||||
|
@ -6453,6 +6661,10 @@
|
||||||
"subtitles.entity.ghast.death": "Ghast dies",
|
"subtitles.entity.ghast.death": "Ghast dies",
|
||||||
"subtitles.entity.ghast.hurt": "Ghast hurts",
|
"subtitles.entity.ghast.hurt": "Ghast hurts",
|
||||||
"subtitles.entity.ghast.shoot": "Ghast shoots",
|
"subtitles.entity.ghast.shoot": "Ghast shoots",
|
||||||
|
"subtitles.entity.ghastling.ambient": "Ghastling coos",
|
||||||
|
"subtitles.entity.ghastling.death": "Ghastling dies",
|
||||||
|
"subtitles.entity.ghastling.hurt": "Ghastling hurts",
|
||||||
|
"subtitles.entity.ghastling.spawn": "Ghastling appears",
|
||||||
"subtitles.entity.glow_item_frame.add_item": "Glow Item Frame fills",
|
"subtitles.entity.glow_item_frame.add_item": "Glow Item Frame fills",
|
||||||
"subtitles.entity.glow_item_frame.break": "Glow Item Frame broken",
|
"subtitles.entity.glow_item_frame.break": "Glow Item Frame broken",
|
||||||
"subtitles.entity.glow_item_frame.place": "Glow Item Frame placed",
|
"subtitles.entity.glow_item_frame.place": "Glow Item Frame placed",
|
||||||
|
@ -6479,6 +6691,13 @@
|
||||||
"subtitles.entity.guardian.death": "Guardian dies",
|
"subtitles.entity.guardian.death": "Guardian dies",
|
||||||
"subtitles.entity.guardian.flop": "Guardian flops",
|
"subtitles.entity.guardian.flop": "Guardian flops",
|
||||||
"subtitles.entity.guardian.hurt": "Guardian hurts",
|
"subtitles.entity.guardian.hurt": "Guardian hurts",
|
||||||
|
"subtitles.entity.happy_ghast.ambient": "Happy Ghast croons",
|
||||||
|
"subtitles.entity.happy_ghast.death": "Happy Ghast dies",
|
||||||
|
"subtitles.entity.happy_ghast.equip": "Harness equips",
|
||||||
|
"subtitles.entity.happy_ghast.harness_goggles_down": "Happy Ghast is ready",
|
||||||
|
"subtitles.entity.happy_ghast.harness_goggles_up": "Happy Ghast stops",
|
||||||
|
"subtitles.entity.happy_ghast.hurt": "Happy Ghast hurts",
|
||||||
|
"subtitles.entity.happy_ghast.unequip": "Harness unequips",
|
||||||
"subtitles.entity.hoglin.ambient": "Hoglin growls",
|
"subtitles.entity.hoglin.ambient": "Hoglin growls",
|
||||||
"subtitles.entity.hoglin.angry": "Hoglin growls angrily",
|
"subtitles.entity.hoglin.angry": "Hoglin growls angrily",
|
||||||
"subtitles.entity.hoglin.attack": "Hoglin attacks",
|
"subtitles.entity.hoglin.attack": "Hoglin attacks",
|
||||||
|
@ -6918,13 +7137,20 @@
|
||||||
"subtitles.item.hoe.till": "Hoe tills",
|
"subtitles.item.hoe.till": "Hoe tills",
|
||||||
"subtitles.item.honey_bottle.drink": "Gulping",
|
"subtitles.item.honey_bottle.drink": "Gulping",
|
||||||
"subtitles.item.honeycomb.wax_on": "Wax on",
|
"subtitles.item.honeycomb.wax_on": "Wax on",
|
||||||
|
"subtitles.item.horse_armor.unequip": "Horse Armor snips away",
|
||||||
"subtitles.item.ink_sac.use": "Ink Sac splotches",
|
"subtitles.item.ink_sac.use": "Ink Sac splotches",
|
||||||
|
"subtitles.item.lead.break": "Lead snaps",
|
||||||
|
"subtitles.item.lead.tied": "Lead tied",
|
||||||
|
"subtitles.item.lead.untied": "Lead untied",
|
||||||
|
"subtitles.item.llama_carpet.unequip": "Carpet snips away",
|
||||||
"subtitles.item.lodestone_compass.lock": "Lodestone Compass locks onto Lodestone",
|
"subtitles.item.lodestone_compass.lock": "Lodestone Compass locks onto Lodestone",
|
||||||
"subtitles.item.mace.smash_air": "Mace smashes",
|
"subtitles.item.mace.smash_air": "Mace smashes",
|
||||||
"subtitles.item.mace.smash_ground": "Mace smashes",
|
"subtitles.item.mace.smash_ground": "Mace smashes",
|
||||||
"subtitles.item.nether_wart.plant": "Crop planted",
|
"subtitles.item.nether_wart.plant": "Crop planted",
|
||||||
"subtitles.item.ominous_bottle.dispose": "Bottle breaks",
|
"subtitles.item.ominous_bottle.dispose": "Bottle breaks",
|
||||||
|
"subtitles.item.saddle.unequip": "Saddle snips away",
|
||||||
"subtitles.item.shears.shear": "Shears click",
|
"subtitles.item.shears.shear": "Shears click",
|
||||||
|
"subtitles.item.shears.snip": "Shears snip",
|
||||||
"subtitles.item.shield.block": "Shield blocks",
|
"subtitles.item.shield.block": "Shield blocks",
|
||||||
"subtitles.item.shovel.flatten": "Shovel flattens",
|
"subtitles.item.shovel.flatten": "Shovel flattens",
|
||||||
"subtitles.item.spyglass.stop_using": "Spyglass retracts",
|
"subtitles.item.spyglass.stop_using": "Spyglass retracts",
|
||||||
|
|
File diff suppressed because it is too large
Load diff
5
azalea-protocol/src/packets/config/c_clear_dialog.rs
Normal file
5
azalea-protocol/src/packets/config/c_clear_dialog.rs
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
use azalea_buf::AzBuf;
|
||||||
|
use azalea_protocol_macros::ClientboundConfigPacket;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ClientboundConfigPacket)]
|
||||||
|
pub struct ClientboundClearDialog {}
|
9
azalea-protocol/src/packets/config/c_show_dialog.rs
Normal file
9
azalea-protocol/src/packets/config/c_show_dialog.rs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
use azalea_buf::AzBuf;
|
||||||
|
use azalea_protocol_macros::ClientboundConfigPacket;
|
||||||
|
use azalea_registry::Holder;
|
||||||
|
use simdnbt::owned::Nbt;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ClientboundConfigPacket)]
|
||||||
|
pub struct ClientboundShowDialog {
|
||||||
|
pub dialog: Holder<azalea_registry::Dialog, Nbt>,
|
||||||
|
}
|
|
@ -5,32 +5,35 @@ use azalea_protocol_macros::declare_state_packets;
|
||||||
|
|
||||||
declare_state_packets!(ConfigPacket,
|
declare_state_packets!(ConfigPacket,
|
||||||
Clientbound => [
|
Clientbound => [
|
||||||
cookie_request, // 0x00
|
cookie_request,
|
||||||
custom_payload, // 0x01
|
custom_payload,
|
||||||
disconnect, // 0x02
|
disconnect,
|
||||||
finish_configuration, // 0x03
|
finish_configuration,
|
||||||
keep_alive, // 0x04
|
keep_alive,
|
||||||
ping, // 0x05
|
ping,
|
||||||
reset_chat, // 0x06
|
reset_chat,
|
||||||
registry_data, // 0x07
|
registry_data,
|
||||||
resource_pack_pop, // 0x08
|
resource_pack_pop,
|
||||||
resource_pack_push, // 0x09
|
resource_pack_push,
|
||||||
store_cookie, // 0x0A
|
store_cookie,
|
||||||
transfer, // 0x0B
|
transfer,
|
||||||
update_enabled_features, // 0x0C
|
update_enabled_features,
|
||||||
update_tags, // 0x0D
|
update_tags,
|
||||||
select_known_packs, // 0x0E
|
select_known_packs,
|
||||||
custom_report_details, // 0x0F
|
custom_report_details,
|
||||||
server_links, // 0x10
|
server_links,
|
||||||
|
clear_dialog,
|
||||||
|
show_dialog,
|
||||||
],
|
],
|
||||||
Serverbound => [
|
Serverbound => [
|
||||||
client_information, // 0x00
|
client_information,
|
||||||
cookie_response, // 0x01
|
cookie_response,
|
||||||
custom_payload, // 0x02
|
custom_payload,
|
||||||
finish_configuration, // 0x03
|
finish_configuration,
|
||||||
keep_alive, // 0x04
|
keep_alive,
|
||||||
pong, // 0x05
|
pong,
|
||||||
resource_pack, // 0x06
|
resource_pack,
|
||||||
select_known_packs, // 0x07
|
select_known_packs,
|
||||||
|
custom_click_action,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
use azalea_buf::AzBuf;
|
||||||
|
use azalea_core::resource_location::ResourceLocation;
|
||||||
|
use azalea_protocol_macros::ServerboundConfigPacket;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ServerboundConfigPacket)]
|
||||||
|
pub struct ServerboundCustomClickAction {
|
||||||
|
pub id: ResourceLocation,
|
||||||
|
pub payload: Option<String>,
|
||||||
|
}
|
5
azalea-protocol/src/packets/game/c_clear_dialog.rs
Normal file
5
azalea-protocol/src/packets/game/c_clear_dialog.rs
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
use azalea_buf::AzBuf;
|
||||||
|
use azalea_protocol_macros::ClientboundGamePacket;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
|
||||||
|
pub struct ClientboundClearDialog;
|
|
@ -18,6 +18,7 @@ pub struct BrigadierNodeStub {
|
||||||
pub children: Vec<u32>,
|
pub children: Vec<u32>,
|
||||||
pub redirect_node: Option<u32>,
|
pub redirect_node: Option<u32>,
|
||||||
pub node_type: NodeType,
|
pub node_type: NodeType,
|
||||||
|
pub is_restricted: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Eq)]
|
#[derive(Debug, Clone, Eq)]
|
||||||
|
@ -91,8 +92,8 @@ pub enum BrigadierString {
|
||||||
GreedyPhrase = 2,
|
GreedyPhrase = 2,
|
||||||
}
|
}
|
||||||
|
|
||||||
// see ArgumentTypeInfo
|
// see ArgumentTypeInfos.java
|
||||||
#[derive(Debug, Clone, AzBuf, PartialEq)]
|
#[derive(Debug, Clone, PartialEq, AzBuf)]
|
||||||
pub enum BrigadierParser {
|
pub enum BrigadierParser {
|
||||||
Bool,
|
Bool,
|
||||||
Float(BrigadierNumber<f32>),
|
Float(BrigadierNumber<f32>),
|
||||||
|
@ -111,6 +112,7 @@ pub enum BrigadierParser {
|
||||||
ItemStack,
|
ItemStack,
|
||||||
ItemPredicate,
|
ItemPredicate,
|
||||||
Color,
|
Color,
|
||||||
|
HexColor,
|
||||||
FormattedText,
|
FormattedText,
|
||||||
Style,
|
Style,
|
||||||
Message,
|
Message,
|
||||||
|
@ -148,6 +150,7 @@ pub enum BrigadierParser {
|
||||||
LootTable,
|
LootTable,
|
||||||
LootPredicate,
|
LootPredicate,
|
||||||
LootModifier,
|
LootModifier,
|
||||||
|
Dialog,
|
||||||
Uuid,
|
Uuid,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,9 +186,9 @@ impl AzaleaWrite for EntityParser {
|
||||||
impl AzaleaRead for BrigadierNodeStub {
|
impl AzaleaRead for BrigadierNodeStub {
|
||||||
fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
|
fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
|
||||||
let flags = FixedBitSet::<8>::azalea_read(buf)?;
|
let flags = FixedBitSet::<8>::azalea_read(buf)?;
|
||||||
if flags.index(5) || flags.index(6) || flags.index(7) {
|
if flags.index(6) || flags.index(7) {
|
||||||
warn!(
|
warn!(
|
||||||
"The flags from a Brigadier node are over 31. This is a bug, BrigadierParser probably needs updating.",
|
"The flags from a Brigadier node are over 63. This is a bug, BrigadierParser probably needs updating.",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -193,6 +196,7 @@ impl AzaleaRead for BrigadierNodeStub {
|
||||||
let is_executable = flags.index(2);
|
let is_executable = flags.index(2);
|
||||||
let has_redirect = flags.index(3);
|
let has_redirect = flags.index(3);
|
||||||
let has_suggestions_type = flags.index(4);
|
let has_suggestions_type = flags.index(4);
|
||||||
|
let is_restricted = flags.index(5);
|
||||||
|
|
||||||
let children = Vec::<u32>::azalea_read_var(buf)?;
|
let children = Vec::<u32>::azalea_read_var(buf)?;
|
||||||
let redirect_node = if has_redirect {
|
let redirect_node = if has_redirect {
|
||||||
|
@ -210,7 +214,7 @@ impl AzaleaRead for BrigadierNodeStub {
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
let node = BrigadierNodeStub {
|
Ok(BrigadierNodeStub {
|
||||||
is_executable,
|
is_executable,
|
||||||
children,
|
children,
|
||||||
redirect_node,
|
redirect_node,
|
||||||
|
@ -219,25 +223,28 @@ impl AzaleaRead for BrigadierNodeStub {
|
||||||
parser,
|
parser,
|
||||||
suggestions_type,
|
suggestions_type,
|
||||||
},
|
},
|
||||||
};
|
is_restricted,
|
||||||
return Ok(node);
|
})
|
||||||
}
|
}
|
||||||
// literal node
|
// literal node
|
||||||
else if node_type == 1 {
|
else if node_type == 1 {
|
||||||
let name = String::azalea_read(buf)?;
|
let name = String::azalea_read(buf)?;
|
||||||
return Ok(BrigadierNodeStub {
|
Ok(BrigadierNodeStub {
|
||||||
is_executable,
|
is_executable,
|
||||||
children,
|
children,
|
||||||
redirect_node,
|
redirect_node,
|
||||||
node_type: NodeType::Literal { name },
|
node_type: NodeType::Literal { name },
|
||||||
});
|
is_restricted,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
Ok(BrigadierNodeStub {
|
||||||
|
is_executable,
|
||||||
|
children,
|
||||||
|
redirect_node,
|
||||||
|
node_type: NodeType::Root,
|
||||||
|
is_restricted,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
Ok(BrigadierNodeStub {
|
|
||||||
is_executable,
|
|
||||||
children,
|
|
||||||
redirect_node,
|
|
||||||
node_type: NodeType::Root,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -336,6 +343,7 @@ mod tests {
|
||||||
children: vec![1, 2],
|
children: vec![1, 2],
|
||||||
redirect_node: None,
|
redirect_node: None,
|
||||||
node_type: NodeType::Root,
|
node_type: NodeType::Root,
|
||||||
|
is_restricted: false,
|
||||||
};
|
};
|
||||||
let mut buf = Vec::new();
|
let mut buf = Vec::new();
|
||||||
data.azalea_write(&mut buf).unwrap();
|
data.azalea_write(&mut buf).unwrap();
|
||||||
|
@ -353,6 +361,7 @@ mod tests {
|
||||||
node_type: NodeType::Literal {
|
node_type: NodeType::Literal {
|
||||||
name: "String".to_string(),
|
name: "String".to_string(),
|
||||||
},
|
},
|
||||||
|
is_restricted: false,
|
||||||
};
|
};
|
||||||
let mut buf = Vec::new();
|
let mut buf = Vec::new();
|
||||||
data.azalea_write(&mut buf).unwrap();
|
data.azalea_write(&mut buf).unwrap();
|
||||||
|
@ -372,6 +381,7 @@ mod tests {
|
||||||
parser: BrigadierParser::Vec3,
|
parser: BrigadierParser::Vec3,
|
||||||
suggestions_type: Some(ResourceLocation::new("minecraft:test_suggestion")),
|
suggestions_type: Some(ResourceLocation::new("minecraft:test_suggestion")),
|
||||||
},
|
},
|
||||||
|
is_restricted: false,
|
||||||
};
|
};
|
||||||
let mut buf = Vec::new();
|
let mut buf = Vec::new();
|
||||||
data.azalea_write(&mut buf).unwrap();
|
data.azalea_write(&mut buf).unwrap();
|
||||||
|
|
9
azalea-protocol/src/packets/game/c_show_dialog.rs
Normal file
9
azalea-protocol/src/packets/game/c_show_dialog.rs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
use azalea_buf::AzBuf;
|
||||||
|
use azalea_protocol_macros::ClientboundGamePacket;
|
||||||
|
use azalea_registry::Holder;
|
||||||
|
use simdnbt::owned::Nbt;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
|
||||||
|
pub struct ClientboundShowDialog {
|
||||||
|
pub dialog: Holder<azalea_registry::Dialog, Nbt>,
|
||||||
|
}
|
90
azalea-protocol/src/packets/game/c_waypoint.rs
Normal file
90
azalea-protocol/src/packets/game/c_waypoint.rs
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
use std::io::{self, Cursor, Write};
|
||||||
|
|
||||||
|
use azalea_buf::{AzBuf, AzaleaRead, AzaleaWrite, BufReadError};
|
||||||
|
use azalea_core::{color::RgbColor, position::Vec3i, resource_location::ResourceLocation};
|
||||||
|
use azalea_protocol_macros::ClientboundGamePacket;
|
||||||
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ClientboundGamePacket)]
|
||||||
|
pub struct ClientboundWaypoint {
|
||||||
|
pub operation: WaypointOperation,
|
||||||
|
pub waypoint: TrackedWaypoint,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(AzBuf, Copy, Clone, Debug)]
|
||||||
|
pub enum WaypointOperation {
|
||||||
|
Track,
|
||||||
|
Untrack,
|
||||||
|
Update,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(AzBuf, Clone, Debug)]
|
||||||
|
pub struct TrackedWaypoint {
|
||||||
|
pub identifier: WaypointIdentifier,
|
||||||
|
pub icon: WaypointIcon,
|
||||||
|
pub data: WaypointData,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(AzBuf, Clone, Debug)]
|
||||||
|
pub enum WaypointIdentifier {
|
||||||
|
String(String),
|
||||||
|
Uuid(Uuid),
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug)]
|
||||||
|
pub struct WaypointIcon {
|
||||||
|
pub style: ResourceLocation,
|
||||||
|
pub color: Option<RgbColor>,
|
||||||
|
}
|
||||||
|
impl AzaleaWrite for WaypointIcon {
|
||||||
|
fn azalea_write(&self, buf: &mut impl Write) -> Result<(), io::Error> {
|
||||||
|
self.style.azalea_write(buf)?;
|
||||||
|
let color = self.color.map(|c| CompactRgbColor {
|
||||||
|
r: c.red(),
|
||||||
|
g: c.green(),
|
||||||
|
b: c.blue(),
|
||||||
|
});
|
||||||
|
color.azalea_write(buf)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
impl AzaleaRead for WaypointIcon {
|
||||||
|
fn azalea_read(buf: &mut Cursor<&[u8]>) -> Result<Self, BufReadError> {
|
||||||
|
let style = ResourceLocation::azalea_read(buf)?;
|
||||||
|
let color = Option::<CompactRgbColor>::azalea_read(buf)?;
|
||||||
|
let color = color.map(|c| RgbColor::new(c.r, c.g, c.b));
|
||||||
|
|
||||||
|
Ok(Self { style, color })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// usually RgbColor is encoded as 4 bytes, except here where it's 3
|
||||||
|
#[derive(AzBuf)]
|
||||||
|
struct CompactRgbColor {
|
||||||
|
r: u8,
|
||||||
|
g: u8,
|
||||||
|
b: u8,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(AzBuf, Clone, Debug)]
|
||||||
|
pub struct WaypointIconFade {
|
||||||
|
pub near_dist: i32,
|
||||||
|
pub far_dist: i32,
|
||||||
|
pub near_alpha: u8,
|
||||||
|
pub far_alpha: u8,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(AzBuf, Clone, Debug)]
|
||||||
|
pub enum WaypointData {
|
||||||
|
Empty,
|
||||||
|
Vec3i(Vec3i),
|
||||||
|
Chunk {
|
||||||
|
#[var]
|
||||||
|
x: i32,
|
||||||
|
#[var]
|
||||||
|
z: i32,
|
||||||
|
},
|
||||||
|
Azimuth {
|
||||||
|
angle: f32,
|
||||||
|
},
|
||||||
|
}
|
|
@ -5,202 +5,207 @@ use azalea_protocol_macros::declare_state_packets;
|
||||||
|
|
||||||
declare_state_packets!(GamePacket,
|
declare_state_packets!(GamePacket,
|
||||||
Clientbound => [
|
Clientbound => [
|
||||||
bundle_delimiter, // 0x00
|
bundle_delimiter,
|
||||||
add_entity, // 0x01
|
add_entity,
|
||||||
animate, // 0x02
|
animate,
|
||||||
award_stats, // 0x03
|
award_stats,
|
||||||
block_changed_ack, // 0x04
|
block_changed_ack,
|
||||||
block_destruction, // 0x05
|
block_destruction,
|
||||||
block_entity_data, // 0x06
|
block_entity_data,
|
||||||
block_event, // 0x07
|
block_event,
|
||||||
block_update, // 0x08
|
block_update,
|
||||||
boss_event, // 0x09
|
boss_event,
|
||||||
change_difficulty, // 0x0A
|
change_difficulty,
|
||||||
chunk_batch_finished, // 0x0B
|
chunk_batch_finished,
|
||||||
chunk_batch_start, // 0x0C
|
chunk_batch_start,
|
||||||
chunks_biomes, // 0x0D
|
chunks_biomes,
|
||||||
clear_titles, // 0x0E
|
clear_titles,
|
||||||
command_suggestions, // 0x0F
|
command_suggestions,
|
||||||
commands, // 0x10
|
commands,
|
||||||
container_close, // 0x11
|
container_close,
|
||||||
container_set_content, // 0x12
|
container_set_content,
|
||||||
container_set_data, // 0x13
|
container_set_data,
|
||||||
container_set_slot, // 0x14
|
container_set_slot,
|
||||||
cookie_request, // 0x15
|
cookie_request,
|
||||||
cooldown, // 0x16
|
cooldown,
|
||||||
custom_chat_completions, // 0x17
|
custom_chat_completions,
|
||||||
custom_payload, // 0x18
|
custom_payload,
|
||||||
damage_event, // 0x19
|
damage_event,
|
||||||
debug_sample, // 0x1A
|
debug_sample,
|
||||||
delete_chat, // 0x1B
|
delete_chat,
|
||||||
disconnect, // 0x1C
|
disconnect,
|
||||||
disguised_chat, // 0x1D
|
disguised_chat,
|
||||||
entity_event, // 0x1E
|
entity_event,
|
||||||
entity_position_sync, // 0x1F
|
entity_position_sync,
|
||||||
explode, // 0x20
|
explode,
|
||||||
forget_level_chunk, // 0x21
|
forget_level_chunk,
|
||||||
game_event, // 0x22
|
game_event,
|
||||||
horse_screen_open, // 0x23
|
horse_screen_open,
|
||||||
hurt_animation, // 0x24
|
hurt_animation,
|
||||||
initialize_border, // 0x25
|
initialize_border,
|
||||||
keep_alive, // 0x26
|
keep_alive,
|
||||||
level_chunk_with_light, // 0x27
|
level_chunk_with_light,
|
||||||
level_event, // 0x28
|
level_event,
|
||||||
level_particles, // 0x29
|
level_particles,
|
||||||
light_update, // 0x2A
|
light_update,
|
||||||
login, // 0x2B
|
login,
|
||||||
map_item_data, // 0x2C
|
map_item_data,
|
||||||
merchant_offers, // 0x2D
|
merchant_offers,
|
||||||
move_entity_pos, // 0x2E
|
move_entity_pos,
|
||||||
move_entity_pos_rot, // 0x2F
|
move_entity_pos_rot,
|
||||||
move_minecart_along_track, // 0x30
|
move_minecart_along_track,
|
||||||
move_entity_rot, // 0x31
|
move_entity_rot,
|
||||||
move_vehicle, // 0x32
|
move_vehicle,
|
||||||
open_book, // 0x33
|
open_book,
|
||||||
open_screen, // 0x34
|
open_screen,
|
||||||
open_sign_editor, // 0x35
|
open_sign_editor,
|
||||||
ping, // 0x36
|
ping,
|
||||||
pong_response, // 0x37
|
pong_response,
|
||||||
place_ghost_recipe, // 0x38
|
place_ghost_recipe,
|
||||||
player_abilities, // 0x39
|
player_abilities,
|
||||||
player_chat, // 0x3A
|
player_chat,
|
||||||
player_combat_end, // 0x3B
|
player_combat_end,
|
||||||
player_combat_enter, // 0x3C
|
player_combat_enter,
|
||||||
player_combat_kill, // 0x3D
|
player_combat_kill,
|
||||||
player_info_remove, // 0x3E
|
player_info_remove,
|
||||||
player_info_update, // 0x3F
|
player_info_update,
|
||||||
player_look_at, // 0x40
|
player_look_at,
|
||||||
player_position, // 0x41
|
player_position,
|
||||||
player_rotation, // 0x42
|
player_rotation,
|
||||||
recipe_book_add, // 0x43
|
recipe_book_add,
|
||||||
recipe_book_remove, // 0x44
|
recipe_book_remove,
|
||||||
recipe_book_settings, // 0x45
|
recipe_book_settings,
|
||||||
remove_entities, // 0x46
|
remove_entities,
|
||||||
remove_mob_effect, // 0x47
|
remove_mob_effect,
|
||||||
reset_score, // 0x48
|
reset_score,
|
||||||
resource_pack_pop, // 0x49
|
resource_pack_pop,
|
||||||
resource_pack_push, // 0x4A
|
resource_pack_push,
|
||||||
respawn, // 0x4B
|
respawn,
|
||||||
rotate_head, // 0x4C
|
rotate_head,
|
||||||
section_blocks_update, // 0x4D
|
section_blocks_update,
|
||||||
select_advancements_tab, // 0x4E
|
select_advancements_tab,
|
||||||
server_data, // 0x4F
|
server_data,
|
||||||
set_action_bar_text, // 0x50
|
set_action_bar_text,
|
||||||
set_border_center, // 0x51
|
set_border_center,
|
||||||
set_border_lerp_size, // 0x52
|
set_border_lerp_size,
|
||||||
set_border_size, // 0x53
|
set_border_size,
|
||||||
set_border_warning_delay, // 0x54
|
set_border_warning_delay,
|
||||||
set_border_warning_distance, // 0x55
|
set_border_warning_distance,
|
||||||
set_camera, // 0x56
|
set_camera,
|
||||||
set_chunk_cache_center, // 0x57
|
set_chunk_cache_center,
|
||||||
set_chunk_cache_radius, // 0x58
|
set_chunk_cache_radius,
|
||||||
set_cursor_item, // 0x59
|
set_cursor_item,
|
||||||
set_default_spawn_position, // 0x5A
|
set_default_spawn_position,
|
||||||
set_display_objective, // 0x5B
|
set_display_objective,
|
||||||
set_entity_data, // 0x5C
|
set_entity_data,
|
||||||
set_entity_link, // 0x5D
|
set_entity_link,
|
||||||
set_entity_motion, // 0x5E
|
set_entity_motion,
|
||||||
set_equipment, // 0x5F
|
set_equipment,
|
||||||
set_experience, // 0x60
|
set_experience,
|
||||||
set_health, // 0x61
|
set_health,
|
||||||
set_held_slot, // 0x62
|
set_held_slot,
|
||||||
set_objective, // 0x63
|
set_objective,
|
||||||
set_passengers, // 0x64
|
set_passengers,
|
||||||
set_player_inventory, // 0x65
|
set_player_inventory,
|
||||||
set_player_team, // 0x66
|
set_player_team,
|
||||||
set_score, // 0x67
|
set_score,
|
||||||
set_simulation_distance, // 0x68
|
set_simulation_distance,
|
||||||
set_subtitle_text, // 0x69
|
set_subtitle_text,
|
||||||
set_time, // 0x6A
|
set_time,
|
||||||
set_title_text, // 0x6B
|
set_title_text,
|
||||||
set_titles_animation, // 0x6C
|
set_titles_animation,
|
||||||
sound_entity, // 0x6D
|
sound_entity,
|
||||||
sound, // 0x6E
|
sound,
|
||||||
start_configuration, // 0x6F
|
start_configuration,
|
||||||
stop_sound, // 0x70
|
stop_sound,
|
||||||
store_cookie, // 0x71
|
store_cookie,
|
||||||
system_chat, // 0x72
|
system_chat,
|
||||||
tab_list, // 0x73
|
tab_list,
|
||||||
tag_query, // 0x74
|
tag_query,
|
||||||
take_item_entity, // 0x75
|
take_item_entity,
|
||||||
teleport_entity, // 0x76
|
teleport_entity,
|
||||||
test_instance_block_status, // 0x77
|
test_instance_block_status,
|
||||||
ticking_state, // 0x78
|
ticking_state,
|
||||||
ticking_step, // 0x79
|
ticking_step,
|
||||||
transfer, // 0x7A
|
transfer,
|
||||||
update_advancements, // 0x7B
|
update_advancements,
|
||||||
update_attributes, // 0x7C
|
update_attributes,
|
||||||
update_mob_effect, // 0x7D
|
update_mob_effect,
|
||||||
update_recipes, // 0x7E
|
update_recipes,
|
||||||
update_tags, // 0x7F
|
update_tags,
|
||||||
projectile_power, // 0x80
|
projectile_power,
|
||||||
custom_report_details, // 0x81
|
custom_report_details,
|
||||||
server_links, // 0x82
|
server_links,
|
||||||
|
waypoint,
|
||||||
|
clear_dialog,
|
||||||
|
show_dialog,
|
||||||
],
|
],
|
||||||
Serverbound => [
|
Serverbound => [
|
||||||
accept_teleportation, // 0x00
|
accept_teleportation,
|
||||||
block_entity_tag_query, // 0x01
|
block_entity_tag_query,
|
||||||
bundle_item_selected, // 0x02
|
bundle_item_selected,
|
||||||
change_difficulty, // 0x03
|
change_difficulty,
|
||||||
chat_ack, // 0x04
|
change_game_mode,
|
||||||
chat_command, // 0x05
|
chat_ack,
|
||||||
chat_command_signed, // 0x06
|
chat_command,
|
||||||
chat, // 0x07
|
chat_command_signed,
|
||||||
chat_session_update, // 0x08
|
chat,
|
||||||
chunk_batch_received, // 0x09
|
chat_session_update,
|
||||||
client_command, // 0x0A
|
chunk_batch_received,
|
||||||
client_tick_end, // 0x0B
|
client_command,
|
||||||
client_information, // 0x0C
|
client_tick_end,
|
||||||
command_suggestion, // 0x0D
|
client_information,
|
||||||
configuration_acknowledged, // 0x0E
|
command_suggestion,
|
||||||
container_button_click, // 0x0F
|
configuration_acknowledged,
|
||||||
container_click, // 0x10
|
container_button_click,
|
||||||
container_close, // 0x11
|
container_click,
|
||||||
container_slot_state_changed, // 0x12
|
container_close,
|
||||||
cookie_response, // 0x13
|
container_slot_state_changed,
|
||||||
custom_payload, // 0x14
|
cookie_response,
|
||||||
debug_sample_subscription, // 0x15
|
custom_payload,
|
||||||
edit_book, // 0x16
|
debug_sample_subscription,
|
||||||
entity_tag_query, // 0x17
|
edit_book,
|
||||||
interact, // 0x18
|
entity_tag_query,
|
||||||
jigsaw_generate, // 0x19
|
interact,
|
||||||
keep_alive, // 0x1A
|
jigsaw_generate,
|
||||||
lock_difficulty, // 0x1B
|
keep_alive,
|
||||||
move_player_pos, // 0x1C
|
lock_difficulty,
|
||||||
move_player_pos_rot, // 0x1D
|
move_player_pos,
|
||||||
move_player_rot, // 0x1E
|
move_player_pos_rot,
|
||||||
move_player_status_only, // 0x1F
|
move_player_rot,
|
||||||
move_vehicle, // 0x20
|
move_player_status_only,
|
||||||
paddle_boat, // 0x21
|
move_vehicle,
|
||||||
pick_item_from_block, // 0x22
|
paddle_boat,
|
||||||
pick_item_from_entity, // 0x23
|
pick_item_from_block,
|
||||||
ping_request, // 0x24
|
pick_item_from_entity,
|
||||||
place_recipe, // 0x25
|
ping_request,
|
||||||
player_abilities, // 0x26
|
place_recipe,
|
||||||
player_action, // 0x27
|
player_abilities,
|
||||||
player_command, // 0x28
|
player_action,
|
||||||
player_input, // 0x29
|
player_command,
|
||||||
player_loaded, // 0x2A
|
player_input,
|
||||||
pong, // 0x2B
|
player_loaded,
|
||||||
recipe_book_change_settings, // 0x2C
|
pong,
|
||||||
recipe_book_seen_recipe, // 0x2D
|
recipe_book_change_settings,
|
||||||
rename_item, // 0x2E
|
recipe_book_seen_recipe,
|
||||||
resource_pack, // 0x2F
|
rename_item,
|
||||||
seen_advancements, // 0x30
|
resource_pack,
|
||||||
select_trade, // 0x31
|
seen_advancements,
|
||||||
set_beacon, // 0x32
|
select_trade,
|
||||||
set_carried_item, // 0x33
|
set_beacon,
|
||||||
set_command_block, // 0x34
|
set_carried_item,
|
||||||
set_command_minecart, // 0x35
|
set_command_block,
|
||||||
set_creative_mode_slot, // 0x36
|
set_command_minecart,
|
||||||
set_jigsaw_block, // 0x37
|
set_creative_mode_slot,
|
||||||
set_structure_block, // 0x38
|
set_jigsaw_block,
|
||||||
set_test_block, // 0x39
|
set_structure_block,
|
||||||
sign_update, // 0x3A
|
set_test_block,
|
||||||
swing, // 0x3B
|
sign_update,
|
||||||
teleport_to_entity, // 0x3C
|
swing,
|
||||||
test_instance_block_action, // 0x3D
|
teleport_to_entity,
|
||||||
use_item_on, // 0x3E
|
test_instance_block_action,
|
||||||
use_item, // 0x3F
|
use_item_on,
|
||||||
|
use_item,
|
||||||
|
custom_click_action,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
8
azalea-protocol/src/packets/game/s_change_game_mode.rs
Normal file
8
azalea-protocol/src/packets/game/s_change_game_mode.rs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
use azalea_buf::AzBuf;
|
||||||
|
use azalea_core::game_type::GameMode;
|
||||||
|
use azalea_protocol_macros::ServerboundGamePacket;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
|
||||||
|
pub struct ServerboundChangeGameMode {
|
||||||
|
pub mode: GameMode,
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
use azalea_buf::AzBuf;
|
||||||
|
use azalea_core::resource_location::ResourceLocation;
|
||||||
|
use azalea_protocol_macros::ServerboundGamePacket;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, AzBuf, ServerboundGamePacket)]
|
||||||
|
pub struct ServerboundCustomClickAction {
|
||||||
|
pub id: ResourceLocation,
|
||||||
|
pub payload: Option<String>,
|
||||||
|
}
|
|
@ -13,13 +13,11 @@ pub struct ServerboundPlayerCommand {
|
||||||
|
|
||||||
#[derive(AzBuf, Clone, Copy, Debug)]
|
#[derive(AzBuf, Clone, Copy, Debug)]
|
||||||
pub enum Action {
|
pub enum Action {
|
||||||
PressShiftKey = 0,
|
StopSleeping,
|
||||||
ReleaseShiftKey = 1,
|
StartSprinting,
|
||||||
StopSleeping = 2,
|
StopSprinting,
|
||||||
StartSprinting = 3,
|
StartRidingJump,
|
||||||
StopSprinting = 4,
|
StopRidingJump,
|
||||||
StartRidingJump = 5,
|
OpenInventory,
|
||||||
StopRidingJump = 6,
|
StartFallFlying,
|
||||||
OpenInventory = 7,
|
|
||||||
StartFallFlying = 8,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,6 @@ declare_state_packets!(HandshakePacket,
|
||||||
Clientbound => [
|
Clientbound => [
|
||||||
],
|
],
|
||||||
Serverbound => [
|
Serverbound => [
|
||||||
intention, // 0x00
|
intention,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
|
@ -5,18 +5,18 @@ use azalea_protocol_macros::declare_state_packets;
|
||||||
|
|
||||||
declare_state_packets!(LoginPacket,
|
declare_state_packets!(LoginPacket,
|
||||||
Clientbound => [
|
Clientbound => [
|
||||||
login_disconnect, // 0x00
|
login_disconnect,
|
||||||
hello, // 0x01
|
hello,
|
||||||
login_finished, // 0x02
|
login_finished,
|
||||||
login_compression, // 0x03
|
login_compression,
|
||||||
custom_query, // 0x04
|
custom_query,
|
||||||
cookie_request, // 0x05
|
cookie_request,
|
||||||
],
|
],
|
||||||
Serverbound => [
|
Serverbound => [
|
||||||
hello, // 0x00
|
hello,
|
||||||
key, // 0x01
|
key,
|
||||||
custom_query_answer, // 0x02
|
custom_query_answer,
|
||||||
login_acknowledged, // 0x03
|
login_acknowledged,
|
||||||
cookie_response, // 0x04
|
cookie_response,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
|
@ -11,8 +11,8 @@ use azalea_buf::{AzaleaReadVar, AzaleaWrite, AzaleaWriteVar, BufReadError};
|
||||||
|
|
||||||
use crate::read::ReadPacketError;
|
use crate::read::ReadPacketError;
|
||||||
|
|
||||||
pub const PROTOCOL_VERSION: i32 = 770;
|
pub const PROTOCOL_VERSION: i32 = 771;
|
||||||
pub const VERSION_NAME: &str = "1.21.5";
|
pub const VERSION_NAME: &str = "1.21.6";
|
||||||
|
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
pub enum ConnectionProtocol {
|
pub enum ConnectionProtocol {
|
||||||
|
@ -101,4 +101,4 @@ impl AzaleaWrite for ClientIntention {
|
||||||
fn azalea_write(&self, buf: &mut impl Write) -> io::Result<()> {
|
fn azalea_write(&self, buf: &mut impl Write) -> io::Result<()> {
|
||||||
(*self as i32).azalea_write_var(buf)
|
(*self as i32).azalea_write_var(buf)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,11 @@ use azalea_protocol_macros::declare_state_packets;
|
||||||
|
|
||||||
declare_state_packets!(StatusPacket,
|
declare_state_packets!(StatusPacket,
|
||||||
Clientbound => [
|
Clientbound => [
|
||||||
status_response, // 0x00
|
status_response,
|
||||||
pong_response, // 0x01
|
pong_response,
|
||||||
],
|
],
|
||||||
Serverbound => [
|
Serverbound => [
|
||||||
status_request, // 0x00
|
status_request,
|
||||||
ping_request, // 0x01
|
ping_request,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
|
@ -46,6 +46,9 @@ macro_rules! data_registry {
|
||||||
data_registry! {Enchantment, "enchantment"}
|
data_registry! {Enchantment, "enchantment"}
|
||||||
data_registry! {DimensionType, "dimension_type"}
|
data_registry! {DimensionType, "dimension_type"}
|
||||||
data_registry! {DamageKind, "damage_kind"}
|
data_registry! {DamageKind, "damage_kind"}
|
||||||
|
data_registry! {Dialog, "dialog"}
|
||||||
|
|
||||||
|
// entity variants
|
||||||
data_registry! {WolfSoundVariant, "wolf_sound_variant"}
|
data_registry! {WolfSoundVariant, "wolf_sound_variant"}
|
||||||
data_registry! {CowVariant, "cow_variant"}
|
data_registry! {CowVariant, "cow_variant"}
|
||||||
data_registry! {ChickenVariant, "chicken_variant"}
|
data_registry! {ChickenVariant, "chicken_variant"}
|
||||||
|
|
|
@ -249,6 +249,7 @@ enum Attribute {
|
||||||
BlockBreakSpeed => "minecraft:block_break_speed",
|
BlockBreakSpeed => "minecraft:block_break_speed",
|
||||||
BlockInteractionRange => "minecraft:block_interaction_range",
|
BlockInteractionRange => "minecraft:block_interaction_range",
|
||||||
BurningTime => "minecraft:burning_time",
|
BurningTime => "minecraft:burning_time",
|
||||||
|
CameraDistance => "minecraft:camera_distance",
|
||||||
ExplosionKnockbackResistance => "minecraft:explosion_knockback_resistance",
|
ExplosionKnockbackResistance => "minecraft:explosion_knockback_resistance",
|
||||||
EntityInteractionRange => "minecraft:entity_interaction_range",
|
EntityInteractionRange => "minecraft:entity_interaction_range",
|
||||||
FallDamageMultiplier => "minecraft:fall_damage_multiplier",
|
FallDamageMultiplier => "minecraft:fall_damage_multiplier",
|
||||||
|
@ -273,6 +274,8 @@ enum Attribute {
|
||||||
SweepingDamageRatio => "minecraft:sweeping_damage_ratio",
|
SweepingDamageRatio => "minecraft:sweeping_damage_ratio",
|
||||||
TemptRange => "minecraft:tempt_range",
|
TemptRange => "minecraft:tempt_range",
|
||||||
WaterMovementEfficiency => "minecraft:water_movement_efficiency",
|
WaterMovementEfficiency => "minecraft:water_movement_efficiency",
|
||||||
|
WaypointTransmitRange => "minecraft:waypoint_transmit_range",
|
||||||
|
WaypointReceiveRange => "minecraft:waypoint_receive_range",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -998,6 +1001,7 @@ enum Block {
|
||||||
DriedKelpBlock => "minecraft:dried_kelp_block",
|
DriedKelpBlock => "minecraft:dried_kelp_block",
|
||||||
TurtleEgg => "minecraft:turtle_egg",
|
TurtleEgg => "minecraft:turtle_egg",
|
||||||
SnifferEgg => "minecraft:sniffer_egg",
|
SnifferEgg => "minecraft:sniffer_egg",
|
||||||
|
DriedGhast => "minecraft:dried_ghast",
|
||||||
DeadTubeCoralBlock => "minecraft:dead_tube_coral_block",
|
DeadTubeCoralBlock => "minecraft:dead_tube_coral_block",
|
||||||
DeadBrainCoralBlock => "minecraft:dead_brain_coral_block",
|
DeadBrainCoralBlock => "minecraft:dead_brain_coral_block",
|
||||||
DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block",
|
DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block",
|
||||||
|
@ -1499,6 +1503,7 @@ enum CommandArgumentKind {
|
||||||
ItemStack => "minecraft:item_stack",
|
ItemStack => "minecraft:item_stack",
|
||||||
ItemPredicate => "minecraft:item_predicate",
|
ItemPredicate => "minecraft:item_predicate",
|
||||||
Color => "minecraft:color",
|
Color => "minecraft:color",
|
||||||
|
HexColor => "minecraft:hex_color",
|
||||||
Component => "minecraft:component",
|
Component => "minecraft:component",
|
||||||
Style => "minecraft:style",
|
Style => "minecraft:style",
|
||||||
Message => "minecraft:message",
|
Message => "minecraft:message",
|
||||||
|
@ -1536,6 +1541,7 @@ enum CommandArgumentKind {
|
||||||
LootTable => "minecraft:loot_table",
|
LootTable => "minecraft:loot_table",
|
||||||
LootPredicate => "minecraft:loot_predicate",
|
LootPredicate => "minecraft:loot_predicate",
|
||||||
LootModifier => "minecraft:loot_modifier",
|
LootModifier => "minecraft:loot_modifier",
|
||||||
|
Dialog => "minecraft:dialog",
|
||||||
Uuid => "minecraft:uuid",
|
Uuid => "minecraft:uuid",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1559,6 +1565,7 @@ enum CustomStat {
|
||||||
MinecartOneCm => "minecraft:minecart_one_cm",
|
MinecartOneCm => "minecraft:minecart_one_cm",
|
||||||
BoatOneCm => "minecraft:boat_one_cm",
|
BoatOneCm => "minecraft:boat_one_cm",
|
||||||
PigOneCm => "minecraft:pig_one_cm",
|
PigOneCm => "minecraft:pig_one_cm",
|
||||||
|
HappyGhastOneCm => "minecraft:happy_ghast_one_cm",
|
||||||
HorseOneCm => "minecraft:horse_one_cm",
|
HorseOneCm => "minecraft:horse_one_cm",
|
||||||
AviateOneCm => "minecraft:aviate_one_cm",
|
AviateOneCm => "minecraft:aviate_one_cm",
|
||||||
SwimOneCm => "minecraft:swim_one_cm",
|
SwimOneCm => "minecraft:swim_one_cm",
|
||||||
|
@ -1679,6 +1686,7 @@ enum EntityKind {
|
||||||
Frog => "minecraft:frog",
|
Frog => "minecraft:frog",
|
||||||
FurnaceMinecart => "minecraft:furnace_minecart",
|
FurnaceMinecart => "minecraft:furnace_minecart",
|
||||||
Ghast => "minecraft:ghast",
|
Ghast => "minecraft:ghast",
|
||||||
|
HappyGhast => "minecraft:happy_ghast",
|
||||||
Giant => "minecraft:giant",
|
Giant => "minecraft:giant",
|
||||||
GlowItemFrame => "minecraft:glow_item_frame",
|
GlowItemFrame => "minecraft:glow_item_frame",
|
||||||
GlowSquid => "minecraft:glow_squid",
|
GlowSquid => "minecraft:glow_squid",
|
||||||
|
@ -2513,6 +2521,7 @@ enum Item {
|
||||||
BlackConcretePowder => "minecraft:black_concrete_powder",
|
BlackConcretePowder => "minecraft:black_concrete_powder",
|
||||||
TurtleEgg => "minecraft:turtle_egg",
|
TurtleEgg => "minecraft:turtle_egg",
|
||||||
SnifferEgg => "minecraft:sniffer_egg",
|
SnifferEgg => "minecraft:sniffer_egg",
|
||||||
|
DriedGhast => "minecraft:dried_ghast",
|
||||||
DeadTubeCoralBlock => "minecraft:dead_tube_coral_block",
|
DeadTubeCoralBlock => "minecraft:dead_tube_coral_block",
|
||||||
DeadBrainCoralBlock => "minecraft:dead_brain_coral_block",
|
DeadBrainCoralBlock => "minecraft:dead_brain_coral_block",
|
||||||
DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block",
|
DeadBubbleCoralBlock => "minecraft:dead_bubble_coral_block",
|
||||||
|
@ -2695,6 +2704,22 @@ enum Item {
|
||||||
Rail => "minecraft:rail",
|
Rail => "minecraft:rail",
|
||||||
ActivatorRail => "minecraft:activator_rail",
|
ActivatorRail => "minecraft:activator_rail",
|
||||||
Saddle => "minecraft:saddle",
|
Saddle => "minecraft:saddle",
|
||||||
|
WhiteHarness => "minecraft:white_harness",
|
||||||
|
OrangeHarness => "minecraft:orange_harness",
|
||||||
|
MagentaHarness => "minecraft:magenta_harness",
|
||||||
|
LightBlueHarness => "minecraft:light_blue_harness",
|
||||||
|
YellowHarness => "minecraft:yellow_harness",
|
||||||
|
LimeHarness => "minecraft:lime_harness",
|
||||||
|
PinkHarness => "minecraft:pink_harness",
|
||||||
|
GrayHarness => "minecraft:gray_harness",
|
||||||
|
LightGrayHarness => "minecraft:light_gray_harness",
|
||||||
|
CyanHarness => "minecraft:cyan_harness",
|
||||||
|
PurpleHarness => "minecraft:purple_harness",
|
||||||
|
BlueHarness => "minecraft:blue_harness",
|
||||||
|
BrownHarness => "minecraft:brown_harness",
|
||||||
|
GreenHarness => "minecraft:green_harness",
|
||||||
|
RedHarness => "minecraft:red_harness",
|
||||||
|
BlackHarness => "minecraft:black_harness",
|
||||||
Minecart => "minecraft:minecart",
|
Minecart => "minecraft:minecart",
|
||||||
ChestMinecart => "minecraft:chest_minecart",
|
ChestMinecart => "minecraft:chest_minecart",
|
||||||
FurnaceMinecart => "minecraft:furnace_minecart",
|
FurnaceMinecart => "minecraft:furnace_minecart",
|
||||||
|
@ -2988,6 +3013,7 @@ enum Item {
|
||||||
FoxSpawnEgg => "minecraft:fox_spawn_egg",
|
FoxSpawnEgg => "minecraft:fox_spawn_egg",
|
||||||
FrogSpawnEgg => "minecraft:frog_spawn_egg",
|
FrogSpawnEgg => "minecraft:frog_spawn_egg",
|
||||||
GhastSpawnEgg => "minecraft:ghast_spawn_egg",
|
GhastSpawnEgg => "minecraft:ghast_spawn_egg",
|
||||||
|
HappyGhastSpawnEgg => "minecraft:happy_ghast_spawn_egg",
|
||||||
GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg",
|
GlowSquidSpawnEgg => "minecraft:glow_squid_spawn_egg",
|
||||||
GoatSpawnEgg => "minecraft:goat_spawn_egg",
|
GoatSpawnEgg => "minecraft:goat_spawn_egg",
|
||||||
GuardianSpawnEgg => "minecraft:guardian_spawn_egg",
|
GuardianSpawnEgg => "minecraft:guardian_spawn_egg",
|
||||||
|
@ -3144,6 +3170,7 @@ enum Item {
|
||||||
MusicDisc5 => "minecraft:music_disc_5",
|
MusicDisc5 => "minecraft:music_disc_5",
|
||||||
MusicDiscPigstep => "minecraft:music_disc_pigstep",
|
MusicDiscPigstep => "minecraft:music_disc_pigstep",
|
||||||
MusicDiscPrecipice => "minecraft:music_disc_precipice",
|
MusicDiscPrecipice => "minecraft:music_disc_precipice",
|
||||||
|
MusicDiscTears => "minecraft:music_disc_tears",
|
||||||
DiscFragment5 => "minecraft:disc_fragment_5",
|
DiscFragment5 => "minecraft:disc_fragment_5",
|
||||||
Trident => "minecraft:trident",
|
Trident => "minecraft:trident",
|
||||||
NautilusShell => "minecraft:nautilus_shell",
|
NautilusShell => "minecraft:nautilus_shell",
|
||||||
|
@ -3696,6 +3723,7 @@ enum PointOfInterestKind {
|
||||||
BeeNest => "minecraft:bee_nest",
|
BeeNest => "minecraft:bee_nest",
|
||||||
NetherPortal => "minecraft:nether_portal",
|
NetherPortal => "minecraft:nether_portal",
|
||||||
Lodestone => "minecraft:lodestone",
|
Lodestone => "minecraft:lodestone",
|
||||||
|
TestInstance => "minecraft:test_instance",
|
||||||
LightningRod => "minecraft:lightning_rod",
|
LightningRod => "minecraft:lightning_rod",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3842,12 +3870,14 @@ enum SensorKind {
|
||||||
PiglinBruteSpecificSensor => "minecraft:piglin_brute_specific_sensor",
|
PiglinBruteSpecificSensor => "minecraft:piglin_brute_specific_sensor",
|
||||||
HoglinSpecificSensor => "minecraft:hoglin_specific_sensor",
|
HoglinSpecificSensor => "minecraft:hoglin_specific_sensor",
|
||||||
NearestAdult => "minecraft:nearest_adult",
|
NearestAdult => "minecraft:nearest_adult",
|
||||||
|
NearestAdultAnyType => "minecraft:nearest_adult_any_type",
|
||||||
AxolotlAttackables => "minecraft:axolotl_attackables",
|
AxolotlAttackables => "minecraft:axolotl_attackables",
|
||||||
AxolotlTemptations => "minecraft:axolotl_temptations",
|
AxolotlTemptations => "minecraft:axolotl_temptations",
|
||||||
GoatTemptations => "minecraft:goat_temptations",
|
GoatTemptations => "minecraft:goat_temptations",
|
||||||
FrogTemptations => "minecraft:frog_temptations",
|
FrogTemptations => "minecraft:frog_temptations",
|
||||||
CamelTemptations => "minecraft:camel_temptations",
|
CamelTemptations => "minecraft:camel_temptations",
|
||||||
ArmadilloTemptations => "minecraft:armadillo_temptations",
|
ArmadilloTemptations => "minecraft:armadillo_temptations",
|
||||||
|
HappyGhastTemptations => "minecraft:happy_ghast_temptations",
|
||||||
FrogAttackables => "minecraft:frog_attackables",
|
FrogAttackables => "minecraft:frog_attackables",
|
||||||
IsInWater => "minecraft:is_in_water",
|
IsInWater => "minecraft:is_in_water",
|
||||||
WardenEntitySensor => "minecraft:warden_entity_sensor",
|
WardenEntitySensor => "minecraft:warden_entity_sensor",
|
||||||
|
@ -4314,11 +4344,20 @@ enum SoundEvent {
|
||||||
EntityDonkeyEat => "minecraft:entity.donkey.eat",
|
EntityDonkeyEat => "minecraft:entity.donkey.eat",
|
||||||
EntityDonkeyHurt => "minecraft:entity.donkey.hurt",
|
EntityDonkeyHurt => "minecraft:entity.donkey.hurt",
|
||||||
EntityDonkeyJump => "minecraft:entity.donkey.jump",
|
EntityDonkeyJump => "minecraft:entity.donkey.jump",
|
||||||
|
BlockDriedGhastBreak => "minecraft:block.dried_ghast.break",
|
||||||
|
BlockDriedGhastStep => "minecraft:block.dried_ghast.step",
|
||||||
|
BlockDriedGhastFall => "minecraft:block.dried_ghast.fall",
|
||||||
|
BlockDriedGhastAmbient => "minecraft:block.dried_ghast.ambient",
|
||||||
|
BlockDriedGhastAmbientWater => "minecraft:block.dried_ghast.ambient_water",
|
||||||
|
BlockDriedGhastPlace => "minecraft:block.dried_ghast.place",
|
||||||
|
BlockDriedGhastPlaceInWater => "minecraft:block.dried_ghast.place_in_water",
|
||||||
|
BlockDriedGhastTransition => "minecraft:block.dried_ghast.transition",
|
||||||
BlockDripstoneBlockBreak => "minecraft:block.dripstone_block.break",
|
BlockDripstoneBlockBreak => "minecraft:block.dripstone_block.break",
|
||||||
BlockDripstoneBlockStep => "minecraft:block.dripstone_block.step",
|
BlockDripstoneBlockStep => "minecraft:block.dripstone_block.step",
|
||||||
BlockDripstoneBlockPlace => "minecraft:block.dripstone_block.place",
|
BlockDripstoneBlockPlace => "minecraft:block.dripstone_block.place",
|
||||||
BlockDripstoneBlockHit => "minecraft:block.dripstone_block.hit",
|
BlockDripstoneBlockHit => "minecraft:block.dripstone_block.hit",
|
||||||
BlockDripstoneBlockFall => "minecraft:block.dripstone_block.fall",
|
BlockDripstoneBlockFall => "minecraft:block.dripstone_block.fall",
|
||||||
|
BlockDryGrassAmbient => "minecraft:block.dry_grass.ambient",
|
||||||
BlockPointedDripstoneBreak => "minecraft:block.pointed_dripstone.break",
|
BlockPointedDripstoneBreak => "minecraft:block.pointed_dripstone.break",
|
||||||
BlockPointedDripstoneStep => "minecraft:block.pointed_dripstone.step",
|
BlockPointedDripstoneStep => "minecraft:block.pointed_dripstone.step",
|
||||||
BlockPointedDripstonePlace => "minecraft:block.pointed_dripstone.place",
|
BlockPointedDripstonePlace => "minecraft:block.pointed_dripstone.place",
|
||||||
|
@ -4480,6 +4519,10 @@ enum SoundEvent {
|
||||||
EntityGhastScream => "minecraft:entity.ghast.scream",
|
EntityGhastScream => "minecraft:entity.ghast.scream",
|
||||||
EntityGhastShoot => "minecraft:entity.ghast.shoot",
|
EntityGhastShoot => "minecraft:entity.ghast.shoot",
|
||||||
EntityGhastWarn => "minecraft:entity.ghast.warn",
|
EntityGhastWarn => "minecraft:entity.ghast.warn",
|
||||||
|
EntityGhastlingAmbient => "minecraft:entity.ghastling.ambient",
|
||||||
|
EntityGhastlingDeath => "minecraft:entity.ghastling.death",
|
||||||
|
EntityGhastlingHurt => "minecraft:entity.ghastling.hurt",
|
||||||
|
EntityGhastlingSpawn => "minecraft:entity.ghastling.spawn",
|
||||||
BlockGildedBlackstoneBreak => "minecraft:block.gilded_blackstone.break",
|
BlockGildedBlackstoneBreak => "minecraft:block.gilded_blackstone.break",
|
||||||
BlockGildedBlackstoneFall => "minecraft:block.gilded_blackstone.fall",
|
BlockGildedBlackstoneFall => "minecraft:block.gilded_blackstone.fall",
|
||||||
BlockGildedBlackstoneHit => "minecraft:block.gilded_blackstone.hit",
|
BlockGildedBlackstoneHit => "minecraft:block.gilded_blackstone.hit",
|
||||||
|
@ -4548,6 +4591,10 @@ enum SoundEvent {
|
||||||
BlockHangingSignFall => "minecraft:block.hanging_sign.fall",
|
BlockHangingSignFall => "minecraft:block.hanging_sign.fall",
|
||||||
BlockHangingSignHit => "minecraft:block.hanging_sign.hit",
|
BlockHangingSignHit => "minecraft:block.hanging_sign.hit",
|
||||||
BlockHangingSignPlace => "minecraft:block.hanging_sign.place",
|
BlockHangingSignPlace => "minecraft:block.hanging_sign.place",
|
||||||
|
EntityHappyGhastAmbient => "minecraft:entity.happy_ghast.ambient",
|
||||||
|
EntityHappyGhastDeath => "minecraft:entity.happy_ghast.death",
|
||||||
|
EntityHappyGhastHurt => "minecraft:entity.happy_ghast.hurt",
|
||||||
|
EntityHappyGhastRiding => "minecraft:entity.happy_ghast.riding",
|
||||||
BlockHeavyCoreBreak => "minecraft:block.heavy_core.break",
|
BlockHeavyCoreBreak => "minecraft:block.heavy_core.break",
|
||||||
BlockHeavyCoreFall => "minecraft:block.heavy_core.fall",
|
BlockHeavyCoreFall => "minecraft:block.heavy_core.fall",
|
||||||
BlockHeavyCoreHit => "minecraft:block.heavy_core.hit",
|
BlockHeavyCoreHit => "minecraft:block.heavy_core.hit",
|
||||||
|
@ -4579,6 +4626,10 @@ enum SoundEvent {
|
||||||
BlockTrialSpawnerOpenShutter => "minecraft:block.trial_spawner.open_shutter",
|
BlockTrialSpawnerOpenShutter => "minecraft:block.trial_spawner.open_shutter",
|
||||||
BlockTrialSpawnerCloseShutter => "minecraft:block.trial_spawner.close_shutter",
|
BlockTrialSpawnerCloseShutter => "minecraft:block.trial_spawner.close_shutter",
|
||||||
BlockTrialSpawnerEjectItem => "minecraft:block.trial_spawner.eject_item",
|
BlockTrialSpawnerEjectItem => "minecraft:block.trial_spawner.eject_item",
|
||||||
|
EntityHappyGhastEquip => "minecraft:entity.happy_ghast.equip",
|
||||||
|
EntityHappyGhastUnequip => "minecraft:entity.happy_ghast.unequip",
|
||||||
|
EntityHappyGhastHarnessGogglesUp => "minecraft:entity.happy_ghast.harness_goggles_up",
|
||||||
|
EntityHappyGhastHarnessGogglesDown => "minecraft:entity.happy_ghast.harness_goggles_down",
|
||||||
ItemHoeTill => "minecraft:item.hoe.till",
|
ItemHoeTill => "minecraft:item.hoe.till",
|
||||||
EntityHoglinAmbient => "minecraft:entity.hoglin.ambient",
|
EntityHoglinAmbient => "minecraft:entity.hoglin.ambient",
|
||||||
EntityHoglinAngry => "minecraft:entity.hoglin.angry",
|
EntityHoglinAngry => "minecraft:entity.hoglin.angry",
|
||||||
|
@ -4607,6 +4658,7 @@ enum SoundEvent {
|
||||||
EntityHorseAmbient => "minecraft:entity.horse.ambient",
|
EntityHorseAmbient => "minecraft:entity.horse.ambient",
|
||||||
EntityHorseAngry => "minecraft:entity.horse.angry",
|
EntityHorseAngry => "minecraft:entity.horse.angry",
|
||||||
EntityHorseArmor => "minecraft:entity.horse.armor",
|
EntityHorseArmor => "minecraft:entity.horse.armor",
|
||||||
|
ItemHorseArmorUnequip => "minecraft:item.horse_armor.unequip",
|
||||||
EntityHorseBreathe => "minecraft:entity.horse.breathe",
|
EntityHorseBreathe => "minecraft:entity.horse.breathe",
|
||||||
EntityHorseDeath => "minecraft:entity.horse.death",
|
EntityHorseDeath => "minecraft:entity.horse.death",
|
||||||
EntityHorseEat => "minecraft:entity.horse.eat",
|
EntityHorseEat => "minecraft:entity.horse.eat",
|
||||||
|
@ -4678,8 +4730,9 @@ enum SoundEvent {
|
||||||
BlockLeafLitterPlace => "minecraft:block.leaf_litter.place",
|
BlockLeafLitterPlace => "minecraft:block.leaf_litter.place",
|
||||||
BlockLeafLitterHit => "minecraft:block.leaf_litter.hit",
|
BlockLeafLitterHit => "minecraft:block.leaf_litter.hit",
|
||||||
BlockLeafLitterFall => "minecraft:block.leaf_litter.fall",
|
BlockLeafLitterFall => "minecraft:block.leaf_litter.fall",
|
||||||
EntityLeashKnotBreak => "minecraft:entity.leash_knot.break",
|
ItemLeadUntied => "minecraft:item.lead.untied",
|
||||||
EntityLeashKnotPlace => "minecraft:entity.leash_knot.place",
|
ItemLeadTied => "minecraft:item.lead.tied",
|
||||||
|
ItemLeadBreak => "minecraft:item.lead.break",
|
||||||
BlockLeverClick => "minecraft:block.lever.click",
|
BlockLeverClick => "minecraft:block.lever.click",
|
||||||
EntityLightningBoltImpact => "minecraft:entity.lightning_bolt.impact",
|
EntityLightningBoltImpact => "minecraft:entity.lightning_bolt.impact",
|
||||||
EntityLightningBoltThunder => "minecraft:entity.lightning_bolt.thunder",
|
EntityLightningBoltThunder => "minecraft:entity.lightning_bolt.thunder",
|
||||||
|
@ -4693,6 +4746,7 @@ enum SoundEvent {
|
||||||
EntityLlamaSpit => "minecraft:entity.llama.spit",
|
EntityLlamaSpit => "minecraft:entity.llama.spit",
|
||||||
EntityLlamaStep => "minecraft:entity.llama.step",
|
EntityLlamaStep => "minecraft:entity.llama.step",
|
||||||
EntityLlamaSwag => "minecraft:entity.llama.swag",
|
EntityLlamaSwag => "minecraft:entity.llama.swag",
|
||||||
|
ItemLlamaCarpetUnequip => "minecraft:item.llama_carpet.unequip",
|
||||||
EntityMagmaCubeDeathSmall => "minecraft:entity.magma_cube.death_small",
|
EntityMagmaCubeDeathSmall => "minecraft:entity.magma_cube.death_small",
|
||||||
BlockLodestoneBreak => "minecraft:block.lodestone.break",
|
BlockLodestoneBreak => "minecraft:block.lodestone.break",
|
||||||
BlockLodestoneStep => "minecraft:block.lodestone.step",
|
BlockLodestoneStep => "minecraft:block.lodestone.step",
|
||||||
|
@ -4789,6 +4843,7 @@ enum SoundEvent {
|
||||||
MusicDiscCreator => "minecraft:music_disc.creator",
|
MusicDiscCreator => "minecraft:music_disc.creator",
|
||||||
MusicDiscCreatorMusicBox => "minecraft:music_disc.creator_music_box",
|
MusicDiscCreatorMusicBox => "minecraft:music_disc.creator_music_box",
|
||||||
MusicDiscPrecipice => "minecraft:music_disc.precipice",
|
MusicDiscPrecipice => "minecraft:music_disc.precipice",
|
||||||
|
MusicDiscTears => "minecraft:music_disc.tears",
|
||||||
MusicDragon => "minecraft:music.dragon",
|
MusicDragon => "minecraft:music.dragon",
|
||||||
MusicEnd => "minecraft:music.end",
|
MusicEnd => "minecraft:music.end",
|
||||||
MusicGame => "minecraft:music.game",
|
MusicGame => "minecraft:music.game",
|
||||||
|
@ -5041,7 +5096,6 @@ enum SoundEvent {
|
||||||
BlockPowderSnowHit => "minecraft:block.powder_snow.hit",
|
BlockPowderSnowHit => "minecraft:block.powder_snow.hit",
|
||||||
BlockPowderSnowPlace => "minecraft:block.powder_snow.place",
|
BlockPowderSnowPlace => "minecraft:block.powder_snow.place",
|
||||||
BlockPowderSnowStep => "minecraft:block.powder_snow.step",
|
BlockPowderSnowStep => "minecraft:block.powder_snow.step",
|
||||||
EntityPufferFishAmbient => "minecraft:entity.puffer_fish.ambient",
|
|
||||||
EntityPufferFishBlowOut => "minecraft:entity.puffer_fish.blow_out",
|
EntityPufferFishBlowOut => "minecraft:entity.puffer_fish.blow_out",
|
||||||
EntityPufferFishBlowUp => "minecraft:entity.puffer_fish.blow_up",
|
EntityPufferFishBlowUp => "minecraft:entity.puffer_fish.blow_up",
|
||||||
EntityPufferFishDeath => "minecraft:entity.puffer_fish.death",
|
EntityPufferFishDeath => "minecraft:entity.puffer_fish.death",
|
||||||
|
@ -5093,7 +5147,6 @@ enum SoundEvent {
|
||||||
BlockSandPlace => "minecraft:block.sand.place",
|
BlockSandPlace => "minecraft:block.sand.place",
|
||||||
BlockSandStep => "minecraft:block.sand.step",
|
BlockSandStep => "minecraft:block.sand.step",
|
||||||
BlockSandIdle => "minecraft:block.sand.idle",
|
BlockSandIdle => "minecraft:block.sand.idle",
|
||||||
BlockSandWind => "minecraft:block.sand.wind",
|
|
||||||
BlockScaffoldingBreak => "minecraft:block.scaffolding.break",
|
BlockScaffoldingBreak => "minecraft:block.scaffolding.break",
|
||||||
BlockScaffoldingFall => "minecraft:block.scaffolding.fall",
|
BlockScaffoldingFall => "minecraft:block.scaffolding.fall",
|
||||||
BlockScaffoldingHit => "minecraft:block.scaffolding.hit",
|
BlockScaffoldingHit => "minecraft:block.scaffolding.hit",
|
||||||
|
@ -5135,6 +5188,7 @@ enum SoundEvent {
|
||||||
EntitySheepHurt => "minecraft:entity.sheep.hurt",
|
EntitySheepHurt => "minecraft:entity.sheep.hurt",
|
||||||
EntitySheepShear => "minecraft:entity.sheep.shear",
|
EntitySheepShear => "minecraft:entity.sheep.shear",
|
||||||
EntitySheepStep => "minecraft:entity.sheep.step",
|
EntitySheepStep => "minecraft:entity.sheep.step",
|
||||||
|
ItemShearsSnip => "minecraft:item.shears.snip",
|
||||||
ItemShieldBlock => "minecraft:item.shield.block",
|
ItemShieldBlock => "minecraft:item.shield.block",
|
||||||
ItemShieldBreak => "minecraft:item.shield.break",
|
ItemShieldBreak => "minecraft:item.shield.break",
|
||||||
BlockShroomlightBreak => "minecraft:block.shroomlight.break",
|
BlockShroomlightBreak => "minecraft:block.shroomlight.break",
|
||||||
|
@ -5564,6 +5618,7 @@ enum SoundEvent {
|
||||||
EventMobEffectBadOmen => "minecraft:event.mob_effect.bad_omen",
|
EventMobEffectBadOmen => "minecraft:event.mob_effect.bad_omen",
|
||||||
EventMobEffectTrialOmen => "minecraft:event.mob_effect.trial_omen",
|
EventMobEffectTrialOmen => "minecraft:event.mob_effect.trial_omen",
|
||||||
EventMobEffectRaidOmen => "minecraft:event.mob_effect.raid_omen",
|
EventMobEffectRaidOmen => "minecraft:event.mob_effect.raid_omen",
|
||||||
|
ItemSaddleUnequip => "minecraft:item.saddle.unequip",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6106,6 +6161,7 @@ enum BlockKind {
|
||||||
Door => "minecraft:door",
|
Door => "minecraft:door",
|
||||||
DoublePlant => "minecraft:double_plant",
|
DoublePlant => "minecraft:double_plant",
|
||||||
DragonEgg => "minecraft:dragon_egg",
|
DragonEgg => "minecraft:dragon_egg",
|
||||||
|
DriedGhast => "minecraft:dried_ghast",
|
||||||
DropExperience => "minecraft:drop_experience",
|
DropExperience => "minecraft:drop_experience",
|
||||||
Dropper => "minecraft:dropper",
|
Dropper => "minecraft:dropper",
|
||||||
EnchantmentTable => "minecraft:enchantment_table",
|
EnchantmentTable => "minecraft:enchantment_table",
|
||||||
|
@ -6244,7 +6300,6 @@ enum BlockKind {
|
||||||
TallGrass => "minecraft:tall_grass",
|
TallGrass => "minecraft:tall_grass",
|
||||||
TallSeagrass => "minecraft:tall_seagrass",
|
TallSeagrass => "minecraft:tall_seagrass",
|
||||||
Target => "minecraft:target",
|
Target => "minecraft:target",
|
||||||
Terracotta => "minecraft:terracotta",
|
|
||||||
Test => "minecraft:test",
|
Test => "minecraft:test",
|
||||||
TestInstance => "minecraft:test_instance",
|
TestInstance => "minecraft:test_instance",
|
||||||
TintedGlass => "minecraft:tinted_glass",
|
TintedGlass => "minecraft:tinted_glass",
|
||||||
|
@ -6346,6 +6401,7 @@ enum TriggerKind {
|
||||||
ThrownItemPickedUpByEntity => "minecraft:thrown_item_picked_up_by_entity",
|
ThrownItemPickedUpByEntity => "minecraft:thrown_item_picked_up_by_entity",
|
||||||
ThrownItemPickedUpByPlayer => "minecraft:thrown_item_picked_up_by_player",
|
ThrownItemPickedUpByPlayer => "minecraft:thrown_item_picked_up_by_player",
|
||||||
PlayerInteractedWithEntity => "minecraft:player_interacted_with_entity",
|
PlayerInteractedWithEntity => "minecraft:player_interacted_with_entity",
|
||||||
|
PlayerShearedEquipment => "minecraft:player_sheared_equipment",
|
||||||
StartedRiding => "minecraft:started_riding",
|
StartedRiding => "minecraft:started_riding",
|
||||||
LightningStrike => "minecraft:lightning_strike",
|
LightningStrike => "minecraft:lightning_strike",
|
||||||
UsingItem => "minecraft:using_item",
|
UsingItem => "minecraft:using_item",
|
||||||
|
@ -6762,3 +6818,43 @@ enum SpawnConditionKind {
|
||||||
Biome => "minecraft:biome",
|
Biome => "minecraft:biome",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
registry! {
|
||||||
|
enum DialogBodyKind {
|
||||||
|
Item => "minecraft:item",
|
||||||
|
PlainMessage => "minecraft:plain_message",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
registry! {
|
||||||
|
enum DialogKind {
|
||||||
|
Notice => "minecraft:notice",
|
||||||
|
ServerLinks => "minecraft:server_links",
|
||||||
|
DialogList => "minecraft:dialog_list",
|
||||||
|
MultiAction => "minecraft:multi_action",
|
||||||
|
Confirmation => "minecraft:confirmation",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
registry! {
|
||||||
|
enum InputControlKind {
|
||||||
|
Boolean => "minecraft:boolean",
|
||||||
|
NumberRange => "minecraft:number_range",
|
||||||
|
SingleOption => "minecraft:single_option",
|
||||||
|
Text => "minecraft:text",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
registry! {
|
||||||
|
enum DialogActionKind {
|
||||||
|
OpenUrl => "minecraft:open_url",
|
||||||
|
RunCommand => "minecraft:run_command",
|
||||||
|
SuggestCommand => "minecraft:suggest_command",
|
||||||
|
ShowDialog => "minecraft:show_dialog",
|
||||||
|
ChangePage => "minecraft:change_page",
|
||||||
|
CopyToClipboard => "minecraft:copy_to_clipboard",
|
||||||
|
Custom => "minecraft:custom",
|
||||||
|
DynamicRunCommand => "minecraft:dynamic/run_command",
|
||||||
|
DynamicCustom => "minecraft:dynamic/custom",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -148,7 +148,6 @@ pub static AZALEA_GROWS_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
Block::Sand,
|
Block::Sand,
|
||||||
Block::RedSand,
|
Block::RedSand,
|
||||||
Block::SuspiciousSand,
|
Block::SuspiciousSand,
|
||||||
Block::SuspiciousSand,
|
|
||||||
Block::Terracotta,
|
Block::Terracotta,
|
||||||
Block::WhiteTerracotta,
|
Block::WhiteTerracotta,
|
||||||
Block::OrangeTerracotta,
|
Block::OrangeTerracotta,
|
||||||
|
@ -233,7 +232,6 @@ pub static BAMBOO_PLANTABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
Block::Sand,
|
Block::Sand,
|
||||||
Block::RedSand,
|
Block::RedSand,
|
||||||
Block::SuspiciousSand,
|
Block::SuspiciousSand,
|
||||||
Block::SuspiciousSand,
|
|
||||||
Block::Dirt,
|
Block::Dirt,
|
||||||
Block::GrassBlock,
|
Block::GrassBlock,
|
||||||
Block::Podzol,
|
Block::Podzol,
|
||||||
|
@ -432,7 +430,6 @@ pub static CAMEL_SAND_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::ne
|
||||||
Block::Sand,
|
Block::Sand,
|
||||||
Block::RedSand,
|
Block::RedSand,
|
||||||
Block::SuspiciousSand,
|
Block::SuspiciousSand,
|
||||||
Block::SuspiciousSand,
|
|
||||||
Block::WhiteConcretePowder,
|
Block::WhiteConcretePowder,
|
||||||
Block::OrangeConcretePowder,
|
Block::OrangeConcretePowder,
|
||||||
Block::MagentaConcretePowder,
|
Block::MagentaConcretePowder,
|
||||||
|
@ -451,14 +448,8 @@ pub static CAMEL_SAND_STEP_SOUND_BLOCKS: LazyLock<HashSet<Block>> = LazyLock::ne
|
||||||
Block::BlackConcretePowder,
|
Block::BlackConcretePowder,
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
pub static CAMELS_SPAWNABLE_ON: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
pub static CAMELS_SPAWNABLE_ON: LazyLock<HashSet<Block>> =
|
||||||
HashSet::from_iter(vec![
|
LazyLock::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand, Block::SuspiciousSand]));
|
||||||
Block::Sand,
|
|
||||||
Block::RedSand,
|
|
||||||
Block::SuspiciousSand,
|
|
||||||
Block::SuspiciousSand,
|
|
||||||
])
|
|
||||||
});
|
|
||||||
pub static CAMPFIRES: LazyLock<HashSet<Block>> =
|
pub static CAMPFIRES: LazyLock<HashSet<Block>> =
|
||||||
LazyLock::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire]));
|
LazyLock::new(|| HashSet::from_iter(vec![Block::Campfire, Block::SoulCampfire]));
|
||||||
pub static CANDLE_CAKES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
pub static CANDLE_CAKES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
|
@ -848,7 +839,6 @@ pub static DRY_VEGETATION_MAY_PLACE_ON: LazyLock<HashSet<Block>> = LazyLock::new
|
||||||
Block::Sand,
|
Block::Sand,
|
||||||
Block::RedSand,
|
Block::RedSand,
|
||||||
Block::SuspiciousSand,
|
Block::SuspiciousSand,
|
||||||
Block::SuspiciousSand,
|
|
||||||
Block::Terracotta,
|
Block::Terracotta,
|
||||||
Block::WhiteTerracotta,
|
Block::WhiteTerracotta,
|
||||||
Block::OrangeTerracotta,
|
Block::OrangeTerracotta,
|
||||||
|
@ -1185,6 +1175,16 @@ pub static GUARDED_BY_PIGLINS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
Block::DeepslateGoldOre,
|
Block::DeepslateGoldOre,
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
|
pub static HAPPY_GHAST_AVOIDS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
|
HashSet::from_iter(vec![
|
||||||
|
Block::SweetBerryBush,
|
||||||
|
Block::Cactus,
|
||||||
|
Block::WitherRose,
|
||||||
|
Block::MagmaBlock,
|
||||||
|
Block::Fire,
|
||||||
|
Block::PointedDripstone,
|
||||||
|
])
|
||||||
|
});
|
||||||
pub static HOGLIN_REPELLENTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
pub static HOGLIN_REPELLENTS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
HashSet::from_iter(vec![
|
HashSet::from_iter(vec![
|
||||||
Block::WarpedFungus,
|
Block::WarpedFungus,
|
||||||
|
@ -2768,7 +2768,6 @@ pub static OVERWORLD_CARVER_REPLACEABLES: LazyLock<HashSet<Block>> = LazyLock::n
|
||||||
Block::Sand,
|
Block::Sand,
|
||||||
Block::RedSand,
|
Block::RedSand,
|
||||||
Block::SuspiciousSand,
|
Block::SuspiciousSand,
|
||||||
Block::SuspiciousSand,
|
|
||||||
Block::Terracotta,
|
Block::Terracotta,
|
||||||
Block::WhiteTerracotta,
|
Block::WhiteTerracotta,
|
||||||
Block::OrangeTerracotta,
|
Block::OrangeTerracotta,
|
||||||
|
@ -2902,29 +2901,6 @@ pub static PLANKS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
Block::CherryPlanks,
|
Block::CherryPlanks,
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
pub static PLAYS_AMBIENT_DESERT_BLOCK_SOUNDS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
|
||||||
HashSet::from_iter(vec![
|
|
||||||
Block::Sand,
|
|
||||||
Block::RedSand,
|
|
||||||
Block::Terracotta,
|
|
||||||
Block::WhiteTerracotta,
|
|
||||||
Block::OrangeTerracotta,
|
|
||||||
Block::MagentaTerracotta,
|
|
||||||
Block::LightBlueTerracotta,
|
|
||||||
Block::YellowTerracotta,
|
|
||||||
Block::LimeTerracotta,
|
|
||||||
Block::PinkTerracotta,
|
|
||||||
Block::GrayTerracotta,
|
|
||||||
Block::LightGrayTerracotta,
|
|
||||||
Block::CyanTerracotta,
|
|
||||||
Block::PurpleTerracotta,
|
|
||||||
Block::BlueTerracotta,
|
|
||||||
Block::BrownTerracotta,
|
|
||||||
Block::GreenTerracotta,
|
|
||||||
Block::RedTerracotta,
|
|
||||||
Block::BlackTerracotta,
|
|
||||||
])
|
|
||||||
});
|
|
||||||
pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: LazyLock<HashSet<Block>> =
|
pub static POLAR_BEARS_SPAWNABLE_ON_ALTERNATE: LazyLock<HashSet<Block>> =
|
||||||
LazyLock::new(|| HashSet::from_iter(vec![Block::Ice]));
|
LazyLock::new(|| HashSet::from_iter(vec![Block::Ice]));
|
||||||
pub static PORTALS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
pub static PORTALS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
|
@ -3129,14 +3105,8 @@ pub static REPLACEABLE_BY_TREES: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
Block::ClosedEyeblossom,
|
Block::ClosedEyeblossom,
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
pub static SAND: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
pub static SAND: LazyLock<HashSet<Block>> =
|
||||||
HashSet::from_iter(vec![
|
LazyLock::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand, Block::SuspiciousSand]));
|
||||||
Block::Sand,
|
|
||||||
Block::RedSand,
|
|
||||||
Block::SuspiciousSand,
|
|
||||||
Block::SuspiciousSand,
|
|
||||||
])
|
|
||||||
});
|
|
||||||
pub static SAPLINGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
pub static SAPLINGS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
HashSet::from_iter(vec![
|
HashSet::from_iter(vec![
|
||||||
Block::OakSapling,
|
Block::OakSapling,
|
||||||
|
@ -3637,6 +3607,34 @@ pub static TRAPDOORS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
Block::CherryTrapdoor,
|
Block::CherryTrapdoor,
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
|
pub static TRIGGERS_AMBIENT_DESERT_DRY_VEGETATION_BLOCK_SOUNDS: LazyLock<HashSet<Block>> =
|
||||||
|
LazyLock::new(|| {
|
||||||
|
HashSet::from_iter(vec![
|
||||||
|
Block::Sand,
|
||||||
|
Block::RedSand,
|
||||||
|
Block::Terracotta,
|
||||||
|
Block::WhiteTerracotta,
|
||||||
|
Block::OrangeTerracotta,
|
||||||
|
Block::MagentaTerracotta,
|
||||||
|
Block::LightBlueTerracotta,
|
||||||
|
Block::YellowTerracotta,
|
||||||
|
Block::LimeTerracotta,
|
||||||
|
Block::PinkTerracotta,
|
||||||
|
Block::GrayTerracotta,
|
||||||
|
Block::LightGrayTerracotta,
|
||||||
|
Block::CyanTerracotta,
|
||||||
|
Block::PurpleTerracotta,
|
||||||
|
Block::BlueTerracotta,
|
||||||
|
Block::BrownTerracotta,
|
||||||
|
Block::GreenTerracotta,
|
||||||
|
Block::RedTerracotta,
|
||||||
|
Block::BlackTerracotta,
|
||||||
|
])
|
||||||
|
});
|
||||||
|
pub static TRIGGERS_AMBIENT_DESERT_SAND_BLOCK_SOUNDS: LazyLock<HashSet<Block>> =
|
||||||
|
LazyLock::new(|| HashSet::from_iter(vec![Block::Sand, Block::RedSand]));
|
||||||
|
pub static TRIGGERS_AMBIENT_DRIED_GHAST_BLOCK_SOUNDS: LazyLock<HashSet<Block>> =
|
||||||
|
LazyLock::new(|| HashSet::from_iter(vec![Block::SoulSand, Block::SoulSoil]));
|
||||||
pub static UNDERWATER_BONEMEALS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
pub static UNDERWATER_BONEMEALS: LazyLock<HashSet<Block>> = LazyLock::new(|| {
|
||||||
HashSet::from_iter(vec![
|
HashSet::from_iter(vec![
|
||||||
Block::Seagrass,
|
Block::Seagrass,
|
||||||
|
|
|
@ -1079,6 +1079,49 @@ pub static HANGING_SIGNS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
||||||
Item::BambooHangingSign,
|
Item::BambooHangingSign,
|
||||||
])
|
])
|
||||||
});
|
});
|
||||||
|
pub static HAPPY_GHAST_FOOD: LazyLock<HashSet<Item>> =
|
||||||
|
LazyLock::new(|| HashSet::from_iter(vec![Item::Snowball]));
|
||||||
|
pub static HAPPY_GHAST_TEMPT_ITEMS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
||||||
|
HashSet::from_iter(vec![
|
||||||
|
Item::Snowball,
|
||||||
|
Item::WhiteHarness,
|
||||||
|
Item::OrangeHarness,
|
||||||
|
Item::MagentaHarness,
|
||||||
|
Item::LightBlueHarness,
|
||||||
|
Item::YellowHarness,
|
||||||
|
Item::LimeHarness,
|
||||||
|
Item::PinkHarness,
|
||||||
|
Item::GrayHarness,
|
||||||
|
Item::LightGrayHarness,
|
||||||
|
Item::CyanHarness,
|
||||||
|
Item::PurpleHarness,
|
||||||
|
Item::BlueHarness,
|
||||||
|
Item::BrownHarness,
|
||||||
|
Item::GreenHarness,
|
||||||
|
Item::RedHarness,
|
||||||
|
Item::BlackHarness,
|
||||||
|
])
|
||||||
|
});
|
||||||
|
pub static HARNESSES: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
||||||
|
HashSet::from_iter(vec![
|
||||||
|
Item::WhiteHarness,
|
||||||
|
Item::OrangeHarness,
|
||||||
|
Item::MagentaHarness,
|
||||||
|
Item::LightBlueHarness,
|
||||||
|
Item::YellowHarness,
|
||||||
|
Item::LimeHarness,
|
||||||
|
Item::PinkHarness,
|
||||||
|
Item::GrayHarness,
|
||||||
|
Item::LightGrayHarness,
|
||||||
|
Item::CyanHarness,
|
||||||
|
Item::PurpleHarness,
|
||||||
|
Item::BlueHarness,
|
||||||
|
Item::BrownHarness,
|
||||||
|
Item::GreenHarness,
|
||||||
|
Item::RedHarness,
|
||||||
|
Item::BlackHarness,
|
||||||
|
])
|
||||||
|
});
|
||||||
pub static HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
pub static HEAD_ARMOR: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
||||||
HashSet::from_iter(vec![
|
HashSet::from_iter(vec![
|
||||||
Item::LeatherHelmet,
|
Item::LeatherHelmet,
|
||||||
|
@ -1108,6 +1151,7 @@ pub static HORSE_FOOD: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
||||||
Item::Sugar,
|
Item::Sugar,
|
||||||
Item::HayBlock,
|
Item::HayBlock,
|
||||||
Item::Apple,
|
Item::Apple,
|
||||||
|
Item::Carrot,
|
||||||
Item::GoldenCarrot,
|
Item::GoldenCarrot,
|
||||||
Item::GoldenApple,
|
Item::GoldenApple,
|
||||||
Item::EnchantedGoldenApple,
|
Item::EnchantedGoldenApple,
|
||||||
|
@ -1463,14 +1507,8 @@ pub static REPAIRS_TURTLE_HELMET: LazyLock<HashSet<Item>> =
|
||||||
LazyLock::new(|| HashSet::from_iter(vec![Item::TurtleScute]));
|
LazyLock::new(|| HashSet::from_iter(vec![Item::TurtleScute]));
|
||||||
pub static REPAIRS_WOLF_ARMOR: LazyLock<HashSet<Item>> =
|
pub static REPAIRS_WOLF_ARMOR: LazyLock<HashSet<Item>> =
|
||||||
LazyLock::new(|| HashSet::from_iter(vec![Item::ArmadilloScute]));
|
LazyLock::new(|| HashSet::from_iter(vec![Item::ArmadilloScute]));
|
||||||
pub static SAND: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
pub static SAND: LazyLock<HashSet<Item>> =
|
||||||
HashSet::from_iter(vec![
|
LazyLock::new(|| HashSet::from_iter(vec![Item::Sand, Item::RedSand, Item::SuspiciousSand]));
|
||||||
Item::Sand,
|
|
||||||
Item::RedSand,
|
|
||||||
Item::SuspiciousSand,
|
|
||||||
Item::SuspiciousSand,
|
|
||||||
])
|
|
||||||
});
|
|
||||||
pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
pub static SAPLINGS: LazyLock<HashSet<Item>> = LazyLock::new(|| {
|
||||||
HashSet::from_iter(vec![
|
HashSet::from_iter(vec![
|
||||||
Item::OakSapling,
|
Item::OakSapling,
|
||||||
|
|
|
@ -47,7 +47,7 @@ fn generate_bedrock_world(
|
||||||
azalea_registry::Block::Bedrock.into(),
|
azalea_registry::Block::Bedrock.into(),
|
||||||
chunks.min_y,
|
chunks.min_y,
|
||||||
);
|
);
|
||||||
if rng.gen_bool(0.5) {
|
if rng.random_bool(0.5) {
|
||||||
chunk.set_block_state(
|
chunk.set_block_state(
|
||||||
&ChunkBlockPos::new(x, 2, z),
|
&ChunkBlockPos::new(x, 2, z),
|
||||||
azalea_registry::Block::Bedrock.into(),
|
azalea_registry::Block::Bedrock.into(),
|
||||||
|
|
|
@ -2,7 +2,7 @@ use azalea::{
|
||||||
ecs::prelude::*,
|
ecs::prelude::*,
|
||||||
entity::{Dead, LocalEntity, Position, metadata::AbstractMonster},
|
entity::{Dead, LocalEntity, Position, metadata::AbstractMonster},
|
||||||
prelude::*,
|
prelude::*,
|
||||||
world::{InstanceName, MinecraftEntityId},
|
world::InstanceName,
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::State;
|
use crate::State;
|
||||||
|
@ -21,12 +21,12 @@ pub fn tick(bot: Client, state: State) -> anyhow::Result<()> {
|
||||||
{
|
{
|
||||||
let mut ecs = bot.ecs.lock();
|
let mut ecs = bot.ecs.lock();
|
||||||
let mut query = ecs
|
let mut query = ecs
|
||||||
.query_filtered::<(&MinecraftEntityId, &Position, &InstanceName), (
|
.query_filtered::<(Entity, &Position, &InstanceName), (
|
||||||
With<AbstractMonster>,
|
With<AbstractMonster>,
|
||||||
Without<LocalEntity>,
|
Without<LocalEntity>,
|
||||||
Without<Dead>,
|
Without<Dead>,
|
||||||
)>();
|
)>();
|
||||||
for (&entity_id, position, instance_name) in query.iter(&ecs) {
|
for (entity_id, position, instance_name) in query.iter(&ecs) {
|
||||||
if instance_name != &bot_instance_name {
|
if instance_name != &bot_instance_name {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
collections::HashSet,
|
collections::HashSet,
|
||||||
sync::Arc,
|
sync::Arc,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
from lib.utils import padded_hex, to_snake_case, to_camel_case, get_dir_location
|
from lib.utils import to_snake_case, to_camel_case, get_dir_location
|
||||||
from lib.code.utils import burger_type_to_rust_type, write_packet_file
|
from lib.code.utils import burger_type_to_rust_type, write_packet_file
|
||||||
from lib.mappings import Mappings
|
from lib.mappings import Mappings
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
@ -75,14 +75,14 @@ def set_packets(packets_report):
|
||||||
code.append(f"declare_state_packets!({to_camel_case(state)}Packet,")
|
code.append(f"declare_state_packets!({to_camel_case(state)}Packet,")
|
||||||
code.append(" Clientbound => [")
|
code.append(" Clientbound => [")
|
||||||
for packet_id, packet_name in enumerate(clientbound_packets):
|
for packet_id, packet_name in enumerate(clientbound_packets):
|
||||||
code.append(f" {packet_name}, // {padded_hex(packet_id)}")
|
code.append(f" {packet_name},")
|
||||||
expected_packet_module_names.add(
|
expected_packet_module_names.add(
|
||||||
get_packet_module_name(packet_name, "clientbound")
|
get_packet_module_name(packet_name, "clientbound")
|
||||||
)
|
)
|
||||||
code.append(" ],")
|
code.append(" ],")
|
||||||
code.append(" Serverbound => [")
|
code.append(" Serverbound => [")
|
||||||
for packet_id, packet_name in enumerate(serverbound_packets):
|
for packet_id, packet_name in enumerate(serverbound_packets):
|
||||||
code.append(f" {packet_name}, // {padded_hex(packet_id)}")
|
code.append(f" {packet_name},")
|
||||||
expected_packet_module_names.add(
|
expected_packet_module_names.add(
|
||||||
get_packet_module_name(packet_name, "serverbound")
|
get_packet_module_name(packet_name, "serverbound")
|
||||||
)
|
)
|
||||||
|
|
|
@ -135,25 +135,37 @@ def get_mappings_for_version(version_id: str):
|
||||||
return Mappings.parse(mappings_text)
|
return Mappings.parse(mappings_text)
|
||||||
|
|
||||||
|
|
||||||
def get_yarn_versions():
|
def get_fabric_data(version_id: str):
|
||||||
# https://meta.fabricmc.net/v2/versions/yarn
|
# https://meta.fabricmc.net/v2/versions/yarn
|
||||||
if not os.path.exists(get_dir_location("__cache__/yarn_versions.json")):
|
path = get_dir_location(f"__cache__/fabric-{version_id}.json")
|
||||||
print("\033[92mDownloading yarn versions...\033[m")
|
|
||||||
yarn_versions_data = requests.get(
|
if not os.path.exists(path):
|
||||||
"https://meta.fabricmc.net/v2/versions/yarn"
|
print(f"\033[92mDownloading Fabric metadata for {version_id}...\033[m")
|
||||||
).json()
|
url = f"https://meta.fabricmc.net/v1/versions/loader/{version_id}"
|
||||||
with open(get_dir_location("__cache__/yarn_versions.json"), "w") as f:
|
yarn_versions_data = requests.get(url).json()
|
||||||
|
with open(path, "w") as f:
|
||||||
json.dump(yarn_versions_data, f)
|
json.dump(yarn_versions_data, f)
|
||||||
else:
|
else:
|
||||||
with open(get_dir_location("__cache__/yarn_versions.json"), "r") as f:
|
with open(path, "r") as f:
|
||||||
yarn_versions_data = json.load(f)
|
yarn_versions_data = json.load(f)
|
||||||
return yarn_versions_data
|
return yarn_versions_data
|
||||||
|
|
||||||
|
|
||||||
def get_yarn_data(version_id: str):
|
def get_latest_fabric_api_version():
|
||||||
for version in get_yarn_versions():
|
path = get_dir_location("__cache__/fabric-api-maven-metadata.xml")
|
||||||
if version["gameVersion"] == version_id:
|
|
||||||
return version
|
if not os.path.exists(path):
|
||||||
|
print("\033[92mDownloading Fabric API metadata...\033[m")
|
||||||
|
url = "https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api/maven-metadata.xml"
|
||||||
|
maven_metadata_xml = requests.get(url).text
|
||||||
|
with open(path, "w") as f:
|
||||||
|
json.dump(maven_metadata_xml, f)
|
||||||
|
else:
|
||||||
|
with open(path, "r") as f:
|
||||||
|
maven_metadata_xml = json.load(f)
|
||||||
|
|
||||||
|
tree = ET.ElementTree(ET.fromstring(maven_metadata_xml))
|
||||||
|
return tree.find(".//latest").text
|
||||||
|
|
||||||
|
|
||||||
def get_fabric_api_versions():
|
def get_fabric_api_versions():
|
||||||
|
@ -210,6 +222,7 @@ def clear_version_cache():
|
||||||
"yarn_versions.json",
|
"yarn_versions.json",
|
||||||
"fabric_api_versions.json",
|
"fabric_api_versions.json",
|
||||||
"fabric_loader_versions.json",
|
"fabric_loader_versions.json",
|
||||||
|
"fabric-api-maven-metadata.xml",
|
||||||
]
|
]
|
||||||
for file in files:
|
for file in files:
|
||||||
if os.path.exists(get_dir_location(f"__cache__/{file}")):
|
if os.path.exists(get_dir_location(f"__cache__/{file}")):
|
||||||
|
|
|
@ -1,11 +1,14 @@
|
||||||
# Extracting data from the Minecraft jars
|
# Extracting data from the Minecraft jars
|
||||||
|
|
||||||
|
import shutil
|
||||||
from lib.download import (
|
from lib.download import (
|
||||||
|
get_latest_fabric_api_version,
|
||||||
get_mappings_for_version,
|
get_mappings_for_version,
|
||||||
get_pumpkin_extractor,
|
get_pumpkin_extractor,
|
||||||
get_server_jar,
|
get_server_jar,
|
||||||
get_burger,
|
get_burger,
|
||||||
get_client_jar,
|
get_client_jar,
|
||||||
|
get_fabric_data,
|
||||||
)
|
)
|
||||||
from lib.utils import get_dir_location, to_camel_case, upper_first_letter
|
from lib.utils import get_dir_location, to_camel_case, upper_first_letter
|
||||||
from zipfile import ZipFile
|
from zipfile import ZipFile
|
||||||
|
@ -131,13 +134,51 @@ def get_pumpkin_data(version_id: str, category: str):
|
||||||
return json.load(f)
|
return json.load(f)
|
||||||
|
|
||||||
pumpkin_dir = get_pumpkin_extractor()
|
pumpkin_dir = get_pumpkin_extractor()
|
||||||
os.makedirs(f"{pumpkin_dir}/run", exist_ok=True)
|
|
||||||
with open(f"{pumpkin_dir}/run/eula.txt", "w") as f:
|
pumpkin_run_directory = f"{pumpkin_dir}/run"
|
||||||
|
|
||||||
|
if os.path.exists(pumpkin_run_directory):
|
||||||
|
shutil.rmtree(pumpkin_run_directory)
|
||||||
|
os.makedirs(pumpkin_run_directory, exist_ok=True)
|
||||||
|
with open(f"{pumpkin_run_directory}/eula.txt", "w") as f:
|
||||||
f.write("eula=true")
|
f.write("eula=true")
|
||||||
|
with open(f"{pumpkin_run_directory}/server.properties", "w") as f:
|
||||||
|
f.write("server-port=0")
|
||||||
|
|
||||||
|
fabric_data = get_fabric_data(version_id)[0]
|
||||||
|
fabric_api_version = get_latest_fabric_api_version()
|
||||||
|
|
||||||
|
gradle_properties = f"""# Done to increase the memory available to gradle.
|
||||||
|
org.gradle.jvmargs=-Xmx1G
|
||||||
|
org.gradle.parallel=true
|
||||||
|
# Fabric Properties
|
||||||
|
# check these on https://modmuss50.me/fabric.html
|
||||||
|
minecraft_version={version_id}
|
||||||
|
yarn_mappings={fabric_data["mappings"]["version"]}
|
||||||
|
loader_version={fabric_data["loader"]["version"]}
|
||||||
|
kotlin_loader_version=1.13.2+kotlin.2.1.20
|
||||||
|
# Mod Properties
|
||||||
|
mod_version=1.0-SNAPSHOT
|
||||||
|
maven_group=de.snowii
|
||||||
|
archives_base_name=extractor
|
||||||
|
fabric_version={fabric_api_version}
|
||||||
|
"""
|
||||||
|
with open(f"{pumpkin_dir}/gradle.properties", "w") as f:
|
||||||
|
f.write(gradle_properties)
|
||||||
|
|
||||||
|
# update the minecraft version dependency in src/main/resources/fabric.mod.json
|
||||||
|
fabric_mod_json_path = f"{pumpkin_dir}/src/main/resources/fabric.mod.json"
|
||||||
|
with open(fabric_mod_json_path, "r") as f:
|
||||||
|
fabric_mod_json = f.read()
|
||||||
|
with open(fabric_mod_json_path, "w") as f:
|
||||||
|
fabric_mod_json = fabric_mod_json.replace(
|
||||||
|
'"minecraft": "${minecraft_version}"', '"minecraft": "*"'
|
||||||
|
)
|
||||||
|
f.write(fabric_mod_json)
|
||||||
|
|
||||||
# run ./gradlew runServer until it logs "(pumpkin_extractor) Done"
|
# run ./gradlew runServer until it logs "(pumpkin_extractor) Done"
|
||||||
p = subprocess.Popen(
|
p = subprocess.Popen(
|
||||||
f"cd {pumpkin_dir} && ./gradlew runServer",
|
f"cd {pumpkin_dir} && ./gradlew clean && ./gradlew runServer",
|
||||||
stderr=subprocess.PIPE,
|
stderr=subprocess.PIPE,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
shell=True,
|
shell=True,
|
||||||
|
@ -149,7 +190,7 @@ def get_pumpkin_data(version_id: str, category: str):
|
||||||
if "[Server thread/INFO] (pumpkin_extractor) Done" in data:
|
if "[Server thread/INFO] (pumpkin_extractor) Done" in data:
|
||||||
print("Pumpkin extractor done")
|
print("Pumpkin extractor done")
|
||||||
break
|
break
|
||||||
if data == b"":
|
if data == "":
|
||||||
break
|
break
|
||||||
|
|
||||||
p.terminate()
|
p.terminate()
|
||||||
|
|
|
@ -57,9 +57,10 @@ print('Generating registries...')
|
||||||
import genregistries
|
import genregistries
|
||||||
genregistries.generate(new_version_id)
|
genregistries.generate(new_version_id)
|
||||||
|
|
||||||
print('Generating entity metadata...')
|
print('Generating entity data...')
|
||||||
burger_entities_data = new_burger_data[0]['entities']
|
burger_entities_data = new_burger_data[0]['entities']
|
||||||
lib.code.entity.generate_entity_metadata(burger_entities_data, new_mappings)
|
lib.code.entity.generate_entity_metadata(burger_entities_data, new_mappings)
|
||||||
|
lib.code.entity.generate_entity_dimensions(burger_entities_data)
|
||||||
|
|
||||||
print('Generating item components...')
|
print('Generating item components...')
|
||||||
lib.code.item_components.generate(new_version_id)
|
lib.code.item_components.generate(new_version_id)
|
||||||
|
|
Loading…
Add table
Reference in a new issue