diff --git a/build.gradle b/build.gradle index 59bcbe36..1c4038b3 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ plugins { } -version '1.0.8-1.19.2' // Needs to be version specific +version '1.0.9-1.19.2' // Needs to be version specific def nmsVersion = "1.19.2" def apiVersion = '1.19' def spigotJarVersion = '1.19-R0.1-SNAPSHOT' diff --git a/src/main/java/com/volmit/adapt/AdaptConfig.java b/src/main/java/com/volmit/adapt/AdaptConfig.java index 3932d297..0d5e129d 100644 --- a/src/main/java/com/volmit/adapt/AdaptConfig.java +++ b/src/main/java/com/volmit/adapt/AdaptConfig.java @@ -43,6 +43,7 @@ public class AdaptConfig { private double playerXpPerSkillLevelUpLevelMultiplier = 44; private double powerPerLevel = 0.73; public boolean debug = false; + public String adaptActivatorBlock = "BOOKSHELF"; @Getter public static class ValueConfig { diff --git a/src/main/java/com/volmit/adapt/api/skill/Skill.java b/src/main/java/com/volmit/adapt/api/skill/Skill.java index c9567a72..1d337ea4 100644 --- a/src/main/java/com/volmit/adapt/api/skill/Skill.java +++ b/src/main/java/com/volmit/adapt/api/skill/Skill.java @@ -29,13 +29,7 @@ import com.volmit.adapt.api.world.PlayerData; import com.volmit.adapt.api.xp.XP; import com.volmit.adapt.content.gui.SkillsGui; -import com.volmit.adapt.util.C; -import com.volmit.adapt.util.Form; -import com.volmit.adapt.util.J; -import com.volmit.adapt.util.MaterialBlock; -import com.volmit.adapt.util.UIElement; -import com.volmit.adapt.util.UIWindow; -import com.volmit.adapt.util.Window; +import com.volmit.adapt.util.*; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.Sound; @@ -117,7 +111,10 @@ default void xp(Player p, Location at, double xp) { } default void xpSilent(Player p, double xp) { - XP.xpSilent(p, this, xp); + try { + XP.xpSilent(p, this, xp); + } catch (Exception ignored) { // Player was Given XP (Likely Teleportation) before i can see it because some plugin has higher priority than me and moves a player. so im not going to throw an error, as i know why it's happening. + } } default void xp(Location at, double xp, int rad, long duration) { diff --git a/src/main/java/com/volmit/adapt/api/skill/SkillRegistry.java b/src/main/java/com/volmit/adapt/api/skill/SkillRegistry.java index dac34ab5..72922962 100644 --- a/src/main/java/com/volmit/adapt/api/skill/SkillRegistry.java +++ b/src/main/java/com/volmit/adapt/api/skill/SkillRegistry.java @@ -18,6 +18,8 @@ package com.volmit.adapt.api.skill; +import com.volmit.adapt.Adapt; +import com.volmit.adapt.AdaptConfig; import com.volmit.adapt.api.recipe.AdaptRecipe; import com.volmit.adapt.api.tick.TickedObject; import com.volmit.adapt.api.world.AdaptPlayer; @@ -88,7 +90,7 @@ public void on(PlayerExpChangeEvent e) { @EventHandler(priority = EventPriority.MONITOR) public void on(PlayerInteractEvent e) { if(!e.getBlockFace().equals(BlockFace.UP) && !e.getBlockFace().equals(BlockFace.DOWN) && !e.getPlayer().isSneaking() && e.getAction().equals(Action.RIGHT_CLICK_BLOCK) - && e.getClickedBlock().getType().equals(Material.BOOKSHELF) && (e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.AIR) + && e.getClickedBlock().getType().equals(Material.valueOf(AdaptConfig.get().adaptActivatorBlock)) && (e.getPlayer().getInventory().getItemInMainHand().getType().equals(Material.AIR) || !e.getPlayer().getInventory().getItemInMainHand().getType().isBlock()) && (e.getPlayer().getInventory().getItemInOffHand().getType().equals(Material.AIR) || !e.getPlayer().getInventory().getItemInOffHand().getType().isBlock())) { e.getClickedBlock().getWorld().playSound(e.getClickedBlock().getLocation(), Sound.ITEM_BOOK_PAGE_TURN, 1.1f, 0.72f); diff --git a/src/main/java/com/volmit/adapt/api/xp/XP.java b/src/main/java/com/volmit/adapt/api/xp/XP.java index 83931538..1bef0bcc 100644 --- a/src/main/java/com/volmit/adapt/api/xp/XP.java +++ b/src/main/java/com/volmit/adapt/api/xp/XP.java @@ -40,7 +40,9 @@ public static void xpSilent(Player p, Skill skill, double xp) { } public static void xpSilent(AdaptPlayer p, Skill skill, double xp) { - p.getSkillLine(skill.getName()).giveXP(null, xp); + if (p.getSkillLine(skill.getName()) != null) { + p.getSkillLine(skill.getName()).giveXP(null, xp); + } } public static void spatialXP(Location l, Skill skill, double xp, int rad, long duration) { diff --git a/src/main/java/com/volmit/adapt/commands/boost/CommandBoostPlayer.java b/src/main/java/com/volmit/adapt/commands/boost/CommandBoostPlayer.java index 8723d93e..5bf5e85b 100644 --- a/src/main/java/com/volmit/adapt/commands/boost/CommandBoostPlayer.java +++ b/src/main/java/com/volmit/adapt/commands/boost/CommandBoostPlayer.java @@ -19,8 +19,11 @@ package com.volmit.adapt.commands.boost; import com.volmit.adapt.Adapt; +import com.volmit.adapt.api.skill.Skill; import com.volmit.adapt.api.world.AdaptPlayer; import com.volmit.adapt.api.world.AdaptServer; +import com.volmit.adapt.api.xp.XP; +import com.volmit.adapt.util.C; import com.volmit.adapt.util.MortarCommand; import com.volmit.adapt.util.MortarSender; import org.bukkit.Bukkit; @@ -36,17 +39,23 @@ public CommandBoostPlayer() { @Override public boolean handle(MortarSender sender, String[] args) { - if (Bukkit.getOnlinePlayers().stream().map(HumanEntity::getName).toList().contains(args[0])) { - Player p = Bukkit.getPlayer(args[0]); - AdaptPlayer ap = Adapt.instance.getAdaptServer().getPlayer(p); - AdaptServer as = Adapt.instance.getAdaptServer(); - ap.boostXPToRecents(ap, Double.parseDouble(args[1]), Integer.parseInt(args[2])); // not working - p.sendMessage("BOOSTED " + args[1] + " XP TO " + args[2] + " ALL RECENT SKILL GAINS"); - Adapt.info("BOOSTED " + args[1] + " XP TO " + args[2] + " ALL RECENT SKILL GAINS"); - } - AdaptPlayer ap = Adapt.instance.getAdaptServer().getPlayer(sender.player()); + try { + if (Bukkit.getOnlinePlayers().stream().map(HumanEntity::getName).toList().contains(args[0])) { + Player p = Bukkit.getPlayer(args[0]); + AdaptPlayer ap = Adapt.instance.getAdaptServer().getPlayer(p); + AdaptServer as = Adapt.instance.getAdaptServer(); + + ap.boostXPToRecents(ap, Double.parseDouble(args[1]), Integer.parseInt(args[2])); // not working + p.sendMessage("BOOSTED " + args[1] + " XP TO " + args[2] + " ALL RECENT SKILL GAINS"); + Adapt.info("BOOSTED " + args[1] + " XP TO " + args[2] + " ALL RECENT SKILL GAINS"); + } + AdaptPlayer ap = Adapt.instance.getAdaptServer().getPlayer(sender.player()); - return true; + return true; + } catch (Exception ignored) { + printHelp(sender); + return true; + } } @Override diff --git a/src/main/java/com/volmit/adapt/commands/item/CommandItemExperienceOrb.java b/src/main/java/com/volmit/adapt/commands/item/CommandItemExperienceOrb.java index 21d3434d..3c3a4193 100644 --- a/src/main/java/com/volmit/adapt/commands/item/CommandItemExperienceOrb.java +++ b/src/main/java/com/volmit/adapt/commands/item/CommandItemExperienceOrb.java @@ -19,6 +19,7 @@ package com.volmit.adapt.commands.item; import com.volmit.adapt.content.item.ExperienceOrb; +import com.volmit.adapt.util.C; import com.volmit.adapt.util.MortarCommand; import com.volmit.adapt.util.MortarSender; import org.bukkit.Bukkit; @@ -32,14 +33,23 @@ public CommandItemExperienceOrb() { @Override public boolean handle(MortarSender sender, String[] args) { - if (args.toList().size() > 2) { - if (Bukkit.getPlayer(args[2]) != null && Bukkit.getPlayer(args[2]).getPlayer() != null) { - Bukkit.getPlayer(args[2]).getPlayer().getInventory().addItem(ExperienceOrb.with(args[0], Integer.parseInt(args[1]))); + + try { + if (args.toList().size() > 2) { + if (Bukkit.getPlayer(args[2]) != null && Bukkit.getPlayer(args[2]).getPlayer() != null) { + Bukkit.getPlayer(args[2]).getPlayer().getInventory().addItem(ExperienceOrb.with(args[0], Integer.parseInt(args[1]))); + } + } else if (args.toList().size() == 2) { + sender.player().getInventory().addItem(ExperienceOrb.with(args[0], Integer.parseInt(args[1]))); } - } else if (args.toList().size() == 2) { - sender.player().getInventory().addItem(ExperienceOrb.with(args[0], Integer.parseInt(args[1]))); + return true; + } catch (Exception ignored) { + printHelp(sender); + sender.sendMessage(C.GRAY + "[" + C.DARK_RED + "Adapt" + C.GRAY + "]: " + C.RED + "Invalid arguments!" + C.GRAY + " Command: /adapt item knowledge "); + return true; } - return true; + + } @Override diff --git a/src/main/java/com/volmit/adapt/commands/item/CommandItemKnowledgeOrb.java b/src/main/java/com/volmit/adapt/commands/item/CommandItemKnowledgeOrb.java index d890d8c9..ce87a362 100644 --- a/src/main/java/com/volmit/adapt/commands/item/CommandItemKnowledgeOrb.java +++ b/src/main/java/com/volmit/adapt/commands/item/CommandItemKnowledgeOrb.java @@ -19,6 +19,7 @@ package com.volmit.adapt.commands.item; import com.volmit.adapt.content.item.KnowledgeOrb; +import com.volmit.adapt.util.C; import com.volmit.adapt.util.MortarCommand; import com.volmit.adapt.util.MortarSender; @@ -31,8 +32,14 @@ public CommandItemKnowledgeOrb() { @Override public boolean handle(MortarSender sender, String[] args) { - sender.player().getInventory().addItem(KnowledgeOrb.with(args[0], Integer.parseInt(args[1]))); - return true; + try { + sender.player().getInventory().addItem(KnowledgeOrb.with(args[0], Integer.parseInt(args[1]))); + return true; + } catch (Exception ignored) { + printHelp(sender); + sender.sendMessage(C.GRAY + "[" + C.DARK_RED + "Adapt" + C.GRAY + "]: " + C.RED + "Invalid arguments!" + C.GRAY + " Command: /adapt item knowledge "); + return true; + } } @Override diff --git a/src/main/java/com/volmit/adapt/commands/openGui/CommandOpenGUI.java b/src/main/java/com/volmit/adapt/commands/openGui/CommandOpenGUI.java index 7608fbf6..24427354 100644 --- a/src/main/java/com/volmit/adapt/commands/openGui/CommandOpenGUI.java +++ b/src/main/java/com/volmit/adapt/commands/openGui/CommandOpenGUI.java @@ -32,10 +32,15 @@ public CommandOpenGUI() { @Override public boolean handle(MortarSender sender, String[] args) { + try { sender.player().playSound(sender.player().getLocation(), Sound.ITEM_BOOK_PAGE_TURN, 1.1f, 0.72f); sender.player().playSound(sender.player().getLocation(), Sound.BLOCK_ENCHANTMENT_TABLE_USE, 0.35f, 0.755f); SkillsGui.open(sender.player()); return true; + } catch (Exception ignored) { + printHelp(sender); + return true; + } } @Override diff --git a/src/main/java/com/volmit/adapt/content/adaptation/architect/ArchitectPlacement.java b/src/main/java/com/volmit/adapt/content/adaptation/architect/ArchitectPlacement.java index e68d5966..9964d5f9 100644 --- a/src/main/java/com/volmit/adapt/content/adaptation/architect/ArchitectPlacement.java +++ b/src/main/java/com/volmit/adapt/content/adaptation/architect/ArchitectPlacement.java @@ -115,7 +115,7 @@ public void on(BlockPlaceEvent e) { runPlayerViewport(getBlockFace(p), p.getTargetBlock(null, 5), p.getInventory().getItemInMainHand().getType(), p); } } else { - p.sendMessage(C.RED + Adapt.dLocalize("Architect", "Placement", "Lore2") + C.GREEN + totalMap.get(p).size() + C.RED + " " +Adapt.dLocalize("Architect", "Placement", "Lore2")); + p.sendMessage(C.RED + Adapt.dLocalize("Architect", "Placement", "Lore1") + C.GREEN + totalMap.get(p).size() + C.RED + " " +Adapt.dLocalize("Architect", "Placement", "Lore2")); } } } diff --git a/src/main/java/com/volmit/adapt/content/skill/SkillRift.java b/src/main/java/com/volmit/adapt/content/skill/SkillRift.java index b3f44510..0e3d83ee 100644 --- a/src/main/java/com/volmit/adapt/content/skill/SkillRift.java +++ b/src/main/java/com/volmit/adapt/content/skill/SkillRift.java @@ -58,8 +58,11 @@ public SkillRift() { @EventHandler(priority = EventPriority.HIGHEST) public void on(PlayerTeleportEvent e) { - if (!lasttp.containsKey(e.getPlayer())) { // any teleport. this was problematic when teleporting from a rift to a rift or using a rift to teleport to a rift inside of a dimension - xpSilent(e.getPlayer(), getConfig().teleportXP); + if (!lasttp.containsKey(e.getPlayer())) { + try { + xpSilent(e.getPlayer(), getConfig().teleportXP); + } catch (Exception ignored) { + } lasttp.put(e.getPlayer(), M.ms()); } } diff --git a/src/main/resources/zh_CN.json b/src/main/resources/zh_CN.json index 4c986d48..8ebefccf 100644 --- a/src/main/resources/zh_CN.json +++ b/src/main/resources/zh_CN.json @@ -1,620 +1,625 @@ { "Snippets": { "GUI": { - "Level": "Level", - "Knowledge": "Knowledge", - "PowerUsed": "Power Used", - "NotLearned": "Not Learned", - "XP": "XP to" + "Level": "等级", + "Knowledge": "知识", + "PowerUsed": "已使用的 能力", + "NotLearned": "尚未学习", + "XP": "至下一级经验" }, "AdaptMenu": { - "KnowledgeCost": "Knowledge Cost", - "AlreadyLearned": "Already Learned", - "UnlearnRefund": "Click to Unlearn & Refund", - "Knowledge": "Knowledge", - "ClickLearn": "Click to Learn", - "NoKnowledge": "(You don't have any Knowledge)", - "YouOnlyHave": "You only have", - "HowToLevelUp": "Level up skills to increase your max power.", - "NotEnoughPower": "Not enough power! Each Ability Level costs 1 power.", - "Power": "Power", - "Learned": "Learned ", - "Unlearned": "Unlearned " + "KnowledgeCost": "需要花费的 知识", + "AlreadyLearned": "已学习", + "UnlearnRefund": "点击忘却此技能", + "Knowledge": "知识", + "ClickLearn": "点击以学习", + "NoKnowledge": "(你没有任何知识)", + "YouOnlyHave": "你只有", + "HowToLevelUp": "升级技能来扩大能力上限", + "NotEnoughPower": "能力不足!", + "Power": "能力", + "Learned": "已学习 ", + "Unlearned": "未学习 " }, "KnowledgeOrb": { - "Contains": "Contains", - "Knowledge": "Knowledge", - "RightClick": "Right-Click", - "ToGainKnowledge": "to gain this knowledge", - "KnowledgeOrb": "Knowledge Orb" + "Contains": "包含", + "Knowledge": "知识", + "RightClick": "右键点击", + "ToGainKnowledge": "来获得此 知识", + "KnowledgeOrb": "知识之珠" }, "ExperienceOrb": { - "Contains": "Contains", - "XP": "Experience", - "RightClick": "Right-Click", - "ToGainXP": "to gain this experience", - "XPOrb": "Experience Orb" + "Contains": "包含", + "XP": "经验", + "RightClick": "右键点击", + "ToGainXP": "来获得此 经验", + "XPOrb": "经验球" } }, "Skill": { "Agility": { - "Name": "Agility", + "Name": "敏捷", "Icon": "⇉", - "Description": "Agility is the ability to move quick and fluidly in the face of obstacles." + "Description": "敏捷可以使你在遇阻时快速、灵活的移动。" }, "Architect": { - "Name": "Architect", + "Name": "建筑师", "Icon": "⬧", - "Description": "Structures are the building blocks of the world. Reality is in your hands, yours to control." + "Description": "结构是万物之本。现实在你手中,由你掌握。" }, "Axes": { - "Name": "Axes", + "Name": "巨斧", "Icon": "❖", - "Description1": "Why chop down trees, when you could chop ", - "Description2": "things", - "Description3": "instead, same end result!" + "Description1": "如果说你可以砍掉什么东西", + "Description2": "来取代掉砍树", + "Description3": "它们有什么不一样的吗?" }, "Brewing": { - "Name": "Brewing", + "Name": "酿造", "Icon": "❦", - "Description": "Double Bubble, Triple Bubble, Quadruple Bubble- I still cant put this potion into a cauldron" + "Description": "咕嘟,咕嘟,咕嘟- 我还是不敢将这瓶药水丢进炼药锅中。" }, "Crafting": { - "Name": "Crafting", + "Name": "合成", "Icon": "⌂", - "Description": "With no more pieces left to place, why not make another?" + "Description": "若没有剩下什么东西可以合成,为什么不再做一个呢?" }, "Discovery": { - "Name": "Discovery", + "Name": "探索", "Icon": "⚛", - "Description": "As your Perception expands, your mind unravels to discover that which you did not" + "Description": "当洞察力提升时,你的思维便会澄澈,探索能与不能。" }, "Enchanting": { - "Name": "Enchanting", + "Name": "附魔", "Icon": "♰", - "Description": "What are you going on about? Prophecies, visions, superstitious jibber-jabber?" + "Description": "你在嘀咕些什么?预言,幻象,还是在胡言乱语?" }, "Excavation": { - "Name": "Excavation", + "Name": "挖掘", "Icon": "✥", - "Description": "Diggey Diggey hole..." + "Description": "挖...大...洞..." }, "Herbalism": { - "Name": "Herbalism", + "Name": "草药学", "Icon": "⚘", - "Description": "I can't find any plants, but I can find some seeds and- is that... Weed?" + "Description": "我见不到植物,不过我能找到一些种子还有—— 呃,杂草?" }, "Hunter": { - "Name": "Hunter", + "Name": "狩猎", "Icon": "☠", - "Description": "Hunting is about the journey not the outcome." + "Description": "狩猎是一段旅程,而不是结果。" }, "Nether": { - "Name": "Nether", + "Name": "下界", "Icon": "₪", - "Description": "From the depths of the Nether itself." + "Description": "它来自深处。" }, "Pickaxe": { - "Name": "Pickaxe", + "Name": "采矿", "Icon": "⛏", - "Description": "Dwarves are the miners, but ive learned a thing or two in my time. IM SWEDISH" + "Description": "矮人是矿工,而我在这段时间里明白了一件事。我是瑞典人" }, "Ranged": { - "Name": "Ranged", + "Name": "箭术", "Icon": "🏹", - "Description": "Distance is the key to victory, and the key to survival." + "Description": "你与目标的距离是胜利的关键所在,也是生存的关键所在。" }, "Rift": { - "Name": "Rift", + "Name": "裂痕", "Icon": "❍", - "Description": "The Rift is a caustic harness, but you have harnessed the harness." + "Description": "裂痕是尖刻的线束。现在你应控制了它。" }, "Seaborne": { - "Name": "Seaborne", + "Name": "激流", "Icon": "🌊", - "Description": "With this skill, you may will the wonders of the water" + "Description": "别忘了带着这个技能,也许有一天你能见到由水组成的奇观。" }, "Stealth": { - "Name": "Stealth", + "Name": "隐形", "Icon": "✠", - "Description": "The art of the unseen. Walk in the shadows." + "Description": "当行走于阴影里,这是看不见的艺术。" }, "Swords": { - "Name": "Swords", + "Name": "剑术", "Icon": "⚔", - "Description": "By the power of GreyStone!" + "Description": "这是来自玄武石的力量。" }, "Taming": { - "Name": "Taming", + "Name": "驯兽", "Icon": "♥", - "Description": "The parrots and the bees... and you?" + "Description": "鹦鹉、蜜蜂,和......你?" }, "TragOul": { - "Name": "TragOul", + "Name": "塔格奥", "Icon": "▼", - "Description": "Blood flows through the veins of the universe. Constricted by your hands." + "Description": "血液流过宇宙的血管。现在,它被你束缚着。" }, "Chronos": { - "Name": "Chronos", + "Name": "时空", "Icon": "۞", - "Description": "Wind the Clock of the universe, experience the flow. Break the clock, Become it." + "Description": "尝试着宇宙的钟上个发条,便可以体验到流动。若能把时钟弄坏,或许就能成为它。" }, "Unarmed": { - "Name": "Unarmed", + "Name": "搏击", "Icon": "⚜", - "Description": "Without a weapon is not without strength" + "Description": "没有武器并不意味着失去力量。" } }, "Agility": { "ArmorUp": { - "Name": "Armor-Up", - "Description": "Get more armor the longer you sprint!", - "Lore1": "Max Armor", - "Lore2": "Armor-Up Time" + "Name": "装甲加速", + "Description": "冲刺的越快,给予的护甲值就越多!", + "Lore1": "最大护甲值", + "Lore2": "所需的加速时间" }, "SuperJump": { - "Name": "Super Jump", - "Description": "Exceptional Height Advantage", - "Lore1": "Max Jump Height", - "Lore2": "Sneak + Jump to Super Jump!" + "Name": "高跳", + "Description": "一览众山小。", + "Lore1": "最大跳跃高度", + "Lore2": "同时按下 潜行 + 跳跃 按键进行高跳!" }, "WallJump": { - "Name": "Wall Jump", - "Description": "Hold shift while mid-air against a wall to wall latch & jump!", - "Lore1": "Max Jumps", - "Lore2": "Jump Height" + "Name": "攀跳", + "Description": "在半空中紧贴墙壁,按住潜行键并跳跃。", + "Lore1": "最大跳跃数量", + "Lore2": "跳跃高度" }, "WindUp": { - "Name": "Wind Up", - "Description": "Get faster the longer you sprint!", - "Lore1": "Max Speed", - "Lore2": "Windup Time" + "Name": "上弦", + "Description": "冲刺时间越长,速度越快!", + "Lore1": " 最大速度", + "Lore2": " 所需冲刺时间" } }, "Architect": { "Foundation": { - "Name": "Magic Foundation", - "Description": "This allows for you to sneak and place a temporary foundation beneath you!", - "Lore1": "Magically create: ", - "Lore2": "Blocks beneath you!" + "Name": "魔法基建", + "Description": "当你潜行时,可以临时在脚下放置方块。", + "Lore1": "最多可在脚下生成:", + "Lore2": "块临时方块" }, "Glass": { - "Name": "Silk-Touch Glass", - "Description": "This allows for you to essentially prevent the loss of glass blocks when you break them with an empty hand!", - "Lore1": "Your hands gain silk touch for Glass" + "Name": "丝质手套", + "Description": "徒手打破玻璃后将会掉落玻璃方块!", + "Lore1": "当手触摸到玻璃时有丝绸般的触感" }, "Placement": { - "Name": "Builders Wand", - "Description": "Allows for you to place multiple blocks at once to activate Sneak, and hold a block that matches your looking block and place! Keep in mind, you may need to move a tad to trigger bounding the boxes!", - "Lore1": "You need", - "Lore2": "blocks in your hand to place this", - "Lore3": "A Material Builders Wand" + "Name": "建筑师之杖", + "Description": "手持多个方块,按住潜行键瞄准目标方块。根据预览摆放方块,持续调整以达到最好效果!请注意:可能需要移动来调整边界。", + "Lore1": "手中必须持有多于", + "Lore2": "个方块才能使用", + "Lore3": "建筑师之杖。" } }, "Axe": { "Chop": { - "Name": "Axe Chop", - "Description": "Chop down trees by right clicking the base log!", - "Lore1": "Blocks Per Chop", - "Lore2": "Chop Cooldown", - "Lore3": "Tool Wear" + "Name": "伐木斧", + "Description": "手持斧头,右键木头砍伐多块树木。", + "Lore1": "每次砍伐的数量", + "Lore2": "冷却", + "Lore3": "耐久消耗" }, "DropToInventory": { - "Name": "Axe Drop-To-Inventory" + "Name": "快速进入背包" }, "GroundSmash": { - "Name": "Axe Ground Smash", - "Description": "Jump, then crouch and smash all nearby enemies.", - "Lore1": "Damage", - "Lore2": "Block Radius", - "Lore3": "Force", - "Lore4": "Smash Cooldown" + "Name": "山崩地裂", + "Description": "跳跃,然后迅速蹲下。斩击所有附近的敌人。", + "Lore1": "伤害", + "Lore2": "方块半径", + "Lore3": "力量", + "Lore4": "冷却" }, "LeafMiner": { - "Name": "LeafMiner", - "Description": "Allows you to break bulk leaves at once!", - "Lore1": "Sneak, and mine LEAVES", - "Lore2": "range of Leaf-mining", - "Lore3": "You will not get the drops from the leaves (Exploit Prevention)" + "Name": "花匠", + "Description": "同时剪断大量树叶。", + "Lore1": "潜行,然后挖掘树叶。", + "Lore2": "树叶挖掘范围", + "Lore3": "由于防止漏洞滥用,挖掘树叶将不会获得掉落物。" } }, "Brewing": { "Lingering": { - "Name": "Lingering Brew", - "Description": "Brewed potions last longer!", - "Lore1": "Duration", - "Lore2": "Duration" + "Name": "缠绵", + "Description": "加长药水效果持续时间。", + "Lore1": "持续时间", + "Lore2": "持续时间" }, "SuperHeated": { - "Name": "Super Heated Brew", - "Description": "Brewing stands work faster the hotter they are.", - "Lore1": "Per Touching Fire Block", - "Lore2": "Per Touching Lava Block" + "Name": "过载", + "Description": "酿造台越热,它的工作效率就越高!", + "Lore1": "酿造台每贴近火焰", + "Lore2": "酿造台每贴近岩浆" } }, "Crafting": { "Deconstruction": { - "Name": "Deconstruction", - "Description": "Deconstruct blocks & items into salvageable base components!", - "Lore1": "Place an any item + shears", - "Lore2": "in a smithing table to deconstruct." + "Name": "分解器", + "Description": "分解方块或物品,回收部分合成时的材料。", + "Lore1": "将 被分解物品 + 剪刀", + "Lore2": "放入锻造台进行回收。" }, "CraftXp": { - "Name": "Crafting XP", - "Description": "Gain passive XP when crafting", - "Lore1": "Gain XP when crafting" + "Name": "熟能生巧", + "Description": "合成物品时给予原版经验。", + "Lore1": "当合成完毕后自动给予" } }, "Discovery": { "DiscoveryArmor": { - "Name": "World Armor", - "Description": "Passive armor depending on nearby block hardness.", - "Lore1": "Passive Armor", - "Lore2": "Based on nearby block hardness", - "Lore3": "Armor Strength: +" + "Name": "世界之甲", + "Description": "根据附近方块硬度给予被动防御。", + "Lore1": "被动防御", + "Lore2": "由附近方块硬度决定", + "Lore3": "装备力量: +" }, "DiscoveryUnity": { - "Name": "Experimental Unity", - "Description": "Collecting Experience Orbs adds XP to random skills.", - "Lore1": "XP ", - "Lore2": "Per Orb" + "Name": "实验性统合", + "Description": "收集经验球,随机为其它技能增长经验。", + "Lore1": "点经验 ", + "Lore2": "每个经验球" }, "DiscoveryXpResist": { - "Name": "Experimental Resistance", - "Description": "Consume experience to mitigate the damage you take from all sources\n", - "Lore0": "This may only occur once per 15 seconds", - "Lore1": "% Reduced Damage", - "Lore2": "experience drained" + "Name": "实验性电阻", + "Description": "减少来自任何方面的伤害\n", + "Lore0": "每 15秒 发生一次", + "Lore1": "% 减少伤害", + "Lore2": "经验消耗" } }, "Enchanting": { "LapisReturn": { - "Name": "Lapis Return", - "Description": "At the cost of 1 more level of XP, and has a chance to give you free lapis in return", - "Lore1": "For every level, it increases the cost of enchanting, by 1, but can return upwards of 3 Lapis" + "Name": "青金石的回报", + "Description": "每级都将多消耗1经验。但是越高等级返还青金石越多。", + "Lore1": "每升一级都会额外消耗1经验,最高可以返还3青金石。" }, "QuickEnchant": { - "Name": "Quick-Click Enchant", - "Description": "Enchant items by clicking enchant books directly on them.", - "Lore1": "Max Combined Levels", - "Lore2": "Cannot Enchant an item with more than ", - "Lore3": "power" + "Name": "快速附魔", + "Description": "在物品栏用附魔书点击被附魔的物品以快速附魔。", + "Lore1": "累计最大等级", + "Lore2": "此物品应用的附魔总等级不能超过 ", + "Lore3": "级" }, "EnchantingXpReturn": { - "Name": "XP Return", - "Description": "Enchanting XP is returned to you when you enchant an item.", - "Lore1": "Experience spent has a chance to be refunded when you enchant an item", - "Lore2": "Experience per Enchant" + "Name": "经验返还", + "Description": "当你附魔一个物品时,消耗的经验会被返还一部分。", + "Lore1": "当你附魔物品后,有机会返还一部分经验。", + "Lore2": "经验返还" } }, "Excavation": { "ExcavationHaste": { - "Name": "Hasty Excavator", - "Description": "This will speed up the excavation process, with HASTE!", - "Lore1": "Gain Haste while excavating", - "Lore2": "x Levels of haste when you start mining ANY block." + "Name": "极速挖掘机", + "Description": "给予急迫效果,提高挖掘速度!", + "Lore1": "当挖掘时给予急迫效果", + "Lore2": "x 挖掘时急迫效果等级" }, "DropToInventory": { - "Name": "Shovel Drop-To-Inventory" + "Name": "快速进入背包" }, "OmniTool": { "Name": "OMNI - T.O.O.L.", - "Description": "Tackle's overdesigned opulent Leatherman", - "Lore1": "Probably the most powerful of many allows you to", - "Lore2": "dynamically merge and change tools on the fly, based on your needs.", - "Lore3": "to merge, shift click an item over another in your inventory.", - "Lore4": "to unbind tools, Sneak-Drop the item, and it will disassemble.", - "Lore5": "you can't break tools in this leatherman but you can't use broken tools", - "Lore6": "total merge-able items", - "Lore7": "you could use five or six tools, or just one!" + "Description": "Tackle设计的豪华多功能工具钳。", + "Lore1": "这也许是最强大的设计。", + "Lore2": "可以根据实际需要合并或拆解工具。", + "Lore3": "合并:按住潜行键,在物品栏中用预合并的物品点击被合并的物品。", + "Lore4": "拆解:手持预拆解的物品,按住潜行键丢弃以拆解。", + "Lore5": "注意:如果此工具钳套件中任何一个物品耐久度至零,该工具钳将报废!", + "Lore6": "个可合并物品。", + "Lore7": "也许你需要五、六种物品在同一个工具钳里。或者仅仅需要一个。" } }, "Herbalism": { "GrowthAura": { - "Name": "Growth Aura", - "Description": "Grow nature around you in an aura", - "Lore1": "Block Radius", - "Lore2": "Growth Aura Strength", - "Lore3": "Food Cost" + "Name": "生长光环", + "Description": "加速农作物生长时间", + "Lore1": "光环半径", + "Lore2": "生长速度", + "Lore3": "消耗饱食度" }, "Hippo": { - "Name": "Herbalist's Hippo", - "Description": "Consuming food, gives you more saturation", - "Lore1": "Food) additional saturation points on consumption" + "Name": "草药师的河马", + "Description": "吃点食物,感觉能更饱点。", + "Lore1": "饱食度) 额外饱食度" }, "Myconid": { - "Name": "Herbalist's Myconid", - "Description": "Gives you the ability to craft Mycelium", - "Lore1": "Any Dirt, and a Brown & Red Mushroom will craft Mycelium." + "Name": "草药师的菌丝", + "Description": "给予你制作菌丝的能力。", + "Lore1": "所有泥土,和棕、红色蘑菇将会制作出菌丝。" }, "DropToInventory": { - "Name": "Hoe Drop-To-Inventory" + "Name": "快速进入背包" }, "HungryShield": { - "Name": "Hungry Shield", - "Description": "Take damage to your hunger before your health.", - "Lore1": "Resisted by Hunger" + "Name": "饥饿护盾", + "Description": "在饥饿席卷而来前保护生命值。", + "Lore1": "饥饿抵抗" }, "Luck": { - "Name": "Herbalist's Luck", - "Description": "When you break Grass/Flowers, you have a chance to get a random item", - "Lore0": "Flowers = Food, and Grass = Seeds", - "Lore1": "Chance to get an item from breaking Flowers", - "Lore2": "Chance to get an item from breaking Grass" + "Name": "草药师的祝福", + "Description": "当你破坏花或草时,你将有概率获得随机物品。", + "Lore0": "花将收获食物,草将收获种子", + "Lore1": "破坏花获得随机物品的概率", + "Lore2": "破坏草获得随机物品的概率" }, "Replant": { - "Name": "Harvest & Replant", - "Description": "Right click a crop with a hoe to harvest & replant it.", - "Lore1": "Blocks Replant Radius" + "Name": "收割者", + "Description": "手持锄头,右键庄稼进行自动收割和再种植。", + "Lore1": " 有效范围半径" } }, "Hunter": { "Adrenaline": { - "Name": "Adrenaline", - "Description": "Deal more damage the lower health you are (Melee)", - "Lore1": "Max Damage" + "Name": "肾上腺素", + "Description": "生命越少,近战造成的伤害越大。", + "Lore1": "最大伤害" }, "GenericPenalty": { "Name": "", "Description": "", - "Lore1": "You will Gain Poison stacks if you run out of hunger" + "Lore1": "如果饥饿度归零,将给予剧毒效果!" }, "DropToInventory": { - "Name": "Items Drop-To-Inventory", - "Description": "When you Kill something / Break a block With a sword it teleports the drops into your inventory", - "Lore1": "Whenever an item is dropped from a mob/block you break it goes into your inventory if it can." + "Name": "快速进入背包", + "Description": "当你击杀生物/破坏某方块,它的掉落物将会自动进入背包。", + "Lore1": "如果允许,击杀生物/破坏某方块的掉落物将会自动进入背包。" }, "HunterInvisibility": { - "Name": "Vanishing Step", - "Description": "When you are struck you gain invisibility, at the cost of hunger", - "Lore1": "Gain passive invisibility when struck", - "Lore2": "x Invisibility stacks for a 3 seconds on hit", - "Lore3": "x Stacking hunger", - "Lore4": "Hunger stacks duration and multiplier.", - "Lore5": "Invisibility duration" + "Name": "隐形之步", + "Description": "以饥饿为代价,当你受伤时给予隐身效果。", + "Lore1": "受伤时自动给予隐身效果。", + "Lore2": "x 隐身效果,持续三秒", + "Lore3": "x 叠加饥饿效果", + "Lore4": "饥饿感叠加持续时间和倍数", + "Lore5": "隐身效果持续时间" }, "HunterJumpBoost": { - "Name": "Hunter's Heights", - "Description": "When you are struck you gain jump-boost, at the cost of hunger", - "Lore1": "Gain passive jump-boost when struck", - "Lore2": "x Jump-Boost stacks for a 3 seconds on hit", - "Lore3": "x Stacking hunger", - "Lore4": "Hunger stacks duration and multiplier.", - "Lore5": "Jump-Boost stacks multiplier, not duration." + "Name": "狩猎者之巅", + "Description": "以饥饿为代价,当受伤时给予跳跃提升效果。", + "Lore1": "受伤时自动给予跳跃提升效果。", + "Lore2": "x 跳跃提升效果,持续三秒", + "Lore3": "x 叠加饥饿效果", + "Lore4": "饥饿感叠加持续时间和倍数", + "Lore5": "跳跃提升叠加倍数" }, "HunterLuck": { - "Name": "Hunter's Luck", - "Description": "When you are struck you gain luck, at the cost of hunger", - "Lore1": "Gain passive luck when struck", - "Lore2": "x Luck stacks for a 3 seconds on hit", - "Lore3": "x Stacking hunger", - "Lore4": "Hunger stacks duration and multiplier.", - "Lore5": "Luck stacks multiplier, not duration." + "Name": "狩猎者的祝福", + "Description": "以饥饿为代价,当你受伤时给予幸运效果。", + "Lore1": "受伤时自动给予幸运效果。", + "Lore2": "x 幸运效果,持续三秒", + "Lore3": "x 叠加饥饿效果", + "Lore4": "饥饿感叠加持续时间和倍数", + "Lore5": "幸运叠加倍数" }, "HunterRegen": { - "Name": "Hunter's Regen", - "Description": "When you are struck you gain regeneration, at the cost of hunger", - "Lore1": "Gain passive regeneration when struck", - "Lore2": "x Regeneration stacks for a 3 seconds on hit", - "Lore3": "x Stacking hunger", - "Lore4": "Hunger stacks duration and multiplier.", - "Lore5": "Regeneration stacks multiplier, not duration." + "Name": "狩猎者的再生", + "Description": "以饥饿为代价,当你受伤时给予再生效果。", + "Lore1": "受伤时自动给予再生效果。", + "Lore2": "x 再生效果,持续三秒", + "Lore3": "x 叠加饥饿效果", + "Lore4": "饥饿感叠加持续时间和倍数", + "Lore5": "再生叠加倍数" }, "HunterResistance": { - "Name": "Hunter's Resistance", - "Description": "When you are struck you gain resistance, at the cost of hunger", - "Lore1": "Gain passive resistance when struck", - "Lore2": "x Resistance stacks for a 3 seconds on hit", - "Lore3": "x Stacking hunger", - "Lore4": "Hunger stacks duration and multiplier.", - "Lore5": "Resistance stacks multiplier, not duration." + "Name": "狩猎者之盾", + "Description": "以饥饿为代价,当你受伤时给予抗性提升效果。", + "Lore1": "受伤时自动给予抗性提升效果。", + "Lore2": "x3 抗性提升效果,持续三秒", + "Lore3": "x 叠加饥饿效果", + "Lore4": "饥饿感叠加持续时间和倍数", + "Lore5": "抗性提升叠加倍数" }, "HunterSpeed": { - "Name": "Hunter's Speed", - "Description": "When you are struck you gain speed, at the cost of hunger", - "Lore1": "Gain passive speed when struck", - "Lore2": "x Speed stacks for a 3 seconds on hit", - "Lore3": "x Stacking hunger", - "Lore4": "Hunger stacks duration and multiplier.", - "Lore5": "Speed stacks multiplier, not duration." + "Name": "狩猎者之速", + "Description": "以饥饿为代价,当你受伤时给予速度效果。", + "Lore1": "受伤时自动给予速度效果。", + "Lore2": "x 速度效果,持续三秒", + "Lore3": "x 叠加饥饿效果", + "Lore4": "饥饿感叠加持续时间和倍数", + "Lore5": "抗性提升叠加倍数" }, "HunterStrength": { - "Name": "Hunter's Strength", - "Description": "When you are struck you gain strength, at the cost of hunger", - "Lore1": "Gain passive strength when struck", - "Lore2": "x Strength stacks for a 3 seconds on hit", - "Lore3": "x Stacking hunger", - "Lore4": "Hunger stacks duration and multiplier.", - "Lore5": "Strength stacks multiplier, not duration." + "Name": "狩猎者之力", + "Description": "以饥饿为代价,当你受伤时给予力量效果。", + "Lore1": "受伤时自动给予力量效果。", + "Lore2": "x 力量效果,持续三秒", + "Lore3": "x 叠加饥饿效果", + "Lore4": "饥饿感叠加持续时间和倍数", + "Lore5": "力量叠加倍数" } }, "Nether": { "SkullToss": { - "Name": "Wither Skull Throw", - "Description1": "Unleash your inner Wither by using", - "Description2": "someones", - "Description3": "head.", - "Lore1": "Seconds of cooldown between skull tosses.", - "Lore2": "Using Wither Skull: Toss a ", - "Lore3": "Wither Skull", - "Lore4": "exploding on impact." + "Name": "凋灵发射器", + "Description1": "发射凋灵的头展现", + "Description2": "内心中的", + "Description3": "枯竭。", + "Lore1": "秒发射冷却时间。", + "Lore2": "使用凋灵头颅发射器:", + "Lore3": "手持凋灵骷髅头颅,并右键", + "Lore4": "发射一颗凋灵头颅。遇到方块或生物时自动爆炸。" }, "WitherResist": { - "Name": "Wither Resistance", - "Description": "Resists withering through the power of Netherite.", - "Lore1": "chance to negate withering (per piece).", - "Lore2": "Passive: Wearing Netherite Armor has a chance to negate ", - "Lore3": "withering." + "Name": "凋零抑制器", + "Description": "通过下界合金的力量抑制凋零", + "Lore1": "的概率避免凋零效果", + "Lore2": "被动效果:穿着下界套装有概率避免", + "Lore3": "凋零效果。" } }, "Pickaxe": { "Autosmelt": { - "Name": "Autosmelt", - "Description": "Allows you to smelt mined Vanilla ores", - "Lore1": "Ores that can be smelted are smelted automatically", - "Lore2": "% chance for an extra" + "Name": "自动熔炼", + "Description": "当你挖掘(曾经)需要冶炼的矿物", + "Lore1": "时将自动熔炼成熔炼后的产物。", + "Lore2": "% 的概率获得额外产物。" }, "Chisel": { - "Name": "Ore Chisel", - "Description": "Right Click Ores to Chisel more ore out of them, at a severe durability cost.", - "Lore1": "Chance to Drop", - "Lore2": "Tool Wear" + "Name": "破碎锤", + "Description": "右键单击目标矿石,将有概率获得额外产物。这可能会严重消耗耐久度。", + "Lore1": "概率掉落额外产物", + "Lore2": "耐久消耗" }, "DropToInventory": { - "Name": "Pickaxe Drop-To-Inventory", - "Description": "When you break a block it teleports the item into your inventory", - "Lore1": "Whenever an item is dropped from a block you break it goes into your inventory if it can." + "Name": "快速进入背包", + "Description": "当你击杀生物/破坏某方块,它的掉落物将会自动进入背包。", + "Lore1": "如果允许,击杀生物/破坏某方块的掉落物将会自动进入背包。" }, "Veinminer": { - "Name": "Veinminer", - "Description": "Allows you to break blocks in a Vein/Cluster of Vanilla ores", - "Lore1": "Sneak, and mine ORES", - "Lore2": "range of vein-mining", - "Lore3": "This skill does NOT group all drops together!" + "Name": "连锁挖矿", + "Description": "允许你遇到原版矿物的矿脉时候连锁挖矿。", + "Lore1": "按住潜行键,并挖掘矿物", + "Lore2": "来使用连锁挖矿。", + "Lore3": "此技能不会将掉落物合并在一起。" } }, "Ranged": { "ArrowRecovery": { - "Name": "Arrow Recovery", - "Description": "Recover Arrows after you have killed an enemy.", - "Lore1": "Chance to Recover Arrows on Hit/Kill" + "Name": "箭矢回收站", + "Description": "当你击杀目标后有概率回收箭矢。", + "Lore1": "概率在击杀生物时回收箭矢" }, "ForceShot": { - "Name": "Force Shot", - "Description": "Shoot projectiles further, faster!", - "AdvancementName": "Long Shot", - "AdvancementLore": "Land a shot from over 30 blocks away!", - "Lore1": "Projectile Speed" + "Name": "暴力投掷", + "Description": "射出的投掷物又快又远!", + "AdvancementName": "远距离射击", + "AdvancementLore": "投掷物可以在超过30个方块外着陆", + "Lore1": "射击速度" }, "LungeShot": { - "Name": "Lunge Shot", - "Description": "While falling your arrows toss you in a random direction", - "Lore1": "Random Burst Speed" + "Name": "弓步射击", + "Description": "当你射出的箭矢落下后将你随机掷出一个方向", + "Lore1": "随机爆发速度" }, "ArrowPiercing": { - "Name": "Arrow Piercing", - "Description": "Adds Piercing to projectiles! Shoot through things!", - "Lore1": "Pierce Targets" + "Name": "精准穿透", + "Description": "提升投掷物或箭矢的穿透力,甚至可以穿透物体。", + "Lore1": "可穿透目标" } }, "Rift": { "RemoteAccess": { - "Name": "Remote Access", - "Description": "Pull from the void, and get into a marked container.", - "Lore1": "Enderpearl + Compass = Reliquary Portkey", - "Lore2": "This item allows you to access containers remotely", - "Lore3": "Once crafted look at item to see usage", - "NotContainer": "That's not a container" + "Name": "远程访问权限", + "Description": "来自虚空之中,可以访问被标记的容器。", + "Lore1": "末影珍珠 + 指南针 = Reliquary Portkey", + "Lore2": "这个物品允许你远程访问被标记的容器。", + "Lore3": "制作完成后,查看物品来使用该技能", + "NotContainer": "这个物品不是可用的容器" }, "RiftBlink": { - "Name": "Rift Blink", - "Description": "Short ranged instant teleportation, Just a blink away!", - "Lore1": "Blocks on blink (2x Vertical)", - "Lore2": "While Sprinting: Double tap Jump to ", - "Lore3": "Blink" + "Name": "裂痕闪烁", + "Description": "眨个眼的功夫,短距离即可瞬间传送", + "Lore1": "个方块(传送距离)", + "Lore2": "当疾跑时:跳跃两次以", + "Lore3": "传送" }, "RiftEnderchest": { - "Name": "Easy Enderchest", - "Description": "Open an enderchest by Left-clicking it in your hand.", - "Lore1": "Click an Enderchest in your hand to open (Just dont place it)" + "Name": "便捷式末影箱", + "Description": "手持末影箱", + "Lore1": "左键点击以快速打开末影箱(无需放置)" }, "RiftGate": { - "Name": "Rift Gate", - "Description": "Teleport to a marked location.", - "Lore1": "CRAFTING: Emerald + Amethyst shard + Ender Pearl", - "Lore2": "Read before using!", - "Lore3": "5s delay, ", - "Lore4": "you can die while you are in this animation" + "Name": "裂痕之门", + "Description": "传送到标记位置", + "Lore1": "制作:末影珍珠 + 紫水晶碎片 + 绿宝石", + "Lore2": "请注意:", + "Lore3": "有五秒延迟,", + "Lore4": "在进行五秒延迟等待时,你可以在动画中死亡。" }, "RiftResistance": { - "Name": "Rift Resistance", - "Description": "Gain Resistance when using Ender Items & Abilities", - "Lore1": "+ Passive: Provides resistance when you use rift abilities, or Ender Items", - "Lore2": "NOT Including Portable Enderchest, only things you can Consume" + "Name": "裂痕抗性", + "Description": "当使用末影物品或技能时,给予抗性提升", + "Lore1": "+ 被动效果:当你使用末影物品或技能时,给予抗性提升效果。", + "Lore2": "不包含便捷式末影箱。只对实际消耗的物品有效。" } }, "Seaborn": { "SeabornOxygen": { - "Name": "Organic Oxygen Tank", - "Description": "Hold more oxygen in your tiny lungs!", - "Lore1": "Oxygen" + "Name": "有机氧气罐", + "Description": "小肺终于能容纳更多的氧气了。", + "Lore1": "氧气" + }, + "FishersFantasy": { + "Name": "与鱼同乐", + "Description": "从钓鱼中获得更多经验,以及更多的鱼!", + "Lore1": "每级都有概率获得更多的经验和鱼" }, "DolphinGrace": { - "Name": "Dolphin's Grace", - "Description": "Swim like a dolphin, without the dolphins", - "Lore1": "+ Passive: gain ", - "Lore2": "x speed (dolphins grace)", - "Lore3": "precision german engineeeri- wait that's not right..." + "Name": "海豚的祝福", + "Description": "无需海豚相伴也能快速游动了。", + "Lore1": "+ 被动技能:给予 ", + "Lore2": "x 在水中速度 (海豚的恩惠效果)", + "Lore3": "精准的德国工程师- 等等,这好像不对..." } }, "Stealth": { "GhostArmor": { - "Name": "Ghost's Armor", - "Description": "Slow building armor when not taking damage, Lasts for 1 hit", - "Lore1": "Max Armor", - "Lore2": "Speed" + "Name": "幽灵战甲", + "Description": "潜行时缓慢的构建幽灵战甲- 受伤后清空", + "Lore1": "最大护甲值", + "Lore2": "构建时间" }, "StealthNightVision": { - "Name": "Stealth Vision", - "Description": "Gain night vision while sneaking", - "Lore1": "Gain a burst of ", - "Lore2": "night vision", - "Lore3": "while sneaking" + "Name": "鹰眼", + "Description": "当潜行时给予夜视效果", + "Lore1": "当保持潜行状态时", + "Lore2": "给予", + "Lore3": "夜视效果" }, "ItemSnatch": { - "Name": "Item Snatch", - "Description": "Snatch Dropped items instantly while sneaking!", - "Lore1": "Snatch Radius" + "Name": "物品夺取", + "Description": "潜行时立即夺取半径内的掉落物", + "Lore1": "夺取半径" }, "SneakSpeed": { - "Name": "Sneak Speed", - "Description": "Gain speed while sneaking", - "Lore1": "Sneaking Speed" + "Name": "潜行加速", + "Description": "当潜行时给予速度效果", + "Lore1": "潜行速度" } }, "Sword": { "Machete": { - "Name": "Machete", - "Description": "Cut through foliage with ease!", - "Lore1": "Slash Radius", - "Lore2": "Chop Cooldown", - "Lore3": "Tool Wear" + "Name": "弯刀", + "Description": "让剑斩开树叶。", + "Lore1": "有效范围半径", + "Lore2": "斩击冷却", + "Lore3": "耐久消耗" } }, "Taming": { "TameDamage": { - "Name": "Tame Damage", - "Description": "Increase your tamed animal damage dealt.", - "Lore1": "Increased Damage" + "Name": "驯化伤害", + "Description": "提高你驯养的生物的伤害", + "Lore1": "伤害增长" }, "TameHealth": { - "Name": "Tame Health", - "Description": "Increase your tamed animal health.", - "Lore1": "Increased Health" + "Name": "驯化生命", + "Description": "提高你驯养的生物的生命值", + "Lore1": "生命增长" }, "TameRegeneration": { - "Name": "Tame Regeneration", - "Description": "Increase your tamed animal regeneration.", - "Lore1": "HP/s" + "Name": "驯化再生", + "Description": "提高你驯养的生物的再生效果", + "Lore1": "生命/秒" } }, "Unarmed": { "GlassCannon": { - "Name": "Glass Cannon", - "Description": "Bonus Unarmed Damage the lower your armor value is", - "Lore1": "x Damage at 0 armor", - "Lore2": "PerLevel Bonus Damage" + "Name": "玻璃大炮", + "Description": "你的护甲值越低,空手造成的伤害越高", + "Lore1": "x 伤害(至0护甲值)", + "Lore2": "每级造成的额外伤害" }, "UnarmedPower": { - "Name": "Unarmed Power", - "Description": "Improved Unarmed Damage", - "Lore1": "Damage" + "Name": "钢铁之力", + "Description": "提升空手造成的伤害", + "Lore1": "伤害" }, "SuckerPunch": { - "Name": "Sucker Punch", - "Description": "Sprint punches, but more deadly.", - "Lore1": "Damage", - "Lore2": "Damage increases by with your speed while punching" + "Name": "杀客同萌", + "Description": "疾跑时可以攻击,但是更加致命", + "Lore1": "伤害", + "Lore2": "攻击时伤害随移动速度增加" } } -} \ No newline at end of file +}