Mirror von
https://github.com/ViaVersion/ViaBackwards.git
synchronisiert 2024-12-26 00:00:33 +01:00
Add missing translation mappings and component rewriter (#761)
Dieser Commit ist enthalten in:
Ursprung
9e63243003
Commit
1bf5f7408b
@ -21,6 +21,7 @@ package com.viaversion.viabackwards.protocol.v1_10to1_9_3;
|
|||||||
import com.viaversion.viabackwards.api.BackwardsProtocol;
|
import com.viaversion.viabackwards.api.BackwardsProtocol;
|
||||||
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
|
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
|
||||||
import com.viaversion.viabackwards.api.rewriters.SoundRewriter;
|
import com.viaversion.viabackwards.api.rewriters.SoundRewriter;
|
||||||
|
import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter;
|
||||||
import com.viaversion.viabackwards.protocol.v1_10to1_9_3.rewriter.BlockItemPacketRewriter1_10;
|
import com.viaversion.viabackwards.protocol.v1_10to1_9_3.rewriter.BlockItemPacketRewriter1_10;
|
||||||
import com.viaversion.viabackwards.protocol.v1_10to1_9_3.rewriter.EntityPacketRewriter1_10;
|
import com.viaversion.viabackwards.protocol.v1_10to1_9_3.rewriter.EntityPacketRewriter1_10;
|
||||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||||
@ -33,6 +34,7 @@ import com.viaversion.viaversion.api.type.Types;
|
|||||||
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
||||||
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
||||||
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ServerboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ServerboundPackets1_9_3;
|
||||||
|
import com.viaversion.viaversion.rewriter.ComponentRewriter;
|
||||||
|
|
||||||
public class Protocol1_10To1_9_3 extends BackwardsProtocol<ClientboundPackets1_9_3, ClientboundPackets1_9_3, ServerboundPackets1_9_3, ServerboundPackets1_9_3> {
|
public class Protocol1_10To1_9_3 extends BackwardsProtocol<ClientboundPackets1_9_3, ClientboundPackets1_9_3, ServerboundPackets1_9_3, ServerboundPackets1_9_3> {
|
||||||
|
|
||||||
@ -89,6 +91,9 @@ public class Protocol1_10To1_9_3 extends BackwardsProtocol<ClientboundPackets1_9
|
|||||||
map(Types.VAR_INT); // 1 - Result
|
map(Types.VAR_INT); // 1 - Result
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TranslatableRewriter<ClientboundPackets1_9_3> componentRewriter = new TranslatableRewriter<>(this, ComponentRewriter.ReadType.JSON);
|
||||||
|
componentRewriter.registerComponentPacket(ClientboundPackets1_9_3.CHAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -21,6 +21,7 @@ package com.viaversion.viabackwards.protocol.v1_11to1_10;
|
|||||||
import com.viaversion.viabackwards.api.BackwardsProtocol;
|
import com.viaversion.viabackwards.api.BackwardsProtocol;
|
||||||
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
|
import com.viaversion.viabackwards.api.data.BackwardsMappingData;
|
||||||
import com.viaversion.viabackwards.api.rewriters.SoundRewriter;
|
import com.viaversion.viabackwards.api.rewriters.SoundRewriter;
|
||||||
|
import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter;
|
||||||
import com.viaversion.viabackwards.protocol.v1_11to1_10.rewriter.BlockItemPacketRewriter1_11;
|
import com.viaversion.viabackwards.protocol.v1_11to1_10.rewriter.BlockItemPacketRewriter1_11;
|
||||||
import com.viaversion.viabackwards.protocol.v1_11to1_10.rewriter.EntityPacketRewriter1_11;
|
import com.viaversion.viabackwards.protocol.v1_11to1_10.rewriter.EntityPacketRewriter1_11;
|
||||||
import com.viaversion.viabackwards.protocol.v1_11to1_10.rewriter.PlayerPacketRewriter1_11;
|
import com.viaversion.viabackwards.protocol.v1_11to1_10.rewriter.PlayerPacketRewriter1_11;
|
||||||
@ -29,14 +30,17 @@ import com.viaversion.viaversion.api.connection.UserConnection;
|
|||||||
import com.viaversion.viaversion.api.minecraft.ClientWorld;
|
import com.viaversion.viaversion.api.minecraft.ClientWorld;
|
||||||
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_11;
|
import com.viaversion.viaversion.api.minecraft.entities.EntityTypes1_11;
|
||||||
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
import com.viaversion.viaversion.data.entity.EntityTrackerBase;
|
||||||
|
import com.viaversion.viaversion.protocols.v1_11_1to1_12.packet.ClientboundPackets1_12;
|
||||||
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
||||||
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ServerboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ServerboundPackets1_9_3;
|
||||||
|
import com.viaversion.viaversion.rewriter.ComponentRewriter;
|
||||||
|
|
||||||
public class Protocol1_11To1_10 extends BackwardsProtocol<ClientboundPackets1_9_3, ClientboundPackets1_9_3, ServerboundPackets1_9_3, ServerboundPackets1_9_3> {
|
public class Protocol1_11To1_10 extends BackwardsProtocol<ClientboundPackets1_9_3, ClientboundPackets1_9_3, ServerboundPackets1_9_3, ServerboundPackets1_9_3> {
|
||||||
|
|
||||||
public static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.11", "1.10");
|
public static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.11", "1.10");
|
||||||
private final EntityPacketRewriter1_11 entityRewriter = new EntityPacketRewriter1_11(this);
|
private final EntityPacketRewriter1_11 entityRewriter = new EntityPacketRewriter1_11(this);
|
||||||
private final BlockItemPacketRewriter1_11 itemRewriter = new BlockItemPacketRewriter1_11(this);
|
private final BlockItemPacketRewriter1_11 itemRewriter = new BlockItemPacketRewriter1_11(this);
|
||||||
|
private TranslatableRewriter<ClientboundPackets1_9_3> componentRewriter;
|
||||||
|
|
||||||
public Protocol1_11To1_10() {
|
public Protocol1_11To1_10() {
|
||||||
super(ClientboundPackets1_9_3.class, ClientboundPackets1_9_3.class, ServerboundPackets1_9_3.class, ServerboundPackets1_9_3.class);
|
super(ClientboundPackets1_9_3.class, ClientboundPackets1_9_3.class, ServerboundPackets1_9_3.class, ServerboundPackets1_9_3.class);
|
||||||
@ -51,6 +55,9 @@ public class Protocol1_11To1_10 extends BackwardsProtocol<ClientboundPackets1_9_
|
|||||||
SoundRewriter<ClientboundPackets1_9_3> soundRewriter = new SoundRewriter<>(this);
|
SoundRewriter<ClientboundPackets1_9_3> soundRewriter = new SoundRewriter<>(this);
|
||||||
soundRewriter.registerNamedSound(ClientboundPackets1_9_3.CUSTOM_SOUND);
|
soundRewriter.registerNamedSound(ClientboundPackets1_9_3.CUSTOM_SOUND);
|
||||||
soundRewriter.registerSound(ClientboundPackets1_9_3.SOUND);
|
soundRewriter.registerSound(ClientboundPackets1_9_3.SOUND);
|
||||||
|
|
||||||
|
componentRewriter = new TranslatableRewriter<>(this, ComponentRewriter.ReadType.JSON);
|
||||||
|
componentRewriter.registerComponentPacket(ClientboundPackets1_9_3.CHAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -81,6 +88,10 @@ public class Protocol1_11To1_10 extends BackwardsProtocol<ClientboundPackets1_9_
|
|||||||
return itemRewriter;
|
return itemRewriter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public TranslatableRewriter<ClientboundPackets1_9_3> getComponentRewriter() {
|
||||||
|
return componentRewriter;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasMappingDataToLoad() {
|
public boolean hasMappingDataToLoad() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -229,6 +229,8 @@ public class BlockItemPacketRewriter1_11 extends LegacyBlockItemRewriter<Clientb
|
|||||||
if (wrapper.get(Types.STRING, 0).equals("EntityHorse")) {
|
if (wrapper.get(Types.STRING, 0).equals("EntityHorse")) {
|
||||||
entityId = wrapper.passthrough(Types.INT);
|
entityId = wrapper.passthrough(Types.INT);
|
||||||
}
|
}
|
||||||
|
// Rewrite window title
|
||||||
|
protocol.getComponentRewriter().processText(wrapper.user(), wrapper.get(Types.COMPONENT, 0));
|
||||||
|
|
||||||
// Track Inventory
|
// Track Inventory
|
||||||
String inventory = wrapper.get(Types.STRING, 0);
|
String inventory = wrapper.get(Types.STRING, 0);
|
||||||
|
@ -42,6 +42,7 @@ public class Protocol1_12To1_11_1 extends BackwardsProtocol<ClientboundPackets1_
|
|||||||
private static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.12", "1.11");
|
private static final BackwardsMappingData MAPPINGS = new BackwardsMappingData("1.12", "1.11");
|
||||||
private final EntityPacketRewriter1_12 entityRewriter = new EntityPacketRewriter1_12(this);
|
private final EntityPacketRewriter1_12 entityRewriter = new EntityPacketRewriter1_12(this);
|
||||||
private final BlockItemPacketRewriter1_12 itemRewriter = new BlockItemPacketRewriter1_12(this);
|
private final BlockItemPacketRewriter1_12 itemRewriter = new BlockItemPacketRewriter1_12(this);
|
||||||
|
private final ComponentRewriter1_12 componentRewriter = new ComponentRewriter1_12(this);
|
||||||
|
|
||||||
public Protocol1_12To1_11_1() {
|
public Protocol1_12To1_11_1() {
|
||||||
super(ClientboundPackets1_12.class, ClientboundPackets1_9_3.class, ServerboundPackets1_12.class, ServerboundPackets1_9_3.class);
|
super(ClientboundPackets1_12.class, ClientboundPackets1_9_3.class, ServerboundPackets1_12.class, ServerboundPackets1_9_3.class);
|
||||||
@ -51,8 +52,8 @@ public class Protocol1_12To1_11_1 extends BackwardsProtocol<ClientboundPackets1_
|
|||||||
protected void registerPackets() {
|
protected void registerPackets() {
|
||||||
itemRewriter.register();
|
itemRewriter.register();
|
||||||
entityRewriter.register();
|
entityRewriter.register();
|
||||||
|
componentRewriter.registerComponentPacket(ClientboundPackets1_12.CHAT);
|
||||||
new SoundPacketRewriter1_12(this).register();
|
new SoundPacketRewriter1_12(this).register();
|
||||||
new ComponentRewriter1_12(this).register();
|
|
||||||
|
|
||||||
registerClientbound(ClientboundPackets1_12.SET_TITLES, wrapper -> {
|
registerClientbound(ClientboundPackets1_12.SET_TITLES, wrapper -> {
|
||||||
int action = wrapper.passthrough(Types.VAR_INT);
|
int action = wrapper.passthrough(Types.VAR_INT);
|
||||||
@ -94,6 +95,10 @@ public class Protocol1_12To1_11_1 extends BackwardsProtocol<ClientboundPackets1_
|
|||||||
return itemRewriter;
|
return itemRewriter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ComponentRewriter1_12 getComponentRewriter() {
|
||||||
|
return componentRewriter;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasMappingDataToLoad() {
|
public boolean hasMappingDataToLoad() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,154 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of ViaBackwards - https://github.com/ViaVersion/ViaBackwards
|
|
||||||
* Copyright (C) 2016-2024 ViaVersion and contributors
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.viaversion.viabackwards.protocol.v1_12to1_11_1.data;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class AdvancementTranslations1_11_1 {
|
|
||||||
private static final Map<String, String> advancements = new HashMap<>();
|
|
||||||
|
|
||||||
static {
|
|
||||||
add("advancements.nether.get_wither_skull.title", "Spooky Scary Skeleton");
|
|
||||||
add("advancements.husbandry.break_diamond_hoe.description", "Completely use up a diamond hoe, and then reevaluate your life choices");
|
|
||||||
add("advancements.nether.fast_travel.description", "Use the Nether to travel 7km in the Overworld");
|
|
||||||
add("advancements.story.enter_the_end.description", "Enter the End Portal");
|
|
||||||
add("advancements.story.follow_ender_eye.title", "Eye Spy");
|
|
||||||
add("advancements.toast.task", "Advancement Made!");
|
|
||||||
add("advancements.nether.find_fortress.description", "Break your way into a Nether Fortress");
|
|
||||||
add("advancements.story.form_obsidian.description", "Form and mine a block of Obsidian");
|
|
||||||
add("advancements.adventure.sniper_duel.description", "Kill a skeleton with an arrow from more than 50 meters");
|
|
||||||
add("advancements.end.root.description", "Or the beginning?");
|
|
||||||
add("advancements.adventure.kill_a_mob.title", "Monster Hunter");
|
|
||||||
add("advancements.end.elytra.description", "Find an Elytra");
|
|
||||||
add("advancements.end.dragon_breath.description", "Collect dragon's breath in a glass bottle");
|
|
||||||
add("advancements.story.enter_the_nether.title", "We Need to Go Deeper");
|
|
||||||
add("advancements.story.upgrade_tools.title", "Getting an Upgrade");
|
|
||||||
add("advancements.story.lava_bucket.title", "Hot Stuff");
|
|
||||||
add("advancements.story.shiny_gear.title", "Cover Me With Diamonds");
|
|
||||||
add("advancements.story.smelt_iron.description", "Smelt an iron ingot");
|
|
||||||
add("chat.type.advancement.goal", "%s has reached the goal %s");
|
|
||||||
add("advancements.husbandry.break_diamond_hoe.title", "Serious Dedication");
|
|
||||||
add("advancements.story.iron_tools.description", "Upgrade your pickaxe");
|
|
||||||
add("advancements.end.respawn_dragon.title", "The End... Again...");
|
|
||||||
add("advancements.husbandry.tame_an_animal.description", "Tame an animal");
|
|
||||||
add("advancements.end.levitate.description", "Levitate up 50 blocks from the attacks of a Shulker");
|
|
||||||
add("advancements.adventure.shoot_arrow.description", "Shoot something with a bow and arrow");
|
|
||||||
add("advancements.nether.root.description", "Bring summer clothes");
|
|
||||||
add("advancements.story.enchant_item.description", "Enchant an item at an Enchanting Table");
|
|
||||||
add("advancements.adventure.root.title", "Adventure");
|
|
||||||
add("advancements.adventure.trade.title", "What a Deal!");
|
|
||||||
add("advancements.husbandry.breed_all_animals.title", "Two by Two");
|
|
||||||
add("advancements.nether.find_fortress.title", "A Terrible Fortress");
|
|
||||||
add("advancements.nether.create_full_beacon.title", "Beaconator");
|
|
||||||
add("advancements.story.cure_zombie_villager.description", "Weaken and then cure a zombie villager");
|
|
||||||
add("advancements.toast.challenge", "Challenge Complete!");
|
|
||||||
add("advancements.nether.create_full_beacon.description", "Bring a beacon to full power");
|
|
||||||
add("advancements.story.follow_ender_eye.description", "Follow an Ender Eye");
|
|
||||||
add("advancements.end.find_end_city.title", "The City at the End of the Game");
|
|
||||||
add("chat.type.advancement.challenge", "%s has completed the challenge %s");
|
|
||||||
add("advancements.story.deflect_arrow.title", "Not Today, Thank You");
|
|
||||||
add("advancements.adventure.kill_all_mobs.description", "Kill one of every hostile monster");
|
|
||||||
add("advancements.story.smelt_iron.title", "Acquire Hardware");
|
|
||||||
add("advancements.end.levitate.title", "Great View From Up Here");
|
|
||||||
add("advancements.end.kill_dragon.title", "Free the End");
|
|
||||||
add("advancements.end.kill_dragon.description", "Good luck");
|
|
||||||
add("advancements.nether.brew_potion.title", "Local Brewery");
|
|
||||||
add("advancements.story.enchant_item.title", "Enchanter");
|
|
||||||
add("advancements.end.respawn_dragon.description", "Respawn the ender dragon");
|
|
||||||
add("advancements.nether.uneasy_alliance.title", "Uneasy Alliance");
|
|
||||||
add("advancements.nether.root.title", "Nether");
|
|
||||||
add("advancements.nether.brew_potion.description", "Brew a potion");
|
|
||||||
add("advancements.nether.obtain_blaze_rod.title", "Into Fire");
|
|
||||||
add("advancements.nether.summon_wither.title", "Withering Heights");
|
|
||||||
add("advancements.story.root.title", "Minecraft");
|
|
||||||
add("advancements.husbandry.balanced_diet.description", "Eat everything that is edible, even if it's not good for you");
|
|
||||||
add("advancements.nether.uneasy_alliance.description", "Rescue a Ghast from the Nether, bring it safely home to the Overworld... and then kill it.");
|
|
||||||
add("advancements.husbandry.breed_all_animals.description", "Breed all the animals!");
|
|
||||||
add("advancements.adventure.kill_all_mobs.title", "Monsters Hunted");
|
|
||||||
add("advancements.story.cure_zombie_villager.title", "Zombie Doctor");
|
|
||||||
add("advancements.husbandry.plant_seed.title", "A Seedy Place");
|
|
||||||
add("advancements.end.dragon_breath.title", "You Need a Mint");
|
|
||||||
add("advancements.story.mine_stone.title", "Stone Age");
|
|
||||||
add("advancements.end.find_end_city.description", "Go on in, what could happen?");
|
|
||||||
add("advancements.nether.create_beacon.description", "Construct and place a Beacon");
|
|
||||||
add("advancements.adventure.summon_iron_golem.title", "Hired Help");
|
|
||||||
add("advancements.end.elytra.title", "Sky's the Limit");
|
|
||||||
add("chat.type.advancement.task", "%s has made the advancement %s");
|
|
||||||
add("advancements.story.deflect_arrow.description", "Deflect an arrow with a shield");
|
|
||||||
add("advancements.nether.all_effects.description", "Have every effect applied at the same time");
|
|
||||||
add("advancements.story.enter_the_nether.description", "Build, light and enter a Nether Portal");
|
|
||||||
add("advancements.story.mine_diamond.title", "Diamonds!");
|
|
||||||
add("advancements.husbandry.balanced_diet.title", "A Balanced Diet");
|
|
||||||
add("advancements.husbandry.root.title", "Husbandry");
|
|
||||||
add("advancements.story.root.description", "The heart and story of the game");
|
|
||||||
add("advancements.story.upgrade_tools.description", "Construct a better pickaxe");
|
|
||||||
add("advancements.nether.all_effects.title", "How Did We Get Here?");
|
|
||||||
add("advancements.end.enter_end_gateway.title", "Remote Getaway");
|
|
||||||
add("advancements.story.mine_stone.description", "Mine stone with your new pickaxe");
|
|
||||||
add("advancements.husbandry.root.description", "The world is full of friends and food");
|
|
||||||
add("advancements.end.dragon_egg.title", "The Next Generation");
|
|
||||||
add("advancements.toast.goal", "Goal Reached!");
|
|
||||||
add("advancements.empty", "There doesn't seem to be anything here...");
|
|
||||||
add("advancements.husbandry.tame_an_animal.title", "Best Friends Forever");
|
|
||||||
add("advancements.end.root.title", "The End");
|
|
||||||
add("advancements.husbandry.breed_an_animal.title", "The Parrots and the Bats");
|
|
||||||
add("advancements.story.mine_diamond.description", "Acquire diamonds");
|
|
||||||
add("advancements.adventure.sleep_in_bed.title", "Sweet dreams");
|
|
||||||
add("advancements.nether.return_to_sender.title", "Return to Sender");
|
|
||||||
add("advancements.story.obtain_armor.title", "Suit Up");
|
|
||||||
add("advancements.adventure.kill_a_mob.description", "Kill any hostile monster");
|
|
||||||
add("advancements.nether.all_potions.description", "Have every potion effect applied at the same time");
|
|
||||||
add("advancements.story.iron_tools.title", "Isn't It Iron Pick");
|
|
||||||
add("advancements.adventure.sleep_in_bed.description", "Change your respawn point");
|
|
||||||
add("advancements.husbandry.plant_seed.description", "Plant a seed and watch it grow");
|
|
||||||
add("advancements.husbandry.breed_an_animal.description", "Breed two animals together");
|
|
||||||
add("advancements.adventure.shoot_arrow.title", "Take Aim");
|
|
||||||
add("advancements.adventure.adventuring_time.description", "Discover every biome");
|
|
||||||
add("advancements.adventure.adventuring_time.title", "Adventuring Time");
|
|
||||||
add("advancements.nether.get_wither_skull.description", "Obtain a wither skeleton's skull");
|
|
||||||
add("advancements.adventure.summon_iron_golem.description", "Summon an Iron Golem to help defend a village");
|
|
||||||
add("advancements.nether.return_to_sender.description", "Destroy a Ghast with a fireball");
|
|
||||||
add("advancements.adventure.trade.description", "Successfully trade with a Villager");
|
|
||||||
add("advancements.story.obtain_armor.description", "Protect yourself with a piece of iron armor");
|
|
||||||
add("advancements.adventure.root.description", "Adventure, exploration and combat");
|
|
||||||
add("advancements.nether.create_beacon.title", "Bring Home the Beacon");
|
|
||||||
add("advancements.end.dragon_egg.description", "Hold the Dragon Egg");
|
|
||||||
add("advancements.nether.obtain_blaze_rod.description", "Relieve a Blaze of its rod");
|
|
||||||
add("advancements.story.lava_bucket.description", "Fill a bucket with lava");
|
|
||||||
add("advancements.story.form_obsidian.title", "Ice Bucket Challenge");
|
|
||||||
add("advancements.story.enter_the_end.title", "The End?");
|
|
||||||
add("advancements.nether.fast_travel.title", "Subspace Bubble");
|
|
||||||
add("advancements.end.enter_end_gateway.description", "Escape the island");
|
|
||||||
add("advancements.adventure.totem_of_undying.title", "Postmortal");
|
|
||||||
add("advancements.nether.all_potions.title", "A Furious Cocktail");
|
|
||||||
add("advancements.adventure.sniper_duel.title", "Sniper duel");
|
|
||||||
add("advancements.nether.summon_wither.description", "Summon the Wither");
|
|
||||||
add("advancements.adventure.totem_of_undying.description", "Use a Totem of Undying to cheat death");
|
|
||||||
add("advancements.story.shiny_gear.description", "Diamond armor saves lives");
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void add(String key, String value) {
|
|
||||||
advancements.put(key, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String get(String key) {
|
|
||||||
return advancements.get(key);
|
|
||||||
}
|
|
||||||
}
|
|
@ -18,54 +18,34 @@
|
|||||||
|
|
||||||
package com.viaversion.viabackwards.protocol.v1_12to1_11_1.rewriter;
|
package com.viaversion.viabackwards.protocol.v1_12to1_11_1.rewriter;
|
||||||
|
|
||||||
|
import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter;
|
||||||
import com.viaversion.viabackwards.protocol.v1_12to1_11_1.Protocol1_12To1_11_1;
|
import com.viaversion.viabackwards.protocol.v1_12to1_11_1.Protocol1_12To1_11_1;
|
||||||
import com.viaversion.viabackwards.protocol.v1_12to1_11_1.data.AdvancementTranslations1_11_1;
|
|
||||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||||
import com.viaversion.viaversion.api.rewriter.RewriterBase;
|
|
||||||
import com.viaversion.viaversion.api.type.Types;
|
|
||||||
import com.viaversion.viaversion.libs.gson.JsonElement;
|
import com.viaversion.viaversion.libs.gson.JsonElement;
|
||||||
import com.viaversion.viaversion.libs.gson.JsonObject;
|
import com.viaversion.viaversion.libs.gson.JsonObject;
|
||||||
import com.viaversion.viaversion.protocols.v1_11_1to1_12.packet.ClientboundPackets1_12;
|
import com.viaversion.viaversion.protocols.v1_11_1to1_12.packet.ClientboundPackets1_12;
|
||||||
import com.viaversion.viaversion.rewriter.ComponentRewriter;
|
import com.viaversion.viaversion.rewriter.ComponentRewriter;
|
||||||
|
|
||||||
public class ComponentRewriter1_12 extends RewriterBase<Protocol1_12To1_11_1> {
|
public class ComponentRewriter1_12 extends TranslatableRewriter<ClientboundPackets1_12> {
|
||||||
|
|
||||||
public static final ComponentRewriter<ClientboundPackets1_12> COMPONENT_REWRITER = new ComponentRewriter<>(null, ComponentRewriter.ReadType.JSON) {
|
|
||||||
@Override
|
|
||||||
public void processText(UserConnection connection, JsonElement element) {
|
|
||||||
super.processText(connection, element);
|
|
||||||
if (element == null || !element.isJsonObject()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
JsonObject object = element.getAsJsonObject();
|
|
||||||
JsonElement keybind = object.remove("keybind");
|
|
||||||
if (keybind == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO Add nicer text for the key, also use this component rewriter in more packets
|
|
||||||
object.addProperty("text", keybind.getAsString());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void handleTranslate(JsonObject object, String translate) {
|
|
||||||
String text = AdvancementTranslations1_11_1.get(translate);
|
|
||||||
if (text != null) {
|
|
||||||
object.addProperty("translate", text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public ComponentRewriter1_12(Protocol1_12To1_11_1 protocol) {
|
public ComponentRewriter1_12(Protocol1_12To1_11_1 protocol) {
|
||||||
super(protocol);
|
super(protocol, ComponentRewriter.ReadType.JSON);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void registerPackets() {
|
public void processText(UserConnection connection, JsonElement element) {
|
||||||
protocol.registerClientbound(ClientboundPackets1_12.CHAT, wrapper -> {
|
super.processText(connection, element);
|
||||||
JsonElement element = wrapper.passthrough(Types.COMPONENT);
|
if (element == null || !element.isJsonObject()) {
|
||||||
COMPONENT_REWRITER.processText(wrapper.user(), element);
|
return;
|
||||||
});
|
}
|
||||||
|
|
||||||
|
JsonObject object = element.getAsJsonObject();
|
||||||
|
JsonElement keybind = object.remove("keybind");
|
||||||
|
if (keybind == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO Add nicer text for the key, also use this component rewriter in more packets
|
||||||
|
object.addProperty("text", keybind.getAsString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -191,7 +191,7 @@ public class EntityPacketRewriter1_12 extends LegacyEntityRewriter<ClientboundPa
|
|||||||
|
|
||||||
filter().handler((event, meta) -> {
|
filter().handler((event, meta) -> {
|
||||||
if (meta.dataType() == EntityDataTypes1_12.COMPONENT) {
|
if (meta.dataType() == EntityDataTypes1_12.COMPONENT) {
|
||||||
ComponentRewriter1_12.COMPONENT_REWRITER.processText(event.user(), (JsonElement) meta.getValue());
|
protocol.getComponentRewriter().processText(event.user(), (JsonElement) meta.getValue());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -17,14 +17,18 @@
|
|||||||
*/
|
*/
|
||||||
package com.viaversion.viabackwards.protocol.v1_9_1to1_9;
|
package com.viaversion.viabackwards.protocol.v1_9_1to1_9;
|
||||||
|
|
||||||
|
import com.viaversion.viabackwards.api.BackwardsProtocol;
|
||||||
|
import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter;
|
||||||
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
|
import com.viaversion.viaversion.api.protocol.AbstractProtocol;
|
||||||
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
|
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
|
||||||
import com.viaversion.viaversion.api.type.Type;
|
import com.viaversion.viaversion.api.type.Type;
|
||||||
import com.viaversion.viaversion.api.type.Types;
|
import com.viaversion.viaversion.api.type.Types;
|
||||||
import com.viaversion.viaversion.protocols.v1_8to1_9.packet.ClientboundPackets1_9;
|
import com.viaversion.viaversion.protocols.v1_8to1_9.packet.ClientboundPackets1_9;
|
||||||
import com.viaversion.viaversion.protocols.v1_8to1_9.packet.ServerboundPackets1_9;
|
import com.viaversion.viaversion.protocols.v1_8to1_9.packet.ServerboundPackets1_9;
|
||||||
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
||||||
|
import com.viaversion.viaversion.rewriter.ComponentRewriter;
|
||||||
|
|
||||||
public class Protocol1_9_1To1_9 extends AbstractProtocol<ClientboundPackets1_9, ClientboundPackets1_9, ServerboundPackets1_9, ServerboundPackets1_9> {
|
public class Protocol1_9_1To1_9 extends BackwardsProtocol<ClientboundPackets1_9, ClientboundPackets1_9, ServerboundPackets1_9, ServerboundPackets1_9> {
|
||||||
|
|
||||||
public Protocol1_9_1To1_9() {
|
public Protocol1_9_1To1_9() {
|
||||||
super(ClientboundPackets1_9.class, ClientboundPackets1_9.class, ServerboundPackets1_9.class, ServerboundPackets1_9.class);
|
super(ClientboundPackets1_9.class, ClientboundPackets1_9.class, ServerboundPackets1_9.class, ServerboundPackets1_9.class);
|
||||||
@ -61,5 +65,8 @@ public class Protocol1_9_1To1_9 extends AbstractProtocol<ClientboundPackets1_9,
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TranslatableRewriter<ClientboundPackets1_9> componentRewriter = new TranslatableRewriter<>(this, ComponentRewriter.ReadType.JSON);
|
||||||
|
componentRewriter.registerComponentPacket(ClientboundPackets1_9.CHAT);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -17,6 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.viaversion.viabackwards.protocol.v1_9_3to1_9_1;
|
package com.viaversion.viabackwards.protocol.v1_9_3to1_9_1;
|
||||||
|
|
||||||
|
import com.viaversion.viabackwards.api.BackwardsProtocol;
|
||||||
|
import com.viaversion.viabackwards.api.rewriters.TranslatableRewriter;
|
||||||
import com.viaversion.viabackwards.protocol.v1_9_3to1_9_1.data.BlockEntity1_9_1;
|
import com.viaversion.viabackwards.protocol.v1_9_3to1_9_1.data.BlockEntity1_9_1;
|
||||||
import com.viaversion.viaversion.api.connection.UserConnection;
|
import com.viaversion.viaversion.api.connection.UserConnection;
|
||||||
import com.viaversion.viaversion.api.minecraft.ClientWorld;
|
import com.viaversion.viaversion.api.minecraft.ClientWorld;
|
||||||
@ -33,8 +35,9 @@ import com.viaversion.viaversion.protocols.v1_8to1_9.packet.ClientboundPackets1_
|
|||||||
import com.viaversion.viaversion.protocols.v1_8to1_9.packet.ServerboundPackets1_9;
|
import com.viaversion.viaversion.protocols.v1_8to1_9.packet.ServerboundPackets1_9;
|
||||||
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
||||||
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ServerboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ServerboundPackets1_9_3;
|
||||||
|
import com.viaversion.viaversion.rewriter.ComponentRewriter;
|
||||||
|
|
||||||
public class Protocol1_9_3To1_9_1 extends AbstractProtocol<ClientboundPackets1_9_3, ClientboundPackets1_9, ServerboundPackets1_9_3, ServerboundPackets1_9> {
|
public class Protocol1_9_3To1_9_1 extends BackwardsProtocol<ClientboundPackets1_9_3, ClientboundPackets1_9, ServerboundPackets1_9_3, ServerboundPackets1_9> {
|
||||||
|
|
||||||
public Protocol1_9_3To1_9_1() {
|
public Protocol1_9_3To1_9_1() {
|
||||||
super(ClientboundPackets1_9_3.class, ClientboundPackets1_9.class, ServerboundPackets1_9_3.class, ServerboundPackets1_9.class);
|
super(ClientboundPackets1_9_3.class, ClientboundPackets1_9.class, ServerboundPackets1_9_3.class, ServerboundPackets1_9.class);
|
||||||
@ -108,6 +111,9 @@ public class Protocol1_9_3To1_9_1 extends AbstractProtocol<ClientboundPackets1_9
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
TranslatableRewriter<ClientboundPackets1_9_3> componentRewriter = new TranslatableRewriter<>(this, ComponentRewriter.ReadType.JSON);
|
||||||
|
componentRewriter.registerComponentPacket(ClientboundPackets1_9_3.CHAT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -2909,7 +2909,6 @@
|
|||||||
"selectWorld.edit.backupCreated": "Backed up: %s",
|
"selectWorld.edit.backupCreated": "Backed up: %s",
|
||||||
"selectWorld.edit.backupSize": "size: %s MB",
|
"selectWorld.edit.backupSize": "size: %s MB",
|
||||||
"selectWorld.edit.optimize": "Optimize World",
|
"selectWorld.edit.optimize": "Optimize World",
|
||||||
"selectWorld.deleteButton": "Delete",
|
|
||||||
"selectWorld.backupQuestion": "Do you really want to load this world?",
|
"selectWorld.backupQuestion": "Do you really want to load this world?",
|
||||||
"selectWorld.backupWarning": "This world was last played in version %s; you are on snapshot %s. Please make a backup in case you experience world corruptions!",
|
"selectWorld.backupWarning": "This world was last played in version %s; you are on snapshot %s. Please make a backup in case you experience world corruptions!",
|
||||||
"selectWorld.backupQuestion.customized": "Customized worlds are no longer supported",
|
"selectWorld.backupQuestion.customized": "Customized worlds are no longer supported",
|
||||||
@ -2928,16 +2927,7 @@
|
|||||||
"createWorld.customize.buffet.generator": "Please select a generator type",
|
"createWorld.customize.buffet.generator": "Please select a generator type",
|
||||||
"createWorld.customize.buffet.biome": "Please select a biome",
|
"createWorld.customize.buffet.biome": "Please select a biome",
|
||||||
"createWorld.customize.custom.useOceanRuins": "Ocean Ruins",
|
"createWorld.customize.custom.useOceanRuins": "Ocean Ruins",
|
||||||
"createWorld.customize.custom.presets": "Presets",
|
|
||||||
"createWorld.customize.custom.preset.waterWorld": "Water World",
|
|
||||||
"spectatorMenu.previous_page": "Previous Page",
|
|
||||||
"spectatorMenu.next_page": "Next Page",
|
|
||||||
"generator.buffet": "Buffet",
|
"generator.buffet": "Buffet",
|
||||||
"selectServer.empty": "empty",
|
|
||||||
"selectServer.edit": "Edit",
|
|
||||||
"selectServer.delete": "Delete",
|
|
||||||
"selectServer.deleteButton": "Delete",
|
|
||||||
"addServer.add": "Done",
|
|
||||||
"multiplayer.message_not_delivered": "Can't deliver chat message, check server logs",
|
"multiplayer.message_not_delivered": "Can't deliver chat message, check server logs",
|
||||||
"multiplayer.status.finished": "Finished",
|
"multiplayer.status.finished": "Finished",
|
||||||
"multiplayer.status.request_handled": "Status requst has been handled",
|
"multiplayer.status.request_handled": "Status requst has been handled",
|
||||||
@ -2955,24 +2945,10 @@
|
|||||||
"connect.negotiating": "Negotiating...",
|
"connect.negotiating": "Negotiating...",
|
||||||
"connect.encrypting": "Encrypting...",
|
"connect.encrypting": "Encrypting...",
|
||||||
"connect.joining": "Joining world...",
|
"connect.joining": "Joining world...",
|
||||||
"disconnect.genericReason": "%s",
|
|
||||||
"disconnect.quitting": "Quitting",
|
|
||||||
"options.music": "Music",
|
|
||||||
"options.fov.min": "Normal",
|
|
||||||
"options.biomeBlendRadius": "Biome Blend",
|
"options.biomeBlendRadius": "Biome Blend",
|
||||||
"options.ao.off": "OFF",
|
|
||||||
"options.difficulty.normal": "Normal",
|
|
||||||
"options.difficulty.hardcore": "Hardcore",
|
|
||||||
"options.clouds.fancy": "Fancy",
|
|
||||||
"options.clouds.fast": "Fast",
|
|
||||||
"options.particles.all": "All",
|
|
||||||
"options.chat.visibility.full": "Shown",
|
|
||||||
"options.chat.visibility.hidden": "Hidden",
|
|
||||||
"options.autoSuggestCommands": "Command Suggestions",
|
"options.autoSuggestCommands": "Command Suggestions",
|
||||||
"options.fullscreen.resolution": "Fullscreen Resolution",
|
"options.fullscreen.resolution": "Fullscreen Resolution",
|
||||||
"options.fullscreen.current": "Current",
|
"options.fullscreen.current": "Current",
|
||||||
"key.categories.multiplayer": "Multiplayer",
|
|
||||||
"key.categories.creative": "Creative Mode",
|
|
||||||
"key.keyboard.unknown": "Not bound",
|
"key.keyboard.unknown": "Not bound",
|
||||||
"key.keyboard.apostrophe": "'",
|
"key.keyboard.apostrophe": "'",
|
||||||
"key.keyboard.backslash": "\\",
|
"key.keyboard.backslash": "\\",
|
||||||
@ -3353,17 +3329,7 @@
|
|||||||
"item.minecraft.phantom_membrane": "Phantom Membrane",
|
"item.minecraft.phantom_membrane": "Phantom Membrane",
|
||||||
"item.minecraft.nautilus_shell": "Nautilus Shell",
|
"item.minecraft.nautilus_shell": "Nautilus Shell",
|
||||||
"item.minecraft.heart_of_the_sea": "Heart of the Sea",
|
"item.minecraft.heart_of_the_sea": "Heart of the Sea",
|
||||||
"container.inventory": "Inventory",
|
|
||||||
"container.dispenser": "Dispenser",
|
|
||||||
"container.dropper": "Dropper",
|
|
||||||
"container.furnace": "Furnace",
|
|
||||||
"container.brewing": "Brewing Stand",
|
|
||||||
"container.chest": "Chest",
|
|
||||||
"container.enderchest": "Ender Chest",
|
|
||||||
"container.beacon": "Beacon",
|
|
||||||
"container.shulkerBox": "Shulker Box",
|
|
||||||
"structure_block.invalid_structure_name": "Invalid structure name '%s'",
|
"structure_block.invalid_structure_name": "Invalid structure name '%s'",
|
||||||
"structure_block.mode.save": "Save",
|
|
||||||
"filled_map.buried_treasure": "Buried Treasure Map",
|
"filled_map.buried_treasure": "Buried Treasure Map",
|
||||||
"filled_map.id": "Id #%s",
|
"filled_map.id": "Id #%s",
|
||||||
"entity.minecraft.area_effect_cloud": "Area Effect Cloud",
|
"entity.minecraft.area_effect_cloud": "Area Effect Cloud",
|
||||||
@ -3416,8 +3382,6 @@
|
|||||||
"death.attack.wither.player": "%1$s withered away whilst fighting %2$s",
|
"death.attack.wither.player": "%1$s withered away whilst fighting %2$s",
|
||||||
"death.attack.anvil.player": "%1$s was squashed by a falling anvil whilst fighting %2$s",
|
"death.attack.anvil.player": "%1$s was squashed by a falling anvil whilst fighting %2$s",
|
||||||
"death.attack.fallingBlock.player": "%1$s was squashed by a falling block whilst fighting %2$s",
|
"death.attack.fallingBlock.player": "%1$s was squashed by a falling block whilst fighting %2$s",
|
||||||
"death.attack.player": "%1$s was slain by %2$s",
|
|
||||||
"death.attack.player.item": "%1$s was slain by %2$s using %3$s",
|
|
||||||
"death.attack.thorns.item": "%1$s was killed by %3$s trying to hurt %2$s",
|
"death.attack.thorns.item": "%1$s was killed by %3$s trying to hurt %2$s",
|
||||||
"death.attack.trident": "%1$s was impaled by %2$s",
|
"death.attack.trident": "%1$s was impaled by %2$s",
|
||||||
"death.attack.trident.item": "%1$s was impaled by %2$s with %3$s",
|
"death.attack.trident.item": "%1$s was impaled by %2$s with %3$s",
|
||||||
@ -3444,31 +3408,15 @@
|
|||||||
"item.minecraft.splash_potion.effect.slow_falling": "Splash Potion of Slow Falling",
|
"item.minecraft.splash_potion.effect.slow_falling": "Splash Potion of Slow Falling",
|
||||||
"item.minecraft.lingering_potion.effect.turtle_master": "Lingering Potion of the Turtle Master",
|
"item.minecraft.lingering_potion.effect.turtle_master": "Lingering Potion of the Turtle Master",
|
||||||
"item.minecraft.lingering_potion.effect.slow_falling": "Lingering Potion of Slow Falling",
|
"item.minecraft.lingering_potion.effect.slow_falling": "Lingering Potion of Slow Falling",
|
||||||
"potion.potency.0": "",
|
|
||||||
"enchantment.minecraft.loyalty": "Loyalty",
|
"enchantment.minecraft.loyalty": "Loyalty",
|
||||||
"enchantment.minecraft.impaling": "Impaling",
|
"enchantment.minecraft.impaling": "Impaling",
|
||||||
"enchantment.minecraft.riptide": "Riptide",
|
"enchantment.minecraft.riptide": "Riptide",
|
||||||
"enchantment.minecraft.channeling": "Channeling",
|
"enchantment.minecraft.channeling": "Channeling",
|
||||||
"enchantment.level.2": "II",
|
|
||||||
"enchantment.level.3": "III",
|
|
||||||
"enchantment.level.4": "IV",
|
|
||||||
"enchantment.level.5": "V",
|
|
||||||
"enchantment.level.6": "VI",
|
|
||||||
"gui.advancements": "Advancements",
|
|
||||||
"stat.blocksButton": "Blocks",
|
|
||||||
"stat_type.minecraft.broken": "Times Broken",
|
"stat_type.minecraft.broken": "Times Broken",
|
||||||
"stat.minecraft.walk_under_water_one_cm": "Distance Walked under Water",
|
"stat.minecraft.walk_under_water_one_cm": "Distance Walked under Water",
|
||||||
"stat.minecraft.play_record": "Music Discs Played",
|
"stat.minecraft.play_record": "Music Discs Played",
|
||||||
"stat.minecraft.walk_on_water_one_cm": "Distance Walked on Water",
|
"stat.minecraft.walk_on_water_one_cm": "Distance Walked on Water",
|
||||||
"stat.minecraft.time_since_rest": "Since Last Rest",
|
"stat.minecraft.time_since_rest": "Since Last Rest",
|
||||||
"itemGroup.redstone": "Redstone",
|
|
||||||
"itemGroup.misc": "Miscellaneous",
|
|
||||||
"attribute.modifier.plus.2": "+%s%% %s",
|
|
||||||
"attribute.modifier.take.2": "-%s%% %s",
|
|
||||||
"attribute.modifier.equals.0": "%s %s",
|
|
||||||
"attribute.modifier.equals.2": "%s%% %s",
|
|
||||||
"attribute.name.generic.movementSpeed": "Speed",
|
|
||||||
"attribute.name.generic.luck": "Luck",
|
|
||||||
"subtitles.block.bubble_column.bubble_pop": "Bubbles pop",
|
"subtitles.block.bubble_column.bubble_pop": "Bubbles pop",
|
||||||
"subtitles.block.bubble_column.upwards_ambient": "Bubbles flow",
|
"subtitles.block.bubble_column.upwards_ambient": "Bubbles flow",
|
||||||
"subtitles.block.bubble_column.upwards_inside": "Bubbles woosh",
|
"subtitles.block.bubble_column.upwards_inside": "Bubbles woosh",
|
||||||
@ -3478,14 +3426,6 @@
|
|||||||
"subtitles.entity.parrot.imitate.drowned": "Parrot gurgles",
|
"subtitles.entity.parrot.imitate.drowned": "Parrot gurgles",
|
||||||
"subtitles.entity.parrot.imitate.illusioner": "Parrot murmurs",
|
"subtitles.entity.parrot.imitate.illusioner": "Parrot murmurs",
|
||||||
"subtitles.entity.parrot.imitate.phantom": "Parrot screeches",
|
"subtitles.entity.parrot.imitate.phantom": "Parrot screeches",
|
||||||
"subtitles.entity.parrot.imitate.polar_bear": "Parrot groans",
|
|
||||||
"subtitles.entity.parrot.imitate.silverfish": "Parrot hisses",
|
|
||||||
"subtitles.entity.parrot.imitate.slime": "Parrot squishes",
|
|
||||||
"subtitles.entity.parrot.imitate.spider": "Parrot hisses",
|
|
||||||
"subtitles.entity.parrot.imitate.stray": "Parrot rattles",
|
|
||||||
"subtitles.entity.parrot.imitate.wither_skeleton": "Parrot rattles",
|
|
||||||
"subtitles.entity.parrot.imitate.zombie": "Parrot groans",
|
|
||||||
"subtitles.entity.parrot.imitate.zombie_villager": "Parrot groans",
|
|
||||||
"subtitles.entity.cod.death": "Cod dies",
|
"subtitles.entity.cod.death": "Cod dies",
|
||||||
"subtitles.entity.cod.flop": "Cod flops",
|
"subtitles.entity.cod.flop": "Cod flops",
|
||||||
"subtitles.entity.cod.hurt": "Cod hurts",
|
"subtitles.entity.cod.hurt": "Cod hurts",
|
||||||
@ -3505,8 +3445,6 @@
|
|||||||
"subtitles.entity.drowned.shoot": "Drowned throws Trident",
|
"subtitles.entity.drowned.shoot": "Drowned throws Trident",
|
||||||
"subtitles.entity.drowned.step": "Drowned steps",
|
"subtitles.entity.drowned.step": "Drowned steps",
|
||||||
"subtitles.entity.drowned.swim": "Drowned swims",
|
"subtitles.entity.drowned.swim": "Drowned swims",
|
||||||
"subtitles.entity.generic.big_fall": "Something fell",
|
|
||||||
"subtitles.entity.horse.angry": "Horse neighs",
|
|
||||||
"subtitles.entity.husk.converted_to_zombie": "Husk converted to Zombie",
|
"subtitles.entity.husk.converted_to_zombie": "Husk converted to Zombie",
|
||||||
"subtitles.entity.phantom.ambient": "Phantom screeches",
|
"subtitles.entity.phantom.ambient": "Phantom screeches",
|
||||||
"subtitles.entity.phantom.bite": "Phantom bites",
|
"subtitles.entity.phantom.bite": "Phantom bites",
|
||||||
@ -3514,7 +3452,6 @@
|
|||||||
"subtitles.entity.phantom.flap": "Phantom flaps",
|
"subtitles.entity.phantom.flap": "Phantom flaps",
|
||||||
"subtitles.entity.phantom.hurt": "Phantom hurts",
|
"subtitles.entity.phantom.hurt": "Phantom hurts",
|
||||||
"subtitles.entity.phantom.swoop": "Phantom swoops",
|
"subtitles.entity.phantom.swoop": "Phantom swoops",
|
||||||
"subtitles.entity.pig.saddle": "Saddle equips",
|
|
||||||
"subtitles.entity.puffer_fish.blow_out": "Pufferfish deflates",
|
"subtitles.entity.puffer_fish.blow_out": "Pufferfish deflates",
|
||||||
"subtitles.entity.puffer_fish.blow_up": "Pufferfish inflates",
|
"subtitles.entity.puffer_fish.blow_up": "Pufferfish inflates",
|
||||||
"subtitles.entity.puffer_fish.death": "Pufferfish dies",
|
"subtitles.entity.puffer_fish.death": "Pufferfish dies",
|
||||||
@ -3524,8 +3461,6 @@
|
|||||||
"subtitles.entity.salmon.death": "Salmon dies",
|
"subtitles.entity.salmon.death": "Salmon dies",
|
||||||
"subtitles.entity.salmon.flop": "Salmon flops",
|
"subtitles.entity.salmon.flop": "Salmon flops",
|
||||||
"subtitles.entity.salmon.hurt": "Salmon hurts",
|
"subtitles.entity.salmon.hurt": "Salmon hurts",
|
||||||
"subtitles.entity.shulker.close": "Shulker closes",
|
|
||||||
"subtitles.entity.shulker.open": "Shulker opens",
|
|
||||||
"subtitles.entity.skeleton_horse.swim": "Skeleton Horse swims",
|
"subtitles.entity.skeleton_horse.swim": "Skeleton Horse swims",
|
||||||
"subtitles.entity.squid.squirt": "Squid shoots ink",
|
"subtitles.entity.squid.squirt": "Squid shoots ink",
|
||||||
"subtitles.entity.turtle.ambient_land": "Turtle chirps",
|
"subtitles.entity.turtle.ambient_land": "Turtle chirps",
|
||||||
@ -3570,7 +3505,6 @@
|
|||||||
"debug.crash.warning": "Crashing in %s...",
|
"debug.crash.warning": "Crashing in %s...",
|
||||||
"advancements.adventure.very_very_frightening.title": "Very Very Frightening",
|
"advancements.adventure.very_very_frightening.title": "Very Very Frightening",
|
||||||
"advancements.adventure.very_very_frightening.description": "Strike a Villager with lightning",
|
"advancements.adventure.very_very_frightening.description": "Strike a Villager with lightning",
|
||||||
"advancements.adventure.root.title": "Adventure",
|
|
||||||
"advancements.adventure.throw_trident.title": "A Throwaway Joke",
|
"advancements.adventure.throw_trident.title": "A Throwaway Joke",
|
||||||
"advancements.adventure.throw_trident.description": "Throw a trident at something.\nNote: Throwing away your only weapon is not a good idea.",
|
"advancements.adventure.throw_trident.description": "Throw a trident at something.\nNote: Throwing away your only weapon is not a good idea.",
|
||||||
"advancements.husbandry.fishy_business.title": "Fishy Business",
|
"advancements.husbandry.fishy_business.title": "Fishy Business",
|
||||||
@ -4069,5 +4003,582 @@
|
|||||||
"generator.minecraft.floating_islands": "Floating Islands",
|
"generator.minecraft.floating_islands": "Floating Islands",
|
||||||
"realms.missing.module.error.text": "Realms could not be opened right now, please try again later",
|
"realms.missing.module.error.text": "Realms could not be opened right now, please try again later",
|
||||||
"realms.missing.snapshot.error.text": "Realms is currently not supported in snapshots"
|
"realms.missing.snapshot.error.text": "Realms is currently not supported in snapshots"
|
||||||
|
},
|
||||||
|
"1.12": {
|
||||||
|
"gui.recipebook.moreRecipes": "Right Click for more",
|
||||||
|
"gui.recipebook.toggleRecipes.all": "Showing all",
|
||||||
|
"gui.recipebook.toggleRecipes.craftable": "Showing craftable",
|
||||||
|
"multiplayer.status.and_more": "... and %s more ...",
|
||||||
|
"multiplayer.status.cancelled": "Cancelled",
|
||||||
|
"multiplayer.status.cannot_connect": "Can't connect to server",
|
||||||
|
"multiplayer.status.cannot_resolve": "Can't resolve hostname",
|
||||||
|
"multiplayer.status.client_out_of_date": "Client out of date!",
|
||||||
|
"multiplayer.status.no_connection": "(no connection)",
|
||||||
|
"multiplayer.status.old": "Old",
|
||||||
|
"multiplayer.status.pinging": "Pinging...",
|
||||||
|
"multiplayer.status.server_out_of_date": "Server out of date!",
|
||||||
|
"multiplayer.status.unknown": "???",
|
||||||
|
"multiplayer.status.unrequested": "Received unrequested status",
|
||||||
|
"multiplayer.disconnect.authservers_down": "Authentication servers are down. Please try again later, sorry!",
|
||||||
|
"multiplayer.disconnect.banned": "You are banned from this server.",
|
||||||
|
"multiplayer.disconnect.duplicate_login": "You logged in from another location",
|
||||||
|
"multiplayer.disconnect.flying": "Flying is not enabled on this server",
|
||||||
|
"multiplayer.disconnect.generic": "Disconnected",
|
||||||
|
"multiplayer.disconnect.idling": "You have been idle for too long!",
|
||||||
|
"multiplayer.disconnect.illegal_characters": "Illegal characters in chat",
|
||||||
|
"multiplayer.disconnect.invalid_entity_attacked": "Attempting to attack an invalid entity",
|
||||||
|
"multiplayer.disconnect.invalid_player_movement": "Invalid move player packet received",
|
||||||
|
"multiplayer.disconnect.invalid_vehicle_movement": "Invalid move vehicle packet received",
|
||||||
|
"multiplayer.disconnect.ip_banned": "You have been IP banned.",
|
||||||
|
"multiplayer.disconnect.kicked": "Kicked by an operator.",
|
||||||
|
"multiplayer.disconnect.outdated_client": "Outdated client! Please use %s",
|
||||||
|
"multiplayer.disconnect.outdated_server": "Outdated server! I'm still on %s",
|
||||||
|
"multiplayer.disconnect.server_shutdown": "Server closed",
|
||||||
|
"multiplayer.disconnect.slow_login": "Took too long to log in",
|
||||||
|
"multiplayer.disconnect.unverified_username": "Failed to verify username!",
|
||||||
|
"chat.type.text.narrate": "%s says %s",
|
||||||
|
"chat.type.advancement.task": "%s has made the advancement %s",
|
||||||
|
"chat.type.advancement.challenge": "%s has completed the challenge %s",
|
||||||
|
"chat.type.advancement.goal": "%s has reached the goal %s",
|
||||||
|
"options.clouds.fancy": "Fancy",
|
||||||
|
"options.clouds.fast": "Fast",
|
||||||
|
"options.narrator": "Narrator",
|
||||||
|
"options.narrator.off": "Off",
|
||||||
|
"options.narrator.all": "Narrates all",
|
||||||
|
"options.narrator.chat": "Narrates chat",
|
||||||
|
"options.narrator.system": "Narrates system",
|
||||||
|
"options.narrator.notavailable": "Not available",
|
||||||
|
"narrator.toast.disabled": "Narrator Disabled",
|
||||||
|
"narrator.toast.enabled": "Narrator Enabled",
|
||||||
|
"key.mouse.left": "Left Click",
|
||||||
|
"key.mouse.middle": "Middle Click",
|
||||||
|
"key.mouse.right": "Right Click",
|
||||||
|
"key.saveToolbarActivator": "Save Toolbar Activator",
|
||||||
|
"key.loadToolbarActivator": "Load Toolbar Activator",
|
||||||
|
"key.advancements": "Advancements",
|
||||||
|
"key.categories.creative": "Creative Mode",
|
||||||
|
"tile.glazedTerracottaWhite.name": "White Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaOrange.name": "Orange Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaMagenta.name": "Magenta Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaLightBlue.name": "Light Blue Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaYellow.name": "Yellow Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaLime.name": "Lime Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaPink.name": "Pink Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaGray.name": "Gray Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaSilver.name": "Light Gray Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaCyan.name": "Cyan Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaPurple.name": "Purple Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaBlue.name": "Blue Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaBrown.name": "Brown Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaGreen.name": "Green Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaRed.name": "Red Glazed Terracotta",
|
||||||
|
"tile.glazedTerracottaBlack.name": "Black Glazed Terracotta",
|
||||||
|
"tile.concrete.black.name": "Black Concrete",
|
||||||
|
"tile.concrete.red.name": "Red Concrete",
|
||||||
|
"tile.concrete.green.name": "Green Concrete",
|
||||||
|
"tile.concrete.brown.name": "Brown Concrete",
|
||||||
|
"tile.concrete.blue.name": "Blue Concrete",
|
||||||
|
"tile.concrete.purple.name": "Purple Concrete",
|
||||||
|
"tile.concrete.cyan.name": "Cyan Concrete",
|
||||||
|
"tile.concrete.silver.name": "Light Gray Concrete",
|
||||||
|
"tile.concrete.gray.name": "Gray Concrete",
|
||||||
|
"tile.concrete.pink.name": "Pink Concrete",
|
||||||
|
"tile.concrete.lime.name": "Lime Concrete",
|
||||||
|
"tile.concrete.yellow.name": "Yellow Concrete",
|
||||||
|
"tile.concrete.lightBlue.name": "Light Blue Concrete",
|
||||||
|
"tile.concrete.magenta.name": "Magenta Concrete",
|
||||||
|
"tile.concrete.orange.name": "Orange Concrete",
|
||||||
|
"tile.concrete.white.name": "White Concrete",
|
||||||
|
"tile.concretePowder.black.name": "Black Concrete Powder",
|
||||||
|
"tile.concretePowder.red.name": "Red Concrete Powder",
|
||||||
|
"tile.concretePowder.green.name": "Green Concrete Powder",
|
||||||
|
"tile.concretePowder.brown.name": "Brown Concrete Powder",
|
||||||
|
"tile.concretePowder.blue.name": "Blue Concrete Powder",
|
||||||
|
"tile.concretePowder.purple.name": "Purple Concrete Powder",
|
||||||
|
"tile.concretePowder.cyan.name": "Cyan Concrete Powder",
|
||||||
|
"tile.concretePowder.silver.name": "Light Gray Concrete Powder",
|
||||||
|
"tile.concretePowder.gray.name": "Gray Concrete Powder",
|
||||||
|
"tile.concretePowder.pink.name": "Pink Concrete Powder",
|
||||||
|
"tile.concretePowder.lime.name": "Lime Concrete Powder",
|
||||||
|
"tile.concretePowder.yellow.name": "Yellow Concrete Powder",
|
||||||
|
"tile.concretePowder.lightBlue.name": "Light Blue Concrete Powder",
|
||||||
|
"tile.concretePowder.magenta.name": "Magenta Concrete Powder",
|
||||||
|
"tile.concretePowder.orange.name": "Orange Concrete Powder",
|
||||||
|
"tile.concretePowder.white.name": "White Concrete Powder",
|
||||||
|
"item.bed.black.name": "Black Bed",
|
||||||
|
"item.bed.red.name": "Red Bed",
|
||||||
|
"item.bed.green.name": "Green Bed",
|
||||||
|
"item.bed.brown.name": "Brown Bed",
|
||||||
|
"item.bed.blue.name": "Blue Bed",
|
||||||
|
"item.bed.purple.name": "Purple Bed",
|
||||||
|
"item.bed.cyan.name": "Cyan Bed",
|
||||||
|
"item.bed.silver.name": "Light Gray Bed",
|
||||||
|
"item.bed.gray.name": "Gray Bed",
|
||||||
|
"item.bed.pink.name": "Pink Bed",
|
||||||
|
"item.bed.lime.name": "Lime Bed",
|
||||||
|
"item.bed.yellow.name": "Yellow Bed",
|
||||||
|
"item.bed.lightBlue.name": "Light Blue Bed",
|
||||||
|
"item.bed.magenta.name": "Magenta Bed",
|
||||||
|
"item.bed.orange.name": "Orange Bed",
|
||||||
|
"item.bed.white.name": "White Bed",
|
||||||
|
"item.knowledgeBook.name": "Knowledge Book",
|
||||||
|
"container.enchant.level.requirement": "Level requirement: %s",
|
||||||
|
"filled_map.unknown": "Unknown Map",
|
||||||
|
"filled_map.level": "(Level %s/%s)",
|
||||||
|
"filled_map.scale": "Scaling at 1:%s",
|
||||||
|
"entity.Parrot.name": "Parrot",
|
||||||
|
"entity.IllusionIllager.name": "Illusioner",
|
||||||
|
"gui.advancements": "Advancements",
|
||||||
|
"advancements.empty": "There doesn't seem to be anything here...",
|
||||||
|
"advancements.toast.task": "Advancement Made!",
|
||||||
|
"advancements.toast.challenge": "Challenge Complete!",
|
||||||
|
"advancements.toast.goal": "Goal Reached!",
|
||||||
|
"recipe.toast.title": "New Recipes Unlocked!",
|
||||||
|
"recipe.toast.description": "Check your recipe book",
|
||||||
|
"commands.advancement.usage": "/advancement <grant|revoke|test> <player>",
|
||||||
|
"commands.advancement.advancementNotFound": "No advancement was found by the name '%1$s'",
|
||||||
|
"commands.advancement.criterionNotFound": "The advancement '%1$s' does not contain the criterion '%2$s'",
|
||||||
|
"commands.reload.usage": "/reload",
|
||||||
|
"commands.reload.success": "Successfully reloaded loot tables, advancements and functions",
|
||||||
|
"commands.function.usage": "/function <name> [if <selector>|unless <selector>]",
|
||||||
|
"commands.function.unknown": "Unknown function '%s'",
|
||||||
|
"commands.function.success": "Executed %2$s command(s) from function '%1$s'",
|
||||||
|
"commands.function.skipped": "Skipped execution of function '%1$s'",
|
||||||
|
"commands.advancement.grant.usage": "/advancement grant <player> <only|until|from|through|everything>",
|
||||||
|
"commands.advancement.grant.only.usage": "/advancement grant <player> only <advancement> [criterion]",
|
||||||
|
"commands.advancement.grant.only.failed": "Couldn't grant the advancement '%1$s' to %2$s because they already have it",
|
||||||
|
"commands.advancement.grant.only.success": "Granted the entire advancement '%1$s' to %2$s",
|
||||||
|
"commands.advancement.grant.criterion.failed": "Couldn't grant the criterion '%3$s' of advancement '%1$s' to %2$s because they already have it",
|
||||||
|
"commands.advancement.grant.criterion.success": "Granted the criterion '%3$s' of advancement '%1$s' to %2$s",
|
||||||
|
"commands.advancement.grant.until.usage": "/advancement grant <player> until <advancement>",
|
||||||
|
"commands.advancement.grant.until.failed": "Couldn't grant the advancement '%1$s' or its ancestors to %2$s because they already have them all",
|
||||||
|
"commands.advancement.grant.until.success": "Granted '%1$s' and all ancestors (%3$s total granted) to %2$s",
|
||||||
|
"commands.advancement.grant.from.usage": "/advancement grant <player> from <advancement>",
|
||||||
|
"commands.advancement.grant.from.failed": "Couldn't grant the advancement '%1$s' or its descendants to %2$s because they already have them all",
|
||||||
|
"commands.advancement.grant.from.success": "Granted '%1$s' and all descendants (%3$s total granted) to %2$s",
|
||||||
|
"commands.advancement.grant.through.usage": "/advancement grant <player> through <advancement>",
|
||||||
|
"commands.advancement.grant.through.failed": "Couldn't grant the advancement '%1$s', its ancestors or its descendants to %2$s because they already have them all",
|
||||||
|
"commands.advancement.grant.through.success": "Granted '%1$s', all ancestors and all descendants (%3$s total granted) to %2$s",
|
||||||
|
"commands.advancement.grant.everything.usage": "/advancement grant <player> everything",
|
||||||
|
"commands.advancement.grant.everything.failed": "Couldn't grant any advancements to %1$s because they already have them all",
|
||||||
|
"commands.advancement.grant.everything.success": "Granted every advancement (%2$s total granted) to %1$s",
|
||||||
|
"commands.advancement.revoke.usage": "/advancement revoke <player> <only|until|from|through|everything>",
|
||||||
|
"commands.advancement.revoke.only.usage": "/advancement revoke <player> only <advancement> [criterion]",
|
||||||
|
"commands.advancement.revoke.only.failed": "Couldn't revoke the advancement '%1$s' from %2$s because they haven't started it",
|
||||||
|
"commands.advancement.revoke.only.success": "Revoked the entire advancement '%1$s' from %2$s",
|
||||||
|
"commands.advancement.revoke.criterion.failed": "Couldn't revoke the criterion '%3$s' of advancement '%1$s' from %2$s because they haven't started it",
|
||||||
|
"commands.advancement.revoke.criterion.success": "Revoked the criterion '%3$s' of advancement '%1$s' from %2$s",
|
||||||
|
"commands.advancement.revoke.until.usage": "/advancement revoke <player> until <advancement>",
|
||||||
|
"commands.advancement.revoke.until.failed": "Couldn't revoke the advancement '%1$s' or its ancestors from %2$s because they haven't started any",
|
||||||
|
"commands.advancement.revoke.until.success": "Revoked '%1$s' and all ancestors (%3$s total revoked) from %2$s",
|
||||||
|
"commands.advancement.revoke.from.usage": "/advancement revoke <player> from <advancement>",
|
||||||
|
"commands.advancement.revoke.from.failed": "Couldn't revoke the advancement '%1$s' or its descendants from %2$s because they haven't started any",
|
||||||
|
"commands.advancement.revoke.from.success": "Revoked '%1$s' and all descendants (%3$s total revoked) from %2$s",
|
||||||
|
"commands.advancement.revoke.through.usage": "/advancement revoke <player> through <advancement>",
|
||||||
|
"commands.advancement.revoke.through.failed": "Couldn't revoke the advancement '%1$s', its ancestors or its descendants from %2$s because they haven't started any",
|
||||||
|
"commands.advancement.revoke.through.success": "Revoked '%1$s', all ancestors and all descendants (%3$s total revoked) from %2$s",
|
||||||
|
"commands.advancement.revoke.everything.usage": "/advancement revoke <player> everything",
|
||||||
|
"commands.advancement.revoke.everything.failed": "Couldn't revoke any advancements to %1$s because they haven't started any",
|
||||||
|
"commands.advancement.revoke.everything.success": "Revoked every advancement (%2$s total revoked) from %1$s",
|
||||||
|
"commands.advancement.test.usage": "/advancement test <player> <advancement> [criterion]",
|
||||||
|
"commands.advancement.test.criterion.success": "Player %1$s has completed criterion '%3$s' of advancement '%2$s'",
|
||||||
|
"commands.advancement.test.criterion.notDone": "Player %1$s has not completed criterion '%3$s' of advancement '%2$s'",
|
||||||
|
"commands.advancement.test.advancement.success": "Player %1$s has completed advancement '%2$s'",
|
||||||
|
"commands.advancement.test.advancement.notDone": "Player %1$s has not completed advancement '%2$s'",
|
||||||
|
"commands.recipe.usage": "/recipe <give|take> [player] <name|*>",
|
||||||
|
"commands.recipe.alreadyHave": "Player %s already has a recipe for %s",
|
||||||
|
"commands.recipe.dontHave": "Player %s doesn't have the recipe for %s",
|
||||||
|
"commands.recipe.give.success.all": "Successfully given all recipes to %s",
|
||||||
|
"commands.recipe.give.success.one": "Successfully given %s the recipe for %s",
|
||||||
|
"commands.recipe.take.success.all": "Successfully taken all recipes from %s",
|
||||||
|
"commands.recipe.take.success.one": "Successfully removed the recipe for %s from %s",
|
||||||
|
"commands.recipe.unknownrecipe": "%s is an unknown recipe",
|
||||||
|
"commands.recipe.unsupported": "%s is an unsupported recipe",
|
||||||
|
"itemGroup.hotbar": "Saved Toolbars",
|
||||||
|
"inventory.hotbarSaved": "Item toolbar saved (restore with %1$s+%2$s)",
|
||||||
|
"inventory.hotbarInfo": "Save toolbar with %1$s+%2$s",
|
||||||
|
"advMode.self": "Use \"@s\" to target the executing entity",
|
||||||
|
"subtitles.entity.parrot.ambient": "Parrot talks",
|
||||||
|
"subtitles.entity.parrot.death": "Parrot dies",
|
||||||
|
"subtitles.entity.parrot.eats": "Parrot eats",
|
||||||
|
"subtitles.entity.parrot.hurts": "Parrot hurts",
|
||||||
|
"subtitles.entity.parrot.imitate.blaze": "Parrot breathes",
|
||||||
|
"subtitles.entity.parrot.imitate.cave_spider": "Parrot hisses",
|
||||||
|
"subtitles.entity.parrot.imitate.creeper": "Parrot hisses",
|
||||||
|
"subtitles.entity.parrot.imitate.elder_guardian": "Parrot flaps",
|
||||||
|
"subtitles.entity.parrot.imitate.enderdragon": "Parrot roars",
|
||||||
|
"subtitles.entity.parrot.imitate.enderman": "Parrot vwoops",
|
||||||
|
"subtitles.entity.parrot.imitate.endermite": "Parrot scuttles",
|
||||||
|
"subtitles.entity.parrot.imitate.evocation_illager": "Parrot murmurs",
|
||||||
|
"subtitles.entity.parrot.imitate.ghast": "Parrot cries",
|
||||||
|
"subtitles.entity.parrot.imitate.husk": "Parrot groans",
|
||||||
|
"subtitles.entity.parrot.imitate.illusion_illager": "Parrot murmurs",
|
||||||
|
"subtitles.entity.parrot.imitate.magmacube": "Parrot squishes",
|
||||||
|
"subtitles.entity.parrot.imitate.polar_bear": "Parrot groans",
|
||||||
|
"subtitles.entity.parrot.imitate.shulker": "Parrot lurks",
|
||||||
|
"subtitles.entity.parrot.imitate.silverfish": "Parrot hisses",
|
||||||
|
"subtitles.entity.parrot.imitate.skeleton": "Parrot rattles",
|
||||||
|
"subtitles.entity.parrot.imitate.slime": "Parrot squishes",
|
||||||
|
"subtitles.entity.parrot.imitate.spider": "Parrot hisses",
|
||||||
|
"subtitles.entity.parrot.imitate.stray": "Parrot rattles",
|
||||||
|
"subtitles.entity.parrot.imitate.vex": "Parrot vexes",
|
||||||
|
"subtitles.entity.parrot.imitate.vindication_illager": "Parrot mutters",
|
||||||
|
"subtitles.entity.parrot.imitate.witch": "Parrot giggles",
|
||||||
|
"subtitles.entity.parrot.imitate.wither": "Parrot angers",
|
||||||
|
"subtitles.entity.parrot.imitate.wither_skeleton": "Parrot rattles",
|
||||||
|
"subtitles.entity.parrot.imitate.wolf": "Parrot pants",
|
||||||
|
"subtitles.entity.parrot.imitate.zombie": "Parrot groans",
|
||||||
|
"subtitles.entity.parrot.imitate.zombie_pigman": "Parrot grunts",
|
||||||
|
"subtitles.entity.parrot.imitate.zombie_villager": "Parrot groans",
|
||||||
|
"subtitles.entity.illusion_illager.ambient": "Illusioner murmurs",
|
||||||
|
"subtitles.entity.illusion_illager.cast_spell": "Illusioner casts spell",
|
||||||
|
"subtitles.entity.illusion_illager.death": "Illusioner dies",
|
||||||
|
"subtitles.entity.illusion_illager.hurt": "Illusioner hurts",
|
||||||
|
"subtitles.entity.illusion_illager.mirror_move": "Illusioner displaces",
|
||||||
|
"subtitles.entity.illusion_illager.prepare_blindness": "Illusioner prepares blindness",
|
||||||
|
"subtitles.entity.illusion_illager.prepare_mirror": "Illusioner prepares mirror image",
|
||||||
|
"tutorial.move.title": "Move with %s, %s, %s and %s",
|
||||||
|
"tutorial.move.description": "Jump with %s",
|
||||||
|
"tutorial.look.title": "Look around",
|
||||||
|
"tutorial.look.description": "Use your mouse to turn",
|
||||||
|
"tutorial.find_tree.title": "Find a tree",
|
||||||
|
"tutorial.find_tree.description": "Punch it to collect wood",
|
||||||
|
"tutorial.punch_tree.title": "Destroy the tree",
|
||||||
|
"tutorial.punch_tree.description": "Hold down %s",
|
||||||
|
"tutorial.open_inventory.title": "Open your inventory",
|
||||||
|
"tutorial.open_inventory.description": "Press %s",
|
||||||
|
"tutorial.craft_planks.title": "Craft wooden planks",
|
||||||
|
"tutorial.craft_planks.description": "The recipe book can help",
|
||||||
|
"advancements.adventure.adventuring_time.title": "Adventuring Time",
|
||||||
|
"advancements.adventure.adventuring_time.description": "Discover every biome",
|
||||||
|
"advancements.adventure.kill_all_mobs.title": "Monsters Hunted",
|
||||||
|
"advancements.adventure.kill_all_mobs.description": "Kill one of every hostile monster",
|
||||||
|
"advancements.adventure.kill_a_mob.title": "Monster Hunter",
|
||||||
|
"advancements.adventure.kill_a_mob.description": "Kill any hostile monster",
|
||||||
|
"advancements.adventure.root.title": "Adventure",
|
||||||
|
"advancements.adventure.root.description": "Adventure, exploration and combat",
|
||||||
|
"advancements.adventure.shoot_arrow.title": "Take Aim",
|
||||||
|
"advancements.adventure.shoot_arrow.description": "Shoot something with a bow and arrow",
|
||||||
|
"advancements.adventure.sleep_in_bed.title": "Sweet dreams",
|
||||||
|
"advancements.adventure.sleep_in_bed.description": "Change your respawn point",
|
||||||
|
"advancements.adventure.sniper_duel.title": "Sniper duel",
|
||||||
|
"advancements.adventure.sniper_duel.description": "Kill a skeleton with an arrow from more than 50 meters",
|
||||||
|
"advancements.adventure.trade.title": "What a Deal!",
|
||||||
|
"advancements.adventure.trade.description": "Successfully trade with a Villager",
|
||||||
|
"advancements.adventure.summon_iron_golem.title": "Hired Help",
|
||||||
|
"advancements.adventure.summon_iron_golem.description": "Summon an Iron Golem to help defend a village",
|
||||||
|
"advancements.adventure.totem_of_undying.title": "Postmortal",
|
||||||
|
"advancements.adventure.totem_of_undying.description": "Use a Totem of Undying to cheat death",
|
||||||
|
"advancements.husbandry.root.title": "Husbandry",
|
||||||
|
"advancements.husbandry.root.description": "The world is full of friends and food",
|
||||||
|
"advancements.husbandry.breed_an_animal.title": "The Parrots and the Bats",
|
||||||
|
"advancements.husbandry.breed_an_animal.description": "Breed two animals together",
|
||||||
|
"advancements.husbandry.breed_all_animals.title": "Two by Two",
|
||||||
|
"advancements.husbandry.breed_all_animals.description": "Breed all the animals!",
|
||||||
|
"advancements.husbandry.tame_an_animal.title": "Best Friends Forever",
|
||||||
|
"advancements.husbandry.tame_an_animal.description": "Tame an animal",
|
||||||
|
"advancements.husbandry.plant_seed.title": "A Seedy Place",
|
||||||
|
"advancements.husbandry.plant_seed.description": "Plant a seed and watch it grow",
|
||||||
|
"advancements.husbandry.break_diamond_hoe.title": "Serious Dedication",
|
||||||
|
"advancements.husbandry.break_diamond_hoe.description": "Completely use up a diamond hoe, and then reevaluate your life choices",
|
||||||
|
"advancements.husbandry.balanced_diet.title": "A Balanced Diet",
|
||||||
|
"advancements.husbandry.balanced_diet.description": "Eat everything that is edible, even if it's not good for you",
|
||||||
|
"advancements.end.dragon_breath.title": "You Need a Mint",
|
||||||
|
"advancements.end.dragon_breath.description": "Collect dragon's breath in a glass bottle",
|
||||||
|
"advancements.end.dragon_egg.title": "The Next Generation",
|
||||||
|
"advancements.end.dragon_egg.description": "Hold the Dragon Egg",
|
||||||
|
"advancements.end.elytra.title": "Sky's the Limit",
|
||||||
|
"advancements.end.elytra.description": "Find an Elytra",
|
||||||
|
"advancements.end.enter_end_gateway.title": "Remote Getaway",
|
||||||
|
"advancements.end.enter_end_gateway.description": "Escape the island",
|
||||||
|
"advancements.end.find_end_city.title": "The City at the End of the Game",
|
||||||
|
"advancements.end.find_end_city.description": "Go on in, what could happen?",
|
||||||
|
"advancements.end.kill_dragon.title": "Free the End",
|
||||||
|
"advancements.end.kill_dragon.description": "Good luck",
|
||||||
|
"advancements.end.levitate.title": "Great View From Up Here",
|
||||||
|
"advancements.end.levitate.description": "Levitate up 50 blocks from the attacks of a Shulker",
|
||||||
|
"advancements.end.respawn_dragon.title": "The End... Again...",
|
||||||
|
"advancements.end.respawn_dragon.description": "Respawn the ender dragon",
|
||||||
|
"advancements.end.root.title": "The End",
|
||||||
|
"advancements.end.root.description": "Or the beginning?",
|
||||||
|
"advancements.nether.brew_potion.title": "Local Brewery",
|
||||||
|
"advancements.nether.brew_potion.description": "Brew a potion",
|
||||||
|
"advancements.nether.all_potions.title": "A Furious Cocktail",
|
||||||
|
"advancements.nether.all_potions.description": "Have every potion effect applied at the same time",
|
||||||
|
"advancements.nether.all_effects.title": "How Did We Get Here?",
|
||||||
|
"advancements.nether.all_effects.description": "Have every effect applied at the same time",
|
||||||
|
"advancements.nether.create_beacon.title": "Bring Home the Beacon",
|
||||||
|
"advancements.nether.create_beacon.description": "Construct and place a Beacon",
|
||||||
|
"advancements.nether.create_full_beacon.title": "Beaconator",
|
||||||
|
"advancements.nether.create_full_beacon.description": "Bring a beacon to full power",
|
||||||
|
"advancements.nether.find_fortress.title": "A Terrible Fortress",
|
||||||
|
"advancements.nether.find_fortress.description": "Break your way into a Nether Fortress",
|
||||||
|
"advancements.nether.get_wither_skull.title": "Spooky Scary Skeleton",
|
||||||
|
"advancements.nether.get_wither_skull.description": "Obtain a wither skeleton's skull",
|
||||||
|
"advancements.nether.obtain_blaze_rod.title": "Into Fire",
|
||||||
|
"advancements.nether.obtain_blaze_rod.description": "Relieve a Blaze of its rod",
|
||||||
|
"advancements.nether.return_to_sender.title": "Return to Sender",
|
||||||
|
"advancements.nether.return_to_sender.description": "Destroy a Ghast with a fireball",
|
||||||
|
"advancements.nether.root.title": "Nether",
|
||||||
|
"advancements.nether.root.description": "Bring summer clothes",
|
||||||
|
"advancements.nether.summon_wither.title": "Withering Heights",
|
||||||
|
"advancements.nether.summon_wither.description": "Summon the Wither",
|
||||||
|
"advancements.nether.fast_travel.title": "Subspace Bubble",
|
||||||
|
"advancements.nether.fast_travel.description": "Use the Nether to travel 7km in the Overworld",
|
||||||
|
"advancements.nether.uneasy_alliance.title": "Uneasy Alliance",
|
||||||
|
"advancements.nether.uneasy_alliance.description": "Rescue a Ghast from the Nether, bring it safely home to the Overworld... and then kill it.",
|
||||||
|
"advancements.story.cure_zombie_villager.title": "Zombie Doctor",
|
||||||
|
"advancements.story.cure_zombie_villager.description": "Weaken and then cure a zombie villager",
|
||||||
|
"advancements.story.deflect_arrow.title": "Not Today, Thank You",
|
||||||
|
"advancements.story.deflect_arrow.description": "Deflect an arrow with a shield",
|
||||||
|
"advancements.story.enchant_item.title": "Enchanter",
|
||||||
|
"advancements.story.enchant_item.description": "Enchant an item at an Enchanting Table",
|
||||||
|
"advancements.story.enter_the_end.title": "The End?",
|
||||||
|
"advancements.story.enter_the_end.description": "Enter the End Portal",
|
||||||
|
"advancements.story.enter_the_nether.title": "We Need to Go Deeper",
|
||||||
|
"advancements.story.enter_the_nether.description": "Build, light and enter a Nether Portal",
|
||||||
|
"advancements.story.follow_ender_eye.title": "Eye Spy",
|
||||||
|
"advancements.story.follow_ender_eye.description": "Follow an Ender Eye",
|
||||||
|
"advancements.story.form_obsidian.title": "Ice Bucket Challenge",
|
||||||
|
"advancements.story.form_obsidian.description": "Form and mine a block of Obsidian",
|
||||||
|
"advancements.story.iron_tools.title": "Isn't It Iron Pick",
|
||||||
|
"advancements.story.iron_tools.description": "Upgrade your pickaxe",
|
||||||
|
"advancements.story.lava_bucket.title": "Hot Stuff",
|
||||||
|
"advancements.story.lava_bucket.description": "Fill a bucket with lava",
|
||||||
|
"advancements.story.mine_diamond.title": "Diamonds!",
|
||||||
|
"advancements.story.mine_diamond.description": "Acquire diamonds",
|
||||||
|
"advancements.story.mine_stone.title": "Stone Age",
|
||||||
|
"advancements.story.mine_stone.description": "Mine stone with your new pickaxe",
|
||||||
|
"advancements.story.obtain_armor.title": "Suit Up",
|
||||||
|
"advancements.story.obtain_armor.description": "Protect yourself with a piece of iron armor",
|
||||||
|
"advancements.story.root.title": "Minecraft",
|
||||||
|
"advancements.story.root.description": "The heart and story of the game",
|
||||||
|
"advancements.story.shiny_gear.title": "Cover Me With Diamonds",
|
||||||
|
"advancements.story.shiny_gear.description": "Diamond armor saves lives",
|
||||||
|
"advancements.story.smelt_iron.title": "Acquire Hardware",
|
||||||
|
"advancements.story.smelt_iron.description": "Smelt an iron ingot",
|
||||||
|
"advancements.story.upgrade_tools.title": "Getting an Upgrade",
|
||||||
|
"advancements.story.upgrade_tools.description": "Construct a better pickaxe"
|
||||||
|
},
|
||||||
|
"1.11": {
|
||||||
|
"selectWorld.unable_to_load": "Unable to load worlds",
|
||||||
|
"selectWorld.load_folder_access": "Unable to read or access folder where game worlds are saved!",
|
||||||
|
"createWorld.customize.preset.classic_flat": "Classic Flat",
|
||||||
|
"createWorld.customize.preset.tunnelers_dream": "Tunnelers' Dream",
|
||||||
|
"createWorld.customize.preset.water_world": "Water World",
|
||||||
|
"createWorld.customize.preset.overworld": "Overworld",
|
||||||
|
"createWorld.customize.preset.snowy_kingdom": "Snowy Kingdom",
|
||||||
|
"createWorld.customize.preset.bottomless_pit": "Bottomless Pit",
|
||||||
|
"createWorld.customize.preset.desert": "Desert",
|
||||||
|
"createWorld.customize.preset.redstone_ready": "Redstone Ready",
|
||||||
|
"createWorld.customize.preset.the_void": "The Void",
|
||||||
|
"createWorld.customize.custom.useMansions": "Woodland Mansions",
|
||||||
|
"spectatorMenu.previous_page": "Previous Page",
|
||||||
|
"spectatorMenu.next_page": "Next Page",
|
||||||
|
"spectatorMenu.close": "Close Menu",
|
||||||
|
"spectatorMenu.teleport": "Teleport to Player",
|
||||||
|
"spectatorMenu.teleport.prompt": "Select a player to teleport to",
|
||||||
|
"spectatorMenu.team_teleport": "Teleport to Team Member",
|
||||||
|
"spectatorMenu.team_teleport.prompt": "Select a team to teleport to",
|
||||||
|
"spectatorMenu.root.prompt": "Press a key to select a command, and again to use it.",
|
||||||
|
"options.chunks": "%s chunks",
|
||||||
|
"options.framerate": "%s fps",
|
||||||
|
"title.oldjava1": "Old java detected; this will prevent you from playing",
|
||||||
|
"title.oldjava2": "in the future as Java 8 will be required.",
|
||||||
|
"tile.air.name": "Air",
|
||||||
|
"tile.bed.tooFarAway": "You may not rest now, the bed is too far away",
|
||||||
|
"tile.observer.name": "Observer",
|
||||||
|
"tile.shulkerBoxWhite.name": "White Shulker Box",
|
||||||
|
"tile.shulkerBoxOrange.name": "Orange Shulker Box",
|
||||||
|
"tile.shulkerBoxMagenta.name": "Magenta Shulker Box",
|
||||||
|
"tile.shulkerBoxLightBlue.name": "Light Blue Shulker Box",
|
||||||
|
"tile.shulkerBoxYellow.name": "Yellow Shulker Box",
|
||||||
|
"tile.shulkerBoxLime.name": "Lime Shulker Box",
|
||||||
|
"tile.shulkerBoxPink.name": "Pink Shulker Box",
|
||||||
|
"tile.shulkerBoxGray.name": "Gray Shulker Box",
|
||||||
|
"tile.shulkerBoxSilver.name": "Light Gray Shulker Box",
|
||||||
|
"tile.shulkerBoxCyan.name": "Cyan Shulker Box",
|
||||||
|
"tile.shulkerBoxPurple.name": "Purple Shulker Box",
|
||||||
|
"tile.shulkerBoxBlue.name": "Blue Shulker Box",
|
||||||
|
"tile.shulkerBoxBrown.name": "Brown Shulker Box",
|
||||||
|
"tile.shulkerBoxGreen.name": "Green Shulker Box",
|
||||||
|
"tile.shulkerBoxRed.name": "Red Shulker Box",
|
||||||
|
"tile.shulkerBoxBlack.name": "Black Shulker Box",
|
||||||
|
"item.splash_potion.name": "Splash Potion",
|
||||||
|
"item.lingering_potion.name": "Lingering Potion",
|
||||||
|
"container.shulkerBox": "Shulker Box",
|
||||||
|
"container.shulkerBox.more": "and %s more...",
|
||||||
|
"item.color": "Color: %s",
|
||||||
|
"item.nbt_tags": "NBT: %s tag(s)",
|
||||||
|
"item.durability": "Durability: %s / %s",
|
||||||
|
"filled_map.mansion": "Woodland Explorer Map",
|
||||||
|
"filled_map.monument": "Ocean Explorer Map",
|
||||||
|
"entity.ZombieVillager.name": "Zombie Villager",
|
||||||
|
"entity.ElderGuardian.name": "Elder Guardian",
|
||||||
|
"entity.EvocationIllager.name": "Evoker",
|
||||||
|
"entity.Vex.name": "Vex",
|
||||||
|
"entity.VindicationIllager.name": "Vindicator",
|
||||||
|
"entity.Villager.nitwit": "Nitwit",
|
||||||
|
"entity.Villager.cartographer": "Cartographer",
|
||||||
|
"entity.Horse.name": "Horse",
|
||||||
|
"entity.Llama.name": "Llama",
|
||||||
|
"death.attack.cramming": "%1$s was squished too much",
|
||||||
|
"death.attack.fireworks": "%1$s went off with a bang",
|
||||||
|
"enchantment.sweeping": "Sweeping Edge",
|
||||||
|
"enchantment.binding_curse": "Curse of Binding",
|
||||||
|
"enchantment.vanishing_curse": "Curse of Vanishing",
|
||||||
|
"stat.shulkerBoxOpened": "Shulker Boxes Opened",
|
||||||
|
"commands.generic.blockstate.invalid": "'%s' is not a state for block %s",
|
||||||
|
"commands.generic.selector_argument": "Invalid selector argument: '%s'",
|
||||||
|
"commands.generic.player.unspecified": "You must specify which player you wish to perform this action on.",
|
||||||
|
"commands.save.flushStart": "Flushing all saves...",
|
||||||
|
"commands.save.flushEnd": "Flushing completed",
|
||||||
|
"commands.scoreboard.players.tag.tagError": "Players tag command failed, reason: %s",
|
||||||
|
"commands.spreadplayers.noop": "No players found to spread",
|
||||||
|
"commands.locate.usage": "/locate <feature>",
|
||||||
|
"commands.locate.success": "Located %s at %s (y?) %s",
|
||||||
|
"commands.locate.failure": "Unable to locate any %s feature",
|
||||||
|
"subtitles.block.shulker_box.close": "Shulker closes",
|
||||||
|
"subtitles.block.shulker_box.open": "Shulker opens",
|
||||||
|
"subtitles.entity.elder_guardian.ambient.land": "Elder Guardian flaps",
|
||||||
|
"subtitles.entity.elder_guardian.ambient": "Elder Guardian moans",
|
||||||
|
"subtitles.entity.elder_guardian.attack": "Elder Guardian shoots",
|
||||||
|
"subtitles.entity.elder_guardian.curse": "Elder Guardian curses",
|
||||||
|
"subtitles.entity.elder_guardian.death": "Elder Guardian dies",
|
||||||
|
"subtitles.entity.elder_guardian.flop": "Elder Guardian flops",
|
||||||
|
"subtitles.entity.elder_guardian.hurt": "Elder Guardian hurts",
|
||||||
|
"subtitles.entity.evocation_fangs.attack": "Fangs snap",
|
||||||
|
"subtitles.entity.evocation_illager.ambient": "Evoker murmurs",
|
||||||
|
"subtitles.entity.evocation_illager.cast_spell": "Evoker casts spell",
|
||||||
|
"subtitles.entity.evocation_illager.death": "Evoker dies",
|
||||||
|
"subtitles.entity.evocation_illager.hurt": "Evoker hurts",
|
||||||
|
"subtitles.entity.evocation_illager.prepare_attack": "Evoker prepares attack",
|
||||||
|
"subtitles.entity.evocation_illager.prepare_summon": "Evoker prepares summoning",
|
||||||
|
"subtitles.entity.evocation_illager.prepare_wololo": "Evoker prepares charming",
|
||||||
|
"subtitles.entity.llama.ambient": "Llama bleats",
|
||||||
|
"subtitles.entity.llama.angry": "Llama bleats angry",
|
||||||
|
"subtitles.entity.llama.chest": "Llama Chest equips",
|
||||||
|
"subtitles.entity.llama.death": "Llama dies",
|
||||||
|
"subtitles.entity.llama.eat": "Llama eats",
|
||||||
|
"subtitles.entity.llama.hurt": "Llama hurts",
|
||||||
|
"subtitles.entity.llama.spit": "Llama spits",
|
||||||
|
"subtitles.entity.llama.step": "Llama steps",
|
||||||
|
"subtitles.entity.llama.swag": "Llama is decorated",
|
||||||
|
"subtitles.entity.mule.chest": "Mule Chest equips",
|
||||||
|
"subtitles.entity.vex.ambient": "Vex vexes",
|
||||||
|
"subtitles.entity.vex.charge": "Vex shrieks",
|
||||||
|
"subtitles.entity.vex.death": "Vex dies",
|
||||||
|
"subtitles.entity.vex.hurt": "Vex hurts",
|
||||||
|
"subtitles.entity.vindication_illager.ambient": "Vindicator mutters",
|
||||||
|
"subtitles.entity.vindication_illager.death": "Vindicator dies",
|
||||||
|
"subtitles.entity.vindication_illager.hurt": "Vindicator hurts",
|
||||||
|
"subtitles.entity.zombie_villager.ambient": "Zombie Villager groans",
|
||||||
|
"subtitles.entity.zombie_villager.death": "Zombie Villager dies",
|
||||||
|
"subtitles.entity.zombie_villager.hurt": "Zombie Villager hurts",
|
||||||
|
"subtitles.item.armor.equip_elytra": "Elytra rustles",
|
||||||
|
"subtitles.item.totem.use": "Totem activates",
|
||||||
|
"debug.reload_chunks.help": "F3 + A ",
|
||||||
|
"debug.show_hitboxes.help": "F3 + B ",
|
||||||
|
"debug.clear_chat.help": "F3 + D ",
|
||||||
|
"debug.cycle_renderdistance.help": "F3 + F ",
|
||||||
|
"debug.chunk_boundaries.help": "F3 + G ",
|
||||||
|
"debug.advanced_tooltips.help": "F3 + H ",
|
||||||
|
"debug.creative_spectator.help": "F3 + N ",
|
||||||
|
"debug.pause_focus.help": "F3 + P ",
|
||||||
|
"debug.help.help": "F3 + Q ",
|
||||||
|
"debug.reload_resourcepacks.help": "F3 + T ",
|
||||||
|
"debug.reload_chunks.message": "Reloading all chunks",
|
||||||
|
"debug.show_hitboxes.on": "Hitboxes: shown",
|
||||||
|
"debug.show_hitboxes.off": "Hitboxes: hidden",
|
||||||
|
"debug.cycle_renderdistance.message": "Render Distance: %s",
|
||||||
|
"debug.chunk_boundaries.on": "Chunk borders: shown",
|
||||||
|
"debug.chunk_boundaries.off": "Chunk borders: hidden",
|
||||||
|
"debug.advanced_tooltips.on": "Advanced tooltips: shown",
|
||||||
|
"debug.advanced_tooltips.off": "Advanced tooltips: hidden",
|
||||||
|
"debug.creative_spectator.error": "Unable to switch gamemode, no permission",
|
||||||
|
"debug.pause_focus.on": "Pause on lost focus: enabled",
|
||||||
|
"debug.pause_focus.off": "Pause on lost focus: disabled",
|
||||||
|
"debug.help.message": "Key bindings:",
|
||||||
|
"debug.reload_resourcepacks.message": "Reloaded resource packs",
|
||||||
|
"resourcepack.downloading": "Downloading Resource Pack",
|
||||||
|
"resourcepack.requesting": "Making Request...",
|
||||||
|
"resourcepack.progress": "Downloading file (%s MB)..."
|
||||||
|
},
|
||||||
|
"1.10": {
|
||||||
|
"options.autoJump": "Auto-jump",
|
||||||
|
"tile.magma.name": "Magma Block",
|
||||||
|
"tile.netherWartBlock.name": "Nether Wart Block",
|
||||||
|
"tile.redNetherBrick.name": "Red Nether Brick",
|
||||||
|
"tile.boneBlock.name": "Bone Block",
|
||||||
|
"tile.structureVoid.name": "Structure Void",
|
||||||
|
"structure_block.save_success": "Structure saved as '%s'",
|
||||||
|
"structure_block.save_failure": "Unable to save structure '%s'",
|
||||||
|
"structure_block.load_success": "Structure loaded from '%s'",
|
||||||
|
"structure_block.load_prepare": "Structure '%s' position prepared",
|
||||||
|
"structure_block.load_not_found": "Structure '%s' is not available",
|
||||||
|
"structure_block.size_success": "Size successfully detected for '%s'",
|
||||||
|
"structure_block.size_failure": "Unable to detect structure size, add corners with matching structure names",
|
||||||
|
"structure_block.mode.save": "[S]",
|
||||||
|
"structure_block.mode.load": "[L]",
|
||||||
|
"structure_block.mode.data": "[D]",
|
||||||
|
"structure_block.mode.corner": "[C]",
|
||||||
|
"structure_block.hover.save": "Save: %s",
|
||||||
|
"structure_block.hover.load": "Load: %s",
|
||||||
|
"structure_block.hover.data": "Data: %s",
|
||||||
|
"structure_block.hover.corner": "Corner: %s",
|
||||||
|
"structure_block.mode_info.save": "Save mode - write to file",
|
||||||
|
"structure_block.mode_info.load": "Load mode - load from file",
|
||||||
|
"structure_block.mode_info.data": "Data mode - game logic marker",
|
||||||
|
"structure_block.mode_info.corner": "Corner mode - placement and size marker",
|
||||||
|
"structure_block.structure_name": "Structure Name",
|
||||||
|
"structure_block.custom_data": "Custom Data Tag Name",
|
||||||
|
"structure_block.position": "Relative Position",
|
||||||
|
"structure_block.size": "Structure Size",
|
||||||
|
"structure_block.integrity": "Structure Integrity and Seed",
|
||||||
|
"structure_block.include_entities": "Include entities:",
|
||||||
|
"structure_block.detect_size": "Detect structure size and position:",
|
||||||
|
"structure_block.button.detect_size": "DETECT",
|
||||||
|
"structure_block.button.save": "SAVE",
|
||||||
|
"structure_block.button.load": "LOAD",
|
||||||
|
"structure_block.show_air": "Show invisible blocks:",
|
||||||
|
"structure_block.show_boundingbox": "Show bounding box:",
|
||||||
|
"entity.WitherSkeleton.name": "Wither Skeleton",
|
||||||
|
"entity.Stray.name": "Stray",
|
||||||
|
"entity.Husk.name": "Husk",
|
||||||
|
"entity.PolarBear.name": "Polar Bear",
|
||||||
|
"entity.Donkey.name": "Donkey",
|
||||||
|
"entity.Mule.name": "Mule",
|
||||||
|
"entity.SkeletonHorse.name": "Skeleton Horse",
|
||||||
|
"entity.ZombieHorse.name": "Zombie Horse",
|
||||||
|
"death.attack.hotFloor": "%1$s discovered floor was lava",
|
||||||
|
"death.attack.hotFloor.player": "%1$s walked into danger zone due to %2$s",
|
||||||
|
"commands.teleport.usage": "/teleport <entity> <x> <y> <z> [<y-rot> <x-rot>]",
|
||||||
|
"commands.teleport.success.coordinates": "Teleported %s to %s, %s, %s",
|
||||||
|
"subtitles.entity.husk.ambient": "Husk groans",
|
||||||
|
"subtitles.entity.husk.death": "Husk dies",
|
||||||
|
"subtitles.entity.husk.hurt": "Husk hurts",
|
||||||
|
"subtitles.entity.polar_bear.ambient": "Polar Bear groans",
|
||||||
|
"subtitles.entity.polar_bear.baby_ambient": "Polar Bear hums",
|
||||||
|
"subtitles.entity.polar_bear.death": "Polar Bear dies",
|
||||||
|
"subtitles.entity.polar_bear.hurt": "Polar Bear hurts",
|
||||||
|
"subtitles.entity.polar_bear.warning": "Polar Bear roars",
|
||||||
|
"subtitles.entity.stray.ambient": "Stray rattles",
|
||||||
|
"subtitles.entity.stray.death": "Stray dies",
|
||||||
|
"subtitles.entity.stray.hurt": "Stray hurts",
|
||||||
|
"subtitles.entity.wither_skeleton.ambient": "Wither Skeleton rattles",
|
||||||
|
"subtitles.entity.wither_skeleton.death": "Wither Skeleton dies",
|
||||||
|
"subtitles.entity.wither_skeleton.hurt": "Wither Skeleton hurts"
|
||||||
|
},
|
||||||
|
"1.9.3": {
|
||||||
|
"commands.stopsound.usage": "/stopsound <player> [source] [sound]",
|
||||||
|
"commands.stopsound.unknownSoundSource": "Source %s is unknown",
|
||||||
|
"commands.stopsound.success.individualSound": "Stopped sound '%s' with source '%s' for %s",
|
||||||
|
"commands.stopsound.success.soundSource": "Stopped source '%s' for %s",
|
||||||
|
"commands.stopsound.success.all": "Stopped all sounds for %s"
|
||||||
|
},
|
||||||
|
"1.9.1": {
|
||||||
|
"entity.MinecartHopper.name": "Minecart with Hopper",
|
||||||
|
"entity.MinecartChest.name": "Minecart with Chest",
|
||||||
|
"attribute.name.generic.armorToughness": "Armor Toughness"
|
||||||
}
|
}
|
||||||
}
|
}
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren