planks = getPlanks(log);
@@ -61,10 +67,29 @@ public class TableSaw extends MultiBlockMachine {
}
}
+ /**
+ * This method returns the corresponding plank {@link Material} for a given wood {@link Material}.
+ * The result is wrapped by an {@link Optional}.
+ *
+ * {@literal Material.OAK_LOG} for example will return {@literal Material.OAK_PLANKS}.
+ *
+ * @param log
+ * The log type.
+ *
+ * @return An {@link Optional} containing the corresponding plank type (or an empty {@link Optional})
+ */
private @Nonnull Optional getPlanks(@Nonnull Material log) {
String materialName = log.name().replace("STRIPPED_", "");
- materialName = materialName.substring(0, materialName.lastIndexOf('_')) + "_PLANKS";
- return Optional.ofNullable(Material.getMaterial(materialName));
+ int endIndex = materialName.lastIndexOf('_');
+
+ if (endIndex > 0) {
+ materialName = materialName.substring(0, endIndex) + "_PLANKS";
+ return Optional.ofNullable(Material.getMaterial(materialName));
+ } else {
+ // Fixed #3651 - Do not panic because of one weird wood type.
+ warn("Could not find a corresponding plank for wood type: '" + log.name() + "'");
+ return Optional.empty();
+ }
}
@Override
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/HerculesPickaxe.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/HerculesPickaxe.java
deleted file mode 100644
index ddada272a..000000000
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/items/tools/HerculesPickaxe.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package io.github.thebusybiscuit.slimefun4.implementation.items.tools;
-
-import javax.annotation.Nonnull;
-import javax.annotation.ParametersAreNonnullByDefault;
-
-import org.bukkit.Material;
-import org.bukkit.inventory.ItemStack;
-
-import io.github.bakedlibs.dough.items.CustomItemStack;
-import io.github.thebusybiscuit.slimefun4.api.MinecraftVersion;
-import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup;
-import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack;
-import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType;
-import io.github.thebusybiscuit.slimefun4.core.handlers.ToolUseHandler;
-import io.github.thebusybiscuit.slimefun4.implementation.Slimefun;
-import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems;
-import io.github.thebusybiscuit.slimefun4.implementation.items.SimpleSlimefunItem;
-import io.github.thebusybiscuit.slimefun4.utils.tags.SlimefunTag;
-
-@Deprecated
-public class HerculesPickaxe extends SimpleSlimefunItem {
-
- @ParametersAreNonnullByDefault
- public HerculesPickaxe(ItemGroup itemGroup, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
- super(itemGroup, item, recipeType, recipe);
- }
-
- @Override
- public @Nonnull ToolUseHandler getItemHandler() {
- return (e, tool, fortune, drops) -> {
-
- sendDeprecationWarning(e.getPlayer());
-
- Material mat = e.getBlock().getType();
-
- if (SlimefunTag.ORES.isTagged(mat)) {
- if (Slimefun.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_17)) {
- switch (mat) {
- case DEEPSLATE_IRON_ORE:
- drops.add(new CustomItemStack(SlimefunItems.IRON_DUST, 2));
- break;
- case DEEPSLATE_GOLD_ORE:
- drops.add(new CustomItemStack(SlimefunItems.GOLD_DUST, 2));
- break;
- case COPPER_ORE:
- case DEEPSLATE_COPPER_ORE:
- drops.add(new CustomItemStack(SlimefunItems.COPPER_DUST, 2));
- break;
- default:
- break;
- }
- }
-
- switch (mat) {
- case IRON_ORE:
- drops.add(new CustomItemStack(SlimefunItems.IRON_DUST, 2));
- break;
- case GOLD_ORE:
- drops.add(new CustomItemStack(SlimefunItems.GOLD_DUST, 2));
- break;
- default:
- for (ItemStack drop : e.getBlock().getDrops(tool)) {
- drops.add(new CustomItemStack(drop, drop.getAmount() * 2));
- }
- break;
- }
- }
- };
- }
-
-}
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BackpackListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BackpackListener.java
index 796f6917b..1650b0b42 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BackpackListener.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/BackpackListener.java
@@ -96,6 +96,7 @@ public class BackpackListener implements Listener {
if (backpack instanceof SlimefunBackpack slimefunBackpack) {
if (e.getClick() == ClickType.NUMBER_KEY) {
+ // Prevent disallowed items from being moved using number keys.
if (e.getClickedInventory().getType() != InventoryType.PLAYER) {
ItemStack hotbarItem = e.getWhoClicked().getInventory().getItem(e.getHotbarButton());
@@ -103,12 +104,19 @@ public class BackpackListener implements Listener {
e.setCancelled(true);
}
}
- } else if (e.getClick() == ClickType.SWAP_OFFHAND && e.getClickedInventory().getType() != InventoryType.PLAYER) {
- // Fixes #3265
- ItemStack offHandItem = e.getWhoClicked().getInventory().getItemInOffHand();
+ } else if (e.getClick() == ClickType.SWAP_OFFHAND) {
+ if (e.getClickedInventory().getType() != InventoryType.PLAYER) {
+ // Fixes #3265 - Don't move disallowed items using the off hand.
+ ItemStack offHandItem = e.getWhoClicked().getInventory().getItemInOffHand();
- if (!isAllowed(slimefunBackpack, offHandItem)) {
- e.setCancelled(true);
+ if (!isAllowed(slimefunBackpack, offHandItem)) {
+ e.setCancelled(true);
+ }
+ } else {
+ // Fixes #3664 - Do not swap the backpack to your off hand.
+ if (e.getCurrentItem() != null && e.getCurrentItem().isSimilar(item)) {
+ e.setCancelled(true);
+ }
}
} else if (!isAllowed(slimefunBackpack, e.getCurrentItem())) {
e.setCancelled(true);
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/ResearchSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/ResearchSetup.java
index 4635c1b4d..7d28e044b 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/ResearchSetup.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/ResearchSetup.java
@@ -113,7 +113,6 @@ public final class ResearchSetup {
register("gold_armor", 87, "Shiny Armor", 13, SlimefunItems.GOLDEN_HELMET_12K, SlimefunItems.GOLDEN_CHESTPLATE_12K, SlimefunItems.GOLDEN_LEGGINGS_12K, SlimefunItems.GOLDEN_BOOTS_12K);
register("night_vision_googles", 89, "Night Vision Goggles", 10, SlimefunItems.NIGHT_VISION_GOGGLES);
register("pickaxe_of_containment", 90, "Pickaxe of Containment", 14, SlimefunItems.PICKAXE_OF_CONTAINMENT, SlimefunItems.BROKEN_SPAWNER);
- register("hercules_pickaxe", 91, "Hercules Pickaxe", 28, SlimefunItems.HERCULES_PICKAXE);
register("table_saw", 92, "Table Saw", 4, SlimefunItems.TABLE_SAW);
register("slime_steel_armor", 93, "Slimy Steel Armor", 27, SlimefunItems.SLIME_HELMET_STEEL, SlimefunItems.SLIME_CHESTPLATE_STEEL, SlimefunItems.SLIME_LEGGINGS_STEEL, SlimefunItems.SLIME_BOOTS_STEEL);
register("blade_of_vampires", 94, "Blade of Vampires", 26, SlimefunItems.BLADE_OF_VAMPIRES);
@@ -144,7 +143,7 @@ public final class ResearchSetup {
register("bound_weapons", 125, "Soulbound Weapons", 29, SlimefunItems.SOULBOUND_SWORD, SlimefunItems.SOULBOUND_BOW, SlimefunItems.SOULBOUND_TRIDENT);
register("bound_tools", 126, "Soulbound Tools", 29, SlimefunItems.SOULBOUND_PICKAXE, SlimefunItems.SOULBOUND_AXE, SlimefunItems.SOULBOUND_SHOVEL, SlimefunItems.SOULBOUND_HOE);
register("bound_armor", 127, "Soulbound Armor", 29, SlimefunItems.SOULBOUND_HELMET, SlimefunItems.SOULBOUND_CHESTPLATE, SlimefunItems.SOULBOUND_LEGGINGS, SlimefunItems.SOULBOUND_BOOTS);
- register("juicer", 129, "Delicious Drinks", 29, SlimefunItems.JUICER, SlimefunItems.APPLE_JUICE, SlimefunItems.MELON_JUICE, SlimefunItems.CARROT_JUICE, SlimefunItems.PUMPKIN_JUICE, SlimefunItems.SWEET_BERRY_JUICE);
+ register("juicer", 129, "Delicious Drinks", 29, SlimefunItems.JUICER, SlimefunItems.APPLE_JUICE, SlimefunItems.MELON_JUICE, SlimefunItems.CARROT_JUICE, SlimefunItems.PUMPKIN_JUICE, SlimefunItems.SWEET_BERRY_JUICE, SlimefunItems.GLOW_BERRY_JUICE);
register("repaired_spawner", 130, "Repairing Spawners", 15, SlimefunItems.REPAIRED_SPAWNER);
register("enhanced_furnace", 132, "Enhanced Furnace", 7, SlimefunItems.ENHANCED_FURNACE, SlimefunItems.ENHANCED_FURNACE_2);
register("more_enhanced_furnaces", 133, "Better Furnaces", 18, SlimefunItems.ENHANCED_FURNACE_3, SlimefunItems.ENHANCED_FURNACE_4, SlimefunItems.ENHANCED_FURNACE_5, SlimefunItems.ENHANCED_FURNACE_6, SlimefunItems.ENHANCED_FURNACE_7);
@@ -221,7 +220,7 @@ public final class ResearchSetup {
register("better_food_fabricator", 211, "Upgraded Food Fabrication", 28, SlimefunItems.FOOD_FABRICATOR_2, SlimefunItems.FOOD_COMPOSTER_2);
register("reactor_access_port", 212, "Reactor Interaction", 18, SlimefunItems.REACTOR_ACCESS_PORT);
register("fluid_pump", 213, "Fluid Pump", 28, SlimefunItems.FLUID_PUMP);
- register("better_freezer", 214, "Upgraded Freezer", 29, SlimefunItems.FREEZER_2);
+ register("better_freezer", 214, "Upgraded Freezer", 29, SlimefunItems.FREEZER_2, SlimefunItems.FREEZER_3);
register("boosted_uranium", 215, "Never-Ending Circle", 30, SlimefunItems.BOOSTED_URANIUM);
register("trash_can", 216, "Trash", 8, SlimefunItems.TRASH_CAN);
register("advanced_output_node", 217, "Advanced Output Node", 24, SlimefunItems.CARGO_OUTPUT_NODE_2);
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java
index 2faf1ca36..f4c8fffc3 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/setup/SlimefunItemSetup.java
@@ -26,6 +26,7 @@ import io.github.thebusybiscuit.slimefun4.core.attributes.Radioactivity;
import io.github.thebusybiscuit.slimefun4.core.handlers.RainbowTickHandler;
import io.github.thebusybiscuit.slimefun4.implementation.Slimefun;
import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems;
+import io.github.thebusybiscuit.slimefun4.implementation.items.HiddenItem;
import io.github.thebusybiscuit.slimefun4.implementation.items.RadioactiveItem;
import io.github.thebusybiscuit.slimefun4.implementation.items.VanillaItem;
import io.github.thebusybiscuit.slimefun4.implementation.items.altar.AncientAltar;
@@ -195,7 +196,6 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.tools.ExplosivePi
import io.github.thebusybiscuit.slimefun4.implementation.items.tools.ExplosiveShovel;
import io.github.thebusybiscuit.slimefun4.implementation.items.tools.GoldPan;
import io.github.thebusybiscuit.slimefun4.implementation.items.tools.GrapplingHook;
-import io.github.thebusybiscuit.slimefun4.implementation.items.tools.HerculesPickaxe;
import io.github.thebusybiscuit.slimefun4.implementation.items.tools.LumberAxe;
import io.github.thebusybiscuit.slimefun4.implementation.items.tools.NetherGoldPan;
import io.github.thebusybiscuit.slimefun4.implementation.items.tools.PickaxeOfContainment;
@@ -532,11 +532,11 @@ public final class SlimefunItemSetup {
new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null})
.register(plugin);
- new SlimefunItem(itemGroups.resources, SlimefunItems.LEAD_DUST, RecipeType.ORE_WASHER,
+ new SlimefunItem(itemGroups.resources, SlimefunItems.SILVER_DUST, RecipeType.ORE_WASHER,
new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null})
.register(plugin);
- new SlimefunItem(itemGroups.resources, SlimefunItems.SILVER_DUST, RecipeType.ORE_WASHER,
+ new SlimefunItem(itemGroups.resources, SlimefunItems.LEAD_DUST, RecipeType.ORE_WASHER,
new ItemStack[] {SlimefunItems.SIFTED_ORE, null, null, null, null, null, null, null, null})
.register(plugin);
@@ -1031,10 +1031,6 @@ public final class SlimefunItemSetup {
new PickaxeOfContainment(itemGroups.tools, SlimefunItems.PICKAXE_OF_CONTAINMENT, RecipeType.MAGIC_WORKBENCH,
new ItemStack[] {SlimefunItems.FERROSILICON, SlimefunItems.FERROSILICON, SlimefunItems.FERROSILICON, null, SlimefunItems.GILDED_IRON, null, null, SlimefunItems.GILDED_IRON, null})
.register(plugin);
-
- new HerculesPickaxe(itemGroups.tools, SlimefunItems.HERCULES_PICKAXE, RecipeType.MAGIC_WORKBENCH,
- new ItemStack[] {SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.HARDENED_METAL_INGOT, SlimefunItems.HARDENED_METAL_INGOT, null, SlimefunItems.FERROSILICON, null, null, SlimefunItems.FERROSILICON, null})
- .register(plugin);
new TableSaw(itemGroups.basicMachines, SlimefunItems.TABLE_SAW).register(plugin);
@@ -1376,6 +1372,10 @@ public final class SlimefunItemSetup {
new SlimefunItemStack(SlimefunItems.FLASK_OF_KNOWLEDGE, 8))
.register(plugin);
+ new HiddenItem(itemGroups.magicalGadgets, SlimefunItems.FILLED_FLASK_OF_KNOWLEDGE, RecipeType.INTERACT,
+ new ItemStack[] {SlimefunItems.FLASK_OF_KNOWLEDGE, null, null, null, null, null, null, null, null})
+ .register(plugin);
+
new BirthdayCake(itemGroups.birthday, new SlimefunItemStack("BIRTHDAY_CAKE", Material.CAKE, "&bBirthday Cake"), RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {null, new ItemStack(Material.TORCH), null, new ItemStack(Material.SUGAR), new ItemStack(Material.CAKE), new ItemStack(Material.SUGAR), null, null, null})
.register(plugin);
@@ -2444,6 +2444,13 @@ public final class SlimefunItemSetup {
.setProcessingSpeed(2)
.register(plugin);
+ new Freezer(itemGroups.electricity, SlimefunItems.FREEZER_3, RecipeType.ENHANCED_CRAFTING_TABLE,
+ new ItemStack[] {SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.REINFORCED_ALLOY_INGOT, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.FREEZER_2, SlimefunItems.ELECTRO_MAGNET, SlimefunItems.COOLING_UNIT, SlimefunItems.COOLING_UNIT, SlimefunItems.COOLING_UNIT})
+ .setCapacity(256)
+ .setEnergyConsumption(21)
+ .setProcessingSpeed(3)
+ .register(plugin);
+
new CoolantCell(itemGroups.technicalComponents, SlimefunItems.REACTOR_COOLANT_CELL, RecipeType.FREEZER,
new ItemStack[] {new ItemStack(Material.BLUE_ICE), null, null, null, null, null, null, null, null})
.register(plugin);
@@ -2610,6 +2617,12 @@ public final class SlimefunItemSetup {
new ItemStack[] {null, null, null, null, new CustomItemStack(HeadTexture.PIGLIN_HEAD.getAsItemStack(), "&fPiglin"), null, null, null, null})
.register(plugin);
+ if (minecraftVersion.isAtLeast(MinecraftVersion.MINECRAFT_1_17)) {
+ new Juice(itemGroups.food, SlimefunItems.GLOW_BERRY_JUICE, RecipeType.JUICER,
+ new ItemStack[] {new ItemStack(Material.GLOW_BERRIES), null, null, null, null, null, null, null, null})
+ .register(plugin);
+ }
+
new ElytraCap(itemGroups.magicalArmor, SlimefunItems.ELYTRA_CAP, RecipeType.ARMOR_FORGE,
new ItemStack[] {new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), new ItemStack(Material.SLIME_BALL), SlimefunItems.ELYTRA_SCALE, SlimefunItems.ELYTRA_SCALE, SlimefunItems.ELYTRA_SCALE, new ItemStack(Material.SLIME_BALL), new ItemStack(Material.LEATHER_HELMET), new ItemStack(Material.SLIME_BALL)})
.register(plugin);
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/itemstack/ColoredFireworkStar.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/itemstack/ColoredFireworkStar.java
index 48ad6d793..17a62c352 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/itemstack/ColoredFireworkStar.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/itemstack/ColoredFireworkStar.java
@@ -9,6 +9,7 @@ import org.bukkit.Color;
import org.bukkit.FireworkEffect;
import org.bukkit.FireworkEffect.Type;
import org.bukkit.Material;
+import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.FireworkEffectMeta;
@@ -42,6 +43,8 @@ public class ColoredFireworkStar extends CustomItemStack {
im.setLore(lines);
}
+
+ im.addItemFlags(ItemFlag.HIDE_POTION_EFFECTS);
});
}
diff --git a/src/main/resources/languages/fa/messages.yml b/src/main/resources/languages/fa/messages.yml
index 806159a96..99b3d1130 100644
--- a/src/main/resources/languages/fa/messages.yml
+++ b/src/main/resources/languages/fa/messages.yml
@@ -1,5 +1,7 @@
---
commands:
+ research:
+ reset-target: '&cدانش شما بازنشانی شده است'
debug:
description: 'ثبت اشکال زدایی را برای توسعه دهندگان اجرا کنید'
disabled: '&7حالت اشکال زدایی غیرفعال شد.'
@@ -8,6 +10,10 @@ placeholderapi:
guide:
locked: 'قفل شده است'
work-in-progress: 'اين قابليت هنوز کامل نشده!'
+ locked-itemgroup:
+ - 'براي باز کردن اين گروه شما بايد'
+ - 'نیاز به باز کردن قفل همه موارد از'
+ - 'دسته های زیر'
search:
message: '&bدوست دارید دنبال چه چیزی بگردید?'
name: '&7جست و جو...'
@@ -16,6 +22,7 @@ guide:
tooltips:
open-itemgroup: 'براي باز کردن کليک کنيد'
versions-notice: 'این موارد هنگام گزارش باگ بسیار مهم هستند!'
+ wiki: 'این آیتم را در ویکی رسمی Slimefun مشاهده کنید'
pages:
previous: 'صفحه ي قبل'
next: 'صفحه ی بعد'
@@ -23,7 +30,17 @@ guide:
title: 'برگشت'
settings: 'به صفحه تنظیمات بازگرد'
languages:
+ selected-language: 'در حال حاضر انتخاب شده:'
+ select: 'برای انتخاب این زبان کلیک کنید'
+ select-default: 'برای انتخاب زبان پیش فرض کلیک کنید'
+ change: 'برای انتخاب زبان جدید کلیک کنید'
+ description:
+ - '&7اکنون این گزینه را دارید که تغییر دهید'
+ - '&7زبان در Slimefun'
+ - '&7به شما ارائه خواهد شد. آیتم ها'
+ - '&7فعلا قابل ترجمه نیست.'
translations:
+ name: '&aچیزی فراموش شده است?'
lore: 'برای افزودن ترجمه خود کلیک کنید'
title:
main: 'راهنمای Slimefun'
@@ -32,16 +49,28 @@ guide:
source: 'کد منبع'
credits:
roles:
+ developer: '&6توسعه دهندگان'
wiki: '&3ویرایش کننده ویکی'
+ resourcepack: '&cهنرمند بسته منابع'
translator: '&9مترجم'
messages:
+ hungry: '&cشما برای انجام این کار زیادی گرسنه هستید! برای انجام آن نوار گرسنگی خود را پر کنید!'
disabled-in-world: '&4&lاين آيتم در این جهان غير فعال شده است'
+ soulbound-rune:
+ fail: '&cشما نمی توانید چند وسیله را به طور همزمان به روح خود متصل کنید.'
+ success: '&aشما با موفقیت این مورد را به روح خود متصل کردید! در صورت مردن شما این وسیله را از دست نمی دهید.'
+ tape-measure:
+ distance: '&7اندازه گیری انجام شده. &eفاصله: %distance%'
no-pvp: '&cشما نمی توانید در اینجا مبارزه کنید!'
link-prompt: '&eاینجا کلیک کنید:'
machines:
+ ELEVATOR:
+ no-destinations: '&4مقصدی پیدا نشد'
TELEPORTER:
teleporting: '&3درحال جا به جایی...'
teleported: '&3جا به جا شدی!'
+ gui:
+ time: 'زمان تخمین زده شده'
CARGO_NODES:
connected: '&2وصل است!'
not-connected: '&4وصل نیست!'
@@ -61,9 +90,16 @@ languages:
it: 'ایتالیایی'
es: 'اسپانیایی'
nl: 'هلندی'
+ cs: 'کشور چک'
hu: 'مجارستانی'
ru: 'روسی'
+ zh-TW: 'چینی (تایوان)'
+ vi: 'ویتنامی'
+ id: 'اندونزیایی'
el: 'یونانی'
+ he: 'عبری'
+ pt: 'پرتغالی (پرتغال)'
+ pt-BR: 'پرتغالی (برزیل)'
ar: 'عربی'
da: 'دانمارکی'
fi: 'فنلاندی'
@@ -72,3 +108,6 @@ languages:
'no': 'نروژی'
ja: 'ژاپنی'
fa: 'فارسی'
+ th: 'تایلندی'
+ tl: 'تاگالوگی'
+ ro: 'رومانیایی'
diff --git a/src/main/resources/languages/fa/researches.yml b/src/main/resources/languages/fa/researches.yml
index 9a9a636ac..f83ffd2bb 100644
--- a/src/main/resources/languages/fa/researches.yml
+++ b/src/main/resources/languages/fa/researches.yml
@@ -18,7 +18,9 @@ slimefun:
solar_panel_and_helmet: نیروی خورشیدی
cactus_armor: کت و شلوار کاکتوس
slimefun_metals: فلزات جدید
+ magic_workbench: میز کار جادویی
gold_carats: طلای خالص
+ lava_crystal: موقعیت آتشین
gilded_iron: آهن براق
synthetic_emerald: جواهر تقلبی
hazmat_suit: لباس ضد آتش
@@ -28,6 +30,7 @@ slimefun:
24k_gold_block: شهر طلایی
backpacks: کوله پشتی ها
juicer: نوشیدنی های خوشمزه
+ more_enhanced_furnaces: کوره های بهتر
carbonado_furnace: کوره لبه دار کربونادو
block_placer: بلوک گذار
scroll_of_dimensional_teleposition: چرخاندن چیزها
@@ -44,12 +47,20 @@ slimefun:
oil: نفت
fuel: سوخت
hologram_projector: هولوگرام ها
+ solar_generators: نیروگاه خورشیدی
+ electric_furnaces: کوره برقی
electric_ore_grinding: خرد کردن و آسیاب کردن
+ bio_reactor: راکتور زیستی
elevator: آسانسورها
+ nuclear_reactor: نیروگاه هسته ای
trash_can: اشغال
elytra: بال
special_elytras: بال مخصوص
trident: نیزه سه شاخه
+ lava_generator: مولد گدازه
auto_drier: یک روز خشک
+ diet_cookie: کوکی رژیمی
+ tree_growth_accelerator: درختان سریعتر
lead_clothing: لباس سرب
tape_measure: نوار اندازه گیری
+ bee_armor: زره زنبوری
diff --git a/src/main/resources/languages/he/messages.yml b/src/main/resources/languages/he/messages.yml
index b659a3f56..a6294cdf1 100644
--- a/src/main/resources/languages/he/messages.yml
+++ b/src/main/resources/languages/he/messages.yml
@@ -146,6 +146,8 @@ messages:
multimeter: '&bאחסון אנרגיה: &3%stored% &b/ &3%capacity%'
piglin-barter: 'אתה לא יכול לסחור עם חזירונים באמצעות חפצי סליים פאן'
bee-suit-slow-fall: '&eכנפי הדבורה שלך יעזרו לך להגיע לקרקע בצורה איטית ובטוחה'
+ deprecated-item: '&4פריט זה מיושן ויוסר מסליים פאן בקרוב.'
+ researching-is-disabled: '&cמחקר לא פעיל בשרת זה. לפי ברירת מחדל הכול פתוח!'
multi-tool:
mode-change: '&b%device% &9: המצב השתנה ל: %mode%'
not-shears: '&c מולטי טול לא יכול לשמש כמזמרה!'
@@ -256,6 +258,9 @@ machines:
pick-a-floor: '&3- בחר קומה -'
current-floor: '&e אתה נמצא כרגע על קומה:'
click-to-teleport: '&eלחץ &7 כדי להשתגר לקומה:'
+ enter-name: '&7אנא הכנס את שם הרצפה הרצוי לצ''אט שלך. &f(קודי צבע נתמכים!)'
+ named: '&2 בהצלחה נקבע שם קומה זאת: &f%floor%'
+ editor-title: 'הגדר מעלית זו'
TELEPORTER:
teleporting: '&3משתגר....'
teleported: '&3שוגר!'
@@ -271,6 +276,8 @@ machines:
waypoints: 'סקירת נקודות דרך'
CARGO_NODES:
must-be-placed: '&4חייב להיות מונח על תיבה או מכונה!'
+ connected: '&2מחובר!'
+ not-connected: '&4לא מחובר!'
INDUSTRIAL_MINER:
no-fuel: 'לכורה התעשייתית שלך אזל הדלק! שים את הדלק שלך בתיבה מעל.'
piston-facing: '&cהכורה התעשייתי שלך דורש בוכנות מופנות כלפי מעלה!'
@@ -300,6 +307,8 @@ cauldron:
no-discoloring: '&4אתה לא יכול לשנות את הצבע של שריון סליים פאן'
gps:
deathpoint: "&4נקודת מוות\n&7%date%"
+ status-online: 'מקוון'
+ status-offline: 'לא מקוון'
waypoint:
new: '&eהקלד שם לנקודת הדרך החדשה שלך בצ''אט. (קודי צבע נתמכים!)'
added: '&a נוסף בהצלחה נקודת דרך חדשה'
@@ -399,3 +408,5 @@ languages:
mk: 'מקדונית'
sr: 'סרבית'
be: 'בלארוסית'
+ si-LK: 'סינהאלית'
+ lt: 'ליטאית'
diff --git a/src/main/resources/languages/ja/messages.yml b/src/main/resources/languages/ja/messages.yml
index 93c5cacf2..43a343ae1 100644
--- a/src/main/resources/languages/ja/messages.yml
+++ b/src/main/resources/languages/ja/messages.yml
@@ -147,6 +147,7 @@ messages:
piglin-barter: '&4Slimefunアイテムはピグリンとの物々交換に使用できません'
bee-suit-slow-fall: '&e蜂の羽が着地を安全でゆっくりにした'
deprecated-item: '&4このアイテムは廃止予定です。近日中にSlimefunから削除されます。'
+ researching-is-disabled: '%cこのサーバーではリサーチが無効化されていました。すべてがデフォルトでアンロックされました!'
multi-tool:
mode-change: '&b%device% モード変更: &9%mode%'
not-shears: '&cMulti Toolはハサミとして利用できません!'
@@ -257,6 +258,7 @@ machines:
pick-a-floor: '&3- 行先の選択 -'
current-floor: '&e現在の階:'
click-to-teleport: '&eクリック&7でこの階に移動:'
+ editor-title: 'エレベーターの設定'
TELEPORTER:
teleporting: '&3テレポート中…'
teleported: '&3テレポート完了!'
@@ -272,6 +274,7 @@ machines:
waypoints: 'ウェイポイント一覧'
CARGO_NODES:
must-be-placed: '&4チェストや機械に対して設置してください!'
+ not-connected: '&4接続されていません!'
INDUSTRIAL_MINER:
no-fuel: '&cIndustrial Minerは燃料切れです!上のチェストに燃料を補充してください。'
piston-facing: '&cIndustrial Minerのピストンは上向きに設置してください!'
@@ -301,6 +304,8 @@ cauldron:
no-discoloring: '&4Slimefunアイテムの脱色はできません'
gps:
deathpoint: '&4死亡地点 &7%date%'
+ status-online: 'オンライン'
+ status-offline: 'オフライン'
waypoint:
new: '&eウェイポイント名をチャットで入力してください&7(カラーコード対応)'
added: '&a新しいウェイポイントを登録しました'
diff --git a/src/main/resources/languages/ja/researches.yml b/src/main/resources/languages/ja/researches.yml
index 54fd472da..00b4bc8e7 100644
--- a/src/main/resources/languages/ja/researches.yml
+++ b/src/main/resources/languages/ja/researches.yml
@@ -153,10 +153,10 @@ slimefun:
electric_ore_grinding: 粉砕粉砕
heated_pressure_chamber: 加熱圧力室Ⅰ
coal_generator: 火力発電所
- bio_reactor: バイオマス発電所
+ bio_reactor: バイオリアクター
auto_enchanting: エンチャント操作術
- auto_anvil: 電動修理術
- multimeter: マルチメーター
+ auto_anvil: 自動金床
+ multimeter: 電力計測
gps_setup: GPS時代の夜明け
gps_emergency_transmitter: 緊急戦線復帰
programmable_androids: アンドロイド
@@ -250,7 +250,7 @@ slimefun:
iron_golem_assembler: 人造アイアンゴーレム
villager_rune: 村人の初期化
elytra_cap: 衝撃緩和装備
- bee_armor: 蜂アーマー
+ bee_armor: 養蜂用防護服
book_binder: エンチャントの本の製本
auto_crafting: 自動クラフト
produce_collector: 自動搾乳
diff --git a/src/main/resources/languages/pt/researches.yml b/src/main/resources/languages/pt/researches.yml
index ed97d539c..e590cf417 100644
--- a/src/main/resources/languages/pt/researches.yml
+++ b/src/main/resources/languages/pt/researches.yml
@@ -1 +1,21 @@
---
+slimefun:
+ fortune_cookie: Bolinho da sorte
+ portable_dustbin: Caixote do Lixo Portátil
+ meat_jerky: Jerky de Carne
+ magic_sugar: Açúcar Mágico
+ monster_jerky: Jerky de Monstro
+ slime_armor: Armadura de Slime
+ sword_of_beheading: Espada da Decapitação
+ parachute: Pára-quedas
+ grappling_hook: Gancho-arpão
+ jetpacks: Jetpack
+ slimefun_metals: Metais Novos
+ carbonado: Diamantes Negros
+ synthetic_emerald: Jóia Falsa
+ chainmail_armor: Armadura de Malha
+ uranium: Radioativo
+ crushed_ore: Purificação de Minérios
+ first_aid: Primeiros socorros
+ gold_armor: Armadura Brilhante
+ backpacks: Mochilas
diff --git a/src/main/resources/languages/ro/categories.yml b/src/main/resources/languages/ro/categories.yml
index ed97d539c..2333e476e 100644
--- a/src/main/resources/languages/ro/categories.yml
+++ b/src/main/resources/languages/ro/categories.yml
@@ -1 +1,23 @@
---
+slimefun:
+ weapons: 'Arme'
+ food: 'Mâncare'
+ basic_machines: 'Maşinarii de bază'
+ electricity: 'Energie şi electricitate'
+ androids: 'Androizi programabili'
+ gps: 'Mașinarii GPS'
+ armor: 'Armură'
+ magical_items: 'Obiecte Magice'
+ magical_gadgets: 'Gadget-uri Magice'
+ misc: 'Obiecte Diverse'
+ technical_gadgets: 'Gadget-uri Tehnice'
+ resources: 'Resurse'
+ tech_misc: 'Componente Tehnice'
+ magical_armor: 'Armură Magică'
+ talismans: 'Talismane (nivelul I)'
+ ender_talismans: 'Talismane Ender (nivelul II)'
+ christmas: 'Crăciun (decembrie)'
+ valentines_day: 'Ziua Îndrăgostiților (14 februarie)'
+ easter: 'Paște (Aprilie)'
+ birthday: 'Ziua de naștere a lui TheBusyBiscuit (26 octombrie)'
+ halloween: 'Halloween (31 octombrie)'
diff --git a/src/main/resources/languages/ro/messages.yml b/src/main/resources/languages/ro/messages.yml
index 421d00e64..2990fecf4 100644
--- a/src/main/resources/languages/ro/messages.yml
+++ b/src/main/resources/languages/ro/messages.yml
@@ -1,4 +1,7 @@
---
+commands:
+ timings:
+ please-wait: '&eTe rugam sa astepti o secunda... Rezultatele se incarca!'
placeholderapi:
profile-loading: 'Se încarcă...'
guide:
@@ -8,38 +11,90 @@ guide:
name: '&7Cauta...'
tooltip: '&bClick pentru a căuta un obiect'
inventory: 'Caută pentru: %item%'
+ tooltips:
+ versions-notice: 'Acestea sunt foarte importante atunci când raportezi problemele!'
+ wiki: 'Vezi acest articol pe Wiki-ul Slimefun Oficial'
pages:
previous: 'Pagina anterioară'
next: 'Pagina următoare'
back:
guide: 'Inapoi la Ghidul Slimefun'
languages:
+ selected-language: 'Selectare actuală:'
+ select: 'Click pentru a selecta această limbă'
+ select-default: 'Click pentru a selecta limba implicita'
+ change: 'Click pentru a selecta o nouă limbă'
translations:
name: '&aLipseste ceva?'
+ lore: 'Click pentru a adăuga propria ta traducere'
title:
main: 'Ghid Slimefun'
settings: 'Setări și informații'
+ languages: 'Selectați limba preferată'
+ credits: 'Contribuitori Slimefun4'
+ wiki: 'Wiki Slimefun4'
+ addons: 'Addons pentru Slimefun4'
bugs: 'Raportare Buguri'
+ source: 'Cod sursă'
versions: 'Versiuni instalate'
+ credits:
+ commit: 'Commit'
+ commits: 'Commit-uri'
+ profile-link: 'Faceți clic pentru a le vizita profilul pe GitHub'
+ open: 'Click pentru a vedea contribuitorii noștri'
+ roles:
+ developer: '&6Dezvoltator'
+ wiki: '&3Editor Wiki'
+ resourcepack: '&cArtist Resurse'
+ translator: '&9Traducator'
messages:
+ not-researched: '&4Nu ai suficiente cunostinte pentru a intelege acest obiect. &cVa trebui sa deblochezi &f"%item%&f"'
+ not-enough-xp: '&4Nu ai suficient XP pentru a debloca acest obiect'
+ unlocked: '&bAi deblocat &7"%research%"'
+ only-players: '&4Aceasta comanda este doar pentru jucatori'
link-prompt: '&eClick aici:'
+machines:
+ TELEPORTER:
+ teleporting: '&3Teleportare...'
+ teleported: '&3Teleportat!'
+ cancelled: '&4Teleportare anulata!'
+ invulnerability: '&b&lAi primit 30 de secunde de Invulnerabilitate!'
+ gui:
+ title: 'Punctele tale de referinta'
+ tooltip: 'Click pentru teleportare'
+ time: 'Timp estimat'
languages:
en: 'Engleză'
de: 'Germană'
fr: 'Franceză'
it: 'Italiană'
es: 'Spaniolă'
+ pl: 'Poloneză'
sv: 'Suedeză'
nl: 'Olandeză'
cs: 'Cehă'
hu: 'Maghiară'
+ lv: 'Letonă'
ru: 'Rusă'
sk: 'Slovacă'
+ zh-CN: 'Chineză (China)'
+ zh-TW: 'Chineză (Taiwan)'
vi: 'Vietnameză'
id: 'Indoneziană'
el: 'Greacă'
he: 'Ebraică'
+ pt: 'Portugheză (Portugalia)'
ar: 'Arabă'
fi: 'Finlandeză'
uk: 'Ucraineană'
+ ja: 'Japoneză'
+ fa: 'Persiană'
+ th: 'Tailandeza'
+ tl: 'Tagalog'
+ ro: 'Română'
+ bg: 'Bulgară'
+ ko: 'Coreeană'
+ hr: 'Croată'
+ mk: 'Macedoneană'
+ sr: 'Sârbă'
be: 'Belarusă'
diff --git a/src/main/resources/languages/ro/researches.yml b/src/main/resources/languages/ro/researches.yml
index ed97d539c..c285f2f0c 100644
--- a/src/main/resources/languages/ro/researches.yml
+++ b/src/main/resources/languages/ro/researches.yml
@@ -1 +1,7 @@
---
+slimefun:
+ walking_sticks: Baston
+ portable_crafter: Masă de fabricare portabilă
+ portable_dustbin: Dustbin portabil
+ meat_jerky: Bucati de carne uscata
+ armor_forge: Masa de fabricare Armuri
diff --git a/src/main/resources/languages/sk/researches.yml b/src/main/resources/languages/sk/researches.yml
index d2eb91478..a26260815 100644
--- a/src/main/resources/languages/sk/researches.yml
+++ b/src/main/resources/languages/sk/researches.yml
@@ -1,7 +1,7 @@
---
slimefun:
walking_sticks: Vychádzkové paličky
- portable_crafter: Prenosný crafter
+ portable_crafter: Prenosný pracovný stôl
fortune_cookie: Koláčik šťastia
portable_dustbin: Prenosný kôš
meat_jerky: Sušené mäso
@@ -13,14 +13,14 @@ slimefun:
magic_eye_of_ender: Magiké Oko Endu
magic_sugar: Magický cukor
monster_jerky: Sušené mäso z monštier
- slime_armor: Slime brnenie
+ slime_armor: Slizové brnenie
sword_of_beheading: Meč popráv
basic_circuit_board: Základná obvodová doska
advanced_circuit_board: Pokročilá obvodová doska
smeltery: Taviareň
steel: Vek ocele
misc_power_items: Dôležité veci súvisiace s energiou
- battery: Tvoja prvá baterka
+ battery: Tvoja prvá batéria
steel_plate: Oceľové pokovovanie
steel_thruster: Oceľová tryska
parachute: Padák
diff --git a/src/main/resources/languages/zh-CN/recipes.yml b/src/main/resources/languages/zh-CN/recipes.yml
index 57fe31d18..778c63d36 100644
--- a/src/main/resources/languages/zh-CN/recipes.yml
+++ b/src/main/resources/languages/zh-CN/recipes.yml
@@ -22,10 +22,10 @@ slimefun:
- '如合成表所示'
- '使用磨石制作'
smeltery:
- name: '冶炼机 (Smeltery)'
+ name: '冶炼炉 (Smeltery)'
lore:
- '如合成表所示'
- - '用冶炼机合成'
+ - '用冶炼炉合成'
ore_crusher:
name: '矿石粉碎机 (Ore Crusher)'
lore:
diff --git a/src/main/resources/wiki.json b/src/main/resources/wiki.json
index bf199037f..012e4615e 100644
--- a/src/main/resources/wiki.json
+++ b/src/main/resources/wiki.json
@@ -215,6 +215,7 @@
"GILDED_IRON_CHESTPLATE" : "Armor",
"GILDED_IRON_HELMET" : "Armor",
"GILDED_IRON_LEGGINGS" : "Armor",
+ "GLOW_BERRY_JUICE" : "Juices",
"GLOWSTONE_BOOTS" : "Magical-Armor",
"GLOWSTONE_CHESTPLATE" : "Magical-Armor",
"GLOWSTONE_HELMET" : "Magical-Armor",