diff --git a/Config.js b/Config.js
index 35b8618..3f75dfe 100644
--- a/Config.js
+++ b/Config.js
@@ -1,7 +1,7 @@
// LiteLoader-AIDS automatic generated
///
-const { I18nAPI, Minecraft } = require('./../GMLIB-LegacyRemoteCallApi/lib/GMLIB_API-JS.js');
+const { I18nAPI, Minecraft, UserCache } = require('./../GMLIB-LegacyRemoteCallApi/lib/GMLIB_API-JS.js');
module.exports = {
Config: {
@@ -18,13 +18,13 @@ module.exports = {
Conditions: true,
Text: (Player, Block) => I18nAPI.get('plugins.Waila.block.name', [Block.getTranslateName(Player.langCode), Block.type], Player.langCode)
},
- {// 挖掘时间
+ {// 硬度
Conditions: (_Player, Block) => !Block.isUnbreakable,
Text: (Player, Block) => '\n' + I18nAPI.get('plugins.Waila.block.hardness', [Block.getBlockDestroySpeed().toFixed(1).toString()], Player.langCode)
},
{// 是否可以采集
Conditions: (_Player, Block) => !Block.isUnbreakable,
- Text: (Player, Block,Cache) => '\n' + I18nAPI.get('plugins.Waila.block.destroy', [(!(Player.isAdventure && !Cache['HandItem'].canDestroy(Block)) && (Block.isAlwaysDestroyable() || Cache['HandItem'].canDestroySpecial(Block))) ? '§a✔' : '§c✘'], Player.langCode)
+ Text: (Player, Block, Cache) => '\n' + I18nAPI.get('plugins.Waila.block.destroy', [(!(Player.isAdventure && !Cache['HandItem'].canDestroy(Block)) && (Block.isAlwaysDestroyable() || Cache['HandItem'].canDestroySpecial(Block))) ? '§a✔' : '§c✘'], Player.langCode)
},
{// 蛋糕
Conditions: (_Player, Block) => Block.type === 'minecraft:cake',
@@ -32,8 +32,7 @@ module.exports = {
},
{// 箱子容量
Conditions: (_Player, Block) => Block.hasContainer(),
- Text: (Player, _Block, Cache) => '\n' + I18nAPI.get('plugins.Waila.block.chest.size', [Cache['BlockContainer'].getAllItems().filter(Item => !Item.isNull()).length.toString(), Cache['BlockContainer'].size.toString()], Player.langCde)
-
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get('plugins.Waila.block.chest.size', [Cache['BlockContainer'].getAllItems().filter(Item => !Item.isNull()).length.toString(), Cache['BlockContainer'].size.toString(), Cache['BlockContainer'].getAllItems().map(Item => Item.count).reduce((acc, curr) => acc + curr).toString(), (Cache['BlockContainer'].size * 64).toString()], Player.langCde)
},
{// 农作物成熟程度数值
Conditions: (_Player, Block) => Block.isCropBlock,
@@ -56,7 +55,7 @@ module.exports = {
Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.flower_pot`, [I18nAPI.get(Minecraft.getBlockTranslateKeyFromName(Cache['BlockEntityNbt'].getTag('PlantBlock').getData('name')), [], Player.langCode)], Player.langCode)
},
{// 命令方块
- Conditions: (_Player, Block, Cache) => ['minecraft:repeating_command_block', 'minecraft:command_block', 'minecraft:chain_command_block'].includes(Block.type) && Cache['BlockEntityNbt']?.getData('Command') !== '',
+ Conditions: (_Player, Block, Cache) => ['minecraft:repeating_command_block', 'minecraft:command_block', 'minecraft:chain_command_block'].includes(Block.type) && Cache['BlockEntityNbt']?.getData('Command') !== '' && Cache['BlockEntityNbt'].getData('Command').length < 100,
Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.commandblock.command`, [Cache['BlockEntityNbt'].getData('Command')], Player.langCode)
},
{// 刷怪笼
@@ -71,12 +70,49 @@ module.exports = {
Conditions: (_Player, Block) => Block.type === 'minecraft:composter',
Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.composter`, [Cache['BlockNbt']?.getTag('states')?.getData('composter_fill_level')?.toString()], Player.langCode)
},
+ {// 钟摆动时间
+ Conditions: (_Player, Block, Cache) => Block.type === 'minecraft:bell' && Cache['BlockEntityNbt'].getData('Ringing'),
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.RingingTime`, [((50 - Cache['BlockEntityNbt'].getData('Ticks')) / 20)?.toString()], Player.langCode)
+ },
+ {// 酿造剩余时间
+ Conditions: (_Player, Block, Cache) => Block.type === 'minecraft:brewing_stand' && Cache['BlockEntityNbt'].getData('CookTime') > 0,
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.BrewingStand.cookTime`, [(Cache['BlockEntityNbt'].getData('CookTime') / 20)?.toString()], Player.langCode)
+ },
+ {// 酿造剩余燃料
+ Conditions: (_Player, Block, Cache) => Block.type === 'minecraft:brewing_stand' && Cache['BlockEntityNbt'].getData('FuelAmount') > 0,
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.BrewingStand.Fuel`, [Cache['BlockEntityNbt'].getData('FuelAmount').toString(), Cache['BlockEntityNbt'].getData('FuelTotal').toString()], Player.langCode)
+ },
{// 信标
Conditions: (_Player, Block, Cache) => Block.type === 'minecraft:beacon' && ![0, null].includes(Cache['BlockEntityNbt']?.getData('primary')),
- Text: (Player, _Block, Cache) => {
- const BuffID = [null, 'moveSpeed', 'moveSlowdown', 'digSpeed', 'digSlowDown', 'damageBoost', 'heal', 'harm', 'jump', 'confusion', 'regeneration', 'resistance', 'fireResistance', 'waterBreathing', 'invisibility', 'blindness', 'nightVision', 'hunger', 'weakness', 'poison', 'wither', 'healthBoost', 'absorption', 'saturation', 'levitation', 'poison', 'conduitPower', 'slowFalling'];
- return '\n' + I18nAPI.get(`plugins.Waila.block.beacon`, [I18nAPI.get(`potion.${BuffID[Cache['BlockEntityNbt'].getData('primary')]}`, [], Player.langCode) + ' ' + (Cache['BlockEntityNbt'].getData('secondary') !== 0 ? I18nAPI.get(`potion.${BuffID[Cache['BlockEntityNbt'].getData('secondary')]}`, [], Player.langCode) : '')], Player.langCode);
- }
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.beacon`, [I18nAPI.get(`potion.${Cache['BuffKeyID'][Cache['BlockEntityNbt'].getData('primary')]}`, [], Player.langCode) + ' ' + (Cache['BlockEntityNbt'].getData('secondary') !== 0 ? I18nAPI.get(`potion.${Cache['BuffKeyID'][Cache['BlockEntityNbt'].getData('secondary')]}`, [], Player.langCode) : '')], Player.langCode)
+ },
+ {// 炼药锅药水效果
+ Conditions: (_Player, Block, Cache) => Block.type === 'minecraft:cauldron' && Cache['BlockEntityNbt']?.getData('PotionId') !== -1,
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.cauldron`, [I18nAPI.get(`potion.${Cache['BuffKeyID'][Cache['BlockEntityNbt'].getData('PotionId')]}`, [], Player.langCode), I18nAPI.get(`itemGroup.name.${['potion', 'splashPotion', 'lingeringPotion'][Cache['BlockEntityNbt'].getData('PotionType')]}`)], Player.langCode)
+ },
+ {// 红石比较器信号强度
+ Conditions: (_Player, Block) => Block.type === 'minecraft:powered_comparator',
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.powered_comparator`, [Cache['BlockEntityNbt'].getData('OutputSignal').toString()], Player.langCode)
+ },
+ {// 末地折跃门
+ Conditions: (_Player, Block) => Block.type === 'minecraft:end_gateway' && Block.pos.dimid === 2,
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.end_gateway`, [Cache['BlockEntityNbt'].getData('ExitPortal').toArray().map(item => item.toString()).join(' ')], Player.langCode)
+ },
+ {// 熔炼存储经验
+ Conditions: (_Player, Block, Cache) => ['minecraft:furnace', 'minecraft:lit_furnace'].includes(Block.type) && Cache['BlockEntityNbt']?.getData('StoredXPInt') > 0,
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.furnace.StoredXPInt`, [Cache['BlockEntityNbt'].getData('StoredXPInt').toString()], Player.langCode)
+ },
+ {// 熔炼熔炼进度
+ Conditions: (_Player, Block, Cache) => ['minecraft:furnace', 'minecraft:lit_furnace'].includes(Block.type) && Cache['BlockEntityNbt']?.getData('CookTime') > 0,
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.furnace.CookTime`, [(Cache['BlockEntityNbt'].getData('CookTime') / 2).toString()], Player.langCode)
+ },
+ {// 熔炼剩余燃料
+ Conditions: (_Player, Block, Cache) => ['minecraft:furnace', 'minecraft:lit_furnace'].includes(Block.type) && Cache['BlockEntityNbt']?.getData('BurnTime') > 0,
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.furnace.Burn`, [Cache['BlockEntityNbt']?.getData('BurnTime').toString(), Cache['BlockEntityNbt']?.getData('BurnDuration').toString()], Player.langCode)
+ },
+ {// 最后编辑告示牌的玩家
+ Conditions: (_Player, Block, Cache) => Block.type.includes('_sign') && Cache['BlockEntityNbt']?.getTag('FrontText')?.getData('TextOwner') !== '',
+ Text: (Player, _Block, Cache) => '\n' + I18nAPI.get(`plugins.Waila.block.sign`, [UserCache.getNameByXuid(Cache['BlockEntityNbt'].getTag('FrontText').getData('TextOwner'))], Player.langCode)
},
{// 方块坐标
Conditions: true,
@@ -113,13 +149,45 @@ module.exports = {
Conditions: (_Player, Entity) => Entity.type === 'minecraft:tnt',
Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.tnt', [Cache['EntityNbt']?.getData('Fuse')?.toString() ?? '0'], Player.langCode)
},
+ {// 繁殖冷却时间
+ Conditions: (_Player, _Entity, Cache) => Cache['EntityNbt'].getData('BreedCooldown') > 0,
+ Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.breedcooldown', [(Cache['EntityNbt']?.getData('BreedCooldown') / 20)?.toFixed(1)?.toString()], Player.langCode)
+ },
+ {// 成年所需时间
+ Conditions: (_Player, Entity) => Entity.isBaby,
+ Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.age', [(Math.abs(Cache['EntityNbt']?.getData('Age')) / 20)?.toFixed(1)?.toString()], Player.langCode)
+ },
+ {// 跳跃高度
+ Conditions: (_Player, Entity) => ['minecraft:horse', 'minecraft:skeleton_horse', 'minecraft:zombie_horse', 'minecraft:donkey', 'minecraft:mule', 'minecraft:llama', 'minecraft:trader_llama'].includes(Entity.type),
+ Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.jump', [(Cache['EntityNbt'].getTag('Attributes').toArray().find(Attribute => Attribute.Name === 'minecraft:horse.jump_strength')['Current'] / 0.2724275).toFixed(1).toString()], Player.langCode)
+ },
+ {// 村民职业
+ Conditions: (_Player, Entity) => Entity.type === 'minecraft:villager_v2' && !Entity.isBaby,
+ Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.village.profession', [I18nAPI.get(`entity.villager.${({ 'armorer': 'armor', 'weaponsmith': 'weapon', 'leatherworker': 'leather', 'toolsmith': 'tool', 'undefined': 'unskilled' })[Cache['EntityNbt'].getData('PreferredProfession')] ?? Cache['EntityNbt'].getData('PreferredProfession')}`, [], Player.langCode)], Player.langCode)
+ },
+ {// 无敌时间
+ Conditions: (_Player, _Entity, Cache) => Cache['EntityNbt'].getData('HurtTime') > 0,
+ Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.Invincible_time', [(Cache['EntityNbt'].getData('HurtTime') / 20).toFixed(1).toString()], Player.langCode)
+ },
+ {// 玩家游戏模式
+ Conditions: (_Player, Entity) => Entity.isPlayer(),
+ Text: (Player, Entity) => '\n' + I18nAPI.get('plugins.Waila.entity.gamemode', [I18nAPI.get(`gameMode.${['survival', 'creative', 'adventure', null, null, null, 'spectator'][Entity.toPlayer().gameMode]}`, [], Player.langCode)], Player.langCode)
+ },
+ {// 末影螨剩余存在时间
+ Conditions: (_Player, Entity) => Entity.type === 'minecraft:endermite',
+ Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.endermite.Lifetime', [((2400 - Cache['EntityNbt'].getData('Lifetime')) / 20).toFixed(1).toString()], Player.langCode)
+ },
+ {// 山羊羊角数量
+ Conditions: (_Player, Entity) => Entity.type === 'minecraft:goat',
+ Text: (Player, _Entity, Cache) => '\n' + I18nAPI.get('plugins.Waila.entity.goat.GoatHornCount', [Cache['EntityNbt'].getData('GoatHornCount').toString()], Player.langCode)
+ },
{// 村民
Conditions: (_Player, Entity, Cache) => Entity.type === 'minecraft:villager_v2' && Cache['EntityNbt']?.getTag('Offers')?.getTag('Recipes') != null,
Text: (Player, _Entity, Cache) => {
let /** @type {NbtList} */OffersNbts = Cache['EntityNbt'].getTag('Offers').getTag('Recipes'),/** @type {String[]} */ OffersTexts = [];
for (let index = 0; index < OffersNbts.getSize(); index++) {
const /** @type {NbtCompound} */OffersNbt = OffersNbts.getData(index);
- if (Cache['EntityNbt'].getTag('Offers').getTag('TierExpRequirements').getData(OffersNbt.getData('tier')).getData(OffersNbt.getData('tier').toString()) > Cache['EntityNbt'].getData('Riches')) continue;
+ if (OffersNbt.getData('tier') > Cache['EntityNbt'].getData('TradeTier')) continue;
const BuyItemA = mc.newItem(OffersNbt.getTag('buyA').getData('Name'), OffersNbt.getData('buyCountA'));
OffersTexts[index] = I18nAPI.get('plugins.Waila.entity.village.offers.item1', [BuyItemA.getTranslateName(Player.langCode), BuyItemA.count.toString()], Player.langCode);
if (OffersNbt.getTag('buyB')) {
@@ -180,6 +248,7 @@ module.exports = {
* BlockEntityNbt:NbtCompound|null,
* BlockContainer:Container|null,
* EntityNbt:NbtCompound|null
+ * BuffKeyID:String[]
* },PlayerConfig): boolean | boolean} Conditions - 条件函数
* @property {(string | function(Player, Block|Entity,
* {
@@ -188,5 +257,6 @@ module.exports = {
* BlockEntityNbt:NbtCompound|null,
* BlockContainer:Container|null,
* EntityNbt:NbtCompound|null
+ * BuffKeyID:String[]
* },PlayerConfig): string)} Text - 文本内容
*/
\ No newline at end of file
diff --git a/Language/en-US.lang b/Language/en-US.lang
index a5fc318..0bfd7bd 100644
--- a/Language/en-US.lang
+++ b/Language/en-US.lang
@@ -1,96 +1,118 @@
## Command Translations
-plugins.Waila.command.description=§bHighlight Settings §7- §dby Xiaoxiaozi Mu
-plugins.Waila.command.translators.error=§cTarget block §a%s §calready has a translation→ §e%s
+plugins.Waila.command.description=§bHighlight Display Settings §7- §dby Little Zimu
+plugins.Waila.command.translators.error=§cTarget block §a%s §calready has a translation → §e%s
plugins.Waila.command.translators.succes=§eTarget block §b%s §ehas been translated to §6%s
plugins.Waila.command.language.error=§cLanguage §a%s §cdoes not exist
-plugins.Waila.gui.title=§eHighlight Settings
-plugins.Waila.gui.cancel=§8Settings canceled
-plugins.Waila.gui.succes=§gSettings successful
-plugins.Waila.gui.switch=§bHighlight Switch
+plugins.Waila.gui.title=§eHighlight Display Settings
+plugins.Waila.gui.cancel=§8Settings Cancelled
+plugins.Waila.gui.succes=§gSettings Saved
+plugins.Waila.gui.switch=§bToggle Highlight
plugins.Waila.gui.dropdown=§aDisplay Mode
plugins.Waila.gui.dropdown.items.bossbar=§1BOSS Bar
-plugins.Waila.gui.dropdown.items.tell_popup=§2Jukebox Message
-plugins.Waila.gui.dropdown.items.tell_tip=§3Above Item Bar
+plugins.Waila.gui.dropdown.items.tell_popup=§2Chat Message
+plugins.Waila.gui.dropdown.items.tell_tip=§3Above Inventory
plugins.Waila.gui.dropdown.items.actionBar=§5Action Bar
## Configuration File Translations
plugins.Waila.block.name=§6%s §7(%s)
-plugins.Waila.block.hardness=Hardness §6%s
-plugins.Waila.block.destroy=§l%s §r§7Can be destroyed?§r
-plugins.Waila.block.cake.status=§3Cake Status:§c%s/7
-plugins.Waila.block.chest.size=§bCapacity:§a%s/%s
-plugins.Waila.block.jukebox=§8Playing Record §c%s
-plugins.Waila.block.beacon=§7Selected Effect:§5%s
-plugins.Waila.block.noteblock=§cMusical Scale:§d%s
-plugins.Waila.block.composter=§bCompost Level:§e%s/8
-plugins.Waila.block.mob_spawner=§dSpawning Mob:§a%s
-plugins.Waila.block.commandblock.command=§dCommand:§a%s
-plugins.Waila.block.flower_pot=§dPlanted Flower:§b%s
-plugins.Waila.block.open_status.open=§eOpen Status:§6Open
-plugins.Waila.block.open_status.close=§eOpen Status:§6Closed
-plugins.Waila.block.pos=§7X:§g%s §7Y:§g%s §7Z:§g%s
-plugins.Waila.block.Cropnum=§3Growth Level:§g%s
-plugins.Waila.block.redstonelv=§cRedstone Level:§e%s
+plugins.Waila.block.hardness=§7Hardness §6%s
+plugins.Waila.block.destroy=§l%s §r§7Can be mined§r
+plugins.Waila.block.cake.status=§3Cake Status: §c%s/7
+plugins.Waila.block.chest.size=§bCapacity: §a%s/%s §d%s/%s
+plugins.Waila.block.jukebox=§8Playing Disc §c%s
+plugins.Waila.block.beacon=§7Selected Effect: §5%s
+plugins.Waila.block.noteblock=§cNote §6: §d%s
+plugins.Waila.block.composter=§bCompost Level §a: §e%s/8
+plugins.Waila.block.mob_spawner=§dMob Spawner: §a%s
+plugins.Waila.block.commandblock.command=§dCommand: §a%s
+plugins.Waila.block.flower_pot=§dPlanted Flower §b: %s
+plugins.Waila.block.open_status.open=§eOpen Status: §6Open
+plugins.Waila.block.open_status.close=§eOpen Status: §6Closed
+plugins.Waila.block.pos=§7X: §g%s §7Y: §g%s §7Z: §g%s
+plugins.Waila.block.Cropnum=§3Growth Level: §g%s
+plugins.Waila.block.RingingTime=§eSwing Time: §d%s
+plugins.Waila.block.BrewingStand.cookTime=§dRemaining Brew Time: §a%s
+plugins.Waila.block.BrewingStand.Fuel=§6Remaining Fuel: §b%s/%s
+plugins.Waila.block.cauldron=§cPotion Effect: §d%s§6(%s)
+plugins.Waila.block.powered_comparator=§dSignal Strength: §c%s
+plugins.Waila.block.end_gateway=§cTeleport Coordinates: §d%s
+plugins.Waila.block.furnace.StoredXPInt=§bStored Experience: §a%s
+plugins.Waila.block.furnace.CookTime=§eBurning Progress Percentage: §c%s
+plugins.Waila.block.furnace.Burn=§dRemaining Fuel: §b%s/%s
+plugins.Waila.block.sign=§cLast Edited by: §6%s
+plugins.Waila.block.redstonelv=§cRedstone Level: §e%s
plugins.Waila.entity.name=§6%s §7(%s)
-plugins.Waila.entity.pose=§dPose ID:§a%s
-plugins.Waila.entity.painting=§aTheme:§6%s
-plugins.Waila.entity.slime.size=§6Size:§3%s
-plugins.Waila.entity.falling_block=§7Block:§9%s
-plugins.Waila.entity.tnt=§dExplosion Time:§a%s(Tick)
-plugins.Waila.entity.village.offers=§cTrade Information:\n
+plugins.Waila.entity.pose=§dPose ID: §a%s
+plugins.Waila.entity.painting=§aSubject: §6%s
+plugins.Waila.entity.slime.size=§6Size: §3%s
+plugins.Waila.entity.falling_block=§7Block: §9%s
+plugins.Waila.entity.tnt=§dExplosion Time: §a%s (Tick)
+plugins.Waila.entity.village.offers=§cTrading Information:\n
plugins.Waila.entity.village.offers.item1= §d%s§r§a*§b%s
plugins.Waila.entity.village.offers.item2= §g+ §d%s§r§a*§b%s
plugins.Waila.entity.village.offers.item3= §6=> %s§r§a*§b%s
plugins.Waila.entity.health=§l§c❤ §a%s/%s§r
-plugins.Waila.entity.pos=§7X:§g%s §7Y:§g%s §7Z:§g%s
+plugins.Waila.entity.breedcooldown=§eBreeding Cooldown: §c%s
+plugins.Waila.entity.age=§6Maturity Time: §c%s
+plugins.Waila.entity.jump=§dJump Height: §a%s blocks
+plugins.Waila.entity.village.profession=§bVillager Profession §e%s
+plugins.Waila.entity.Invincible_time=§dInvincible Time: §6%s
+plugins.Waila.entity.gamemode=§eGame Mode §c%s
+plugins.Waila.entity.endermite.Lifetime=§aLifetime: §6%s
+plugins.Waila.entity.goat.GoatHornCount=§aHorn Count: §e%s
+plugins.Waila.entity.pos=§7X: §g%s §7Y: §g%s §7Z: §g%s
-## Completing Mojang's Untranslated Blocks or Entities
-tile.daylight_detector_inverted.name=Inverted Daylight Detector
-tile.melon_stem.name=Melon Stem
-tile.wall_sign.name=Oak Wall Sign
-tile.spruce_wall_sign.name=Spruce Wall Sign
-tile.birch_wall_sign.name=Birch Wall Sign
-tile.jungle_wall_sign.name=Jungle Wall Sign
-tile.acacia_wall_sign.name=Acacia Wall Sign
-tile.darkoak_wall_sign.name=Dark Oak Wall Sign
-tile.mangrove_wall_sign.name=Mangrove Wall Sign
-tile.cherry_wall_sign.name=Cherry Wall Sign
-tile.bamboo_wall_sign.name=Bamboo Wall Sign
-tile.warped_wall_sign.name=Warped Wall Sign
-tile.oak_hanging_sign.name=Oak Hanging Sign
-tile.spruce_hanging_sign.name=Spruce Hanging Sign
-tile.birch_hanging_sign.name=Birch Hanging Sign
-tile.jungle_hanging_sign.name=Jungle Hanging Sign
-tile.acacia_hanging_sign.name=Acacia Hanging Sign
-tile.dark_oak_hanging_sign.name=Dark Oak Hanging Sign
-tile.mangrove_hanging_sign.name=Mangrove Hanging Sign
-tile.cherry_hanging_sign.name=Cherry Hanging Sign
-tile.bamboo_hanging_sign.name=Bamboo Hanging Sign
-tile.warped_hanging_sign.name=Warped Hanging Sign
-tile.lit_redstone_ore.name=Glowing Redstone Ore
-tile.lit_deepslate_redstone_ore.name=Glowing Deepslate Redstone Ore
-tile.torchflower_crop.name=Torchflower Seedling
-tile.pitcher_crop.name=Pitcher Plant Pod
-tile.unpowered_repeater.name=Redstone Repeater
-tile.powered_repeater.name=Activated Redstone Repeater
-tile.sticky_piston_arm_collision.name=Sticky Piston Arm
-tile.piston_arm_collision.name=Piston Arm
-tile.wooden_door.name=Oak Door
-tile.spruce_door.name=Spruce Door
-tile.birch_door.name=Birch Door
-tile.jungle_door.name=Jungle Door
-tile.acacia_door.name=Acacia Door
-tile.dark_oak_door.name=Dark Oak Door
-tile.mangrove_door.name=Mangrove Door
-tile.cherry_door.name=Cherry Door
-tile.bamboo_door.name=Bamboo Door
-tile.iron_door.name=Iron Door
-tile.crimson_door.name=Crimson Door
-tile.warped_door.name=Warped Door
-tile.lit_redstone_lamp.name=Glowing Redstone Lamp
-tile.frame.name=Item Frame
-tile.skull.name=Skull
-tile.flower_pot.name=Flower Pot
-tile.end_portal.name=End Portal
-tile.end_gateway.name=End Gateway Block
\ No newline at end of file
+## Completing Blocks or Entities Not Translated by Mojang
+tile.daylight_detector_inverted.name = Daylight Detector (Inverted)
+tile.melon_stem.name = Melon Stem
+tile.wall_sign.name = Oak Wall Sign
+tile.spruce_wall_sign.name = Spruce Wall Sign
+tile.birch_wall_sign.name = Birch Wall Sign
+tile.jungle_wall_sign.name = Jungle Wall Sign
+tile.acacia_wall_sign.name = Acacia Wall Sign
+tile.darkoak_wall_sign.name = Dark Oak Wall Sign
+tile.mangrove_wall_sign.name = Mangrove Wall Sign
+tile.cherry_wall_sign.name = Cherry Wood Wall Sign
+tile.bamboo_wall_sign.name = Bamboo Wall Sign
+tile.warped_wall_sign.name = Warped Wood Wall Sign
+tile.oak_hanging_sign.name = Oak Hanging Sign
+tile.spruce_hanging_sign.name = Spruce Hanging Sign
+tile.birch_hanging_sign.name = Birch Hanging Sign
+tile.jungle_hanging_sign.name = Jungle Hanging Sign
+tile.acacia_hanging_sign.name = Acacia Hanging Sign
+tile.dark_oak_hanging_sign.name = Dark Oak Hanging Sign
+tile.mangrove_hanging_sign.name = Mangrove Hanging Sign
+tile.cherry_hanging_sign.name = Cherry Wood Hanging Sign
+tile.bamboo_hanging_sign.name = Bamboo Hanging Sign
+tile.warped_hanging_sign.name = Warped Wood Hanging Sign
+tile.lit_redstone_ore.name = Glowing Redstone Ore
+tile.lit_deepslate_redstone_ore.name = Glowing Deepslate Redstone Ore
+tile.torchflower_crop.name = Torchflower Crop
+tile.pitcher_crop.name = Pitcher Pod
+tile.unpowered_repeater.name = Unpowered Redstone Repeater
+tile.powered_repeater.name = Powered Redstone Repeater
+tile.sticky_piston_arm_collision.name = Sticky Piston Arm Collision
+tile.piston_arm_collision.name = Piston Arm Collision
+tile.wooden_door.name = Oak Door
+tile.spruce_door.name = Spruce Door
+tile.birch_door.name = Birch Door
+tile.jungle_door.name = Jungle Door
+tile.acacia_door.name = Acacia Door
+tile.dark_oak_door.name = Dark Oak Door
+tile.mangrove_door.name = Mangrove Door
+tile.cherry_door.name = Cherry Wood Door
+tile.bamboo_door.name = Bamboo Door
+tile.iron_door.name = Iron Door
+tile.crimson_door.name = Crimson Door
+tile.warped_door.name = Warped Door
+tile.lit_redstone_lamp.name = Glowing Redstone Lamp
+tile.frame.name = Item Frame
+tile.skull.name = Skull
+tile.flower_pot.name = Flower Pot
+tile.end_portal.name = End Portal
+tile.end_gateway.name = End Gateway Block
+tile.wall_banner.name = Wall Banner
+tile.unpowered_comparator.name = Unpowered Redstone Comparator
+tile.powered_comparator.name = Powered Redstone Comparator
+tile.lit_furnace.name = Lit Furnace
diff --git a/Language/en_GB.lang b/Language/en_GB.lang
index 31ee6a8..7e48172 100644
--- a/Language/en_GB.lang
+++ b/Language/en_GB.lang
@@ -1,63 +1,81 @@
## Command Translations
-plugins.Waila.command.description=§bHighlight Settings §7- §dby Xiaoxiaozi Mu
-plugins.Waila.command.translators.error=§cTarget block §a%s §calready has a translation→ §e%s
+plugins.Waila.command.description=§bHighlight Display Settings §7- §dby Tiny Zimu
+plugins.Waila.command.translators.error=§cTarget block §a%s §calready has a translation → §e%s
plugins.Waila.command.translators.succes=§eTarget block §b%s §ehas been translated to §6%s
plugins.Waila.command.language.error=§cLanguage §a%s §cdoes not exist
-plugins.Waila.gui.title=§eHighlight Settings
-plugins.Waila.gui.cancel=§8Settings canceled
-plugins.Waila.gui.succes=§gSettings successful
-plugins.Waila.gui.switch=§bHighlight switch
-plugins.Waila.gui.dropdown=§aDisplay mode
-plugins.Waila.gui.dropdown.items.bossbar=§1BOSS bar
-plugins.Waila.gui.dropdown.items.tell_popup=§2Jukebox message
-plugins.Waila.gui.dropdown.items.tell_tip=§3Above the item bar
-plugins.Waila.gui.dropdown.items.actionBar=§5Action bar
+plugins.Waila.gui.title=§eHighlight Display Settings
+plugins.Waila.gui.cancel=§8Settings Canceled
+plugins.Waila.gui.succes=§gSettings Successful
+plugins.Waila.gui.switch=§bHighlight Toggle
+plugins.Waila.gui.dropdown=§aDisplay Mode
+plugins.Waila.gui.dropdown.items.bossbar=§1BOSS Bar
+plugins.Waila.gui.dropdown.items.tell_popup=§2Jukebox Message
+plugins.Waila.gui.dropdown.items.tell_tip=§3Above Inventory
+plugins.Waila.gui.dropdown.items.actionBar=§5Action Bar
-## Configuration File Translations
+## Config File Translations
plugins.Waila.block.name=§6%s §7(%s)
-plugins.Waila.block.hardness=Hardness §6%s
-plugins.Waila.block.destroy=§l%s §r§7Can it be collected?§r
-plugins.Waila.block.cake.status=§3Cake status: §c%s/7
-plugins.Waila.block.chest.size=§bCapacity: §a%s/%s
-plugins.Waila.block.jukebox=§8Playing record §c%s
-plugins.Waila.block.beacon=§7Select effect: §5%s
-plugins.Waila.block.noteblock=§cMusical scale §6: §d%s
-plugins.Waila.block.composter=§bCompost level §a: §e%s/8
-plugins.Waila.block.mob_spawner=§dSpawn monster: §a%s
+plugins.Waila.block.hardness=§7Hardness §6%s
+plugins.Waila.block.destroy=§l%s §r§7Can Be Mined §r
+plugins.Waila.block.cake.status=§3Cake Status: §c%s/7
+plugins.Waila.block.chest.size=§bCapacity: §a%s/%s §d%s/%s
+plugins.Waila.block.jukebox=§8Playing Record §c%s
+plugins.Waila.block.beacon=§7Select Effect: §5%s
+plugins.Waila.block.noteblock=§cOctave §6: §d%s
+plugins.Waila.block.composter=§bCompost Level §a: §e%s/8
+plugins.Waila.block.mob_spawner=§dSpawns Mob: §a%s
plugins.Waila.block.commandblock.command=§dCommand: §a%s
-plugins.Waila.block.flower_pot=§dPlanted flower §b: %s
-plugins.Waila.block.open_status.open=§eOpen status: §6Open
-plugins.Waila.block.open_status.close=§eOpen status: §6Closed
+plugins.Waila.block.flower_pot=§dPlanted Flower §b: %s
+plugins.Waila.block.open_status.open=§eOpen Status: §6Open
+plugins.Waila.block.open_status.close=§eOpen Status: §6Closed
plugins.Waila.block.pos=§7X: §g%s §7Y: §g%s §7Z: §g%s
-plugins.Waila.block.Cropnum=§3Growth level: §g%s
-plugins.Waila.block.redstonelv=§cRedstone level: §e%s
+plugins.Waila.block.Cropnum=§3Growth Level: §g%s
+plugins.Waila.block.RingingTime=§eSwing Time: §d%s
+plugins.Waila.block.BrewingStand.cookTime=§dRemaining Brewing Time: §a%s
+plugins.Waila.block.BrewingStand.Fuel=§6Remaining Fuel: §b%s/%s
+plugins.Waila.block.cauldron=§cPotion Effects: §d%s§6(%s)
+plugins.Waila.block.powered_comparator=§dSignal Strength: §c%s
+plugins.Waila.block.end_gateway=§cTeleport Coordinates: §d%s
+plugins.Waila.block.furnace.StoredXPInt=§bStored XP: §a%s
+plugins.Waila.block.furnace.CookTime=§eBurning Progress Percentage: §c%s
+plugins.Waila.block.furnace.Burn=§dRemaining Fuel: §b%s/%s
+plugins.Waila.block.sign=§cLast Edited By: §6%s
+plugins.Waila.block.redstonelv=§cRedstone Level: §e%s
plugins.Waila.entity.name=§6%s §7(%s)
plugins.Waila.entity.pose=§dPose ID: §a%s
plugins.Waila.entity.painting=§aTheme: §6%s
plugins.Waila.entity.slime.size=§6Size: §3%s
plugins.Waila.entity.falling_block=§7Block: §9%s
-plugins.Waila.entity.tnt=§dExplosion time: §a%s (Tick)
-plugins.Waila.entity.village.offers=§cTransaction information:\n
-plugins.Waila.entity.village.offers.item1= §d%s§r§a*§b%s
-plugins.Waila.entity.village.offers.item2= §g+ §d%s§r§a*§b%s
-plugins.Waila.entity.village.offers.item3= §6=> %s§r§a*§b%s
+plugins.Waila.entity.tnt=§dExplosion Time: §a%s(Tick)
+plugins.Waila.entity.village.offers=§cTrade Information:\n
+plugins.Waila.entity.village.offers.item1= §d%s§r§a*%b%s
+plugins.Waila.entity.village.offers.item2= §g+ §d%s§r§a*%b%s
+plugins.Waila.entity.village.offers.item3= §6=> %s§r§a*%b%s
plugins.Waila.entity.health=§l§c❤ §a%s/%s§r
+plugins.Waila.entity.breedcooldown=§eBreeding Cooldown: §c%s
+plugins.Waila.entity.age=§6Adulthood Time: §c%s
+plugins.Waila.entity.jump=§dJump Height: §a%s blocks
+plugins.Waila.entity.village.profession=§bVillager Profession §e%s
+plugins.Waila.entity.Invincible_time=§dInvincibility Time: §6%s
+plugins.Waila.entity.gamemode=§eGame Mode §c%s
+plugins.Waila.entity.endermite.Lifetime=§aLifetime: §6%s
+plugins.Waila.entity.goat.GoatHornCount=§aHorn Count: §e%s
plugins.Waila.entity.pos=§7X: §g%s §7Y: §g%s §7Z: §g%s
-## Completing Blocks or Entities Not Translated by Mojang
-tile.daylight_detector_inverted.name=Night Sensor
-tile.melon_stem.name=Watermelon Stem
-tile.wall_sign.name=Oak Sign
-tile.spruce_wall_sign.name=Spruce Sign
-tile.birch_wall_sign.name=Birch Sign
-tile.jungle_wall_sign.name=Jungle Sign
-tile.acacia_wall_sign.name=Acacia Sign
-tile.darkoak_wall_sign.name=Dark Oak Sign
-tile.mangrove_wall_sign.name=Mangrove Sign
-tile.cherry_wall_sign.name=Cherry Sign
-tile.bamboo_wall_sign.name=Bamboo Sign
-tile.warped_wall_sign.name=Warped Sign
+## Complement Mojang's untranslated blocks or entities
+tile.daylight_detector_inverted.name=Inverted Daylight Detector
+tile.melon_stem.name=Melon Stem
+tile.wall_sign.name=Oak Wall Sign
+tile.spruce_wall_sign.name=Spruce Wall Sign
+tile.birch_wall_sign.name=Birch Wall Sign
+tile.jungle_wall_sign.name=Jungle Wall Sign
+tile.acacia_wall_sign.name=Acacia Wall Sign
+tile.darkoak_wall_sign.name=Dark Oak Wall Sign
+tile.mangrove_wall_sign.name=Mangrove Wall Sign
+tile.cherry_wall_sign.name=Cherry Wood Wall Sign
+tile.bamboo_wall_sign.name=Bamboo Wall Sign
+tile.warped_wall_sign.name=Warped Wall Sign
tile.oak_hanging_sign.name=Oak Hanging Sign
tile.spruce_hanging_sign.name=Spruce Hanging Sign
tile.birch_hanging_sign.name=Birch Hanging Sign
@@ -65,23 +83,25 @@ tile.jungle_hanging_sign.name=Jungle Hanging Sign
tile.acacia_hanging_sign.name=Acacia Hanging Sign
tile.dark_oak_hanging_sign.name=Dark Oak Hanging Sign
tile.mangrove_hanging_sign.name=Mangrove Hanging Sign
-tile.cherry_hanging_sign.name=Cherry Hanging Sign
+tile.cherry_hanging_sign.name=Cherry Wood Hanging Sign
tile.bamboo_hanging_sign.name=Bamboo Hanging Sign
tile.warped_hanging_sign.name=Warped Hanging Sign
tile.lit_redstone_ore.name=Glowing Redstone Ore
tile.lit_deepslate_redstone_ore.name=Glowing Deepslate Redstone Ore
-tile.torchflower_crop.name=Torch Flower Seedling
+tile.torchflower_crop.name=Torchflower Crop
tile.pitcher_crop.name=Pitcher Plant Pod
-tile.unpowered_repeater.name=Redstone Repeater
-tile.powered_repeater.name=Activated Redstone Repeater
+tile.unpowered_repeater.name=Unpowered Redstone Repeater
+tile.powered_repeater.name=Powered Redstone Repeater
+tile.sticky_piston_arm_collision.name=Sticky Piston Arm Collision
+tile.piston_arm_collision.name=Piston Arm Collision
tile.wooden_door.name=Oak Door
tile.spruce_door.name=Spruce Door
tile.birch_door.name=Birch Door
tile.jungle_door.name=Jungle Door
tile.acacia_door.name=Acacia Door
tile.dark_oak_door.name=Dark Oak Door
-tile.mangrove_door.name=Mangrove Door Dream
-tile.cherry_door.name=Cherry Door
+tile.mangrove_door.name=Mangrove Door
+tile.cherry_door.name=Cherry Wood Door
tile.bamboo_door.name=Bamboo Door
tile.iron_door.name=Iron Door
tile.crimson_door.name=Crimson Door
@@ -91,4 +111,8 @@ tile.frame.name=Item Frame
tile.skull.name=Skull
tile.flower_pot.name=Flower Pot
tile.end_portal.name=End Portal
-tile.end_gateway.name=End Gateway Block
\ No newline at end of file
+tile.end_gateway.name=End Gateway Block
+tile.wall_banner.name=Wall Banner
+tile.unpowered_comparator.name=Unpowered Redstone Comparator
+tile.powered_comparator.name=Powered Redstone Comparator
+tile.lit_furnace.name=Lit Furnace
diff --git a/Language/zh_CN.lang b/Language/zh_CN.lang
index bf6cbcb..5ad6746 100644
--- a/Language/zh_CN.lang
+++ b/Language/zh_CN.lang
@@ -14,13 +14,11 @@ plugins.Waila.gui.dropdown.items.tell_tip=§3物品栏上方
plugins.Waila.gui.dropdown.items.actionBar=§5活动栏
## 配置文件翻译
-plugins.Waila.get.error=§c获取实体或方块失败
-
plugins.Waila.block.name=§6%s §7(%s)
-plugins.Waila.block.destroytime=§7破坏时长 §6%ss
+plugins.Waila.block.hardness=§7硬度 §6%s
plugins.Waila.block.destroy=§l%s §r§7能否采集§r
plugins.Waila.block.cake.status=§3蛋糕状态:§c%s/7
-plugins.Waila.block.chest.size=§b容量:§a%s/%s
+plugins.Waila.block.chest.size=§b容量:§a%s/%s §d%s/%s
plugins.Waila.block.jukebox=§8播放唱片 §c%s
plugins.Waila.block.beacon=§7选择效果:§5%s
plugins.Waila.block.noteblock=§c音阶§6:§d%s
@@ -32,6 +30,16 @@ plugins.Waila.block.open_status.open=§e开启状态:§6开
plugins.Waila.block.open_status.close=§e开启状态:§6关
plugins.Waila.block.pos=§7X:§g%s §7Y:§g%s §7Z:§g%s
plugins.Waila.block.Cropnum=§3成长程度:§g%s
+plugins.Waila.block.RingingTime=§e摆动时间:§d%s
+plugins.Waila.block.BrewingStand.cookTime=§d酿造剩余时间:§a%s
+plugins.Waila.block.BrewingStand.Fuel=§6剩余燃料:§b%s/%s
+plugins.Waila.block.cauldron=§c药水效果:§d%s§6(%s)
+plugins.Waila.block.powered_comparator=§d信号强度:§c%s
+plugins.Waila.block.end_gateway=§c传送坐标:§d%s
+plugins.Waila.block.furnace.StoredXPInt=§b存储经验:§a%s
+plugins.Waila.block.furnace.CookTime=§e燃烧进度百分比:§c%s
+plugins.Waila.block.furnace.Burn=§d剩余燃料:§b%s/%s
+plugins.Waila.block.sign=§c最后编辑玩家:§6%s
plugins.Waila.block.redstonelv=§c红石等级:§e%s
plugins.Waila.entity.name=§6%s §7(%s)
@@ -45,54 +53,69 @@ plugins.Waila.entity.village.offers.item1= §d%s§r§a*§b%s
plugins.Waila.entity.village.offers.item2= §g+ §d%s§r§a*§b%s
plugins.Waila.entity.village.offers.item3= §6=> %s§r§a*§b%s
plugins.Waila.entity.health=§l§c❤ §a%s/%s§r
+plugins.Waila.entity.breedcooldown=§e繁殖冷却时间:§c%s
+plugins.Waila.entity.age=§6成年时间:§c%s
+plugins.Waila.entity.jump=§d跳跃高度:§a%s格
+plugins.Waila.entity.village.profession=§b村民职业 §e%s
+plugins.Waila.entity.Invincible_time=§d无敌时间:§6%s
+plugins.Waila.entity.gamemode=§e游戏模式 §c%s
+plugins.Waila.entity.endermite.Lifetime=§a存在时间:§6%s
+plugins.Waila.entity.goat.GoatHornCount=§a羊角数量:§e%s
plugins.Waila.entity.pos=§7X:§g%s §7Y:§g%s §7Z:§g%s
-## 补全Mojang没有翻译的方块或实体
-tile.daylight_detector_inverted.name=黑夜传感器
-tile.melon_stem.name=西瓜茎
+## 翻译修改
+entity.villager.unskilled=傻子 ## 村民职业
+
+## 補全Mojang未翻譯的方块或實體
+tile.daylight_detector_inverted.name=黑夜傳感器
+tile.melon_stem.name=西瓜莖
tile.wall_sign.name=橡木告示牌
-tile.spruce_wall_sign.name=云杉木告示牌
-tile.birch_wall_sign.name=白桦木告示牌
-tile.jungle_wall_sign.name=丛林木告示牌
-tile.acacia_wall_sign.name=金合欢告示牌
+tile.spruce_wall_sign.name=雲杉木告示牌
+tile.birch_wall_sign.name=白樺木告示牌
+tile.jungle_wall_sign.name=叢林木告示牌
+tile.acacia_wall_sign.name=金合歡告示牌
tile.darkoak_wall_sign.name=深色橡木告示牌
-tile.mangrove_wall_sign.name=红树木告示牌
-tile.cherry_wall_sign.name=樱花木告示牌
-tile.bamboo_wall_sign.name=竹制告示牌
-tile.warped_wall_sign.name=诡异木告示牌
-tile.oak_hanging_sign.name=橡木悬挂告示牌
-tile.spruce_hanging_sign.name=云杉木悬挂告示牌
-tile.birch_hanging_sign.name=白桦木悬式告示牌
-tile.jungle_hanging_sign.name=丛林悬挂告示牌
-tile.acacia_hanging_sign.name=金合欢悬挂告示牌
-tile.dark_oak_hanging_sign.name=深色橡木悬挂告示牌
-tile.mangrove_hanging_sign.name=红树木悬挂告示牌
-tile.cherry_hanging_sign.name=樱花木悬挂告示牌
-tile.bamboo_hanging_sign.name=竹制悬挂告示牌
-tile.warped_hanging_sign.name=翘曲悬挂告示牌
-tile.lit_redstone_ore.name=发光的红石矿石
-tile.lit_deepslate_redstone_ore.name=发光的深层红石矿石
+tile.mangrove_wall_sign.name=紅樹木告示牌
+tile.cherry_wall_sign.name=櫻花木告示牌
+tile.bamboo_wall_sign.name=竹製告示牌
+tile.warped_wall_sign.name=詭異木告示牌
+tile.oak_hanging_sign.name=橡木懸掛告示牌
+tile.spruce_hanging_sign.name=雲杉木懸掛告示牌
+tile.birch_hanging_sign.name=白樺木懸式告示牌
+tile.jungle_hanging_sign.name=叢林懸掛告示牌
+tile.acacia_hanging_sign.name=金合歡懸掛告示牌
+tile.dark_oak_hanging_sign.name=深色橡木懸掛告示牌
+tile.mangrove_hanging_sign.name=紅樹木懸掛告示牌
+tile.cherry_hanging_sign.name=櫻花木懸掛告示牌
+tile.bamboo_hanging_sign.name=竹製懸掛告示牌
+tile.warped_hanging_sign.name=翹曲懸掛告示牌
+tile.lit_redstone_ore.name=發光的紅石礦石
+tile.lit_deepslate_redstone_ore.name=發光的深層紅石礦石
tile.torchflower_crop.name=火把花幼苗
tile.pitcher_crop.name=猪笼草荚果
-tile.unpowered_repeater.name=红石中继器
-tile.powered_repeater.name=激活的红石中继器
+tile.unpowered_repeater.name=紅石中继器
+tile.powered_repeater.name=激活的紅石中继器
tile.sticky_piston_arm_collision.name=粘性活塞的爪爪
tile.piston_arm_collision.name=活塞的爪爪
-tile.wooden_door.name=橡木门
-tile.spruce_door.name=云杉木门
-tile.birch_door.name=白桦木门
-tile.jungle_door.name=丛林木门
-tile.acacia_door.name=金合欢木门
-tile.dark_oak_door.name=深色橡木门
-tile.mangrove_door.name=红树木梦
-tile.cherry_door.name=樱花木门
-tile.bamboo_door.name=竹门
-tile.iron_door.name=铁门
-tile.crimson_door.name=绯红木门
-tile.warped_door.name=诡异门
-tile.lit_redstone_lamp.name=发光的红石灯
+tile.wooden_door.name=橡木門
+tile.spruce_door.name=雲杉木門
+tile.birch_door.name=白樺木門
+tile.jungle_door.name=叢林木門
+tile.acacia_door.name=金合歡木門
+tile.dark_oak_door.name=深色橡木門
+tile.mangrove_door.name=紅樹木門
+tile.cherry_door.name=櫻花木門
+tile.bamboo_door.name=竹門
+tile.iron_door.name=鐵門
+tile.crimson_door.name=緋紅木門
+tile.warped_door.name=詭異門
+tile.lit_redstone_lamp.name=發光的紅石燈
tile.frame.name=物品展示框
-tile.skull.name=头颅
+tile.skull.name=頭顱
tile.flower_pot.name=花盆
-tile.end_portal.name=末地传送门
-tile.end_gateway.name=末地折跃门方块
+tile.end_portal.name=末地傳送門
+tile.end_gateway.name=末地折躍門方塊
+tile.wall_banner.name=災厄旗幟
+tile.unpowered_comparator.name=紅石比較器
+tile.powered_comparator.name=激活的紅石比較器
+tile.lit_furnace.name=燃燒的熔爐
diff --git a/Language/zh_TW.lang b/Language/zh_TW.lang
index 2419bb5..a5c0eab 100644
--- a/Language/zh_TW.lang
+++ b/Language/zh_TW.lang
@@ -1,4 +1,4 @@
-## 命令翻译
+## 命令翻譯
plugins.Waila.command.description=§b高亮顯示設置 §7- §dby 小小的子沐呀
plugins.Waila.command.translators.error=§c目標方塊 §a%s §c已有翻譯→ §e%s
plugins.Waila.command.translators.succes=§e目標方塊 §b%s §e已翻譯成 §6%s
@@ -9,16 +9,16 @@ plugins.Waila.gui.succes=§g設置成功
plugins.Waila.gui.switch=§b高亮顯示開關
plugins.Waila.gui.dropdown=§a顯示模式
plugins.Waila.gui.dropdown.items.bossbar=§1BOSS欄
-plugins.Waila.gui.dropdown.items.tell_popup=§2音樂盒消息
+plugins.Waila.gui.dropdown.items.tell_popup=§2音樂盒訊息
plugins.Waila.gui.dropdown.items.tell_tip=§3物品欄上方
plugins.Waila.gui.dropdown.items.actionBar=§5活動欄
-## 配置文件翻译
+## 配置檔翻譯
plugins.Waila.block.name=§6%s §7(%s)
-plugins.Waila.block.hardness=硬度 §6%s
+plugins.Waila.block.hardness=§7硬度 §6%s
plugins.Waila.block.destroy=§l%s §r§7能否採集§r
plugins.Waila.block.cake.status=§3蛋糕狀態:§c%s/7
-plugins.Waila.block.chest.size=§b容量:§a%s/%s
+plugins.Waila.block.chest.size=§b容量:§a%s/%s §d%s/%s
plugins.Waila.block.jukebox=§8播放唱片 §c%s
plugins.Waila.block.beacon=§7選擇效果:§5%s
plugins.Waila.block.noteblock=§c音階§6:§d%s
@@ -30,6 +30,16 @@ plugins.Waila.block.open_status.open=§e開啟狀態:§6開
plugins.Waila.block.open_status.close=§e開啟狀態:§6關
plugins.Waila.block.pos=§7X:§g%s §7Y:§g%s §7Z:§g%s
plugins.Waila.block.Cropnum=§3成長程度:§g%s
+plugins.Waila.block.RingingTime=§e擺動時間:§d%s
+plugins.Waila.block.BrewingStand.cookTime=§d釀造剩餘時間:§a%s
+plugins.Waila.block.BrewingStand.Fuel=§6剩餘燃料:§b%s/%s
+plugins.Waila.block.cauldron=§c藥水效果:§d%s§6(%s)
+plugins.Waila.block.powered_comparator=§d信號強度:§c%s
+plugins.Waila.block.end_gateway=§c傳送座標:§d%s
+plugins.Waila.block.furnace.StoredXPInt=§b存儲經驗:§a%s
+plugins.Waila.block.furnace.CookTime=§e燃燒進度百分比:§c%s
+plugins.Waila.block.furnace.Burn=§d剩餘燃料:§b%s/%s
+plugins.Waila.block.sign=§c最後編輯玩家:§6%s
plugins.Waila.block.redstonelv=§c紅石等級:§e%s
plugins.Waila.entity.name=§6%s §7(%s)
@@ -43,8 +53,19 @@ plugins.Waila.entity.village.offers.item1= §d%s§r§a*§b%s
plugins.Waila.entity.village.offers.item2= §g+ §d%s§r§a*§b%s
plugins.Waila.entity.village.offers.item3= §6=> %s§r§a*§b%s
plugins.Waila.entity.health=§l§c❤ §a%s/%s§r
+plugins.Waila.entity.breedcooldown=§e繁殖冷卻時間:§c%s
+plugins.Waila.entity.age=§6成年時間:§c%s
+plugins.Waila.entity.jump=§d跳躍高度:§a%s格
+plugins.Waila.entity.village.profession=§b村民職業 §e%s
+plugins.Waila.entity.Invincible_time=§d無敵時間:§6%s
+plugins.Waila.entity.gamemode=§e遊戲模式 §c%s
+plugins.Waila.entity.endermite.Lifetime=§a存在時間:§6%s
+plugins.Waila.entity.goat.GoatHornCount=§a羊角數量:§e%s
plugins.Waila.entity.pos=§7X:§g%s §7Y:§g%s §7Z:§g%s
+## 翻譯修改
+entity.villager.unskilled=傻子 ## 村民職業
+
## 補全Mojang沒有翻譯的方塊或實體
tile.daylight_detector_inverted.name=黑夜感測器
tile.melon_stem.name=西瓜莖
@@ -92,3 +113,7 @@ tile.skull.name=頭顱
tile.flower_pot.name=花盆
tile.end_portal.name=末地傳送門
tile.end_gateway.name=末地折躍門方塊
+tile.wall_banner.name=災厄旗幟
+tile.unpowered_comparator.name=紅石比較器
+tile.powered_comparator.name=激活的紅石比較器
+tile.lit_furnace.name=燃燒的熔爐
diff --git a/README.md b/README.md
index 4714a5e..b2fe19d 100644
--- a/README.md
+++ b/README.md
@@ -3,31 +3,44 @@
## 简单介绍
Waila 是一个 LSE 高亮显示插件,他集成了许多原版信息的具体化显示,可以更好的方便玩家对方块或生物的信息进行查看
+> 默认自带 43 种信息属性显示
## 图骗展示
展开
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
## 如何正确加载 Waila
@@ -36,7 +49,7 @@ Waila 是一个 LSE 高亮显示插件,他集成了许多原版信息的具体
需要在 Bedrock Dedicated Server(BDS)服务端下装载前置:
-- LeviLamina
+- LeviLamina`>=0.12.x`
- legacy-script-engine-quickjs`≥0.7.9`
- GMLIB`≥0.12.8`
- GMLIB-LegacyRemoteCallApi`≥v0.12.8`
@@ -44,37 +57,58 @@ Waila 是一个 LSE 高亮显示插件,他集成了许多原版信息的具体
### 如何装载
- 第一种:下载释放文件,解压插件文件夹至 BDS 服务端 plugins 文件夹内,并加载
-- 第二种:使用 Lip 安装,输入命令 lip install github.com/zimuya4153/LSE_Waila
+- 第二种:使用 Lip 安装,输入命令 `lip install github.com/zimuya4153/LSE_Waila`
## 使用方法
游戏内玩家可输入/waila 来设置自己的 Waila 开关及样式

-ps:如果装了我们的 [UI 包](https://wwm.lanzouq.com/iSMiT20o39ze "点击前往下载链接"),那活动栏将是一个非常好的选择
-
-## 语言文件[zh_CN.lang](https://github.com/zimuya4153/LSE_Waila/blob/main/Language/zh_CN.lang)
-
-> 如果遇到原版未翻译的或者你有自己的个性都可以去访问这个文件
-> 切记如果你没有基础请按照规律来修改,修改错误可能导致你无法使用 Waila
+PS:如果装了我们的 [UI 包](https://wwm.lanzouq.com/iSMiT20o39ze "点击前往下载链接"),那活动栏将是一个非常好的选择
+`温馨提示:"UI 包"是可以被点击的超链接`
# 特别操作
## 有些方块没有翻译怎么办?
- 不慌,输入指令/waila 语言 翻译的文本
-- 你可能好奇?语言填啥?可以填 zh_CN(中文简体),zh_TW(中文繁體),en_US(English (United States)),en_GB(English (United Kingdom))……
+- 你可能好奇?语言填啥?可以填以下内容
+
+| .lang 文件名称 | 语言名称 |
+| -------------- | -------------- |
+| id_ID | 印度尼西亚语 |
+| da_DK | 丹麦语 |
+| de_DE | 德语 |
+| en_GB | 英语,英国 |
+| en_US | 英语,美国 |
+| es_ES | 西班牙语 |
+| es_MX | 墨西哥西班牙语 |
+| fr_CA | 加拿大法语 |
+| fr_FR | 法语 |
+| it_IT | 意大利语 |
+| hu_HU | 匈牙利语 |
+| nl_NL | 荷兰语 |
+| nb_NO | 博克马尔语 |
+| pl_PL | 波兰语 |
+| pt_BR | 巴西葡萄牙语 |
+| pt_PT | 葡萄牙语 |
+| sk_SK | 斯洛伐克语 |
+| fi_FI | 芬兰语 |
+| sv_SE | 瑞典语 |
+| tr_TR | 土耳其语 |
+| cs_CZ | 捷克语 |
+| el_GR | 希腊语 |
+| bg_BG | 保加利亚语 |
+| ru_RU | 俄语 |
+| uk_UA | 乌克兰语 |
+| ja_JP | 日语 |
+| zh_CN | 中文(简体) |
+| zh_TW | 中文(繁体) |
+| ko_KR | 韩语 |
这里是 WuHuiZhang6902(合作者),教你点东西,看到 Config.js 文件没,如果你觉着名称后面的英文 id 显示太长,你可以将以下代码替换第 19 行,那么这 type 就变成短短的整数 id 了
```javascript
-Text: (Player, PlayerConfig, Block) => I18nAPI.get('plugins.Waila.block.name', [Block.getTranslateName(Player.langCode), Block.id.toString()], Player.langCode)
-```
-
-什么,你还要再学点小操作?
-如果你不想让他在不瞄准任何东西情况下提示文字,那么你只需要将下面代码替换 Config.js 文件的 `158` 行
-
-```javascript
-DefaultText: "",
+Text: (Player, Block) => I18nAPI.get('plugins.Waila.block.name', [Block.getTranslateName(Player.langCode), Block.id.toString()], Player.langCode)
```
## 配置文件介绍
@@ -118,7 +152,7 @@ module.exports = {
Percent: 100,
},
/** 默认文本 @type {String} */
- DefaultText: "\n\n&plugins.Waila.get.error&",
+ DefaultText: "",
/** 刷新时间(秒) @type {Number} */
Hz: 0.1,
/** 查找最大距离 @type {Number} */
diff --git a/Waila.js b/Waila.js
index 63322ce..ad72024 100644
--- a/Waila.js
+++ b/Waila.js
@@ -19,6 +19,7 @@
* BlockEntityNbt:NbtCompound|null,
* BlockContainer:Container|null,
* EntityNbt:NbtCompound|null
+ * BuffKeyID:String[]
* },PlayerConfig): boolean | boolean} Conditions - 条件函数
* @property {(string | function(Player, Block|Entity,
* {
@@ -27,6 +28,7 @@
* BlockEntityNbt:NbtCompound|null,
* BlockContainer:Container|null,
* EntityNbt:NbtCompound|null
+ * BuffKeyID:String[]
* },PlayerConfig): string)} Text - 文本内容
*/
@@ -69,30 +71,31 @@ setInterval(() => {
text += Config.DefaultText.replace(/&(.*)&/g, (_, key) => I18nAPI.get(key, [], Player.langCode));
} else {
let TempCache = {
- 'HandItem':Player.getHand(),
+ 'HandItem': Player.getHand(),
'BlockNbt': ViewBlock ? ViewBlock.getNbt() : null,
'BlockEntityNbt': ViewBlock.hasBlockEntity() ? ViewBlock.getBlockEntity().getNbt() : null,
'BlockContainer': ViewBlock.hasContainer() ? ViewBlock.getContainer() : null,
'EntityNbt': ViewEntity ? ViewEntity.getNbt() : null,
+ 'BuffKeyID': [null, 'moveSpeed', 'moveSlowdown', 'digSpeed', 'digSlowDown', 'damageBoost', 'heal', 'harm', 'jump', 'confusion', 'regeneration', 'resistance', 'fireResistance', 'waterBreathing', 'invisibility', 'blindness', 'nightVision', 'hunger', 'weakness', 'poison', 'wither', 'healthBoost', 'absorption', 'saturation', 'levitation', 'poison', 'conduitPower', 'slowFalling'],
}
- const EvalGetText =
- /**
- * @param {ConfigItem} Items
- * @returns {String}
- */
- Items => {
- try {
- if (typeof (Items.Conditions) === 'function' ? Items.Conditions(Player, ViewEntity ?? ViewBlock, TempCache, PlayerConfig) : Items.Conditions) {
- return typeof (Items.Text) === 'string' ? Items.Text : Items.Text(Player, ViewEntity ?? ViewBlock, TempCache, PlayerConfig);
+ const EvalGetText =
+ /**
+ * @param {ConfigItem} Items
+ * @returns {String}
+ */
+ Items => {
+ try {
+ if (typeof (Items.Conditions) === 'function' ? Items.Conditions(Player, ViewEntity ?? ViewBlock, TempCache, PlayerConfig) : Items.Conditions) {
+ return typeof (Items.Text) === 'string' ? Items.Text : Items.Text(Player, ViewEntity ?? ViewBlock, TempCache, PlayerConfig);
+ }
+ } catch (error) {
+ const ErrorText = `报错:${error.message}\n文本条件:${Items.Conditions.toString()}\n文本结果:${Items.Text.toString()}\n堆栈:\n${error.stack}`
+ if (ErrorList.includes(ErrorText)) return;
+ ErrorList.push(ErrorText);
+ logger.error(ErrorText);
}
- } catch (error) {
- const ErrorText = `报错:${error.message}\n文本条件:${Items.Conditions.toString()}\n文本结果:${Items.Text.toString()}\n堆栈:\n${error.stack}`
- if(ErrorList.includes(ErrorText))return;
- ErrorList.push(ErrorText);
- logger.error(ErrorText);
- }
- return '';
- };
+ return '';
+ };
text += Config.AllBefore.map(EvalGetText).join('');
if (ViewEntity && (!ViewBlock || Player.distanceTo(ViewEntity) <= Player.distanceTo(ViewBlock.pos)))
text += Config.Entity.map(EvalGetText).join('');
diff --git a/image/image_1.png b/image/image_1.png
index 2a4cbad..08fc949 100644
Binary files a/image/image_1.png and b/image/image_1.png differ
diff --git a/image/image_10.png b/image/image_10.png
index e9ae25d..354cf40 100644
Binary files a/image/image_10.png and b/image/image_10.png differ
diff --git a/image/image_11.png b/image/image_11.png
index d126f97..c37d558 100644
Binary files a/image/image_11.png and b/image/image_11.png differ
diff --git a/image/image_12.png b/image/image_12.png
index 2cdba03..d480b0d 100644
Binary files a/image/image_12.png and b/image/image_12.png differ
diff --git a/image/image_13.png b/image/image_13.png
index c9c7a49..17573cc 100644
Binary files a/image/image_13.png and b/image/image_13.png differ
diff --git a/image/image_14.png b/image/image_14.png
index 7d36570..111c71f 100644
Binary files a/image/image_14.png and b/image/image_14.png differ
diff --git a/image/image_15.png b/image/image_15.png
index 0038263..1464308 100644
Binary files a/image/image_15.png and b/image/image_15.png differ
diff --git a/image/image_16.png b/image/image_16.png
index 4d8e3e4..53f793f 100644
Binary files a/image/image_16.png and b/image/image_16.png differ
diff --git a/image/image_17.png b/image/image_17.png
index cfcdf06..4a00c70 100644
Binary files a/image/image_17.png and b/image/image_17.png differ
diff --git a/image/image_18.png b/image/image_18.png
index b1e64c5..e8c3e92 100644
Binary files a/image/image_18.png and b/image/image_18.png differ
diff --git a/image/image_19.png b/image/image_19.png
index d294cfc..fe069d9 100644
Binary files a/image/image_19.png and b/image/image_19.png differ
diff --git a/image/image_2.png b/image/image_2.png
index f460d02..c0075bb 100644
Binary files a/image/image_2.png and b/image/image_2.png differ
diff --git a/image/image_20.png b/image/image_20.png
index eb7c564..72f854f 100644
Binary files a/image/image_20.png and b/image/image_20.png differ
diff --git a/image/image_21.png b/image/image_21.png
new file mode 100644
index 0000000..d07c487
Binary files /dev/null and b/image/image_21.png differ
diff --git a/image/image_22.png b/image/image_22.png
new file mode 100644
index 0000000..c69d6cb
Binary files /dev/null and b/image/image_22.png differ
diff --git a/image/image_23.png b/image/image_23.png
new file mode 100644
index 0000000..3c034e6
Binary files /dev/null and b/image/image_23.png differ
diff --git a/image/image_24.png b/image/image_24.png
new file mode 100644
index 0000000..2bd2b21
Binary files /dev/null and b/image/image_24.png differ
diff --git a/image/image_25.png b/image/image_25.png
new file mode 100644
index 0000000..b614046
Binary files /dev/null and b/image/image_25.png differ
diff --git a/image/image_26.png b/image/image_26.png
new file mode 100644
index 0000000..0907f80
Binary files /dev/null and b/image/image_26.png differ
diff --git a/image/image_27.png b/image/image_27.png
new file mode 100644
index 0000000..f79ea8c
Binary files /dev/null and b/image/image_27.png differ
diff --git a/image/image_28.png b/image/image_28.png
new file mode 100644
index 0000000..b82a128
Binary files /dev/null and b/image/image_28.png differ
diff --git a/image/image_29.png b/image/image_29.png
new file mode 100644
index 0000000..c187834
Binary files /dev/null and b/image/image_29.png differ
diff --git a/image/image_3.png b/image/image_3.png
index b3fa31f..13a8493 100644
Binary files a/image/image_3.png and b/image/image_3.png differ
diff --git a/image/image_30.png b/image/image_30.png
new file mode 100644
index 0000000..1f50506
Binary files /dev/null and b/image/image_30.png differ
diff --git a/image/image_31.png b/image/image_31.png
new file mode 100644
index 0000000..792e675
Binary files /dev/null and b/image/image_31.png differ
diff --git a/image/image_32.png b/image/image_32.png
new file mode 100644
index 0000000..a616ad9
Binary files /dev/null and b/image/image_32.png differ
diff --git a/image/image_4.png b/image/image_4.png
index 1575bdf..61d5337 100644
Binary files a/image/image_4.png and b/image/image_4.png differ
diff --git a/image/image_5.png b/image/image_5.png
index 712fd4f..a406352 100644
Binary files a/image/image_5.png and b/image/image_5.png differ
diff --git a/image/image_6.png b/image/image_6.png
index a36ab58..e0d2551 100644
Binary files a/image/image_6.png and b/image/image_6.png differ
diff --git a/image/image_7.png b/image/image_7.png
index 8805b1c..a7d18c1 100644
Binary files a/image/image_7.png and b/image/image_7.png differ
diff --git a/image/image_8.png b/image/image_8.png
index 473cc23..eaf1664 100644
Binary files a/image/image_8.png and b/image/image_8.png differ
diff --git a/image/image_9.png b/image/image_9.png
index 4457022..9ff83ff 100644
Binary files a/image/image_9.png and b/image/image_9.png differ
diff --git a/manifest.json b/manifest.json
index a72f7df..94de03b 100644
--- a/manifest.json
+++ b/manifest.json
@@ -4,7 +4,7 @@
"type": "lse-quickjs",
"description":"普普通通的搞高亮显示",
"author":"小小的子沐呀",
- "version":"1.2.0",
+ "version":"1.3.0",
"dependencies": [
{
"name": "legacy-script-engine-quickjs",
diff --git a/tooth.json b/tooth.json
index a24750c..ce5604d 100644
--- a/tooth.json
+++ b/tooth.json
@@ -1,7 +1,7 @@
{
"format_version": 2,
"tooth": "github.com/zimuya4153/LSE_Waila",
- "version": "1.2.0",
+ "version": "1.3.0",
"info": {
"name": "LSE_Waila",
"description": "普普通通的高亮显示~",
@@ -15,7 +15,7 @@
"legacyscriptengine"
]
},
- "asset_url": "https://github.com/zimuya4153/LSE_Waila/releases/download/v1.2.0/LSE_Waila-1.2.0.zip",
+ "asset_url": "https://github.com/zimuya4153/LSE_Waila/releases/download/v1.3.0/LSE_Waila-1.3.0.zip",
"dependencies": {
"github.com/LiteLDev/LeviLamina": ">=0.12.x",
"gitea.litebds.com/LiteLDev/legacy-script-engine-quickjs": ">=0.7.9",