diff --git a/src/main/java/cn/nukkit/GameVersion.java b/src/main/java/cn/nukkit/GameVersion.java index f130933e609..15795fec566 100644 --- a/src/main/java/cn/nukkit/GameVersion.java +++ b/src/main/java/cn/nukkit/GameVersion.java @@ -54,6 +54,7 @@ public enum GameVersion { V1_21_0(685, "1.21.0", "1.21"), V1_21_2(686, "1.21.2"), V1_21_20(712, "1.21.20"), + V1_21_30(729, "1.21.30"), ; private static GameVersion FEATURE_VERSION = GameVersion.V1_18_0; diff --git a/src/main/java/cn/nukkit/Player.java b/src/main/java/cn/nukkit/Player.java index ee9e4b96eb1..b3030602d70 100644 --- a/src/main/java/cn/nukkit/Player.java +++ b/src/main/java/cn/nukkit/Player.java @@ -322,7 +322,7 @@ public class Player extends EntityHuman implements CommandSender, InventoryHolde protected boolean swinging; protected int swingTime; - protected int damageNearbyMobsTick; + public int damageNearbyMobsTick; protected int shieldBlockingTick; protected int prevShieldBlockingTick; @@ -6400,6 +6400,12 @@ public void openSignEditor(BlockVector3 pos, boolean front) { public void playEmote(String emoteId, long entityRuntimeId, int flags) { } + /** + * @since 1.21.30 + */ + public void playEmote(String emoteId, long entityRuntimeId, int flags, int emoteTicks) { + } + /** * @since 1.19.10 */ diff --git a/src/main/java/cn/nukkit/block/BlockWallCobblestone.java b/src/main/java/cn/nukkit/block/BlockWallCobblestone.java index c0f5855363a..14b5d02cbe9 100644 --- a/src/main/java/cn/nukkit/block/BlockWallCobblestone.java +++ b/src/main/java/cn/nukkit/block/BlockWallCobblestone.java @@ -81,20 +81,20 @@ public float getHardness() { case TYPE_STONE_BRICK: case TYPE_MOSSY_STONE_BRICK: case TYPE_PRISMARINE: - if (ENABLE_BLOCK_DESTROY_SPEED_COMPATIBILITY /*|| V1_21_30.isAvailable()*/) { + if (ENABLE_BLOCK_DESTROY_SPEED_COMPATIBILITY || V1_21_30.isAvailable()) { return 1.5f; } break; case TYPE_SANDSTONE: case TYPE_RED_SANDSTONE: - if (ENABLE_BLOCK_DESTROY_SPEED_COMPATIBILITY /*|| V1_21_30.isAvailable()*/) { + if (ENABLE_BLOCK_DESTROY_SPEED_COMPATIBILITY || V1_21_30.isAvailable()) { return 0.8f; } break; case TYPE_END_BRICK: -// if (V1_21_30.isAvailable()) { -// return 3; -// } + if (V1_21_30.isAvailable()) { + return 3; + } break; } return 2; diff --git a/src/main/java/cn/nukkit/block/Blocks.java b/src/main/java/cn/nukkit/block/Blocks.java index 216fbda62a6..0a4f6340129 100644 --- a/src/main/java/cn/nukkit/block/Blocks.java +++ b/src/main/java/cn/nukkit/block/Blocks.java @@ -1315,7 +1315,7 @@ private static void registerComplexAliases() { registerComplexAlias(ItemBlockNames.CHISELED_QUARTZ_BLOCK, QUARTZ_BLOCK, BlockQuartz.CHISELED, V1_21_20); registerComplexAlias(ItemBlockNames.QUARTZ_PILLAR, QUARTZ_BLOCK, BlockQuartz.PILLAR, V1_21_20); registerComplexAlias(ItemBlockNames.SMOOTH_QUARTZ, QUARTZ_BLOCK, BlockQuartz.SMOOTH, V1_21_20); -/* + registerComplexAlias(ItemBlockNames.DEPRECATED_PURPUR_BLOCK_1, PURPUR_BLOCK, BlockPurpur.CHISELED, V1_21_30); registerComplexAlias(ItemBlockNames.PURPUR_PILLAR, PURPUR_BLOCK, BlockPurpur.PILLAR, V1_21_30); registerComplexAlias(ItemBlockNames.DEPRECATED_PURPUR_BLOCK_2, PURPUR_BLOCK, BlockPurpur.SMOOTH, V1_21_30); @@ -1348,7 +1348,7 @@ private static void registerComplexAliases() { registerComplexAlias(ItemBlockNames.LAB_TABLE, CHEMISTRY_TABLE, BlockChemistryTable.TYPE_LAB_TABLE, V1_21_30); registerComplexAlias(ItemBlockNames.UNDERWATER_TNT, TNT, BlockTNT.ALLOW_UNDERWATER_BIT, V1_21_30); -*/ + } private static Class registerBlock(String blockName, String itemName, int id, Class clazz) { diff --git a/src/main/java/cn/nukkit/entity/attribute/Attribute.java b/src/main/java/cn/nukkit/entity/attribute/Attribute.java index 787f109ffdf..88ec249856a 100644 --- a/src/main/java/cn/nukkit/entity/attribute/Attribute.java +++ b/src/main/java/cn/nukkit/entity/attribute/Attribute.java @@ -20,7 +20,9 @@ public class Attribute implements AttributeID { private final int id; private final String name; + private float defaultMinValue; private float minValue; + private float defaultMaxValue; private float maxValue; private float defaultValue; private float currentValue; @@ -37,7 +39,9 @@ public class Attribute implements AttributeID { Attribute(int id, String name, float minValue, float maxValue, float defaultValue, RedefinitionMode redefinitionMode, boolean shouldSend) { this.id = id; this.name = name; + this.defaultMinValue = minValue; this.minValue = minValue; + this.defaultMaxValue = maxValue; this.maxValue = maxValue; this.defaultValue = defaultValue; this.redefinitionMode = redefinitionMode; @@ -48,11 +52,13 @@ public class Attribute implements AttributeID { this.calculatedValues = new float[3]; } - private Attribute(int id, String name, float minValue, float maxValue, float defaultValue, float currentValue, RedefinitionMode redefinitionMode, boolean shouldSend, + private Attribute(int id, String name, float defaultMinValue, float minValue, float defaultMaxValue, float maxValue, float defaultValue, float currentValue, RedefinitionMode redefinitionMode, boolean shouldSend, EnumMap> modifiersByOperation, Object2ObjectArrayMap modifiersById, float[] calculatedValues, boolean dirty) { this.id = id; this.name = name; + this.defaultMinValue = defaultMinValue; this.minValue = minValue; + this.defaultMaxValue = defaultMaxValue; this.maxValue = maxValue; this.defaultValue = defaultValue; this.currentValue = currentValue; @@ -82,6 +88,18 @@ public static Attribute getAttributeByName(String name) { return Attributes.getAttribute(name); } + public float getDefaultMinValue() { + return this.defaultMinValue; + } + + public Attribute setDefaultMinValue(float defaultMinValue) { + if (defaultMinValue > this.getDefaultMaxValue()) { + throw new IllegalArgumentException("Value " + defaultMinValue + " is bigger than the maxValue!"); + } + this.defaultMinValue = defaultMinValue; + return this; + } + public float getMinValue() { return this.minValue; } @@ -94,6 +112,18 @@ public Attribute setMinValue(float minValue) { return this; } + public float getDefaultMaxValue() { + return this.defaultMaxValue; + } + + public Attribute setDefaultMaxValue(float defaultMaxValue) { + if (defaultMaxValue < this.getDefaultMinValue()) { + throw new IllegalArgumentException("Value " + defaultMaxValue + " is bigger than the minValue!"); + } + this.defaultMaxValue = defaultMaxValue; + return this; + } + public float getMaxValue() { return this.maxValue; } @@ -111,7 +141,7 @@ public float getDefaultValue() { } public Attribute setDefaultValue(float defaultValue) { - if (defaultValue > this.getMaxValue() || defaultValue < this.getMinValue()) { + if (defaultValue > this.getDefaultMaxValue() || defaultValue < this.getDefaultMinValue()) { throw new IllegalArgumentException("Value " + defaultValue + " exceeds the range!"); } this.defaultValue = defaultValue; @@ -169,7 +199,7 @@ public Attribute copy() { modifiersByOperation.put(entry.getKey(), new HashSet<>(modifiers)); } } - return new Attribute(id, name, minValue, maxValue, defaultValue, currentValue, redefinitionMode, shouldSend, + return new Attribute(id, name, defaultMinValue, minValue, defaultMaxValue, maxValue, defaultValue, currentValue, redefinitionMode, shouldSend, modifiersByOperation, modifiersById.clone(), calculatedValues.clone(), dirty); } diff --git a/src/main/java/cn/nukkit/entity/passive/EntityAbstractHorse.java b/src/main/java/cn/nukkit/entity/passive/EntityAbstractHorse.java index 0b57ba649b7..b6e1cc40333 100644 --- a/src/main/java/cn/nukkit/entity/passive/EntityAbstractHorse.java +++ b/src/main/java/cn/nukkit/entity/passive/EntityAbstractHorse.java @@ -359,7 +359,7 @@ protected DataPacket createAddEntityPacket() { int maxHealth = getMaxHealth(); float jumpStrength = getJumpStrength(); addEntity.attributes = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), Attribute.getAttribute(Attribute.MOVEMENT).setDefaultValue(movementSpeed).setValue(movementSpeed), Attribute.getAttribute(Attribute.HORSE_JUMP_STRENGTH).setDefaultValue(jumpStrength).setValue(jumpStrength), }; @@ -377,7 +377,7 @@ public boolean setHealth(float health) { packet.entityId = getId(); int maxHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); return true; @@ -395,7 +395,7 @@ public void setMaxHealth(int maxHealth) { packet.entityId = getId(); int maximumHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); } diff --git a/src/main/java/cn/nukkit/entity/passive/EntityCamel.java b/src/main/java/cn/nukkit/entity/passive/EntityCamel.java index b198bc1854d..f1bcee09dd1 100644 --- a/src/main/java/cn/nukkit/entity/passive/EntityCamel.java +++ b/src/main/java/cn/nukkit/entity/passive/EntityCamel.java @@ -162,7 +162,7 @@ protected DataPacket createAddEntityPacket() { int maxHealth = getMaxHealth(); addEntity.attributes = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), Attribute.getAttribute(Attribute.MOVEMENT).setDefaultValue(movementSpeed).setValue(movementSpeed), }; @@ -179,7 +179,7 @@ public boolean setHealth(float health) { packet.entityId = getId(); int maxHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); return true; @@ -197,7 +197,7 @@ public void setMaxHealth(int maxHealth) { packet.entityId = getId(); int maximumHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); } diff --git a/src/main/java/cn/nukkit/entity/passive/EntityLlama.java b/src/main/java/cn/nukkit/entity/passive/EntityLlama.java index 4718d10bd4a..d34d35c5bf2 100644 --- a/src/main/java/cn/nukkit/entity/passive/EntityLlama.java +++ b/src/main/java/cn/nukkit/entity/passive/EntityLlama.java @@ -194,7 +194,7 @@ protected DataPacket createAddEntityPacket() { int maxHealth = getMaxHealth(); addEntity.attributes = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; return addEntity; @@ -210,7 +210,7 @@ public boolean setHealth(float health) { packet.entityId = getId(); int maxHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); return true; @@ -228,7 +228,7 @@ public void setMaxHealth(int maxHealth) { packet.entityId = getId(); int maximumHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); } diff --git a/src/main/java/cn/nukkit/entity/passive/EntityPig.java b/src/main/java/cn/nukkit/entity/passive/EntityPig.java index 24eaba5be8e..a9f15ee3124 100644 --- a/src/main/java/cn/nukkit/entity/passive/EntityPig.java +++ b/src/main/java/cn/nukkit/entity/passive/EntityPig.java @@ -114,7 +114,7 @@ protected DataPacket createAddEntityPacket() { int maxHealth = getMaxHealth(); addEntity.attributes = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; return addEntity; @@ -130,7 +130,7 @@ public boolean setHealth(float health) { packet.entityId = getId(); int maxHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); return true; @@ -148,7 +148,7 @@ public void setMaxHealth(int maxHealth) { packet.entityId = getId(); int maximumHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); } diff --git a/src/main/java/cn/nukkit/entity/passive/EntityStrider.java b/src/main/java/cn/nukkit/entity/passive/EntityStrider.java index b972ee08ef9..c8c77a6b57e 100644 --- a/src/main/java/cn/nukkit/entity/passive/EntityStrider.java +++ b/src/main/java/cn/nukkit/entity/passive/EntityStrider.java @@ -100,7 +100,7 @@ protected DataPacket createAddEntityPacket() { int maxHealth = getMaxHealth(); addEntity.attributes = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; return addEntity; @@ -116,7 +116,7 @@ public boolean setHealth(float health) { packet.entityId = getId(); int maxHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); return true; @@ -134,7 +134,7 @@ public void setMaxHealth(int maxHealth) { packet.entityId = getId(); int maximumHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); } diff --git a/src/main/java/cn/nukkit/entity/passive/EntityTraderLlama.java b/src/main/java/cn/nukkit/entity/passive/EntityTraderLlama.java index 71ea19cf918..8066b2beb2e 100644 --- a/src/main/java/cn/nukkit/entity/passive/EntityTraderLlama.java +++ b/src/main/java/cn/nukkit/entity/passive/EntityTraderLlama.java @@ -182,7 +182,7 @@ protected DataPacket createAddEntityPacket() { int maxHealth = getMaxHealth(); addEntity.attributes = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; return addEntity; @@ -198,7 +198,7 @@ public boolean setHealth(float health) { packet.entityId = getId(); int maxHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maxHealth).setDefaultMaxValue(maxHealth).setDefaultValue(maxHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); return true; @@ -216,7 +216,7 @@ public void setMaxHealth(int maxHealth) { packet.entityId = getId(); int maximumHealth = getMaxHealth(); packet.entries = new Attribute[]{ - Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), + Attribute.getAttribute(Attribute.HEALTH).setMaxValue(maximumHealth).setDefaultMaxValue(maximumHealth).setDefaultValue(maximumHealth).setValue(getHealth()), }; Server.broadcastPacket(getViewers().values(), packet); } diff --git a/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java b/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java index d37acb9a06b..5ba67c0f836 100644 --- a/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java +++ b/src/main/java/cn/nukkit/event/entity/EntityDamageEvent.java @@ -270,6 +270,7 @@ public enum DamageCause { SONIC_BOOM, CAMPFIRE, SOUL_CAMPFIRE, + MACE_SMASH, /** * Plugins */ diff --git a/src/main/java/cn/nukkit/item/ItemTrident.java b/src/main/java/cn/nukkit/item/ItemTrident.java index 30fa55d6f10..2c669db4949 100644 --- a/src/main/java/cn/nukkit/item/ItemTrident.java +++ b/src/main/java/cn/nukkit/item/ItemTrident.java @@ -67,7 +67,18 @@ public boolean onRelease(Player player, int ticksUsed) { return false; } - if (this.hasEnchantment(Enchantment.RIPTIDE)) { + int riptide = getEnchantmentLevel(Enchantment.RIPTIDE); + if (riptide > 0) { + if (player.getProtocol() >= 729 + && (player.isInsideOfWater(false) || player.level.isRaining() && player.level.canBlockSeeSky(player.getEyePosition())) + && player.setDataFlag(Entity.DATA_FLAG_SPIN_ATTACK, true)) { + player.damageNearbyMobsTick = 20; + player.level.addLevelSoundEvent(player.add(0, player.getHeight() * 0.5f, 0), switch (riptide) { + case 1 -> LevelSoundEventPacket.SOUND_ITEM_TRIDENT_RIPTIDE_1; + case 2 -> LevelSoundEventPacket.SOUND_ITEM_TRIDENT_RIPTIDE_2; + default -> LevelSoundEventPacket.SOUND_ITEM_TRIDENT_RIPTIDE_3; + }); + } return true; } diff --git a/src/main/java/cn/nukkit/level/GlobalBlockPaletteInterface.java b/src/main/java/cn/nukkit/level/GlobalBlockPaletteInterface.java index c38f58607af..c72f78953bb 100644 --- a/src/main/java/cn/nukkit/level/GlobalBlockPaletteInterface.java +++ b/src/main/java/cn/nukkit/level/GlobalBlockPaletteInterface.java @@ -58,6 +58,7 @@ enum StaticVersion { V1_20_80(671, false), V1_21_0(685, false), V1_21_20(712, false), + V1_21_30(729, false), ; private static final StaticVersion MINIMUM_AVAILABLE_VERSION = V1_18_30; diff --git a/src/main/java/cn/nukkit/network/protocol/DisconnectPacket.java b/src/main/java/cn/nukkit/network/protocol/DisconnectPacket.java index bbef61448bc..a6282a939ba 100644 --- a/src/main/java/cn/nukkit/network/protocol/DisconnectPacket.java +++ b/src/main/java/cn/nukkit/network/protocol/DisconnectPacket.java @@ -126,6 +126,7 @@ public class DisconnectPacket extends DataPacket { public static final int REASON_CONN_NOT_LOGGED_IN = 114; public static final int REASON_CONN_CLIENT_SIGNALING_ERROR = 115; public static final int REASON_SUB_CLIENT_LOGIN_DISABLED = 116; + public static final int REASON_DEEP_LINK_TRYING_TO_OPEN_DEMO_WORLD_WHILE_SIGNED_IN = 117; public int reason = REASON_UNKNOWN; public boolean hideDisconnectionScreen; diff --git a/src/main/java/cn/nukkit/network/protocol/LevelSoundEventPacket.java b/src/main/java/cn/nukkit/network/protocol/LevelSoundEventPacket.java index 5965a61c2ef..f999b0feae3 100644 --- a/src/main/java/cn/nukkit/network/protocol/LevelSoundEventPacket.java +++ b/src/main/java/cn/nukkit/network/protocol/LevelSoundEventPacket.java @@ -568,6 +568,7 @@ public class LevelSoundEventPacket extends DataPacket { public static final int SOUND_RECORD_CREATOR_MUSIC_BOX = 528; public static final int SOUND_RECORD_PRECIPICE = 529; public static final int SOUND_VAULT_REJECT_REWARDED_PLAYER = 530; + public static final int SOUND_IMITATE_DROWNED = 531; public int sound; public float x; diff --git a/src/main/java/cn/nukkit/network/protocol/ProtocolInfo.java b/src/main/java/cn/nukkit/network/protocol/ProtocolInfo.java index c0a7bb5a70f..be7dd725909 100644 --- a/src/main/java/cn/nukkit/network/protocol/ProtocolInfo.java +++ b/src/main/java/cn/nukkit/network/protocol/ProtocolInfo.java @@ -261,6 +261,8 @@ public interface ProtocolInfo { int JIGSAW_STRUCTURE_DATA_PACKET = 0x139; // 313 c int CURRENT_STRUCTURE_FEATURE_PACKET = 0x13a; // 314 c int SERVERBOUND_DIAGNOSTICS_PACKET = 0x13b; // 315 s + int CAMERA_AIM_ASSIST_PACKET = 0x13c; // 316 c + int CONTAINER_REGISTRY_CLEANUP_PACKET = 0x13d; // 317 c int COUNT = 1024; diff --git a/src/main/java/cn/nukkit/network/protocol/TransferPacket.java b/src/main/java/cn/nukkit/network/protocol/TransferPacket.java index da42c57af57..6e13c99851d 100644 --- a/src/main/java/cn/nukkit/network/protocol/TransferPacket.java +++ b/src/main/java/cn/nukkit/network/protocol/TransferPacket.java @@ -9,6 +9,7 @@ public class TransferPacket extends DataPacket { public String address; // Server address public int port = 19132; // Server port + public boolean reloadWorld; @Override public void decode() { diff --git a/src/main/java/cn/nukkit/network/protocol/types/ContainerIds.java b/src/main/java/cn/nukkit/network/protocol/types/ContainerIds.java index 06861e96700..6caeac20601 100644 --- a/src/main/java/cn/nukkit/network/protocol/types/ContainerIds.java +++ b/src/main/java/cn/nukkit/network/protocol/types/ContainerIds.java @@ -15,4 +15,6 @@ public interface ContainerIds { int HOTBAR = 122; int FIXED_INVENTORY = 123; int UI = 124; + int CONTAINER_ID_REGISTRY = 125; + int CONTAINER_ID_REGISTRY_INVENTORY = 126; } diff --git a/src/main/resources/vanilla_texts/en_US.lang b/src/main/resources/vanilla_texts/en_US.lang index 8ec32897a5b..e323c93c7ee 100644 --- a/src/main/resources/vanilla_texts/en_US.lang +++ b/src/main/resources/vanilla_texts/en_US.lang @@ -964,6 +964,7 @@ commands.generic.entity.differentDimension=Target entity cannot be in a differen commands.generic.entity.invalidType=Entity type '%1$s' is invalid commands.generic.entity.invalidUuid=The entity UUID provided is in an invalid format commands.generic.entity.notFound=That entity cannot be found +commands.generic.error.permissions=Incorrect permission levels. %s is a %s level command. ##1: command name ##2: command level eg. 'host', 'admin', 'owner', 'gamedirectors' commands.generic.exception=An unknown error occurred while attempting to perform this command commands.generic.invalidAgentType=Type argument applied to Agent-only selector commands.generic.invalidcontext=Invalid context provided for given command type @@ -1168,10 +1169,12 @@ commands.recipes.playerHasRecipe=%1$s already has recipe unlocked: %2$s commands.recipes.playerDoesNotHaveRecipe=%1$s does not have the recipe: %2$s commands.recipes.notFound=The recipe could not be found. commands.recipes.notUnlockable=The recipe is not unlockable in the recipe book. +commands.reload.all.description=Reloads all function and script files from all behavior packs, or optionally reloads the world and all resource and behavior packs. commands.reload.description=Reloads all function and script files from all behavior packs. -commands.reload.editor.description=Reloads all function and script files from all behavior packs, or optionally restarts the client to reload all resources. +commands.reload.started=Reloading the world has been started. commands.reload.success=Function and script files have been reloaded. commands.reload.error=An unexpected error occurred. +commands.reload.onlyHost=Only host player can reload the world. commands.replaceitem.description=Replaces items in inventories. commands.replaceitem.failed=Could not replace %s slot %d with %d * %s commands.replaceitem.keepFailed=There is already an item occupying %s slot %d. @@ -1905,6 +1908,8 @@ createWorldScreen.experimentalVillagerTradesRebalance=Villager Trade Rebalancing createWorldScreen.experimentalVillagerTradesRebalanceDescription=Contains updated trades for villagers for the purpose of rebalancing createWorldScreen.experimentalArmadillo=Armadillo and Wolf Armor createWorldScreen.experimentalArmadilloDescription=Get to know the Armadillo and gear up your Wolf with the new Wolf Armor! +createWorldScreen.experimentalBundles=Bundles +createWorldScreen.experimentalBundlesDescription=Lets you craft and use the Bundle item createWorldScreen.worldPreferences=World Preferences createWorldScreen.startWithMap=Starting Map createWorldScreen.defaultName=My World @@ -2067,6 +2072,8 @@ realmsSharingScreen.failedSignInModalMessage=You need to be signed in to a Micro realmsSharingScreen.invalidPermissionTitle=Invalid permissions realmsSharingScreen.unexpectedServerResponseTitle=Realms Error realmsSharingScreen.unexpectedServerResponseMessage=Sorry, we had a problem connecting to the Realm. Please try again later. +realmsSharingScreen.inviteLinkNotFoundTitle=Realms Error +realmsSharingScreen.inviteLinkNotFoundMessage=This invite link is invalid. realmsCreateScreen.title.create=Create a Realm Server realmsCreateScreen.title.extend=Extend Your Realm @@ -2466,29 +2473,7 @@ realmsSettingsScreen.extendConsumableButton.180=Extend by 180 Days xblLogin.LoginMessageTitle=Microsoft Account xblLogin.LoginMessage=Connecting… -xbl.savePurchase.description.line1=Do you want to play with whatever you buy from any Minecraft Store enabled system? Sign in with a FREE Microsoft account and sync your purchased Skins, Textures, Maps, and Mash-ups to use and play in Minecraft! -xbl.savePurchase.description.line2=If you lose your system or uninstall Minecraft, your purchases will still be synced and accessible on any system when you use your Microsoft account. -xbl.savePurchase.leaveOnDevice=Leave on Device -xbl.savePurchase.title=Save purchases to a Microsoft Account? xbl.savePurchase.saveButton=Save to Microsoft Account -xbl.savePurchase.toast.title=Success! -xbl.savePurchase.toast.message=Purchases synced to Microsoft Account! -xbl.savePurchase.inProgress.message=Transferring purchases to Microsoft Account... - -xbl.syncIAP.title=Sync purchases to your Microsoft Account? -xbl.syncIAP.description=Sign in to a Microsoft Account to sync your Skins, Texture Packs, Worlds, and Mash-ups. They will be there for you on any device where you play Minecraft. -xbl.syncIAP.syncNow=Sync Now... -xbl.syncIAP.syncLaterEllipsis=Sync Later... -xbl.syncIAP.syncLater=Sync Later -xbl.syncIAP.toast.title=Success! -xbl.syncIAP.toast.message=Purchases synced to your Microsoft Account! -xbl.syncIAP.inProgress.message=Syncing purchases to your Microsoft Account… -xbl.syncIAP.skipSignIn.prompt.description=This Microsoft Account will not be the primary account for this device if you do not sync this device's purchases to this account. You will not automatically sign in when you start Minecraft. - -xbl.syncIAP.confirmSync.prompt.title=Sync to %s? -xbl.syncIAP.confirmSync.prompt.description.line1=Would you like to sync your app store purchases to %s? -xbl.syncIAP.confirmSync.prompt.description.line2=Packs purchased outside Minecraft Marketplace can only be synced once. They will continue to be available to anyone who plays on this device. -xbl.syncIAP.confirmSync.prompt.yes=Yes, Sync My Purchases xbl.marketplace.account.error.body.nobutton=There is an error with your account. You will be unable to use the marketplace until we have resolved the issue. If this issue persists for several days please contact support. @@ -2510,8 +2495,6 @@ store.sign_in_warning.no_xbl_and_local_content=You have previously downloaded co store.sign_in_warning.no_xbl_and_no_local_content.line1=Sign in now to save and share your purchases across platforms. Save purchases so they won't be lost if something happens to your system or if Minecraft is uninstalled. Access your purchased Marketplace content from any platform and use your customized characters across platforms. store.sign_in_warning.no_xbl_and_no_local_content.line2=Don't have a Microsoft account? Create one now - for free -xbl.skipSignIn.prompt.title=Temporary Account -xbl.skipSignIn.prompt.description=This Microsoft Account will not be the primary account for this device if you do not transfer this device's purchases to this account. You will not automatically sign in when you start Minecraft. xbl.signOut.title=Microsoft Account Purchases! xbl.signOut.message1=While you are signed out of your Microsoft Account you will not have access to the Minecoins and items you bought in the store. xbl.signOut.message2=Are you sure you want to do this? @@ -2624,6 +2607,8 @@ death.attack.inWall=%1$s suffocated in a wall death.attack.lava=%1$s tried to swim in lava death.attack.lava.player=%1$s tried to swim in lava to escape %2$s death.attack.lightningBolt=%1$s was struck by lightning +death.attack.maceSmash.player=%1$s was smashed by %2$s +death.attack.maceSmash.player.item=%1$s was smashed by %2$s with %3$s death.attack.magic=%1$s was killed by magic death.attack.magma=%1$s discovered the floor was lava death.attack.magma.player=%1$s walked on danger zone due to %2$s @@ -2813,6 +2798,8 @@ disconnectionScreen.clientsideGenerationDesync=Server and Client have different disconnectionScreen.editor.cannotUseRayTracing=Ray Tracing enabled resource packs are not yet compatible with Editor projects. disconnectionScreen.unexpectedPacket=Disconnected due to an unexpected type of packet received which cannot be processed. This could be due to a version mismatch or corruption at the networking level. disconnectionScreen.connectionLost=The connection to the host was lost. If that world is still being hosted, please check your internet connection and try to connect again. +disconnectionScreen.deepLink.TryingToOpenDemoWorldWhileSignedIn.title=Unable to load world. +disconnectionScreen.deepLink.TryingToOpenDemoWorldWhileSignedIn.body=Try opening this world in demo mode. disconnectionScreen.errorCode=Error Code: storageSpaceWarningScreen.frontend=You are almost out of data storage space! Minecraft has restricted access to this feature until you clear up additional storage space. @@ -3039,7 +3026,7 @@ entity.villager.librarian=Librarian entity.villager.shepherd=Shepherd entity.villager.tool=Tool Smith entity.villager.weapon=Weapon Smith -entity.villager.mason=Stone Mason +entity.villager.mason=Mason entity.villager.unskilled=Unskilled Villager entity.villager_v2.name=Villager entity.vindicator.name=Vindicator @@ -3418,7 +3405,7 @@ howtoplay.anvil.text.5=There is a chance that the Anvil will be damaged with eac howtoplay.armor=Armor howtoplay.armor.text.1=By wearing Armor, you can protect yourself from incoming damage. Your Armor level is represented by :armor: on the HUD, the higher the level, the less damage you will take. howtoplay.armor.header.1=Crafting -howtoplay.armor.text.2=Armor can be crafted from Leather, Iron, Gold, or Diamond. Chain Armor can be obtained through villager trading and loot from zombies and skeletons. +howtoplay.armor.text.2=Armor can be crafted from Leather, Iron, Gold, or Diamond. Chainmail Armor can be obtained through villager trading and loot from zombies and skeletons. howtoplay.armor.text.3=Equip Armor by opening your inventory and moving pieces of Armor to the appropriate slot next to your player skin. howtoplay.armor.text.4=Iron, Chain, and Gold Armor can be smelted into Iron or Gold Nuggets in a Furnace. howtoplay.armor.header.2=Shield @@ -3499,8 +3486,8 @@ howtoplay.blocks.text.7=§eTerracotta§f - This is found naturally in Badlands b howtoplay.blocks.text.8=§eMagma Block§f - This is found naturally in the Nether, it gives off a little light and will burn whoever steps on it. howtoplay.blocks.text.9=§eCoarse Dirt§f - This is almost like a normal Dirt Block but Grass can't grow on it. It can be found in Savanna and Mega Taiga biomes. -howtoplay.bookAndQuill=Book & Quill -howtoplay.bookAndQuill.text.1=The Book & Quill lets you record your adventures. Tell your story by entering text into the pages. You can even change the title and the author! Sign the Book & Quill to finalize your work. The Book & Quill will be editable until it is signed. +howtoplay.bookAndQuill=Book and Quill +howtoplay.bookAndQuill.text.1=The Book and Quill lets you record your adventures. Tell your story by entering text into the pages. You can even change the title and the author! Sign the Book and Quill to finalize your work. The Book and Quill will be editable until it is signed. howtoplay.brewingStand=Brewing Stand howtoplay.brewingStand.text.1=Brewing potions requires a Brewing Stand. Every potion starts off with a bottle of water, which is made by filling a Glass Bottle with water from a Cauldron or water source. @@ -3641,7 +3628,7 @@ howtoplay.camera.text.2=To take a picture from your point of view, press :_input howtoplay.camera.text.2.touch=To take a picture from your point of view, tap and hold, then release. howtoplay.camera.text.3=To take a selfie, place a camera and press :_input_key.use: on it. howtoplay.camera.text.3.touch=To take a selfie, place a camera and tap the Take Picture button. -howtoplay.camera.text.4=Pictures can be viewed in the Portfolio or inserted into the Book & Quill. +howtoplay.camera.text.4=Pictures can be viewed in the Portfolio or inserted into the Book and Quill. howtoplay.portfolio=Portfolio howtoplay.portfolio.title=How to Play: Portfolio @@ -3891,7 +3878,7 @@ howtoplay.minecoins.text.1=Explore a world of possibility with Minecoins: Minecr howtoplay.minecoins.text.2=Once redeemed, your Minecoins are linked to your Microsoft account, so you can access your coins and purchases on other supported devices, too! howtoplay.minecoins.button.text.1=Get Minecoins howtoplay.minecoins.header.1=Disclaimer -howtoplay.minecoins.text.3=*Minecoins require a version of Minecraft: Bedrock Edition with Minecraft Marketplace. Minecoins are not compatible on PlayStation®. For compatibility information see minecraft.net/minecoins  ### CertRequirement: [PlayStation®] +howtoplay.minecoins.text.3=*Minecoins require a version of Minecraft: Bedrock Edition with Minecraft Marketplace. Minecoins are not compatible on PlayStation®. For compatibility information see minecraft.net/minecoins ### CertRequirement: [PlayStation®] howtoplay.mining=Mining @@ -4293,7 +4280,7 @@ item.axolotlColorGold.name=Gold item.axolotlColorWild.name=Brown item.axolotlColorBlue.name=Blue item.golden_apple.name=Golden Apple -item.appleEnchanted.name=Enchanted Apple +item.appleEnchanted.name=Enchanted Golden Apple item.armadillo_scute.name=Armadillo Scute item.armor_stand.name=Armor Stand item.arrow.name=Arrow @@ -4624,7 +4611,7 @@ item.banner.half_vertical_right.red=Red Per Pale Inverted item.banner.half_vertical_right.silver=Light Gray Per Pale Inverted item.banner.half_vertical_right.white=White Per Pale Inverted item.banner.half_vertical_right.yellow=Yellow Per Pale Inverted -item.banner.illager_captain.name=Illager Banner +item.banner.illager_captain.name=Ominous Banner item.banner.lightBlue.name=Light Blue Banner item.banner.lime.name=Lime Banner item.banner.magenta.name=Magenta Banner @@ -5020,7 +5007,7 @@ item.boat.big_oak.name=Dark Oak Boat item.bone.name=Bone item.book.name=Book item.breeze_rod.name=Breeze Rod -item.chainmail_boots.name=Chain Boots +item.chainmail_boots.name=Chainmail Boots item.leather_boots.name=Leather Boots item.diamond_boots.name=Diamond Boots item.golden_boots.name=Golden Boots @@ -5120,18 +5107,18 @@ item.warped_fungus_on_a_stick.name=Warped Fungus on a Stick item.carrot.name=Carrot item.cauldron.name=Cauldron item.charcoal.name=Charcoal -item.chainmail_chestplate.name=Chain Chestplate +item.chainmail_chestplate.name=Chainmail Chestplate item.leather_chestplate.name=Leather Tunic item.diamond_chestplate.name=Diamond Chestplate item.golden_chestplate.name=Golden Chestplate item.iron_chestplate.name=Iron Chestplate item.chorus_fruit.name=Chorus Fruit item.chorus_fruit_popped.name=Popped Chorus Fruit -item.cooked_beef.name=Cooked Beef +item.cooked_beef.name=Steak item.cooked_chicken.name=Cooked Chicken item.cooked_porkchop.name=Cooked Porkchop item.chicken.name=Raw Chicken -item.clay_ball.name=Clay +item.clay_ball.name=Clay Ball item.clock.name=Clock item.coal.name=Coal item.comparator.name=Redstone Comparator @@ -5240,7 +5227,7 @@ item.golden_axe.name=Golden Axe item.iron_axe.name=Iron Axe item.stone_axe.name=Stone Axe item.wooden_axe.name=Wooden Axe -item.chainmail_helmet.name=Chain Helmet +item.chainmail_helmet.name=Chainmail Helmet item.leather_helmet.name=Leather Cap item.diamond_helmet.name=Diamond Helmet item.golden_helmet.name=Golden Helmet @@ -5272,7 +5259,7 @@ item.netherite_helmet.name=Netherite Helmet item.lead.name=Lead item.leather.name=Leather item.leaves.name=Leaves -item.chainmail_leggings.name=Chain Leggings +item.chainmail_leggings.name=Chainmail Leggings item.leather_leggings.name=Leather Pants item.diamond_leggings.name=Diamond Leggings item.golden_leggings.name=Golden Leggings @@ -5294,8 +5281,8 @@ item.map.exploration.village_desert.name=Desert Village Map item.map.exploration.jungle_temple.name=Jungle Explorer Map item.map.exploration.swamp_hut.name=Swamp Explorer Map item.map.exploration.trial_chambers.name=Trial Explorer Map -item.melon.name=Melon -item.milk.name=Milk +item.melon.name=Melon Slice +item.milk.name=Milk Bucket item.minecart.name=Minecart item.chest_minecart.name=Minecart with Chest item.command_block_minecart.name=Minecart with Command Block @@ -5375,7 +5362,7 @@ item.spawn_egg.entity.shulker.name=Shulker Spawn Egg item.spawn_egg.entity.endermite.name=Endermite Spawn Egg item.spawn_egg.entity.evocation_illager.name=Evoker Spawn Egg item.spawn_egg.entity.vex.name=Vex Spawn Egg -item.spawn_egg.entity.turtle.name=Sea Turtle Spawn Egg +item.spawn_egg.entity.turtle.name=Turtle Spawn Egg item.spawn_egg.entity.dolphin.name=Dolphin Spawn Egg item.spawn_egg.entity.phantom.name=Phantom Spawn Egg item.spawn_egg.entity.panda.name=Panda Spawn Egg @@ -5438,13 +5425,13 @@ item.record_creator.desc=Lena Raine - Creator item.record_creator_music_box.desc=Lena Raine - Creator (Music Box) item.record_precipice.desc=Aaron Cherof - Precipice item.redstone.name=Redstone Dust -item.reeds.name=Sugar Canes +item.reeds.name=Sugar Cane item.kelp.name=Kelp item.dried_kelp.name=Dried Kelp item.rotten_flesh.name=Rotten Flesh item.ruby.name=Ruby item.saddle.name=Saddle -item.wheat_seeds.name=Seeds +item.wheat_seeds.name=Wheat Seeds item.beetroot_seeds.name=Beetroot Seeds item.melon_seeds.name=Melon Seeds item.pumpkin_seeds.name=Pumpkin Seeds @@ -5462,7 +5449,7 @@ item.acacia_sign.name=Acacia Sign item.darkoak_sign.name=Dark Oak Sign item.crimson_sign.name=Crimson Sign item.warped_sign.name=Warped Sign -item.skull.char.name=Head +item.skull.char.name=Player Head item.skull.creeper.name=Creeper Head item.skull.dragon.name=Dragon Head item.skull.player.name=%s's Head @@ -5471,7 +5458,7 @@ item.skull.wither.name=Wither Skeleton Skull item.skull.zombie.name=Zombie Head item.slime_ball.name=Slimeball item.snowball.name=Snowball -item.speckled_melon.name=Glistering Melon +item.speckled_melon.name=Glistering Melon Slice item.spider_eye.name=Spider Eye item.stick.name=Stick item.string.name=String @@ -5491,7 +5478,7 @@ item.weathered_copper_door.name=Weathered Copper Door item.wind_charge.name=Wind Charge item.wheat.name=Wheat item.wolf_armor.name=Wolf Armor -item.writable_book.name=Book & Quill +item.writable_book.name=Book and Quill item.written_book.name=Written Book item.glowstone_dust.name=Glowstone Dust item.shulker_shell.name=Shulker Shell @@ -5502,6 +5489,16 @@ item.turtle_shell_piece.name=Turtle Scute item.phantom_membrane.name=Phantom Membrane item.sweet_berries.name=Sweet Berries item.suspicious_stew.name=Suspicious Stew +item.field_masoned_banner_pattern.name=Field Masoned Banner Pattern +item.creeper_banner_pattern.name=Creeper Charge Banner Pattern +item.flow_banner_pattern.name=Flow Banner Pattern +item.flower_banner_pattern.name=Flower Charge Banner Pattern +item.globe_banner_pattern.name=Globe Banner Pattern +item.guster_banner_pattern.name=Guster Banner Pattern +item.piglin_banner_pattern.name=Snout Banner Pattern +item.skull_banner_pattern.name=Skull Charge Banner Pattern +item.mojang_banner_pattern.name=Thing Banner Pattern +item.bordure_indented_banner_pattern.name=Bordure Indented Banner Pattern item.banner_pattern.bricks=Field Masoned item.banner_pattern.creeper=Creeper Charge item.banner_pattern.flow=Flow @@ -5648,7 +5645,7 @@ joincode.found.title=Join World joincode.found.message=Is this the world you were trying to join? joincode.found.host_name=Hosted By: %1 joincode.icon_text.null=Empty -joincode.icon_text.1=Book & Quill +joincode.icon_text.1=Book and Quill joincode.icon_text.2=Balloon joincode.icon_text.3=Rail joincode.icon_text.4=Alex @@ -5953,7 +5950,6 @@ map.position=Position: %s, %s, %s mcoServer.title=Minecraft Online World -menu.ai_lesson_crafter=Lesson Crafter menu.achievements=Achievements menu.convertingLevel=Expanding world menu.copyright=©Mojang AB @@ -6162,6 +6158,10 @@ options.chat.width=Width options.codeBuilder=Code Builder options.content_log_file=Enable Content Log File options.content_log_gui=Enable Content Log GUI +options.content_log_gui.level=GUI Log Level +options.content_log_gui.level.info=Info +options.content_log_gui.level.warn=Warn +options.content_log_gui.level.error=Error options.controller=Controller options.controllerLayout=Controller Layout options.controllerSettings=Controller Settings @@ -6294,14 +6294,14 @@ options.dev_displayMarketplaceDocumentId=Show Marketplace Document Id options.dev_addCoins=Add %s Coins options.dev_addCoinTitle=Add Coins options.dev_reset_entitlements=Reset All Entitlements -options.dev_reset_entitlements_loading=Resetting Entitlements, this dialog will close once the process finishes. You can close this window, but closing the game before this command finishes may result in unexpected behavior. -options.dev_reset_entitlements_error_unfinished=Warning, not all entitlements were properly deleted. Try running the command again, possibly after restarting the client. -options.dev_reset_entitlements_warning=Warning! This will delete all of your entitlements, including legacy entitlements that you may not be able to get back! This operation may take a while if you have a large number of entitlements. Are you sure you want to continue? +options.dev_reset_entitlements_loading=Resetting Entitlements, this dialog will close once the process finishes. You can close this window, but closing the game before this command finishes may result in unexpected behavior. +options.dev_reset_entitlements_error_unfinished=Warning, not all entitlements were properly deleted. Try running the command again, possibly after restarting the client. +options.dev_reset_entitlements_warning=Warning! This will delete all of your entitlements, including legacy entitlements that you may not be able to get back! This operation may take a while if you have a large number of entitlements. Are you sure you want to continue? options.dev_reset_entitlements_success=Entitlements successfully deleted. options.dev_currencyFailureWarning=The network call failed. Error: %s options.dev_currencyFailureWarningGeneric=The network call failed. Make sure you are logged into an allow-listed account. options.dev_reset_wallet=Reset Wallet -options.dev_allowlist_failure=Error! Operation has failed, double check to make sure this account is on the Allow List. +options.dev_allowlist_failure=Error! Operation has failed, double check to make sure this account is on the Allow List. options.discoveryEnvironment=Discovery Environment (Requires Restart) options.discoveryEnvironment.production=Production options.discoveryEnvironment.staging=Staging @@ -6321,7 +6321,6 @@ options.dev_realmsEndpoint=Realms Endpoint options.dev_realmsEndpointPayment=Realms Endpoint Payment options.dev_realmsRelyingParty=Realms Relying Party options.dev_realmsRelyingPartyPayment=Realms Relying Party Payment -options.dev_realms_stories=Enable Realms Stories options.dev_overrideXboxEnvironmentWindows=Override Xbox Sandbox (OS controlled on Windows) options.dev_overrideXboxEnvironment=Override Xbox Sandbox (requires restart) options.dev_xboxEnvironment=Xbox Sandbox Environment (requires restart) @@ -6332,6 +6331,11 @@ options.dev_experimentalTreatment=Override Experimental Treatments options.dev_sandboxRetail=Xforge Sandbox: Retail options.dev_sandboxDev=Xforge Sandbox: Dev options.dev_sandboxDevAchievement=Xforge Sandbox: Dev achievement +options.dev_showDiscoveryOverridePanel=Override Service Endpoints +options.dev_discoveryOverrideServiceName=Service Name (safety, persona, etc.) +options.dev_discoveryOverrideServiceBranch=Branch +options.dev_resetAllEndpointOverrides=Reset All Endpoints +options.dev_apply=Apply options.dev_displayTreatmentsPanel=Display Treatments options.dev_currentTreatmentsTitle=Current Treatments options.dev_unusedTreatmentsTitle=Unused Treatments @@ -6406,6 +6410,7 @@ options.dev_sunsetting_tier.two=Tier 2 - KitKat options.dev_sunsetting_tier.three=Tier 3 - FireTV options.dev_sunsetting_tier.four=Tier 4 - 1024MB options.dev_sunsetting_tier.five=Tier 5 - iOS 12 & Nougat +options.dev_sunsetting_tier.six=Tier 6 - iOS 13, Android 8, VR devices options.dev_sunsetting_tier.not_pending=Not Pending options.dev_gatherings_section=Gatherings options.dev_gatherings_enable=Enable Gatherings @@ -6630,7 +6635,8 @@ options.renderDistance.warning=This high render distance could cause a low frame options.raytracing.renderdistance.warning=This setting may cause performance issues while playing the game. options.resetSettings=Reset to Default options.resetSettings.popUp=Do you really want to reset the settings? -options.maxFramerate=Max Framerate (Experimental) +options.maxFramerate=Framerate Limit +options.maxFramerate.tooltip=Lower the game's maximum framerate to improve battery life and device health. Actual framerate may fall below the set limit. options.maxFramerateFormat=%s FPS options.perf_turtle=Performance Turtle options.msaa=Anti-Aliasing @@ -6798,6 +6804,7 @@ options.vsync.adaptive=Adaptive Vertical Sync options.websocketEncryption=Require Encrypted Websockets options.websocketEncryptionWarningLabel=Only disable this option if you are actively connecting to a known and safe application. options.filelocation.title=File Storage Location +options.filelocation.title.edu=Local Storage Location options.filelocation.external=External options.filelocation.appdata=Application options.filelocation.external.warning.title=Warning @@ -6958,26 +6965,12 @@ sunsetting.popup.title=This device is no longer supported. sunsetting.popup.moreInfo=More Info sunsetting.popup.dontshow=Don't show this again -sunsetting.popup.moreInfo.gearVR=For more information, please visit https://aka.ms/MinecraftSunsetting in any web browser. -sunsetting.popup.moreInfo.gearVR.geo=For more information, please visit https://aka.ms/MinecraftGeoSunsetting in any web browser. - -sunsetting.popup.pendingSunset.ios=Our ability to support this device is coming to an end. You will continue to receive updates until Feb. of 2024, when you will receive your final update for this device.%sAfter you receive the final update, you will still be able to play on your worlds, and access Marketplace purchases (including Minecoins), however you will no longer be able to make new purchases on this device. Realms managed from this device will continue to work for 6 months unless they are updated by the Realm owner on a different device. To cancel your realm subscription, you will need to do so in the Settings menu for Subscriptions on the device the Realm was created from. You will no longer receive the latest updates and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers.%sClick on the button for more information, including ways to move your world to a new device. -sunsetting.popup.pendingSunset.android=Our ability to support this device is coming to an end. You will continue to receive updates until Feb. of 2024, when you will receive your final update for this device.%sAfter you receive the final update, you will still be able to play on your worlds, and access Marketplace purchases (including Minecoins), however you will no longer be able to make new purchases on this device. Realms managed from this device will continue to work for 6 months unless they are updated by the Realm owner on a different device. To cancel your realm subscription, you will need to do so in your subscriptions in Google Play, you can access Google Play on any supported device or from PC where you are able to login to your account You will no longer receive the latest updates and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers.%sClick on the button for more information, including ways to move your world to a new device. -sunsetting.popup.pendingSunset.ios_android=Our ability to support this device is coming to an end. You will continue to receive updates until Nov. of 2022, whereupon you will receive your final update for this device. We deeply apologize for the inconvenience. %sAfter you receive the final update, you will still be able to play on your worlds, and access Marketplace purchases (including Minecoins). Realms managed from this device will continue to work for 6 months unless they are updated by the Realm owner on a different device. You will no longer receive the latest updates and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers. %sClick on the button for more information, including ways to move your worlds to a new device. -sunsetting.popup.sunset.ios_android=This device is no longer supported. You have received the final update for this device. From this point on you can keep building in your worlds, and your Marketplace purchases (including Minecoins) will continue to be available. Your Realms will continue to work unless they are updated by the Realm owner on a different device. You will no longer receive the latest updates, and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers. %sClick on the button for more information, including ways to move your worlds to a new device. We know this is an inconvenience - we deeply appreciate the time you spent with our game, and hope to see you again on an updated device. -sunsetting.popup.pendingSunset.gearvr_win10=Our ability to support this device is coming to an end. You will continue to receive updates until our next major release, whereupon you will receive your final update for this device. We deeply apologize for the inconvenience. %sAfter you receive the final update, you will still be able to play on your worlds and access Marketplace purchases (including Minecoins). However you will no longer have access to multiplayer or Realms from this device. You will no longer receive the latest updates, and will be unable to play with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers. %sClick on the button for more information, including ways to move your worlds to a new device. -sunsetting.popup.sunset.gearvr_win10=This device is no longer supported. You have received the final update for this device. From this point on you can keep building in your worlds, and your Marketplace purchases (including Minecoins) will continue to be available. However, you will no longer have access to multiplayer or Realms from this device. You will no longer receive the latest updates, and will be unable to play with devices which are continuing to receive updates. You will also not be able to connect to certain servers. -sunsetting.popup.pendingSunset.dx10=Our ability to support this graphics device is coming to an end. You will continue to receive updates until our next major release, whereupon you will receive your final update for this device. We deeply apologize for the inconvenience. %sAfter you receive the final update, you will still be able to play on your worlds and access Marketplace purchases (including Minecoins). Realms managed from this device will continue to work unless they are updated by the Realm owner on a different device. You will no longer receive the latest updates, and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers. %sClick on the button for more information, including ways to move your worlds to a new device. -sunsetting.popup.sunset.dx10=This graphics device is no longer supported. You have received the final update for this device. From this point on you can keep building in your worlds, and your Marketplace purchases (including Minecoins) will continue to be available. Your Realms will continue to work unless they are updated by the Realm owner on a different device. You will no longer receive the latest updates, and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers. %sClick on the button for more information, including ways to move your worlds to a new device. We know this is an inconvenience, and deeply appreciate the time you spent with our game, and your support. - -sunsetting.popup.pendingSunset.geo.ios=Our ability to support this device is coming to an end in your area. After you receive the final update, you will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work for 6 months. On Sept. 30th, 2023 you will no longer have access to the realm. It is recommended you download your world prior to this and cancel your subscription by viewing your Subscriptions settings on your device. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. ##disable_3rd_party_console_resource_pack_check -sunsetting.popup.sunset.geo.ios=Our ability to support this device has come to an end in your area. You will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work until Sept. 30th, 2023. Afterwards you will no longer have access to the Realm. It is recommended you download your world prior to this. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. ##disable_3rd_party_console_resource_pack_check -sunsetting.popup.pendingSunset.geo.amazon=Our ability to support this device is coming to an end in your area. After you receive the final update, you will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work for 6 months. On Sept. 30th, 2023 you will no longer have access to the realm. It is recommended you download your world prior to this. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. ##disable_3rd_party_console_resource_pack_check -sunsetting.popup.sunset.geo.amazon=Our ability to support this device has come to an end in your area. You will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work until Sept. 30th, 2023. Afterwards you will no longer have access to the Realm. It is recommended you download your world prior to this. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. ##disable_3rd_party_console_resource_pack_check -sunsetting.popup.pendingSunset.geo.android=Our ability to support this device is coming to an end in your area. With this final update, you will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work for 6 months. On Sept. 30th, 2023 you will no longer have access to the realms from this device. It is recommended you download your world prior to this and cancel your subscription by viewing your subscriptions in Google Play. %sYou will no longer receive the latest updates and will be unable to play multiplayer. You will also not be able to connect to certain servers. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on your other platforms where you play Minecraft. You can start a new subscription from these other platforms where you play Minecraft. %sIf you would like to move your worlds from this device to another, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. ##disable_3rd_party_console_resource_pack_check -sunsetting.popup.sunset.geo.android=Our ability to support this device has come to an end in your area. You will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work until Sept. 30th, 2023. Afterwards you will no longer have access to the Realm. It is recommended you download your world prior to this. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. ##disable_3rd_party_console_resource_pack_check -sunsetting.popup.pendingSunset.geo.generic=Our ability to support this device is coming to an end in your area. After you receive the final update, you will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work for 6 months. On Sept. 30th, 2023 you will no longer have access to the realm. It is recommended you download your world prior to this. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. -sunsetting.popup.sunset.geo.generic=Our ability to support this device has come to an end in your area. You will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work until Sept. 30th, 2023. Afterwards you will no longer have access to the Realm. It is recommended you download your world prior to this. %sIf you have signed in with a Microsoft/Xbox Live account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device. %sClick on the button for more information, including ways to move your world to a new device. +sunsetting.popup.pendingSunset.device=Our ability to support this device is coming to an end. You will continue to receive updates until March of 2025, when you will receive your final update that will work with this device.%sAfter you receive the final update, you will still be able to play on your worlds, and access Marketplace purchases (including Minecoins), however you will no longer be able to make new purchases on this device. Realms managed from this device will continue to work for 6 months from March of 2025 unless they are updated by the Realm owner on a different device. To cancel your realm subscription, you will need to do so in the Settings menu for Subscriptions on the device the Realm was created from. You will no longer receive the latest updates and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers.%sClick on the button for more information. +sunsetting.popup.sunset.device=Our ability to support this device has come to an end. You will no longer receive updates as of March of 2025, until you update your device. This is your final update compatible with this device.%sYou will still be able to play on your worlds, and access Marketplace purchases (including Minecoins). Realms managed from this device will continue to work for 6 months from March of 2025 unless they are updated by the Realm owner on a different device. To cancel your realm subscription, you will need to do so in the Settings menu for Subscriptions on the device the Realm was created from. You will no longer receive the latest updates and will be unable to play multiplayer with devices or Realms which are continuing to receive updates. You will also not be able to connect to certain servers.%sClick on the button for more information. +sunsetting.popup.pendingSunset.windows_xr=Our ability to support this VR/MR graphic device has come to an end. This device will no longer be supported in updates after March of 2025, when you will receive your final update supporting this device.%sAfter you receive the final update, you will still receive updates on your PC and be able to play without a VR/MR device. From this point on you can keep building in your worlds, and your Marketplace purchases (including Minecoins) will continue to be available on a non-VR/MR graphics devices such as a computer monitor. You will no longer be able to use your VR/MR device with Minecraft as it will no longer be supported in the latest updates.%sClick on the button for more information. +sunsetting.popup.sunset.windows_xr=Our ability to support this VR/MR graphic device has come to an end. This VR/MR device is no longer supported. You have received the final update supporting this graphics device, and you will still receive updates on your PC and be able to play without a VR/MR device. From this point on you can keep building in your worlds, and your Marketplace purchases (including Minecoins) will continue to be available on a non-VR/MR graphics devices such as a computer monitor. You will no longer be able to use your VR/MR device with Minecraft as it will no longer be supported in the latest updates.%sClick on the button for more information. We know this is an inconvenience, and deeply appreciate the time you spent with our game, and your support. +sunsetting.popup.pendingSunset.geo=Our ability to support this device is coming to an end in your area. After you receive the final update, you will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work for 6 months. On Sept. 30th, 2023 you will no longer have access to the realm. It is recommended you download your world prior to this.%sIf you have signed in with a Microsoft account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device.%sClick on the button for more information, including ways to move your world to a new device. +sunsetting.popup.sunset.geo=Our ability to support this device has come to an end in your area. You will still be able to play on your worlds, and access your Marketplace purchases, but you will no longer be able to make purchases in the Marketplace. Realms managed from this device will continue to work until Sept. 30th, 2023. Afterwards you will no longer have access to the Realm. It is recommended you download your world prior to this.%sIf you have signed in with a Microsoft account, your Marketplace purchases & Minecoins and your Realms subscription will be available on other platforms. If you would like to move your worlds from this device to another device, you can do so by uploading the world to a Realm, and downloading a backup onto your new device.%sClick on the button for more information, including ways to move your world to a new device. sunsetting.banner.play.worldTab.pending=Your version may soon not connect to multiplayer sunsetting.banner.play.friendsTab.pending=Your version may soon not connect to multiplayer @@ -7824,6 +7817,25 @@ item.smithing_template.ingredients=Ingredients: item.smithing_template.name=Smithing Template item.smithing_template.netherite_upgrade.applies_to=Diamond Equipment item.smithing_template.netherite_upgrade.ingredients=Netherite Ingot +item.netherite_upgrade_smithing_template.name=Netherite Upgrade +item.sentry_armor_trim_smithing_template.name=Sentry Armor Trim +item.vex_armor_trim_smithing_template.name=Vex Armor Trim +item.wild_armor_trim_smithing_template.name=Wild Armor Trim +item.coast_armor_trim_smithing_template.name=Coast Armor Trim +item.dune_armor_trim_smithing_template.name=Dune Armor Trim +item.wayfinder_armor_trim_smithing_template.name=Wayfinder Armor Trim +item.raiser_armor_trim_smithing_template.name=Raiser Armor Trim +item.shaper_armor_trim_smithing_template.name=Shaper Armor Trim +item.host_armor_trim_smithing_template.name=Host Armor Trim +item.ward_armor_trim_smithing_template.name=Ward Armor Trim +item.silence_armor_trim_smithing_template.name=Silence Armor Trim +item.tide_armor_trim_smithing_template.name=Tide Armor Trim +item.snout_armor_trim_smithing_template.name=Snout Armor Trim +item.rib_armor_trim_smithing_template.name=Rib Armor Trim +item.eye_armor_trim_smithing_template.name=Eye Armor Trim +item.spire_armor_trim_smithing_template.name=Spire Armor Trim +item.flow_armor_trim_smithing_template.name=Flow Armor Trim +item.bolt_armor_trim_smithing_template.name=Bolt Armor Trim item.snort_pottery_sherd.name=Snort Pottery Sherd item.spawn_egg.entity.camel.name=Camel Spawn Egg item.spruce_hanging_sign.name=Spruce Hanging Sign @@ -7895,7 +7907,6 @@ trim_pattern.wayfinder.name=Wayfinder Armor Trim trim_pattern.wild.name=Wild Armor Trim trim_pattern.bolt.name=Bolt Armor Trim trim_pattern.flow.name=Flow Armor Trim -upgrade.netherite_upgrade.name=Netherite Upgrade storageManager.mainSizeLabel=%s - 1 Item storageManager.mainSizeLabelPlural=%s - %s Items @@ -8441,6 +8452,8 @@ store.csb.buyNow.title=Start your Marketplace Pass Subscription ### {StrContains store.csb.subscription=After sign up, 150+ pieces of exciting Minecraft Marketplace content will be available to you. Download and play adventure maps, wear skins, dive into texture packs, and even claim a set of Character Creator items to keep each month. With a catalog that’s regularly refreshed, there’s always something new to discover with Marketplace Pass. You’ll be billed %s/month and can cancel anytime to stop future charges. ### {StrContains="Marketplace Pass"} +store.csb.terms=Marketplace Pass is a subscription for content to be used with supported versions of Minecraft (game sold separately) on Windows and other supported platforms on which you own the game (Minecraft Java & Amazon Kindle Fire Editions not supported); an active subscription is required to use Marketplace Pass content. Content varies over time and may not be available in all countries. After the free trial period, subscription continues to be charged at the then-current regular price (subject to change) plus applicable taxes unless cancelled. You can cancel your subscription by accessing Services & subscriptions in your Microsoft Account. If your subscription terminates or a content item is removed from the catalog, you must reactivate your subscription or buy the content separately to continue using it. ISP fees may apply. We may occasionally provide content that remains available to you even after the end of your subscription, in which case we reserve the right to take down such content if it becomes incompatible or if our rights to the content expire. Subscription subject to change and/or retirement. Subject to the Microsoft Services Agreement (www.microsoft.com/msa) and the Minecraft EULA (https://www.minecraft.net/eula). Any translations of these terms are done for your convenience only, and in the event of a dispute between the English and any non-English versions, the English version of these terms shall govern. ### {StrContains="Marketplace Pass"}, CertRequirement: [Amazon Kindle Fire Edition] + store.csb.recurring.offerTrial=Marketplace Pass is an ongoing subscription with a recurring subscription fee which is charged automatically every month until the subscription is cancelled.%s150+ marketplace packs will be immediately available. You can cancel your subscription to stop future charges by accessing subscriptions settings. ### {StrContains="Marketplace Pass"} store.csb.recurring.withoutTrial=Marketplace Pass is an ongoing subscription with a recurring subscription fee which is charged automatically every month until the subscription is cancelled.%s150+ marketplace packs will be immediately available. You'll be billed %s/month and you can cancel your subscription to stop future charges by accessing subscriptions settings. ### {StrContains="Marketplace Pass"} store.csb.consumable.offerTrial=150+ marketplace packs will be immediately available. Your first 30 days will be free and you can renew for 30 days at the price of %s afterwards. @@ -8852,8 +8865,6 @@ store.myAccount=My Account store.xbl.signin=Sign In store.xbl.signinOrSignUp=Sign In or Sign Up For Free store.xbl.disconnected=Disconnected -store.xbl.conversionFailedTitle=Something Went Wrong -store.xbl.conversionFailedMessage=Please try again later. store.sales.allByCreator=On Sale Now! store.sales.bundlesOnSale=Bundles on Sale Now! @@ -9025,8 +9036,8 @@ tile.deny.name=Deny tile.border_block.name=Border tile.anvil.intact.name=Anvil tile.anvil.name=Anvil -tile.anvil.slightlyDamaged.name=Slightly Damaged Anvil -tile.anvil.veryDamaged.name=Very Damaged Anvil +tile.anvil.slightlyDamaged.name=Chipped Anvil +tile.anvil.veryDamaged.name=Damaged Anvil tile.barrier.name=Barrier tile.beacon.name=Beacon tile.beacon.primary=Primary Power @@ -9077,7 +9088,7 @@ tile.iron_block.name=Block of Iron tile.lapis_block.name=Block of Lapis Lazuli tile.redstone_block.name=Block of Redstone tile.bookshelf.name=Bookshelf -tile.brick_block.name=Brick Block +tile.brick_block.name=Bricks tile.brown_mushroom.name=Brown Mushroom tile.brown_mushroom_block.mushroom.name=Mushroom tile.brown_mushroom_block.stem.name=Mushroom Stem @@ -9225,7 +9236,7 @@ tile.stained_glass_pane.blue.name=Blue Stained Glass Pane tile.stained_glass_pane.purple.name=Purple Stained Glass Pane tile.stained_glass_pane.magenta.name=Magenta Stained Glass Pane tile.stained_glass_pane.pink.name=Pink Stained Glass Pane -tile.clay.name=Clay Block +tile.clay.name=Clay tile.hardened_clay.name=Terracotta tile.stained_hardened_clay.black.name=Black Terracotta tile.stained_hardened_clay.blue.name=Blue Terracotta @@ -9283,13 +9294,13 @@ tile.cobblestone_wall.red_nether_brick.name=Red Nether Brick Wall tile.cocoa.name=Cocoa tile.command_block.name=Command Block tile.composter.name=Composter -tile.light_block.name=Light Block +tile.light_block.name=Light tile.repeating_command_block.name=Repeating Command Block tile.chain_command_block.name=Chain Command Block tile.wheat.name=Crops tile.darkOakFence.name=Dark Oak Fence tile.dark_oak_fence_gate.name=Dark Oak Fence Gate -tile.daylight_detector.name=Daylight Sensor +tile.daylight_detector.name=Daylight Detector tile.deadbush.name=Dead Bush tile.detector_rail.name=Detector Rail tile.dirt.coarse.name=Coarse Dirt @@ -9303,7 +9314,7 @@ tile.dispenser.name=Dispenser tile.iron_door.name=Iron Door tile.doorWood.name=Wooden Door tile.double_plant.fern.name=Large Fern -tile.double_plant.grass.name=Double Tallgrass +tile.double_plant.grass.name=Tall Grass tile.double_plant.name=Plant tile.double_plant.paeonia.name=Peony tile.double_plant.rose.name=Rose Bush @@ -9311,7 +9322,7 @@ tile.double_plant.sunflower.name=Sunflower tile.double_plant.syringa.name=Lilac tile.dragon_egg.name=Dragon Egg tile.dropper.name=Dropper -tile.enchanting_table.name=Enchantment Table +tile.enchanting_table.name=Enchanting Table tile.enderChest.name=Ender Chest tile.end_portal_frame.name=End Portal Frame tile.farmland.name=Farmland @@ -9383,7 +9394,7 @@ tile.log.spruce.name=Spruce Log tile.magma.name=Magma Block tile.melon_block.name=Melon tile.mob_spawner.name=Monster Spawner -tile.monster_egg.brick.name=Infested Stone Brick +tile.monster_egg.brick.name=Infested Stone Bricks tile.monster_egg.chiseledbrick.name=Infested Chiseled Stone Brick tile.monster_egg.cobble.name=Infested Cobblestone tile.monster_egg.crackedbrick.name=Infested Cracked Stone Brick @@ -9393,8 +9404,8 @@ tile.monster_egg.stone.name=Infested Stone tile.mushroom.name=Mushroom tile.noteblock.name=Note Block tile.mycelium.name=Mycelium -tile.nether_brick.name=Nether Brick Block -tile.red_nether_brick.name=Red Nether Brick +tile.nether_brick.name=Nether Bricks +tile.red_nether_brick.name=Red Nether Bricks tile.nether_brick_fence.name=Nether Brick Fence tile.quartz_ore.name=Nether Quartz Ore tile.netherreactor.active=Active! @@ -9476,7 +9487,7 @@ tile.jungle_standing_sign.name=Jungle Sign tile.acacia_standing_sign.name=Acacia Sign tile.darkoak_standing_sign.name=Dark Oak Sign tile.slime.name=Slime Block -tile.snow.name=Snow +tile.snow.name=Snow Block tile.sponge.dry.name=Sponge tile.sponge.wet.name=Wet Sponge tile.spruceFence.name=Spruce Fence @@ -9547,30 +9558,30 @@ tile.stonebrick.smooth.name=Smooth Stone Bricks tile.stonecutter.name=Stonecutter tile.stonecutter_block.name=Stonecutter tile.mossy_cobblestone.name=Mossy Cobblestone -tile.double_stone_slab.brick.name=Bricks Slab +tile.double_stone_slab.brick.name=Brick Slab tile.double_stone_slab.cobble.name=Cobblestone Slab tile.double_stone_slab.name=Stone Slab tile.double_stone_slab.nether_brick.name=Nether Brick Slab tile.double_stone_slab.quartz.name=Quartz Slab tile.double_stone_slab.sand.name=Sandstone Slab -tile.double_stone_slab.smoothStoneBrick.name=Stone Bricks Slab +tile.double_stone_slab.smoothStoneBrick.name=Stone Brick Slab tile.double_stone_slab.stone.name=Stone Slab tile.double_stone_slab.wood.name=Wooden Slab tile.stone_slab.name=Stone Slab -tile.stone_slab.brick.name=Bricks Slab +tile.stone_slab.brick.name=Brick Slab tile.stone_slab.cobble.name=Cobblestone Slab tile.stone_slab.stone.name=Smooth Stone Slab tile.stone_slab.nether_brick.name=Nether Brick Slab tile.stone_slab.quartz.name=Quartz Slab tile.stone_slab.sand.name=Sandstone Slab -tile.stone_slab.smoothStoneBrick.name=Stone Bricks Slab +tile.stone_slab.smoothStoneBrick.name=Stone Brick Slab tile.stone_slab.wood.name=Wooden Slab tile.double_stone_slab2.red_sandstone.name=Red Sandstone Slab tile.stone_slab2.red_sandstone.name=Red Sandstone Slab tile.stone_slab2.purpur.name=Purpur Slab tile.stone_slab2.prismarine.rough.name=Prismarine Slab tile.stone_slab2.prismarine.dark.name=Dark Prismarine Slab -tile.stone_slab2.prismarine.bricks.name=Prismarine Bricks Slab +tile.stone_slab2.prismarine.bricks.name=Prismarine Brick Slab tile.stone_slab2.mossy_cobblestone.name=Mossy Cobblestone Slab tile.stone_slab2.red_nether_brick.name=Red Nether Brick Slab tile.stone_slab2.sandstone.smooth.name=Smooth Sandstone Slab @@ -9598,8 +9609,8 @@ tile.coral_block.purple_dead.name=Dead Bubble Coral Block tile.coral_block.red_dead.name=Dead Fire Coral Block tile.coral_block.yellow_dead.name=Dead Horn Coral Block tile.tallgrass.fern.name=Fern -tile.tallgrass.grass.name=Grass -tile.tallgrass.name=Grass +tile.tallgrass.grass.name=Short Grass +tile.tallgrass.name=Short Grass tile.tallgrass.shrub.name=Shrub tile.tuff_brick_slab.name=Tuff Brick Slab tile.tuff_brick_stairs.name=Tuff Brick Stairs @@ -9610,7 +9621,7 @@ tile.tuff_stairs.name=Tuff Stairs tile.tuff_wall.name=Tuff Wall tile.seagrass.seagrass.name=Seagrass tile.sea_pickle.name=Sea Pickle -tile.turtle_egg.name=Sea Turtle Egg +tile.turtle_egg.name=Turtle Egg tile.coral.blue.name=Tube Coral tile.coral.pink.name=Brain Coral tile.coral.purple.name=Bubble Coral @@ -9633,7 +9644,7 @@ tile.coral_fan_dead.red_fan.name=Dead Fire Coral Fan tile.coral_fan_dead.yellow_fan.name=Dead Horn Coral Fan tile.glass_pane.name=Glass Pane tile.tnt.name=TNT -tile.snow_layer.name=Top Snow +tile.snow_layer.name=Snow tile.torch.name=Torch tile.trapdoor.name=Oak Trapdoor tile.acacia_trapdoor.name=Acacia Trapdoor @@ -9650,8 +9661,8 @@ tile.flowing_water.name=Water tile.water.name=Water tile.waterlily.name=Lily Pad tile.web.name=Cobweb -tile.heavy_weighted_pressure_plate.name=Weighted Pressure Plate (Heavy) -tile.light_weighted_pressure_plate.name=Weighted Pressure Plate (Light) +tile.heavy_weighted_pressure_plate.name=Heavy Weighted Pressure Plate +tile.light_weighted_pressure_plate.name=Light Weighted Pressure Plate tile.end_stone.name=End Stone tile.end_bricks.name=End Stone Bricks tile.planks.acacia.name=Acacia Planks @@ -10286,7 +10297,7 @@ xbox.signin.enterCode=And enter this code: xbox.signin.enterCode.qr=2. Enter the code below when prompted: xbox.signin.letsPlay=Let's Play! xbox.signin.message=Sign in with your Free Microsoft Account to experience the full world of Minecraft. -xbox.signin.url=https://aka.ms/remoteconnect +xbox.signin.url=https://microsoft.com/link xbox.signin.useDifferentAccount=Sign in with a different Microsoft Account xbox.signin.website=Visit this website on another device: xbox.signin.website.qr=1. Visit this website on another device: @@ -10308,16 +10319,12 @@ xbox.dev_wrongSandboxSigninFailed.line1=Failed to sign in to %s sandbox. Please xbox.dev_wrongSandboxSigninFailed.button.dev=Change To Dev Sandbox xbox.dev_wrongSandboxSigninFailed.button.retail=Change To Retail Sandbox xbox.dev_wrongSandboxSigninFailed.button.clearXbl=Clear Account Sign in Data -xbox.addfriendsignin.line1=Find your friends by their Gamertag to see when they are online. -xbox.addfriendsignin.line2=Sign in with a Microsoft Account to start adding friends! xbox.invitesignin.line1=Invite your friends by their Gamertag to see their worlds when they are online. xbox.invitesignin.line2=Sign in with a Microsoft Account to start inviting friends! xbox.thirdpartysignin.line1=Awesome mini-games and new players are waiting for you! But first, '%s' would like to know who you are. xbox.thirdpartysignin.line2=You need to sign in with a Microsoft Account to connect! xbox.signInLong=Sign in for Free! xbox.signOutLong=Sign out of your Microsoft Account -xbox.externalServer.title=Play on a Server -xbox.externalServer.line1=Servers offer some of the most creative ways to play Minecraft! We just need you to sign in so that we can make sure you have permission to play online with new people. xbox.genericsignin.line1=Your Minecraft account lets you play online multiplayer with friends on PCs and mobile devices. And the best part? xbox.genericsignin.line2=It's FREE! @@ -10878,7 +10885,7 @@ dr.classic_skins.addition_skin_count=+%s dr.classic_skins.choose_custom_skin=Choose New Skin dr.classic_skins.custom_skin_title=Import Skin dr.classic_skins.custom_skin_description=Import a png (64x32, 64x64, or 128x128) from your device to use as your skin. This will not sync between devices or games. -dr.classic_skins.custom_skin_description_disabled= Your device cannot select a custom skin while in a multiplayer game. Please return to the main menu to equip one. +dr.classic_skins.custom_skin_description_disabled=Your device cannot select a custom skin while in a multiplayer game. Please return to the main menu to equip one. dr.classic_skins.custom_skin_description_popup=Players with custom skins will not be visible to you if the “Only Allow Trusted Skins” option is enabled dr.classic_skins.custom_skin_section_title=Owned Skins dr.classic_skins.invalidCustomSkin=Please import a .png file of dimensions 64x64, 64x32, or 128x128