1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

Merge branch 'master' of https://github.com/LinoxGH/Slimefun4 into AutoDrierFix

 Conflicts:
	src/main/java/io/github/thebusybiscuit/slimefun4/implementation/SlimefunItems.java
This commit is contained in:
LinoxGH 2020-06-25 13:37:33 +03:00
commit 7e20e7cd9f
31 changed files with 1685 additions and 567 deletions

View File

@ -17,6 +17,6 @@ jobs:
- name: Discord Notification - name: Discord Notification
uses: Ilshidur/action-discord@master uses: Ilshidur/action-discord@master
with: with:
args: '<@&665202905271369776> Slimefun4''s language files have been updated! https://gitlocalize.com/repo/3841' args: '<@&665202905271369776> Slimefun4''s language files were changed and require to be updated! https://gitlocalize.com/repo/3841'
env: env:
DISCORD_WEBHOOK: ${{ secrets.TRANSLATOR_WEBHOOK }} DISCORD_WEBHOOK: ${{ secrets.TRANSLATOR_WEBHOOK }}

View File

@ -27,6 +27,8 @@
* Added ReactorExplodeEvent to the API * Added ReactorExplodeEvent to the API
* Compatibility mode status is now included in /sf versions * Compatibility mode status is now included in /sf versions
* Added Nether Quartz Ore Crusher Recipe * Added Nether Quartz Ore Crusher Recipe
* Added a new language: Tagalog
* Added Magical Zombie Pills
#### Changes #### Changes
* Coolant Cells now last twice as long * Coolant Cells now last twice as long
@ -35,6 +37,10 @@
* Changed the texture for the Nuclear Reactor * Changed the texture for the Nuclear Reactor
* Changed the texture for the Nether Star Reactor * Changed the texture for the Nether Star Reactor
* Performance improvements to Rainbow Blocks * Performance improvements to Rainbow Blocks
* Crafting Tin cans now produces 8 items instead of 4
* Multi Tool lore now says "Crouch" instead of "Hold Shift"
* items which cannot be distributed by a Cargo Net will be dropped on the ground now instead of getting deleted
* Small performance improvements to the Cargo Net
#### Fixes #### Fixes
* Fixed #2005 * Fixed #2005
@ -42,6 +48,7 @@
* Fixed a chunk caching issue for GEO resources * Fixed a chunk caching issue for GEO resources
* Fixed Infused Magnet working even if you haven't researched it * Fixed Infused Magnet working even if you haven't researched it
* Fixed Rainbow blocks duplication glitch when timing the block break right * Fixed Rainbow blocks duplication glitch when timing the block break right
* Fixed #1855
## Release Candidate 13 (16 Jun 2020) ## Release Candidate 13 (16 Jun 2020)
https://thebusybiscuit.github.io/builds/TheBusyBiscuit/Slimefun4/stable/#13 https://thebusybiscuit.github.io/builds/TheBusyBiscuit/Slimefun4/stable/#13

View File

@ -87,7 +87,10 @@ public class CargoNet extends ChestTerminalNetwork {
@Override @Override
public NetworkComponent classifyLocation(Location l) { public NetworkComponent classifyLocation(Location l) {
String id = BlockStorage.checkID(l); String id = BlockStorage.checkID(l);
if (id == null) return null;
if (id == null) {
return null;
}
switch (id) { switch (id) {
case "CARGO_MANAGER": case "CARGO_MANAGER":
@ -157,8 +160,8 @@ public class CargoNet extends ChestTerminalNetwork {
// Chest Terminal Stuff // Chest Terminal Stuff
Set<Location> destinations = new HashSet<>(); Set<Location> destinations = new HashSet<>();
List<Location> output16 = output.get(16); List<Location> output16 = output.get(16);
if (output16 != null) { if (output16 != null) {
destinations.addAll(output16); destinations.addAll(output16);
} }
@ -264,17 +267,30 @@ public class CargoNet extends ChestTerminalNetwork {
stack = distributeItem(stack, inputNode, outputs); stack = distributeItem(stack, inputNode, outputs);
} }
DirtyChestMenu menu = CargoUtils.getChestMenu(inputTarget); if (stack != null) {
DirtyChestMenu menu = CargoUtils.getChestMenu(inputTarget);
if (menu != null) { if (menu != null) {
menu.replaceExistingItem(previousSlot, stack); if (menu.getItemInSlot(previousSlot) == null) {
} menu.replaceExistingItem(previousSlot, stack);
else if (CargoUtils.hasInventory(inputTarget)) { }
BlockState state = inputTarget.getState(); else {
inputTarget.getWorld().dropItem(inputTarget.getLocation().add(0, 1, 0), stack);
}
}
else if (CargoUtils.hasInventory(inputTarget)) {
BlockState state = inputTarget.getState();
if (state instanceof InventoryHolder) { if (state instanceof InventoryHolder) {
Inventory inv = ((InventoryHolder) state).getInventory(); Inventory inv = ((InventoryHolder) state).getInventory();
inv.setItem(previousSlot, stack);
if (inv.getItem(previousSlot) == null) {
inv.setItem(previousSlot, stack);
}
else {
inputTarget.getWorld().dropItem(inputTarget.getLocation().add(0, 1, 0), stack);
}
}
} }
} }
} }

View File

@ -194,6 +194,7 @@ final class CargoUtils {
} }
} }
} }
return null; return null;
} }

View File

@ -54,7 +54,7 @@ public class LocalizationService extends SlimefunLocalization implements Persist
translationsEnabled = SlimefunPlugin.getCfg().getBoolean("options.enable-translations"); translationsEnabled = SlimefunPlugin.getCfg().getBoolean("options.enable-translations");
defaultLanguage = new Language(serverDefaultLanguage, "11b3188fd44902f72602bd7c2141f5a70673a411adb3d81862c69e536166b"); defaultLanguage = new Language(serverDefaultLanguage, "11b3188fd44902f72602bd7c2141f5a70673a411adb3d81862c69e536166b");
defaultLanguage.setMessages(getConfig().getConfiguration()); defaultLanguage.setMessagesFile(getConfig().getConfiguration());
loadEmbeddedLanguages(); loadEmbeddedLanguages();
@ -147,10 +147,10 @@ public class LocalizationService extends SlimefunLocalization implements Persist
getConfig().clear(); getConfig().clear();
} }
defaultLanguage.setResearches(streamConfigFile("researches_" + language + ".yml", null)); defaultLanguage.setResearchesFile(streamConfigFile("researches_" + language + ".yml", null));
defaultLanguage.setResources(streamConfigFile("resources_" + language + ".yml", null)); defaultLanguage.setResourcesFile(streamConfigFile("resources_" + language + ".yml", null));
defaultLanguage.setCategories(streamConfigFile("categories_" + language + ".yml", null)); defaultLanguage.setCategoriesFile(streamConfigFile("categories_" + language + ".yml", null));
defaultLanguage.setRecipeTypes(streamConfigFile("recipes_" + language + ".yml", null)); defaultLanguage.setRecipeTypesFile(streamConfigFile("recipes_" + language + ".yml", null));
Slimefun.getLogger().log(Level.INFO, "Loaded language \"{0}\"", language); Slimefun.getLogger().log(Level.INFO, "Loaded language \"{0}\"", language);
getConfig().setValue(LANGUAGE_PATH, language); getConfig().setValue(LANGUAGE_PATH, language);
@ -179,11 +179,11 @@ public class LocalizationService extends SlimefunLocalization implements Persist
FileConfiguration recipes = streamConfigFile("recipes_" + id + ".yml", null); FileConfiguration recipes = streamConfigFile("recipes_" + id + ".yml", null);
Language language = new Language(id, hash); Language language = new Language(id, hash);
language.setMessages(messages); language.setMessagesFile(messages);
language.setResearches(researches); language.setResearchesFile(researches);
language.setResources(resources); language.setResourcesFile(resources);
language.setCategories(categories); language.setCategoriesFile(categories);
language.setRecipeTypes(recipes); language.setRecipeTypesFile(recipes);
languages.put(id, language); languages.put(id, language);
} }
@ -201,13 +201,16 @@ public class LocalizationService extends SlimefunLocalization implements Persist
*/ */
public double getProgress(Language lang) { public double getProgress(Language lang) {
int defaultKeys = getTotalKeys(languages.get("en")); int defaultKeys = getTotalKeys(languages.get("en"));
if (defaultKeys == 0) return 0;
if (defaultKeys == 0) {
return 0;
}
return Math.min(DoubleHandler.fixDouble(100.0 * (getTotalKeys(lang) / (double) defaultKeys)), 100.0); return Math.min(DoubleHandler.fixDouble(100.0 * (getTotalKeys(lang) / (double) defaultKeys)), 100.0);
} }
private int getTotalKeys(Language lang) { private int getTotalKeys(Language lang) {
return getKeys(lang.getMessages(), lang.getResearches(), lang.getResources(), lang.getCategories(), lang.getRecipeTypes()); return getKeys(lang.getFiles());
} }
private int getKeys(FileConfiguration... files) { private int getKeys(FileConfiguration... files) {

View File

@ -60,43 +60,53 @@ public final class Language {
return id; return id;
} }
public FileConfiguration getMessages() { FileConfiguration getMessagesFile() {
return messages; return messages;
} }
public FileConfiguration getResearches() { FileConfiguration getResearchesFile() {
return researches; return researches;
} }
public FileConfiguration getResources() { FileConfiguration getResourcesFile() {
return resources; return resources;
} }
public FileConfiguration getCategories() { FileConfiguration getCategoriesFile() {
return categories; return categories;
} }
public FileConfiguration getRecipeTypes() { FileConfiguration getRecipeTypesFile() {
return recipeTypes; return recipeTypes;
} }
public void setMessages(FileConfiguration config) { public void setMessagesFile(FileConfiguration config) {
Validate.notNull(config);
this.messages = config; this.messages = config;
} }
public void setResearches(FileConfiguration config) { public void setResearchesFile(FileConfiguration config) {
Validate.notNull(config);
this.researches = config; this.researches = config;
} }
public void setResources(FileConfiguration config) { public void setResourcesFile(FileConfiguration config) {
Validate.notNull(config);
this.resources = config; this.resources = config;
} }
public void setCategories(FileConfiguration config) { public void setCategoriesFile(FileConfiguration config) {
Validate.notNull(config);
this.categories = config; this.categories = config;
} }
public void setRecipeTypes(FileConfiguration config) { public void setRecipeTypesFile(FileConfiguration config) {
Validate.notNull(config);
this.recipeTypes = config; this.recipeTypes = config;
} }
@ -119,7 +129,8 @@ public final class Language {
* @return The localized name of this {@link Language} * @return The localized name of this {@link Language}
*/ */
public String getName(Player p) { public String getName(Player p) {
return SlimefunPlugin.getLocal().getMessage(p, "languages." + id); String name = SlimefunPlugin.getLocal().getMessage(p, "languages." + id);
return name != null ? name : toString();
} }
/** /**
@ -132,4 +143,13 @@ public final class Language {
return this == SlimefunPlugin.getLocal().getDefaultLanguage(); return this == SlimefunPlugin.getLocal().getDefaultLanguage();
} }
@Override
public String toString() {
return "Language [ id= " + id + " | default=" + isDefault() + " ]";
}
public FileConfiguration[] getFiles() {
return new FileConfiguration[] { getMessagesFile(), getCategoriesFile(), getResearchesFile(), getResourcesFile() };
}
} }

View File

@ -88,37 +88,37 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
public String getMessage(Player p, String key) { public String getMessage(Player p, String key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language == null) return "NO LANGUAGE FOUND"; if (language == null) return "NO LANGUAGE FOUND";
return language.getMessages().getString(key); return language.getMessagesFile().getString(key);
} }
public List<String> getMessages(Player p, String key) { public List<String> getMessages(Player p, String key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language == null) return Arrays.asList("NO LANGUAGE FOUND"); if (language == null) return Arrays.asList("NO LANGUAGE FOUND");
return language.getMessages().getStringList(key); return language.getMessagesFile().getStringList(key);
} }
public String getResearchName(Player p, NamespacedKey key) { public String getResearchName(Player p, NamespacedKey key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language.getResearches() == null) return null; if (language.getResearchesFile() == null) return null;
return language.getResearches().getString(key.getNamespace() + "." + key.getKey()); return language.getResearchesFile().getString(key.getNamespace() + "." + key.getKey());
} }
public String getCategoryName(Player p, NamespacedKey key) { public String getCategoryName(Player p, NamespacedKey key) {
Language language = getLanguage(p); Language language = getLanguage(p);
if (language.getCategories() == null) return null; if (language.getCategoriesFile() == null) return null;
return language.getCategories().getString(key.getNamespace() + "." + key.getKey()); return language.getCategoriesFile().getString(key.getNamespace() + "." + key.getKey());
} }
public String getResourceString(Player p, String key) { public String getResourceString(Player p, String key) {
Language language = getLanguage(p); Language language = getLanguage(p);
String value = language.getResources() != null ? language.getResources().getString(key) : null; String value = language.getResourcesFile() != null ? language.getResourcesFile().getString(key) : null;
if (value != null) { if (value != null) {
return value; return value;
} }
else { else {
return getLanguage("en").getResources().getString(key); return getLanguage("en").getResourcesFile().getString(key);
} }
} }
@ -127,15 +127,15 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
ItemStack item = recipeType.toItem(); ItemStack item = recipeType.toItem();
NamespacedKey key = recipeType.getKey(); NamespacedKey key = recipeType.getKey();
if (language.getRecipeTypes() == null || !language.getRecipeTypes().contains(key.getNamespace() + "." + key.getKey())) { if (language.getRecipeTypesFile() == null || !language.getRecipeTypesFile().contains(key.getNamespace() + "." + key.getKey())) {
language = getLanguage("en"); language = getLanguage("en");
} }
if (!language.getRecipeTypes().contains(key.getNamespace() + "." + key.getKey())) { if (!language.getRecipeTypesFile().contains(key.getNamespace() + "." + key.getKey())) {
return item; return item;
} }
FileConfiguration config = language.getRecipeTypes(); FileConfiguration config = language.getRecipeTypesFile();
return new CustomItem(item, meta -> { return new CustomItem(item, meta -> {
meta.setDisplayName(ChatColor.AQUA + config.getString(key.getNamespace() + "." + key.getKey() + ".name")); meta.setDisplayName(ChatColor.AQUA + config.getString(key.getNamespace() + "." + key.getKey() + ".name"));

View File

@ -53,7 +53,7 @@ enum SupportedLanguage {
MALAY("ms", false, "754b9041dea6db6db44750f1385a743adf653767b4b8802cad4c585dd3f5be46"), MALAY("ms", false, "754b9041dea6db6db44750f1385a743adf653767b4b8802cad4c585dd3f5be46"),
THAI("th", true, "2a7916e4a852f7e6f3f3de19c7fb57686a37bce834bd54684a7dbef8d53fb"), THAI("th", true, "2a7916e4a852f7e6f3f3de19c7fb57686a37bce834bd54684a7dbef8d53fb"),
MACEDONIAN("mk", false, "a0e0b0b5d87a855466980a101a757bcdb5f77d9f7287889f3efa998ee0472fc0"), MACEDONIAN("mk", false, "a0e0b0b5d87a855466980a101a757bcdb5f77d9f7287889f3efa998ee0472fc0"),
TAGALOG("tl", false, "9306c0c1ce6a9c61bb42a572c49e6d0ed20e0e6b3d122cc64c339cbf78e9e937"); TAGALOG("tl", true, "9306c0c1ce6a9c61bb42a572c49e6d0ed20e0e6b3d122cc64c339cbf78e9e937");
private final String id; private final String id;
private final boolean releaseReady; private final boolean releaseReady;

View File

@ -50,7 +50,7 @@ public final class SlimefunItems {
public static final SlimefunItemStack GRAPPLING_HOOK = new SlimefunItemStack("GRAPPLING_HOOK", Material.LEAD, "&6Grappling Hook", "", LoreBuilder.RIGHT_CLICK_TO_USE); public static final SlimefunItemStack GRAPPLING_HOOK = new SlimefunItemStack("GRAPPLING_HOOK", Material.LEAD, "&6Grappling Hook", "", LoreBuilder.RIGHT_CLICK_TO_USE);
public static final SlimefunItemStack SOLAR_HELMET = new SlimefunItemStack("SOLAR_HELMET", Material.IRON_HELMET, "&bSolar Helmet", "", "&a&oCharges held Items and Armor"); public static final SlimefunItemStack SOLAR_HELMET = new SlimefunItemStack("SOLAR_HELMET", Material.IRON_HELMET, "&bSolar Helmet", "", "&a&oCharges held Items and Armor");
public static final SlimefunItemStack CLOTH = new SlimefunItemStack("CLOTH", Material.PAPER, "&bCloth"); public static final SlimefunItemStack CLOTH = new SlimefunItemStack("CLOTH", Material.PAPER, "&bCloth");
public static final SlimefunItemStack CAN = new SlimefunItemStack("CAN", HeadTexture.TIN_CAN, "&rTin Can"); public static final SlimefunItemStack TIN_CAN = new SlimefunItemStack("CAN", HeadTexture.TIN_CAN, "&rTin Can");
public static final SlimefunItemStack NIGHT_VISION_GOGGLES = new SlimefunItemStack("NIGHT_VISION_GOGGLES", Material.LEATHER_HELMET, Color.BLACK, "&aNight Vision Goggles", "", "&9+ Night Vision"); public static final SlimefunItemStack NIGHT_VISION_GOGGLES = new SlimefunItemStack("NIGHT_VISION_GOGGLES", Material.LEATHER_HELMET, Color.BLACK, "&aNight Vision Goggles", "", "&9+ Night Vision");
public static final SlimefunItemStack FARMER_SHOES = new SlimefunItemStack("FARMER_SHOES", Material.LEATHER_BOOTS, Color.YELLOW, "&eFarmer Shoes", "", "&6&oPrevents you from trampling your Crops"); public static final SlimefunItemStack FARMER_SHOES = new SlimefunItemStack("FARMER_SHOES", Material.LEATHER_BOOTS, Color.YELLOW, "&eFarmer Shoes", "", "&6&oPrevents you from trampling your Crops");
public static final SlimefunItemStack INFUSED_MAGNET = new SlimefunItemStack("INFUSED_MAGNET", HeadTexture.MAGNET, "&aInfused Magnet", "", "&rMagical infused Magnets", "&rattract nearby Items", "&ras long as it is somewhere in", "&ryour Inventory", "", "&7Hold &eShift&7 to pick up nearby Items"); public static final SlimefunItemStack INFUSED_MAGNET = new SlimefunItemStack("INFUSED_MAGNET", HeadTexture.MAGNET, "&aInfused Magnet", "", "&rMagical infused Magnets", "&rattract nearby Items", "&ras long as it is somewhere in", "&ryour Inventory", "", "&7Hold &eShift&7 to pick up nearby Items");
@ -96,13 +96,14 @@ public final class SlimefunItems {
public static final SlimefunItemStack ARMORED_JETBOOTS = new SlimefunItemStack("ARMORED_JETBOOTS", Material.IRON_BOOTS, "&9Armored Jet Boots", "", LoreBuilder.material("Steel"), LoreBuilder.powerCharged(0, 50), LoreBuilder.speed(0.45F), "&8\u21E8 &7Accuracy: &e70%", "", LoreBuilder.CROUCH_TO_USE); public static final SlimefunItemStack ARMORED_JETBOOTS = new SlimefunItemStack("ARMORED_JETBOOTS", Material.IRON_BOOTS, "&9Armored Jet Boots", "", LoreBuilder.material("Steel"), LoreBuilder.powerCharged(0, 50), LoreBuilder.speed(0.45F), "&8\u21E8 &7Accuracy: &e70%", "", LoreBuilder.CROUCH_TO_USE);
/* Multi Tools */ /* Multi Tools */
public static final SlimefunItemStack DURALUMIN_MULTI_TOOL = new SlimefunItemStack("DURALUMIN_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eI", "", LoreBuilder.material("Duralumin"), LoreBuilder.powerCharged(0, 20), "", LoreBuilder.RIGHT_CLICK_TO_USE, "&7Hold &eShift + Right Click&7 to change the Mode"); private static final String MULTI_TOOL_LORE = "&eCrouch & Right Click&7 to switch modes";
public static final SlimefunItemStack SOLDER_MULTI_TOOL = new SlimefunItemStack("SOLDER_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eII", "", LoreBuilder.material("Solder"), LoreBuilder.powerCharged(0, 30), "", LoreBuilder.RIGHT_CLICK_TO_USE, "&7Hold &eShift + Right Click&7 to change the Mode"); public static final SlimefunItemStack DURALUMIN_MULTI_TOOL = new SlimefunItemStack("DURALUMIN_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eI", "", LoreBuilder.material("Duralumin"), LoreBuilder.powerCharged(0, 20), "", LoreBuilder.RIGHT_CLICK_TO_USE, MULTI_TOOL_LORE);
public static final SlimefunItemStack BILLON_MULTI_TOOL = new SlimefunItemStack("BILLON_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eIII", "", LoreBuilder.material("Billon"), LoreBuilder.powerCharged(0, 40), "", LoreBuilder.RIGHT_CLICK_TO_USE, "&7Hold &eShift + Right Click&7 to change the Mode"); public static final SlimefunItemStack SOLDER_MULTI_TOOL = new SlimefunItemStack("SOLDER_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eII", "", LoreBuilder.material("Solder"), LoreBuilder.powerCharged(0, 30), "", LoreBuilder.RIGHT_CLICK_TO_USE, MULTI_TOOL_LORE);
public static final SlimefunItemStack STEEL_MULTI_TOOL = new SlimefunItemStack("STEEL_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eIV", "", LoreBuilder.material("Steel"), LoreBuilder.powerCharged(0, 50), "", LoreBuilder.RIGHT_CLICK_TO_USE, "&7Hold &eShift + Right Click&7 to change the Mode"); public static final SlimefunItemStack BILLON_MULTI_TOOL = new SlimefunItemStack("BILLON_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eIII", "", LoreBuilder.material("Billon"), LoreBuilder.powerCharged(0, 40), "", LoreBuilder.RIGHT_CLICK_TO_USE, MULTI_TOOL_LORE);
public static final SlimefunItemStack DAMASCUS_STEEL_MULTI_TOOL = new SlimefunItemStack("DAMASCUS_STEEL_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eV", "", LoreBuilder.material("Damascus Steel"), LoreBuilder.powerCharged(0, 60), "", LoreBuilder.RIGHT_CLICK_TO_USE, "&7Hold &eShift + Right Click&7 to change the Mode"); public static final SlimefunItemStack STEEL_MULTI_TOOL = new SlimefunItemStack("STEEL_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eIV", "", LoreBuilder.material("Steel"), LoreBuilder.powerCharged(0, 50), "", LoreBuilder.RIGHT_CLICK_TO_USE, MULTI_TOOL_LORE);
public static final SlimefunItemStack REINFORCED_ALLOY_MULTI_TOOL = new SlimefunItemStack("REINFORCED_ALLOY_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eVI", "", LoreBuilder.material("Reinforced Alloy"), LoreBuilder.powerCharged(0, 75), "", LoreBuilder.RIGHT_CLICK_TO_USE, "&7Hold &eShift + Right Click&7 to change the Mode"); public static final SlimefunItemStack DAMASCUS_STEEL_MULTI_TOOL = new SlimefunItemStack("DAMASCUS_STEEL_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eV", "", LoreBuilder.material("Damascus Steel"), LoreBuilder.powerCharged(0, 60), "", LoreBuilder.RIGHT_CLICK_TO_USE, MULTI_TOOL_LORE);
public static final SlimefunItemStack CARBONADO_MULTI_TOOL = new SlimefunItemStack("CARBONADO_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eVII", "", LoreBuilder.material("Carbonado"), LoreBuilder.powerCharged(0, 100), "", LoreBuilder.RIGHT_CLICK_TO_USE, "&7Hold &eShift + Right Click&7 to change the Mode"); public static final SlimefunItemStack REINFORCED_ALLOY_MULTI_TOOL = new SlimefunItemStack("REINFORCED_ALLOY_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eVI", "", LoreBuilder.material("Reinforced Alloy"), LoreBuilder.powerCharged(0, 75), "", LoreBuilder.RIGHT_CLICK_TO_USE, MULTI_TOOL_LORE);
public static final SlimefunItemStack CARBONADO_MULTI_TOOL = new SlimefunItemStack("CARBONADO_MULTI_TOOL", Material.SHEARS, "&9Multi Tool &7- &eVII", "", LoreBuilder.material("Carbonado"), LoreBuilder.powerCharged(0, 100), "", LoreBuilder.RIGHT_CLICK_TO_USE, MULTI_TOOL_LORE);
static { static {
ItemMeta duralumin = DURALUMIN_MULTI_TOOL.getItemMeta(); ItemMeta duralumin = DURALUMIN_MULTI_TOOL.getItemMeta();
@ -327,7 +328,7 @@ public final class SlimefunItems {
public static final SlimefunItemStack ENDER_LUMP_2 = new SlimefunItemStack("ENDER_LUMP_2", Material.GOLD_NUGGET, "&5Ender Lump &7- &eII", "", "&c&oTier: II"); public static final SlimefunItemStack ENDER_LUMP_2 = new SlimefunItemStack("ENDER_LUMP_2", Material.GOLD_NUGGET, "&5Ender Lump &7- &eII", "", "&c&oTier: II");
public static final SlimefunItemStack ENDER_LUMP_3 = new SlimefunItemStack("ENDER_LUMP_3", Material.GOLD_NUGGET, "&5Ender Lump &7- &eIII", "", "&c&oTier: III"); public static final SlimefunItemStack ENDER_LUMP_3 = new SlimefunItemStack("ENDER_LUMP_3", Material.GOLD_NUGGET, "&5Ender Lump &7- &eIII", "", "&c&oTier: III");
public static final SlimefunItemStack MAGICAL_BOOK_COVER = new SlimefunItemStack("MAGICAL_BOOK_COVER", Material.PAPER, "&6Magical Book Cover", "", "&a&oUsed for various Magic Books"); public static final SlimefunItemStack MAGICAL_BOOK_COVER = new SlimefunItemStack("MAGICAL_BOOK_COVER", Material.PAPER, "&6Magical Book Cover", "", "&a&oUsed for various Magic Books");
public static final SlimefunItemStack MAGIC_PILLS = new SlimefunItemStack("MAGIC_PILLS", Material.NETHER_WART, "&cMagic Pills", "", "&a&oUsed to cure zombie villagers instantly"); public static final SlimefunItemStack MAGICAL_ZOMBIE_PILLS = new SlimefunItemStack("MAGICAL_ZOMBIE_PILLS", Material.NETHER_WART, "&6Magical Zombie Pills", "", "&eRight Click &7a Zombified Villager to", "&7instantly cure it from its curse");
public static final SlimefunItemStack BASIC_CIRCUIT_BOARD = new SlimefunItemStack("BASIC_CIRCUIT_BOARD", Material.ACTIVATOR_RAIL, "&bBasic Circuit Board"); public static final SlimefunItemStack BASIC_CIRCUIT_BOARD = new SlimefunItemStack("BASIC_CIRCUIT_BOARD", Material.ACTIVATOR_RAIL, "&bBasic Circuit Board");
public static final SlimefunItemStack ADVANCED_CIRCUIT_BOARD = new SlimefunItemStack("ADVANCED_CIRCUIT_BOARD", Material.POWERED_RAIL, "&bAdvanced Circuit Board"); public static final SlimefunItemStack ADVANCED_CIRCUIT_BOARD = new SlimefunItemStack("ADVANCED_CIRCUIT_BOARD", Material.POWERED_RAIL, "&bAdvanced Circuit Board");
public static final SlimefunItemStack WHEAT_FLOUR = new SlimefunItemStack("WHEAT_FLOUR", Material.SUGAR, "&rWheat Flour"); public static final SlimefunItemStack WHEAT_FLOUR = new SlimefunItemStack("WHEAT_FLOUR", Material.SUGAR, "&rWheat Flour");
@ -624,6 +625,7 @@ public final class SlimefunItems {
public static final SlimefunItemStack AUTO_DISENCHANTER = new SlimefunItemStack("AUTO_DISENCHANTER", Material.ENCHANTING_TABLE, "&5Auto Disenchanter", "", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(18)); public static final SlimefunItemStack AUTO_DISENCHANTER = new SlimefunItemStack("AUTO_DISENCHANTER", Material.ENCHANTING_TABLE, "&5Auto Disenchanter", "", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(18));
public static final SlimefunItemStack AUTO_ANVIL = new SlimefunItemStack("AUTO_ANVIL", Material.IRON_BLOCK, "&7Auto Anvil", "", LoreBuilder.machine(MachineTier.ADVANCED, MachineType.MACHINE), "&8\u21E8 &7Repair Factor: 10%", LoreBuilder.powerPerSecond(24)); public static final SlimefunItemStack AUTO_ANVIL = new SlimefunItemStack("AUTO_ANVIL", Material.IRON_BLOCK, "&7Auto Anvil", "", LoreBuilder.machine(MachineTier.ADVANCED, MachineType.MACHINE), "&8\u21E8 &7Repair Factor: 10%", LoreBuilder.powerPerSecond(24));
public static final SlimefunItemStack AUTO_ANVIL_2 = new SlimefunItemStack("AUTO_ANVIL_2", Material.IRON_BLOCK, "&7Auto Anvil Mk.II", "", LoreBuilder.machine(MachineTier.END_GAME, MachineType.MACHINE), "&8\u21E8 &7Repair Factor: 25%", LoreBuilder.powerPerSecond(32)); public static final SlimefunItemStack AUTO_ANVIL_2 = new SlimefunItemStack("AUTO_ANVIL_2", Material.IRON_BLOCK, "&7Auto Anvil Mk.II", "", LoreBuilder.machine(MachineTier.END_GAME, MachineType.MACHINE), "&8\u21E8 &7Repair Factor: 25%", LoreBuilder.powerPerSecond(32));
public static final SlimefunItemStack AUTO_BREWER;
public static final SlimefunItemStack BIO_REACTOR = new SlimefunItemStack("BIO_REACTOR", Material.LIME_TERRACOTTA, "&2Bio Reactor", "", LoreBuilder.machine(MachineTier.AVERAGE, MachineType.GENERATOR), LoreBuilder.powerBuffer(128), LoreBuilder.powerPerSecond(8)); public static final SlimefunItemStack BIO_REACTOR = new SlimefunItemStack("BIO_REACTOR", Material.LIME_TERRACOTTA, "&2Bio Reactor", "", LoreBuilder.machine(MachineTier.AVERAGE, MachineType.GENERATOR), LoreBuilder.powerBuffer(128), LoreBuilder.powerPerSecond(8));
public static final SlimefunItemStack MULTIMETER = new SlimefunItemStack("MULTIMETER", Material.CLOCK, "&eMultimeter", "", "&rMeasures the Amount of stored", "&rEnergy in a Block"); public static final SlimefunItemStack MULTIMETER = new SlimefunItemStack("MULTIMETER", Material.CLOCK, "&eMultimeter", "", "&rMeasures the Amount of stored", "&rEnergy in a Block");
@ -799,10 +801,13 @@ public final class SlimefunItems {
TABLE_SAW = new SlimefunItemStack("TABLE_SAW", Material.STONECUTTER, "&6Table Saw", "", "&aAllows you to get 8 planks from 1 Log", "&a(Works with all log types)"); TABLE_SAW = new SlimefunItemStack("TABLE_SAW", Material.STONECUTTER, "&6Table Saw", "", "&aAllows you to get 8 planks from 1 Log", "&a(Works with all log types)");
MAKESHIFT_SMELTERY = new SlimefunItemStack("MAKESHIFT_SMELTERY", Material.BLAST_FURNACE, "&eMakeshift Smeltery", "", "&rImprovised version of the Smeltery", "&rthat only allows you to", "&rsmelt dusts into ingots"); MAKESHIFT_SMELTERY = new SlimefunItemStack("MAKESHIFT_SMELTERY", Material.BLAST_FURNACE, "&eMakeshift Smeltery", "", "&rImprovised version of the Smeltery", "&rthat only allows you to", "&rsmelt dusts into ingots");
AUTO_DRIER = new SlimefunItemStack("AUTO_DRIER", Material.SMOKER, "&eAuto Drier", "", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(10)); AUTO_DRIER = new SlimefunItemStack("AUTO_DRIER", Material.SMOKER, "&eAuto Drier", "", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(10));
AUTO_BREWER = new SlimefunItemStack("AUTO_BREWER", Material.SMOKER, "&eAuto Brewer", "", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(12));
} }
else { else {
TABLE_SAW = null; TABLE_SAW = null;
MAKESHIFT_SMELTERY = new SlimefunItemStack("MAKESHIFT_SMELTERY", Material.FURNACE, "&eMakeshift Smeltery", "", "&rImprovised version of the Smeltery", "&rthat only allows you to", "&rsmelt dusts into ingots"); MAKESHIFT_SMELTERY = new SlimefunItemStack("MAKESHIFT_SMELTERY", Material.FURNACE, "&eMakeshift Smeltery", "", "&rImprovised version of the Smeltery", "&rthat only allows you to", "&rsmelt dusts into ingots");
AUTO_DRIER = null;
AUTO_BREWER = new SlimefunItemStack("AUTO_BREWER", Material.BREWING_STAND, "&eAuto Brewer", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(12));
AUTO_DRIER = new SlimefunItemStack("AUTO_DRIER", Material.FURNACE, "&eAuto Drier", "", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(10)); AUTO_DRIER = new SlimefunItemStack("AUTO_DRIER", Material.FURNACE, "&eAuto Drier", "", LoreBuilder.machine(MachineTier.MEDIUM, MachineType.MACHINE), LoreBuilder.speed(1), LoreBuilder.powerPerSecond(10));
} }
} }

View File

@ -0,0 +1,230 @@
package io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines;
import java.util.EnumMap;
import java.util.Map;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.PotionMeta;
import org.bukkit.potion.PotionData;
import org.bukkit.potion.PotionType;
import io.github.thebusybiscuit.cscorelib2.inventory.InvUtils;
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
import io.github.thebusybiscuit.slimefun4.utils.ChestMenuUtils;
import me.mrCookieSlime.Slimefun.Lists.RecipeType;
import me.mrCookieSlime.Slimefun.Objects.Category;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.AContainer;
import me.mrCookieSlime.Slimefun.Objects.SlimefunItem.abstractItems.MachineRecipe;
import me.mrCookieSlime.Slimefun.api.BlockStorage;
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
import me.mrCookieSlime.Slimefun.api.energy.ChargableBlock;
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
/**
*
* The {@link AutoBrewer} machine with most if not all potion recipes.
*
* @author Linox
*
*/
public class AutoBrewer extends AContainer {
private static final Map<Material, PotionType> potionRecipes = new EnumMap<>(Material.class);
private static final Map<PotionType, PotionType> fermentations = new EnumMap<>(PotionType.class);
static {
potionRecipes.put(Material.SUGAR, PotionType.SPEED);
potionRecipes.put(Material.RABBIT_FOOT, PotionType.JUMP);
potionRecipes.put(Material.BLAZE_POWDER, PotionType.STRENGTH);
potionRecipes.put(Material.GLISTERING_MELON_SLICE, PotionType.INSTANT_HEAL);
potionRecipes.put(Material.SPIDER_EYE, PotionType.POISON);
potionRecipes.put(Material.GHAST_TEAR, PotionType.REGEN);
potionRecipes.put(Material.MAGMA_CREAM, PotionType.FIRE_RESISTANCE);
potionRecipes.put(Material.PUFFERFISH, PotionType.WATER_BREATHING);
potionRecipes.put(Material.GOLDEN_CARROT, PotionType.NIGHT_VISION);
potionRecipes.put(Material.TURTLE_HELMET, PotionType.TURTLE_MASTER);
potionRecipes.put(Material.PHANTOM_MEMBRANE, PotionType.SLOW_FALLING);
fermentations.put(PotionType.SPEED, PotionType.SLOWNESS);
fermentations.put(PotionType.JUMP, PotionType.SLOWNESS);
fermentations.put(PotionType.INSTANT_HEAL, PotionType.INSTANT_DAMAGE);
fermentations.put(PotionType.POISON, PotionType.INSTANT_DAMAGE);
fermentations.put(PotionType.NIGHT_VISION, PotionType.INVISIBILITY);
}
public AutoBrewer(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe) {
super(category, item, recipeType, recipe);
}
@Override
protected void tick(Block b) {
BlockMenu menu = BlockStorage.getInventory(b.getLocation());
if (isProcessing(b)) {
int timeleft = progress.get(b);
if (timeleft > 0) {
ChestMenuUtils.updateProgressbar(menu, 22, timeleft, processing.get(b).getTicks(), getProgressBar());
if (ChargableBlock.isChargable(b)) {
if (ChargableBlock.getCharge(b) < getEnergyConsumption()) {
return;
}
ChargableBlock.addCharge(b, -getEnergyConsumption());
progress.put(b, timeleft - 1);
}
else {
progress.put(b, timeleft - 1);
}
}
else {
menu.replaceExistingItem(22, new CustomItem(new ItemStack(Material.BLACK_STAINED_GLASS_PANE), " "));
for (ItemStack item : processing.get(b).getOutput()) {
menu.pushItem(item, getOutputSlots());
}
progress.remove(b);
processing.remove(b);
}
}
else {
MachineRecipe recipe = findRecipe(menu);
if (recipe != null) {
if (!InvUtils.fitAll(menu.toInventory(), recipe.getOutput(), getOutputSlots())) {
return;
}
for (int slot : getInputSlots()) {
menu.consumeItem(slot);
}
processing.put(b, recipe);
progress.put(b, recipe.getTicks());
}
}
}
private MachineRecipe findRecipe(BlockMenu menu) {
ItemStack input1 = menu.getItemInSlot(getInputSlots()[0]);
ItemStack input2 = menu.getItemInSlot(getInputSlots()[1]);
if (input1 == null || input2 == null) {
return null;
}
if (isPotion(input1.getType()) || isPotion(input2.getType())) {
boolean slot = isPotion(input1.getType());
ItemStack potionItem = slot ? input1 : input2;
ItemStack ingredient = slot ? input2 : input1;
PotionMeta potion = (PotionMeta) potionItem.getItemMeta();
// Reject any named items
if (ingredient.hasItemMeta()) {
return null;
}
PotionData potionData = potion.getBasePotionData();
ItemStack output = brew(ingredient.getType(), potionItem.getType(), potion, potionData);
if (output == null) {
return null;
}
output.setItemMeta(potion);
return new MachineRecipe(30, new ItemStack[] { input1, input2 }, new ItemStack[] { output });
}
else {
return null;
}
}
private ItemStack brew(Material input, Material potionType, PotionMeta potion, PotionData potionData) {
if (potionData.getType() == PotionType.WATER) {
if (input == Material.FERMENTED_SPIDER_EYE) {
potion.setBasePotionData(new PotionData(PotionType.WEAKNESS, false, false));
return new ItemStack(potionType);
}
else if (input == Material.NETHER_WART) {
potion.setBasePotionData(new PotionData(PotionType.AWKWARD, false, false));
return new ItemStack(potionType);
}
else if (potionType == Material.POTION && input == Material.GUNPOWDER) {
return new ItemStack(Material.SPLASH_POTION);
}
else if (potionType == Material.SPLASH_POTION && input == Material.DRAGON_BREATH) {
return new ItemStack(Material.LINGERING_POTION);
}
else {
return null;
}
}
else if (input == Material.FERMENTED_SPIDER_EYE) {
potion.setBasePotionData(new PotionData(fermentations.get(potionData.getType()), false, false));
return new ItemStack(potionType);
}
else if (input == Material.REDSTONE) {
potion.setBasePotionData(new PotionData(potionData.getType(), true, potionData.isUpgraded()));
return new ItemStack(potionType);
}
else if (input == Material.GLOWSTONE_DUST) {
potion.setBasePotionData(new PotionData(potionData.getType(), potionData.isExtended(), true));
return new ItemStack(potionType);
}
else if (potionData.getType() == PotionType.AWKWARD && potionRecipes.containsKey(input)) {
potion.setBasePotionData(new PotionData(potionRecipes.get(input), false, false));
return new ItemStack(potionType);
}
else {
return null;
}
}
/**
* Checks whether a given {@link Material} is a valid Potion material.
*
* @param mat
* The {@link Material} to check
*
* @return Whether this {@link Material} is a valid potion
*/
private boolean isPotion(Material mat) {
return mat == Material.POTION || mat == Material.SPLASH_POTION || mat == Material.LINGERING_POTION;
}
@Override
public String getInventoryTitle() {
return "&6Auto-Brewer";
}
@Override
public ItemStack getProgressBar() {
return new ItemStack(Material.CARROT_ON_A_STICK);
}
@Override
public int getEnergyConsumption() {
return 6;
}
@Override
public int getSpeed() {
return 1;
}
@Override
public String getMachineIdentifier() {
return "AUTO_BREWER";
}
@Override
public int getCapacity() {
return 128;
}
}

View File

@ -20,18 +20,18 @@ public abstract class FoodFabricator extends AContainer {
@Override @Override
protected void registerDefaultRecipes() { protected void registerDefaultRecipes() {
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.WHEAT) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.WHEAT_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.WHEAT) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.WHEAT_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.CARROT) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.CARROT_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.CARROT) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.CARROT_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.POTATO) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.POTATO_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.POTATO) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.POTATO_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.WHEAT_SEEDS) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.SEEDS_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.WHEAT_SEEDS) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.SEEDS_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.BEETROOT) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.BEETROOT_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.BEETROOT) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.BEETROOT_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.MELON_SLICE) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.MELON_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.MELON_SLICE) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.MELON_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.APPLE) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.APPLE_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.APPLE) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.APPLE_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.DRIED_KELP) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.KELP_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.DRIED_KELP) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.KELP_ORGANIC_FOOD, OrganicFood.OUTPUT) });
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.COCOA_BEANS) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.COCOA_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.COCOA_BEANS) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.COCOA_ORGANIC_FOOD, OrganicFood.OUTPUT) });
if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_14)) { if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_14)) {
registerRecipe(12, new ItemStack[] { SlimefunItems.CAN, new ItemStack(Material.SWEET_BERRIES) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.SWEET_BERRIES_ORGANIC_FOOD, OrganicFood.OUTPUT) }); registerRecipe(12, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(Material.SWEET_BERRIES) }, new ItemStack[] { new SlimefunItemStack(SlimefunItems.SWEET_BERRIES_ORGANIC_FOOD, OrganicFood.OUTPUT) });
} }
} }

View File

@ -19,15 +19,18 @@ import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
/** /**
* This {@link SlimefunItem} allows you to convert any {@link ZombieVillager} to * This {@link SlimefunItem} allows you to convert any {@link ZombieVillager} to
* their {@link Villager} variant. It is also one of the very few utilisations of {@link EntityInteractHandler}. * their {@link Villager} variant. It is also one of the very few utilisations of {@link EntityInteractHandler}.
*
* This item does not work on earlier versions than 1.14 as the {@link ZombieVillager} {@link EntityType}
* did not exist back then.
* *
* @author Linox * @author Linox
* *
* @see EntityInteractHandler * @see EntityInteractHandler
* *
*/ */
public class MagicPills extends SimpleSlimefunItem<EntityInteractHandler> { public class MagicalZombiePills extends SimpleSlimefunItem<EntityInteractHandler> {
public MagicPills(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) { public MagicalZombiePills(Category category, SlimefunItemStack item, RecipeType recipeType, ItemStack[] recipe, ItemStack recipeOutput) {
super(category, item, recipeType, recipe, recipeOutput); super(category, item, recipeType, recipe, recipeOutput);
} }
@ -40,14 +43,10 @@ public class MagicPills extends SimpleSlimefunItem<EntityInteractHandler> {
p.playSound(p.getLocation(), Sound.ENTITY_ZOMBIE_VILLAGER_CONVERTED, 1, 1); p.playSound(p.getLocation(), Sound.ENTITY_ZOMBIE_VILLAGER_CONVERTED, 1, 1);
ZombieVillager zombieVillager = (ZombieVillager) entity; ZombieVillager zombieVillager = (ZombieVillager) entity;
if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_14)) { zombieVillager.setConversionTime(1);
zombieVillager.setConversionTime(1);
if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_15)) {
zombieVillager.setConversionPlayer(p);
}
} else { if (SlimefunPlugin.getMinecraftVersion().isAtLeast(MinecraftVersion.MINECRAFT_1_15)) {
zombieVillager.setVillager(true); zombieVillager.setConversionPlayer(p);
} }
} }
}; };

View File

@ -14,7 +14,7 @@ public class OrganicFood extends SlimefunItem {
public static final int OUTPUT = 2; public static final int OUTPUT = 2;
public OrganicFood(Category category, SlimefunItemStack item, Material ingredient) { public OrganicFood(Category category, SlimefunItemStack item, Material ingredient) {
super(category, item, RecipeType.FOOD_FABRICATOR, new ItemStack[] { SlimefunItems.CAN, new ItemStack(ingredient), null, null, null, null, null, null, null }, new SlimefunItemStack(item, OUTPUT)); super(category, item, RecipeType.FOOD_FABRICATOR, new ItemStack[] { SlimefunItems.TIN_CAN, new ItemStack(ingredient), null, null, null, null, null, null, null }, new SlimefunItemStack(item, OUTPUT));
} }
} }

View File

@ -29,19 +29,22 @@ public class PlayerInteractEntityListener implements Listener {
@EventHandler @EventHandler
public void onInteractEntity(PlayerInteractAtEntityEvent e) { public void onInteractEntity(PlayerInteractAtEntityEvent e) {
if (!e.getRightClicked().isValid()) {
if (!e.getRightClicked().isValid()) return; return;
}
ItemStack itemStack; ItemStack itemStack;
if (e.getHand() == EquipmentSlot.OFF_HAND) { if (e.getHand() == EquipmentSlot.OFF_HAND) {
itemStack = e.getPlayer().getInventory().getItemInOffHand(); itemStack = e.getPlayer().getInventory().getItemInOffHand();
} else { }
else {
itemStack = e.getPlayer().getInventory().getItemInMainHand(); itemStack = e.getPlayer().getInventory().getItemInMainHand();
} }
SlimefunItem sfItem = SlimefunItem.getByItem(itemStack);
if (sfItem == null) return;
if (Slimefun.hasUnlocked(e.getPlayer(), sfItem, true)) { SlimefunItem sfItem = SlimefunItem.getByItem(itemStack);
if (sfItem != null && Slimefun.hasUnlocked(e.getPlayer(), sfItem, true)) {
sfItem.callItemHandler(EntityInteractHandler.class, handler -> handler.onInteract(e.getPlayer(), e.getRightClicked(), itemStack, e.getHand() == EquipmentSlot.OFF_HAND)); sfItem.callItemHandler(EntityInteractHandler.class, handler -> handler.onInteract(e.getPlayer(), e.getRightClicked(), itemStack, e.getHand() == EquipmentSlot.OFF_HAND));
} }
} }

View File

@ -45,7 +45,7 @@ class DefaultCategories {
protected final Category magicalArmor = new Category(new NamespacedKey(SlimefunPlugin.instance, "magical_armor"), new CustomItem(SlimefunItems.ENDER_HELMET, "&7Magical Armor"), 2); protected final Category magicalArmor = new Category(new NamespacedKey(SlimefunPlugin.instance, "magical_armor"), new CustomItem(SlimefunItems.ENDER_HELMET, "&7Magical Armor"), 2);
// Resources and tech stuff // Resources and tech stuff
protected final Category misc = new Category(new NamespacedKey(SlimefunPlugin.instance, "misc"), new CustomItem(SlimefunItems.CAN, "&7Miscellaneous"), 2); protected final Category misc = new Category(new NamespacedKey(SlimefunPlugin.instance, "misc"), new CustomItem(SlimefunItems.TIN_CAN, "&7Miscellaneous"), 2);
protected final Category technicalComponents = new Category(new NamespacedKey(SlimefunPlugin.instance, "tech_misc"), new CustomItem(SlimefunItems.HEATING_COIL, "&7Technical Components"), 2); protected final Category technicalComponents = new Category(new NamespacedKey(SlimefunPlugin.instance, "tech_misc"), new CustomItem(SlimefunItems.HEATING_COIL, "&7Technical Components"), 2);
protected final Category technicalGadgets = new Category(new NamespacedKey(SlimefunPlugin.instance, "technical_gadgets"), new CustomItem(SlimefunItems.STEEL_JETPACK, "&7Technical Gadgets"), 3); protected final Category technicalGadgets = new Category(new NamespacedKey(SlimefunPlugin.instance, "technical_gadgets"), new CustomItem(SlimefunItems.STEEL_JETPACK, "&7Technical Gadgets"), 3);
protected final Category resources = new Category(new NamespacedKey(SlimefunPlugin.instance, "resources"), new CustomItem(SlimefunItems.SYNTHETIC_SAPPHIRE, "&7Resources"), 1); protected final Category resources = new Category(new NamespacedKey(SlimefunPlugin.instance, "resources"), new CustomItem(SlimefunItems.SYNTHETIC_SAPPHIRE, "&7Resources"), 1);

View File

@ -109,7 +109,7 @@ public final class ResearchSetup {
register("crushed_ore", 81, "Ore Purification", 25, SlimefunItems.CRUSHED_ORE, SlimefunItems.PULVERIZED_ORE, SlimefunItems.PURE_ORE_CLUSTER); register("crushed_ore", 81, "Ore Purification", 25, SlimefunItems.CRUSHED_ORE, SlimefunItems.PULVERIZED_ORE, SlimefunItems.PURE_ORE_CLUSTER);
register("redstone_alloy", 84, "Redstone Alloy", 16, SlimefunItems.REDSTONE_ALLOY); register("redstone_alloy", 84, "Redstone Alloy", 16, SlimefunItems.REDSTONE_ALLOY);
register("carbonado_tools", 85, "Top Tier Machines", 24, SlimefunItems.CARBONADO_MULTI_TOOL, SlimefunItems.CARBONADO_JETPACK, SlimefunItems.CARBONADO_JETBOOTS); register("carbonado_tools", 85, "Top Tier Machines", 24, SlimefunItems.CARBONADO_MULTI_TOOL, SlimefunItems.CARBONADO_JETPACK, SlimefunItems.CARBONADO_JETBOOTS);
register("first_aid", 86, "First Aid", 2, SlimefunItems.CLOTH, SlimefunItems.RAG, SlimefunItems.BANDAGE, SlimefunItems.SPLINT, SlimefunItems.CAN, SlimefunItems.VITAMINS, SlimefunItems.MEDICINE); register("first_aid", 86, "First Aid", 2, SlimefunItems.CLOTH, SlimefunItems.RAG, SlimefunItems.BANDAGE, SlimefunItems.SPLINT, SlimefunItems.TIN_CAN, SlimefunItems.VITAMINS, SlimefunItems.MEDICINE);
register("gold_armor", 87, "Shiny Armor", 13, SlimefunItems.GOLD_HELMET, SlimefunItems.GOLD_CHESTPLATE, SlimefunItems.GOLD_LEGGINGS, SlimefunItems.GOLD_BOOTS); register("gold_armor", 87, "Shiny Armor", 13, SlimefunItems.GOLD_HELMET, SlimefunItems.GOLD_CHESTPLATE, SlimefunItems.GOLD_LEGGINGS, SlimefunItems.GOLD_BOOTS);
register("night_vision_googles", 89, "Night Vision Goggles", 10, SlimefunItems.NIGHT_VISION_GOGGLES); 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("pickaxe_of_containment", 90, "Pickaxe of Containment", 14, SlimefunItems.PICKAXE_OF_CONTAINMENT, SlimefunItems.BROKEN_SPAWNER);
@ -265,7 +265,8 @@ public final class ResearchSetup {
register("tree_growth_accelerator", 256, "Faster Trees", 18, SlimefunItems.TREE_GROWTH_ACCELERATOR); register("tree_growth_accelerator", 256, "Faster Trees", 18, SlimefunItems.TREE_GROWTH_ACCELERATOR);
register("industrial_miner", 95, "Industrial Mining", 28, SlimefunItems.INDUSTRIAL_MINER); register("industrial_miner", 95, "Industrial Mining", 28, SlimefunItems.INDUSTRIAL_MINER);
register("advanced_industrial_miner", 98, "Better Mining", 36, SlimefunItems.ADVANCED_INDUSTRIAL_MINER); register("advanced_industrial_miner", 98, "Better Mining", 36, SlimefunItems.ADVANCED_INDUSTRIAL_MINER);
register("magic_pills", 257, "De-Zombification", 22, SlimefunItems.MAGIC_PILLS); register("magical_zombie_pills", 257, "De-Zombification", 22, SlimefunItems.MAGICAL_ZOMBIE_PILLS);
register("auto_brewer", 258, "Industrial Brewery", 30, SlimefunItems.AUTO_BREWER);
} }
private static void register(String key, int id, String name, int defaultCost, ItemStack... items) { private static void register(String key, int id, String name, int defaultCost, ItemStack... items) {

View File

@ -71,6 +71,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.electric.generato
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AnimalGrowthAccelerator; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AnimalGrowthAccelerator;
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoAnvil; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoAnvil;
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoBreeder; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoBreeder;
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoBrewer;
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoDisenchanter; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoDisenchanter;
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoDrier; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoDrier;
import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoEnchanter; import io.github.thebusybiscuit.slimefun4.implementation.items.electric.machines.AutoEnchanter;
@ -121,7 +122,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.items.magical.InfusedMa
import io.github.thebusybiscuit.slimefun4.implementation.items.magical.KnowledgeFlask; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.KnowledgeFlask;
import io.github.thebusybiscuit.slimefun4.implementation.items.magical.KnowledgeTome; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.KnowledgeTome;
import io.github.thebusybiscuit.slimefun4.implementation.items.magical.MagicEyeOfEnder; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.MagicEyeOfEnder;
import io.github.thebusybiscuit.slimefun4.implementation.items.magical.MagicPills; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.MagicalZombiePills;
import io.github.thebusybiscuit.slimefun4.implementation.items.magical.SoulboundItem; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.SoulboundItem;
import io.github.thebusybiscuit.slimefun4.implementation.items.magical.SoulboundRune; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.SoulboundRune;
import io.github.thebusybiscuit.slimefun4.implementation.items.magical.StormStaff; import io.github.thebusybiscuit.slimefun4.implementation.items.magical.StormStaff;
@ -290,7 +291,8 @@ public final class SlimefunItemSetup {
new Compressor(categories.basicMachines, SlimefunItems.COMPRESSOR).register(plugin); new Compressor(categories.basicMachines, SlimefunItems.COMPRESSOR).register(plugin);
new SlimefunItem(categories.magicalResources, SlimefunItems.MAGIC_LUMP_1, RecipeType.GRIND_STONE, new SlimefunItem(categories.magicalResources, SlimefunItems.MAGIC_LUMP_1, RecipeType.GRIND_STONE,
new ItemStack[] {new ItemStack(Material.NETHER_WART), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.MAGIC_LUMP_1, 2)) new ItemStack[] {new ItemStack(Material.NETHER_WART), null, null, null, null, null, null, null, null},
new CustomItem(SlimefunItems.MAGIC_LUMP_1, 2))
.register(plugin); .register(plugin);
new SlimefunItem(categories.magicalResources, SlimefunItems.MAGIC_LUMP_2, RecipeType.ENHANCED_CRAFTING_TABLE, new SlimefunItem(categories.magicalResources, SlimefunItems.MAGIC_LUMP_2, RecipeType.ENHANCED_CRAFTING_TABLE,
@ -640,7 +642,8 @@ public final class SlimefunItemSetup {
.register(plugin); .register(plugin);
new SlimefunItem(categories.misc, SlimefunItems.CHAIN, RecipeType.ENHANCED_CRAFTING_TABLE, new SlimefunItem(categories.misc, SlimefunItems.CHAIN, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {null, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, null}, new CustomItem(SlimefunItems.CHAIN, 8)) new ItemStack[] {null, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, SlimefunItems.STEEL_INGOT, null, null},
new CustomItem(SlimefunItems.CHAIN, 8))
.register(plugin); .register(plugin);
new SlimefunItem(categories.misc, SlimefunItems.HOOK, RecipeType.ENHANCED_CRAFTING_TABLE, new SlimefunItem(categories.misc, SlimefunItems.HOOK, RecipeType.ENHANCED_CRAFTING_TABLE,
@ -777,17 +780,18 @@ public final class SlimefunItemSetup {
new StormStaff(categories.magicalGadgets, SlimefunItems.STAFF_STORM, RecipeType.ANCIENT_ALTAR, new StormStaff(categories.magicalGadgets, SlimefunItems.STAFF_STORM, RecipeType.ANCIENT_ALTAR,
new ItemStack[] {SlimefunItems.LIGHTNING_RUNE, SlimefunItems.ENDER_LUMP_3, SlimefunItems.LIGHTNING_RUNE, SlimefunItems.STAFF_WATER, SlimefunItems.MAGIC_SUGAR, SlimefunItems.STAFF_WIND, SlimefunItems.LIGHTNING_RUNE, SlimefunItems.ENDER_LUMP_3, SlimefunItems.LIGHTNING_RUNE}) new ItemStack[] {SlimefunItems.LIGHTNING_RUNE, SlimefunItems.ENDER_LUMP_3, SlimefunItems.LIGHTNING_RUNE, SlimefunItems.STAFF_WATER, SlimefunItems.MAGIC_SUGAR, SlimefunItems.STAFF_WIND, SlimefunItems.LIGHTNING_RUNE, SlimefunItems.ENDER_LUMP_3, SlimefunItems.LIGHTNING_RUNE})
.register(plugin); .register(plugin);
ItemStack weaknessPotion = new ItemStack(Material.POTION);
PotionMeta meta = (PotionMeta) weaknessPotion.getItemMeta();
meta.setBasePotionData(new PotionData(PotionType.WEAKNESS, false, false));
weaknessPotion.setItemMeta(meta);
new MagicalZombiePills(categories.magicalGadgets, SlimefunItems.MAGICAL_ZOMBIE_PILLS, RecipeType.MAGIC_WORKBENCH,
new ItemStack[] {new ItemStack(Material.GOLD_INGOT), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.GOLD_INGOT), new ItemStack(Material.APPLE), weaknessPotion, new ItemStack(Material.APPLE), new ItemStack(Material.GOLD_INGOT), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.GOLD_INGOT)},
new CustomItem(SlimefunItems.MAGICAL_ZOMBIE_PILLS, 2))
.register(plugin);
} }
ItemStack magicPillsRecipePotion = new ItemStack(Material.POTION);
PotionMeta meta = (PotionMeta) magicPillsRecipePotion.getItemMeta();
meta.setBasePotionData(new PotionData(PotionType.WEAKNESS, false, false));
magicPillsRecipePotion.setItemMeta(meta);
new MagicPills(categories.magicalGadgets, SlimefunItems.MAGIC_PILLS, RecipeType.MAGIC_WORKBENCH,
new ItemStack[] {new ItemStack(Material.GOLD_INGOT), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.GOLD_INGOT), new ItemStack(Material.APPLE), magicPillsRecipePotion, new ItemStack(Material.APPLE), new ItemStack(Material.GOLD_INGOT), SlimefunItems.MAGIC_LUMP_2, new ItemStack(Material.GOLD_INGOT)},
new CustomItem(SlimefunItems.MAGIC_PILLS, 4))
.register(plugin);
new SmeltersPickaxe(categories.tools, SlimefunItems.SMELTERS_PICKAXE, RecipeType.ENHANCED_CRAFTING_TABLE, new SmeltersPickaxe(categories.tools, SlimefunItems.SMELTERS_PICKAXE, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.LAVA_CRYSTAL, SlimefunItems.LAVA_CRYSTAL, SlimefunItems.LAVA_CRYSTAL, null, SlimefunItems.FERROSILICON, null, null, SlimefunItems.FERROSILICON, null}) new ItemStack[] {SlimefunItems.LAVA_CRYSTAL, SlimefunItems.LAVA_CRYSTAL, SlimefunItems.LAVA_CRYSTAL, null, SlimefunItems.FERROSILICON, null, null, SlimefunItems.FERROSILICON, null})
.register(plugin); .register(plugin);
@ -949,7 +953,8 @@ public final class SlimefunItemSetup {
}, "GOLD_12K", false, plugin); }, "GOLD_12K", false, plugin);
new SlimefunItem(categories.misc, SlimefunItems.CLOTH, RecipeType.ENHANCED_CRAFTING_TABLE, new SlimefunItem(categories.misc, SlimefunItems.CLOTH, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.WHITE_WOOL), null, null, null, null, null, null, null, null}, new CustomItem(SlimefunItems.CLOTH, 8)) new ItemStack[] {new ItemStack(Material.WHITE_WOOL), null, null, null, null, null, null, null, null},
new CustomItem(SlimefunItems.CLOTH, 8))
.register(plugin); .register(plugin);
new Rag(categories.usefulItems, SlimefunItems.RAG, RecipeType.ENHANCED_CRAFTING_TABLE, new Rag(categories.usefulItems, SlimefunItems.RAG, RecipeType.ENHANCED_CRAFTING_TABLE,
@ -966,13 +971,13 @@ public final class SlimefunItemSetup {
new CustomItem(SlimefunItems.SPLINT, 4)) new CustomItem(SlimefunItems.SPLINT, 4))
.register(plugin); .register(plugin);
new SlimefunItem(categories.misc, SlimefunItems.CAN, RecipeType.ENHANCED_CRAFTING_TABLE, new SlimefunItem(categories.misc, SlimefunItems.TIN_CAN, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, null, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT}, new ItemStack[] {SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, null, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT, SlimefunItems.TIN_INGOT},
new CustomItem(SlimefunItems.CAN, 4)) new CustomItem(SlimefunItems.TIN_CAN, 8))
.register(plugin); .register(plugin);
new Vitamins(categories.usefulItems, SlimefunItems.VITAMINS, RecipeType.ENHANCED_CRAFTING_TABLE, new Vitamins(categories.usefulItems, SlimefunItems.VITAMINS, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.CAN, new ItemStack(Material.APPLE), new ItemStack(Material.RED_MUSHROOM), new ItemStack(Material.SUGAR), null, null, null, null, null}) new ItemStack[] {SlimefunItems.TIN_CAN, new ItemStack(Material.APPLE), new ItemStack(Material.RED_MUSHROOM), new ItemStack(Material.SUGAR), null, null, null, null, null})
.register(plugin); .register(plugin);
new Medicine(categories.usefulItems, SlimefunItems.MEDICINE, RecipeType.ENHANCED_CRAFTING_TABLE, new Medicine(categories.usefulItems, SlimefunItems.MEDICINE, RecipeType.ENHANCED_CRAFTING_TABLE,
@ -1970,6 +1975,10 @@ public final class SlimefunItemSetup {
new ItemStack[] {null, null, null, SlimefunItems.HEATING_COIL, new ItemStack(Material.SMOKER), SlimefunItems.HEATING_COIL, null, new ItemStack(Material.CAMPFIRE), null}) new ItemStack[] {null, null, null, SlimefunItems.HEATING_COIL, new ItemStack(Material.SMOKER), SlimefunItems.HEATING_COIL, null, new ItemStack(Material.CAMPFIRE), null})
.register(plugin); .register(plugin);
new AutoBrewer(categories.electricity, SlimefunItems.AUTO_BREWER, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {null, SlimefunItems.HEATING_COIL, null, SlimefunItems.REINFORCED_PLATE, new ItemStack(Material.BREWING_STAND), SlimefunItems.REINFORCED_PLATE, null, SlimefunItems.ELECTRIC_MOTOR, null})
.register(plugin);
new ElectricPress(categories.electricity, SlimefunItems.ELECTRIC_PRESS, RecipeType.ENHANCED_CRAFTING_TABLE, new ElectricPress(categories.electricity, SlimefunItems.ELECTRIC_PRESS, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {new ItemStack(Material.PISTON), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.PISTON), null, SlimefunItems.MEDIUM_CAPACITOR, null, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT}) { new ItemStack[] {new ItemStack(Material.PISTON), SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.PISTON), null, SlimefunItems.MEDIUM_CAPACITOR, null, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.DAMASCUS_STEEL_INGOT}) {
@ -2778,7 +2787,7 @@ public final class SlimefunItemSetup {
.register(plugin); .register(plugin);
new FoodFabricator(categories.electricity, SlimefunItems.FOOD_FABRICATOR, RecipeType.ENHANCED_CRAFTING_TABLE, new FoodFabricator(categories.electricity, SlimefunItems.FOOD_FABRICATOR, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.BILLON_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.BILLON_INGOT, SlimefunItems.CAN, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.CAN, null, SlimefunItems.ELECTRIC_MOTOR, null}) { new ItemStack[] {SlimefunItems.BILLON_INGOT, SlimefunItems.SILVER_INGOT, SlimefunItems.BILLON_INGOT, SlimefunItems.TIN_CAN, SlimefunItems.SMALL_CAPACITOR, SlimefunItems.TIN_CAN, null, SlimefunItems.ELECTRIC_MOTOR, null}) {
@Override @Override
public int getEnergyConsumption() { public int getEnergyConsumption() {
@ -2850,7 +2859,7 @@ public final class SlimefunItemSetup {
.register(plugin); .register(plugin);
new AutoBreeder(categories.electricity, SlimefunItems.AUTO_BREEDER, RecipeType.ENHANCED_CRAFTING_TABLE, new AutoBreeder(categories.electricity, SlimefunItems.AUTO_BREEDER, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.GOLD_18K, SlimefunItems.CAN, SlimefunItems.GOLD_18K, SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.HAY_BLOCK), SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.LEAD_INGOT, SlimefunItems.FOOD_FABRICATOR, SlimefunItems.LEAD_INGOT}) new ItemStack[] {SlimefunItems.GOLD_18K, SlimefunItems.TIN_CAN, SlimefunItems.GOLD_18K, SlimefunItems.ELECTRIC_MOTOR, new ItemStack(Material.HAY_BLOCK), SlimefunItems.ELECTRIC_MOTOR, SlimefunItems.LEAD_INGOT, SlimefunItems.FOOD_FABRICATOR, SlimefunItems.LEAD_INGOT})
.register(plugin); .register(plugin);
new AnimalGrowthAccelerator(categories.electricity, SlimefunItems.ANIMAL_GROWTH_ACCELERATOR, RecipeType.ENHANCED_CRAFTING_TABLE, new AnimalGrowthAccelerator(categories.electricity, SlimefunItems.ANIMAL_GROWTH_ACCELERATOR, RecipeType.ENHANCED_CRAFTING_TABLE,
@ -2866,7 +2875,7 @@ public final class SlimefunItemSetup {
.register(plugin); .register(plugin);
new FoodComposter(categories.electricity, SlimefunItems.FOOD_COMPOSTER, RecipeType.ENHANCED_CRAFTING_TABLE, new FoodComposter(categories.electricity, SlimefunItems.FOOD_COMPOSTER, RecipeType.ENHANCED_CRAFTING_TABLE,
new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.FOOD_FABRICATOR, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.CAN, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.CAN, null, SlimefunItems.ELECTRIC_MOTOR, null}) { new ItemStack[] {SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.FOOD_FABRICATOR, SlimefunItems.DAMASCUS_STEEL_INGOT, SlimefunItems.TIN_CAN, SlimefunItems.MEDIUM_CAPACITOR, SlimefunItems.TIN_CAN, null, SlimefunItems.ELECTRIC_MOTOR, null}) {
@Override @Override
public int getEnergyConsumption() { public int getEnergyConsumption() {

View File

@ -31,7 +31,7 @@ public final class SlimefunItems {
public static final SlimefunItemStack GRAPPLING_HOOK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GRAPPLING_HOOK; public static final SlimefunItemStack GRAPPLING_HOOK = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.GRAPPLING_HOOK;
public static final SlimefunItemStack SOLAR_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_HELMET; public static final SlimefunItemStack SOLAR_HELMET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.SOLAR_HELMET;
public static final SlimefunItemStack CLOTH = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CLOTH; public static final SlimefunItemStack CLOTH = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CLOTH;
public static final SlimefunItemStack CAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.CAN; public static final SlimefunItemStack CAN = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.TIN_CAN;
public static final SlimefunItemStack NIGHT_VISION_GOGGLES = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NIGHT_VISION_GOGGLES; public static final SlimefunItemStack NIGHT_VISION_GOGGLES = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.NIGHT_VISION_GOGGLES;
public static final SlimefunItemStack FARMER_SHOES = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FARMER_SHOES; public static final SlimefunItemStack FARMER_SHOES = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.FARMER_SHOES;
public static final SlimefunItemStack INFUSED_MAGNET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.INFUSED_MAGNET; public static final SlimefunItemStack INFUSED_MAGNET = io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems.INFUSED_MAGNET;

View File

@ -23,3 +23,4 @@ slimefun:
easter: 復活祭4月 easter: 復活祭4月
birthday: TheBusyBiscuit生誕祭10月26日 birthday: TheBusyBiscuit生誕祭10月26日
halloween: ハロウィン10月31日 halloween: ハロウィン10月31日
androids: プログラム制御アンドロイド

View File

@ -43,3 +43,4 @@ slimefun:
halloween: '할로윈(10월 31일) halloween: '할로윈(10월 31일)
' '
androids: 프로그래밍 가능한 안드로이드

View File

@ -0,0 +1,26 @@
---
slimefun:
weapons: Mga Armas
tools: Mga Tools
items: Mga Aytem
food: Mga Pagkain
basic_machines: Mga Pangunahing Makina
electricity: Enerhiya at Elektrisidad
gps: Mga Makinang GPS-Based
armor: Mga Magkabaluti
magical_items: Mga Mahiwagang Aytem
magical_gadgets: Mga Mahiwagang Gadyet
misc: Mga Samut-Saring Aytem
technical_gadgets: Mga Teknikal Gadyet
resources: Mga Mapagkukunan
cargo: Pamamahala ng Kargamento
tech_misc: Mga Komponent na Teknikal
magical_armor: Mga Mahiwagang Magkabaluti
talismans: Mga Anting-anting (Baitang I)
ender_talismans: Mga Anting-anting na Ender (Baitang II)
christmas: Pasko (Disyembre)
valentines_day: Araw ng mga Puso (14th Pebrero)
easter: Mahal na Araw (Abril)
birthday: Ang Kaarawan ni TheBusyBiscuit (26th Oktubre)
halloween: Undas (31st Oktubre)
androids: Mga Androids na Maipoprograma

View File

@ -155,6 +155,10 @@ messages:
- '&742. The answer is 42.' - '&742. The answer is 42.'
- '&7A Walshy a day will keep the troubles away.' - '&7A Walshy a day will keep the troubles away.'
- '&7Never dig straight down!' - '&7Never dig straight down!'
- '&7Tis but a flesh wound!'
- '&7Always look on the bright side of life!'
- '&7This one was actually a Biscuit and not a Cookie'
- '&7Neon signs are LIT!'
machines: machines:
pattern-not-found: '&eSorry, I could not recognize this Recipe. Please place the Items in the correct pattern into the Dispenser.' pattern-not-found: '&eSorry, I could not recognize this Recipe. Please place the Items in the correct pattern into the Dispenser.'
@ -323,6 +327,7 @@ languages:
ja: 'Japanese' ja: 'Japanese'
fa: 'Persian' fa: 'Persian'
th: 'Thai' th: 'Thai'
tl: 'Tagalog'
ro: 'Romanian' ro: 'Romanian'
bg: 'Bulgarian' bg: 'Bulgarian'
ko: 'Korean' ko: 'Korean'
@ -330,4 +335,4 @@ languages:
hr: 'Croatian' hr: 'Croatian'
mk: 'Macedonian' mk: 'Macedonian'
sr: 'Serbian' sr: 'Serbian'
be: 'Belarusian' be: 'Belarusian'

View File

@ -1,238 +1,133 @@
--- ---
android:
scripts:
already-uploaded: "&4このスクリプトはアップロード済みです"
editor: スクリプトエディタ
enter-name:
-
- "&eスクリプトの名前を入力してください"
instructions:
ATTACK_ANIMALS: "&4攻撃&c動物"
ATTACK_ANIMALS_ADULT: "&4攻撃&c動物&7[親]&c"
ATTACK_MOBS: "&4攻撃&cモンスター"
ATTACK_MOBS_ANIMALS: "&4攻撃&cモンスター・動物"
CATCH_FISH: "&b釣り"
CHOP_TREE: "&c伐採・植林"
DIG_DOWN: "&b下を採掘"
DIG_FORWARD: "&b前を採掘"
DIG_UP: "&b上を採掘"
FARM_DOWN: "&b収穫・植え直し&7下方"
FARM_EXOTIC_DOWN: "&bExoticGardenの収穫・植え直し&7下方"
FARM_EXOTIC_FORWARD: "&bExoticGardenの収穫・植え直し"
FARM_FORWARD: "&b収穫・植え直し"
GO_DOWN: "&7下へ移動"
GO_FORWARD: "&7前へ移動"
GO_UP: "&7上へ移動"
INTERFACE_FUEL: "&c燃料をInterfaceから取り出す"
INTERFACE_ITEMS: "&9所持アイテムをInterfaceに入れる"
MOVE_AND_DIG_DOWN: "&b下へ移動・採掘"
MOVE_AND_DIG_FORWARD: "&b前へ移動・採掘"
MOVE_AND_DIG_UP: "&b上へ移動・採掘"
REPEAT: "&9繰り返し"
START: "&2開始"
TURN_LEFT: "&7左へ旋回"
TURN_RIGHT: "&7右へ旋回"
WAIT: "&e0.5秒待機"
rating:
already: "&4このスクリプトは評価済みです"
own: "&4自身のスクリプトは評価できません"
uploaded:
- "&bアップロード中…"
- "&aスクリプトのアップロード完了"
started: "&7アンドロイド動作開始"
stopped: "&7アンドロイド動作停止"
anvil:
not-working: "&4Slimefunアイテムは金床を利用できません"
backpack:
already-open: "&cこのバックパックはどこかで使用中です"
no-stack: "&cバックパックはスタックされていると使用できません"
commands: commands:
help: コマンドの使い方を表示
cheat: Slimefunガイドをチートモードで開く cheat: Slimefunガイドをチートモードで開く
give: 指定したプレイヤーにSlimefunアイテムを与える give: 指定したプレイヤーにSlimefunアイテムを与える
guide: Slimefunガイドを取得 guide: Slimefunガイドを取得
help: コマンドの使い方を表示 timings: サーバの負荷状況を表示
teleporter: 指定したプレイヤーのウェイポイントを表示
versions: バージョンについて
search: Slimefunガイド内を検索
open_guide: Slimefunガイドを開く open_guide: Slimefunガイドを開く
stats: プレイヤー情報を表示
research: research:
description: 指定したプレイヤーのリサーチ状況を操作 description: 指定したプレイヤーのリサーチ状況を操作
reset: "&c%player%のリサーチ状況を初期化しました" reset: "&c%player%のリサーチ状況を初期化しました"
reset-target: "&cリサーチ状況が初期化されました" reset-target: "&cリサーチ状況が初期化されました"
search: Slimefunガイド内を検索
stats: プレイヤー情報を表示
teleporter: 指定したプレイヤーのウェイポイントを表示
timings: サーバの負荷状況を表示
versions: バージョンについて
backpack: backpack:
description: 生成済みのバックパックを取り出します description: 生成済みのバックパックを取り出します
invalid-id: "&4IDは非負整数にしてください" invalid-id: "&4IDは非負整数にしてください"
player-never-joined: "&4その名前のプレイヤーが見つかりません" player-never-joined: "&4その名前のプレイヤーが見つかりません"
backpack-does-not-exist: "&4指定したバックパックは存在しません" backpack-does-not-exist: "&4指定したバックパックは存在しません"
restored-backpack-given: "&aバックパックが返還されました" restored-backpack-given: "&aバックパックが返還されました"
gps:
deathpoint: "&4死亡地点 &7%date%"
geo:
scan-required: "&4惑星スキャンが必要です&cGEO-Scannerでスキャンしてください"
insufficient-complexity:
- "&4GPSネットワークの複雑さ不足: &c%complexity%"
- "&4a) GPSネットワークをセットアップしていない"
- "&4b) GPSネットワークの複雑さが不足している"
waypoint:
added: "&a新しいウェイポイントを登録しました"
max: "&4ウェイポイント数の上限に到達しています"
new: "&eウェイポイント名をチャットで入力してください&7カラーコード対応"
guide: guide:
back: search:
guide: Slimefunガイドへ戻る message: "&b検索ワードをチャットで入力してください"
settings: 設定画面へ戻る name: "&7検索…"
title: 戻る tooltip: "&bクリックでアイテムの検索"
inventory: '検索結果: %item%'
lore:
- "&b何について検索しますか"
- "&7検索ワードをチャットで入力してください"
cheat: cheat:
no-multiblocks: "&4マルチブロックは取得できません" no-multiblocks: "&4マルチブロックは取得できません"
credits:
commit: Commit
commits: Commits
profile-link: クリックでGitHubのプロファイルを開く
roles:
developer: "&6Developer"
resourcepack: "&cResourcepack Artist"
translator: "&9Translator"
wiki: "&3Wiki Editor"
languages: languages:
updated: "&a言語設定を変更しました: &b%lang%"
translations:
name: "&a他の言語をお探しですか"
lore: クリックで他の言語に翻訳する
select: クリックでこの言語を選択 select: クリックでこの言語を選択
select-default: クリックでデフォルトを選択 select-default: クリックでデフォルトを選択
selected-language: '選択中の言語:' selected-language: '選択中の言語:'
translations: title:
lore: クリックで他の言語に翻訳する main: Slimefunガイド
name: "&a他の言語をお探しですか" settings: 設定・情報
updated: "&a言語設定を変更しました: &b%lang%" languages: 言語の選択
credits: Slimefun4 開発者
wiki: Slimefun4 Wiki
addons: Slimefun4 アドオン
bugs: バグ報告
source: ソースコード
credits:
commit: Commit
commits: Commits
roles:
developer: "&6Developer"
wiki: "&3Wiki Editor"
resourcepack: "&cResourcepack Artist"
translator: "&9Translator"
profile-link: クリックでGitHubのプロファイルを開く
pages:
previous: 前のページ
next: 次のページ
tooltips:
open-category: クリックで開く
versions-notice: バグ報告をお願いします!
wiki: このアイテムを公式Wikiで確認する
recipes:
machine: 使用可能なレシピ
miner: 採掘可能な資源
generator: 使用可能な燃料
gold-pan: 入手可能な資源
back:
title: 戻る
guide: Slimefunガイドへ戻る
settings: 設定画面へ戻る
locked: ロック中 locked: ロック中
locked-category: locked-category:
- このカテゴリを開放するには - このカテゴリを開放するには
- 以下のカテゴリの全アイテムを - 以下のカテゴリの全アイテムを
- リサーチしてください - リサーチしてください
pages:
next: 次のページ
previous: 前のページ
search:
inventory: '検索結果: %item%'
lore:
- "&b何について検索しますか"
- "&7検索ワードをチャットで入力してください"
message: "&b検索ワードをチャットで入力してください"
name: "&7検索…"
tooltip: "&bクリックでアイテムの検索"
title:
addons: Slimefun4 アドオン
bugs: バグ報告
credits: Slimefun4 開発者
languages: 言語の選択
main: Slimefunガイド
settings: 設定・情報
source: ソースコード
wiki: Slimefun4 Wiki
tooltips:
open-category: クリックで開く
recipes:
generator: 使用可能な燃料
gold-pan: 入手可能な資源
machine: 使用可能なレシピ
miner: 採掘可能な資源
versions-notice: バグ報告をお願いします!
wiki: このアイテムを公式Wikiで確認する
inventory:
no-access: "&4アクセス権がありません"
languages:
af: アフリカーンス語
ar: アラビア語
be: ベラルーシ語
bg: ブルガリア語
cs: チェコ語
da: デンマーク語
de: ドイツ語
default: サーバデフォルト
el: ギリシャ語
en: 英語
es: スペイン語
fa: ペルシア語
fi: フィンランド語
fr: フランス語
he: ヘブライ語
hr: クロアチア語
hu: ハンガリー語
id: インドネシア語
it: イタリア語
ja: 日本語
ko: 韓国語
lv: ラトビア語
mk: マケドニア語
ms: マレー語
nl: オランダ語
'no': ノルウェー語
pl: ポーランド語
pt: ポルトガル語(ポルトガル)
pt-BR: ポルトガル語(ブラジル)
ro: ルーマニア語
ru: ロシア語
sk: スロバキア語
sr: セルビア語
sv: スウェーデン語
th: タイ語
tr: トルコ語
uk: ウクライナ語
vi: ベトナム語
zh-CN: 中国語(中国)
zh-TW: 中国語(台湾)
machines:
ANCIENT_ALTAR:
not-enough-pedestals: "&4祭壇にAncient Pedestalが不足しています &c(%pedestals% / 8)"
unknown-catalyst: "&4不明な素材です&c正しいレシピを使用してください"
unknown-recipe: "&4不明なレシピです&c正しいレシピを使用してください"
ANCIENT_PEDESTAL:
obstructed: "&4Ancient Pedestalが塞がれています&c上のブロックを破壊してください"
CARGO_NODES:
must-be-placed: "&4チェストや機械に対して設置してください"
ELEVATOR:
click-to-teleport: "&eクリック&7でこの階に移動:"
current-floor: "&e現在の階:"
enter-name: "&7指定したい階の名前をチャットで入力してください&rカラーコード対応"
named: "&2階の名前を変更しました: &r%floor%"
no-destinations: "&4他の階が見つかりません"
pick-a-floor: "&3- 行先の選択 -"
full-inventory: "&eインベントリが一杯です"
GPS_CONTROL_PANEL:
title: GPSコントロールパネル
transmitters: GPS送信機一覧
waypoints: ウェイポイント一覧
HOLOGRAM_PROJECTOR:
enter-text: "&7指定したい文字列をチャットに入力してください&rカラーコード対応"
inventory-title: ホログラムエディタ
ignition-chamber-no-flint: "&cIgnition Chamberに火打石と打ち金がありません"
in-use: "&cこのブロックは他のプレイヤーが開いています"
pattern-not-found: "&eレシピが確認できません、アイテムを正しく配置してください"
TELEPORTER:
cancelled: "&4テレポート中断"
gui:
time: 推定時間
title: あなたのウェイポイント
tooltip: クリックでテレポート
invulnerability: "&b&l30秒間の無敵が付与されました"
teleported: "&3テレポート完了"
teleporting: "&3テレポート中…"
unknown-material: "&eアイテムを識別できません、レシピ通りに配置してください"
wrong-item: "&eそのアイテムは識別できません、レシピから正しいアイテムを確認してください"
INDUSTRIAL_MINER:
no-fuel: "&cIndustrial Minerは燃料切れです上のチェストに燃料を補充してください。"
piston-facing: "&cIndustrial Minerのピストンは上向きに設置してください"
piston-space: "&cピストンの可動するスペースが必要です"
destroyed: "&cIndustrial Minerは破壊されました。"
already-running: "&cこのIndustrial Minerは稼働中です"
full-chest: "&cIndustrial Minerのチェストが一杯です"
no-permission: "&4Industrial Minerを使う権限がありません"
finished: "&eIndustrial Minerの稼働完了合計で%ores%個の鉱石を入手しました!"
messages: messages:
cannot-place: "&cこの場所には設置できません" not-researched: "&4知識が不足しています"
diet-cookie: "&e体が軽くなったように感じる…" not-enough-xp: "&4リサーチの遂行に必要な経験値が足りません"
unlocked: '&bリサーチが完了しました &7"%research%"'
only-players: "&4プレイヤー専用コマンドです"
unknown-player: "&4プレイヤーが見つかりません: &c%player%"
no-permission: "&4権限がありません"
usage: "&4使用法: &c%usage%"
not-online: "&4%player% &cはオンラインではありません"
not-valid-item: "&4%item% &cは正しくないアイテムです"
not-valid-amount: "&4%amount% &cの部分には、正の整数を指定してください"
given-item: "&b%item%を%amount%個与えられました"
give-item: "&b%player%に%item%を%amount%個与えました"
not-valid-research: "&4%research%&cは正しくないリサーチです"
give-research: "&b%player%のリサーチ%research%を完了させました"
hungry: "&c空腹のため使えません"
mode-change: "&b%device%のモード変更: &9%mode%"
disabled-in-world: "&4&lこのワールドでは使用できません" disabled-in-world: "&4&lこのワールドでは使用できません"
disabled-item: "&4&lこのアイテムは無効化されています" disabled-item: "&4&lこのアイテムは無効化されています"
no-tome-yourself: "&c自身の&4Tome of Knowledge&cは使えません"
multimeter: "&bエネルギー残量: &3%stored% &b/ &3%capacity%"
talisman:
anvil: "&a&oタリスマンがツールの損壊を防いだ"
miner: "&a&oタリスマンがドロップを倍にした"
hunter: "&a&oタリスマンがドロップを倍にした"
lava: "&a&oタリスマンが炎上から身を護った"
water: "&a&oタリスマンが水没から身を護った"
angel: "&a&oタリスマンが落下から身を護った"
fire: "&a&oタリスマンが炎上から身を護った"
magician: "&a&oタリスマンが追加エンチャントを付与した"
traveller: "&a&oタリスマンが加速効果を付与した"
warrior: "&a&oタリスマンが肉体を強化した"
knight: "&a&oタリスマンが再生効果を付与した"
whirlwind: "&a&oタリスマンが飛び道具から身を護った"
wizard: "&a&oタリスマンが高レベルの幸運を付与したが、他のエンチャントレベルは下がってしまった"
soulbound-rune:
fail: "&c一度に複数アイテムとのバインディングはできません"
success: "&aアイテムとのバインディングが確立したリスポーン時に当該アイテムは手繰り寄せられます"
research:
start: "&7どこからか古代の知識が聞こえてくる…"
progress: "&b%research%&7に取り組み始めた… &e(%progress%)"
fire-extinguish: "&7消火しました" fire-extinguish: "&7消火しました"
cannot-place: "&cこの場所には設置できません"
no-pvp: "&cpvpが許可されているワールドでのみ利用できます"
radiation: "&4多量に被ばくしている &c放射性物質を捨てるか、 Hazmat防具一式を装備しよう"
opening-guide: "&bSlimefunガイドを開いている途中です、少々お待ちください…"
opening-backpack: "&bバックパックを開いている途中です、少々お待ちください…"
no-iron-golem-heal: "&c鉄インゴットではないので、アイアンゴーレムの回復には使えません"
link-prompt: "&eクリックで開く:"
diet-cookie: "&e体が軽くなったように感じる…"
fortune-cookie: fortune-cookie:
- "&7フォーチュンクッキー工場に囚われたの、助けて" - "&7フォーチュンクッキー工場に囚われたの、助けて"
- "&7あなたは明日死ぬでしょう… クリーパーによって…" - "&7あなたは明日死ぬでしょう… クリーパーによって…"
@ -244,51 +139,161 @@ messages:
- "&7答えは……「42」です" - "&7答えは……「42」です"
- "&7Walshyさえいれば、1日だけ全てうまくいきます" - "&7Walshyさえいれば、1日だけ全てうまくいきます"
- "&7直下掘りしないようにね" - "&7直下掘りしないようにね"
give-item: "&b%player%に%item%を%amount%個与えました" - "&7これはちょっとした切り傷です"
given-item: "&b%item%を%amount%個与えられました" - "&7常に前向きに生きていこう"
give-research: "&b%player%のリサーチ%research%を完了させました" - "&7これはビスケットなんかではなくクッキーに違いない"
hungry: "&c空腹のため使えません" - "&7ネオンサインが眩しい"
link-prompt: "&eクリックで開く:" machines:
mode-change: "&b%device%のモード変更: &9%mode%" pattern-not-found: "&eレシピが確認できません、アイテムを正しく配置してください"
multimeter: "&bエネルギー残量: &3%stored% &b/ &3%capacity%" unknown-material: "&eアイテムを識別できません、レシピ通りに配置してください"
no-iron-golem-heal: "&c鉄インゴットではないので、アイアンゴーレムの回復には使えません" wrong-item: "&eそのアイテムは識別できません、レシピから正しいアイテムを確認してください"
no-permission: "&4権限がありません" full-inventory: "&eインベントリが一杯です"
no-pvp: "&cpvpが許可されているワールドでのみ利用できます" in-use: "&cこのブロックは他のプレイヤーが開いています"
not-enough-xp: "&4リサーチの遂行に必要な経験値が足りません" ignition-chamber-no-flint: "&cIgnition Chamberに火打石と打ち金がありません"
no-tome-yourself: "&c自身の&4Tome of Knowledge&cは使えません" ANCIENT_ALTAR:
not-online: "&4%player% &cはオンラインではありません" not-enough-pedestals: "&4祭壇にAncient Pedestalが不足しています &c(%pedestals% / 8)"
not-researched: "&4知識が不足しています" unknown-catalyst: "&4不明な素材です&c正しいレシピを使用してください"
not-valid-amount: "&4%amount% &cの部分には、正の整数を指定してください" unknown-recipe: "&4不明なレシピです&c正しいレシピを使用してください"
not-valid-item: "&4%item% &cは正しくないアイテムです" ANCIENT_PEDESTAL:
not-valid-research: "&4%research%&cは正しくないリサーチです" obstructed: "&4Ancient Pedestalが塞がれています&c上のブロックを破壊してください"
only-players: "&4プレイヤー専用コマンドです" HOLOGRAM_PROJECTOR:
opening-backpack: "&bバックパックを開いている途中です、少々お待ちください…" enter-text: "&7指定したい文字列をチャットに入力してください&rカラーコード対応"
opening-guide: "&bSlimefunガイドを開いている途中です、少々お待ちください…" inventory-title: ホログラムエディタ
radiation: "&4多量に被ばくしている &c放射性物質を捨てるか、 Hazmat防具一式を装備しよう" ELEVATOR:
research: no-destinations: "&4他の階が見つかりません"
progress: "&b%research%&7に取り組み始めた… &e(%progress%)" pick-a-floor: "&3- 行先の選択 -"
start: "&7どこからか古代の知識が聞こえてくる…" current-floor: "&e現在の階:"
soulbound-rune: click-to-teleport: "&eクリック&7でこの階に移動:"
fail: "&c一度に複数アイテムとのバインディングはできません" enter-name: "&7指定したい階の名前をチャットで入力してください&rカラーコード対応"
success: "&aアイテムとのバインディングが確立したリスポーン時に当該アイテムは手繰り寄せられます" named: "&2階の名前を変更しました: &r%floor%"
talisman: TELEPORTER:
angel: "&a&oタリスマンが落下から身を護った" teleporting: "&3テレポート中…"
anvil: "&a&oタリスマンがツールの損壊を防いだ" teleported: "&3テレポート完了"
fire: "&a&oタリスマンが炎上から身を護った" cancelled: "&4テレポート中断"
hunter: "&a&oタリスマンがドロップを倍にした" invulnerability: "&b&l30秒間の無敵が付与されました"
knight: "&a&oタリスマンが再生効果を付与した" gui:
lava: "&a&oタリスマンが炎上から身を護った" title: あなたのウェイポイント
magician: "&a&oタリスマンが追加エンチャントを付与した" tooltip: クリックでテレポート
miner: "&a&oタリスマンがドロップを倍にした" time: 推定時間
traveller: "&a&oタリスマンが加速効果を付与した" CARGO_NODES:
warrior: "&a&oタリスマンが肉体を強化した" must-be-placed: "&4チェストや機械に対して設置してください"
water: "&a&oタリスマンが水没から身を護った" GPS_CONTROL_PANEL:
whirlwind: "&a&oタリスマンが飛び道具から身を護った" title: GPSコントロールパネル
wizard: "&a&oタリスマンが高レベルの幸運を付与したが、他のエンチャントレベルは下がってしまった" transmitters: GPS送信機一覧
unknown-player: "&4プレイヤーが見つかりません: &c%player%" waypoints: ウェイポイント一覧
unlocked: '&bリサーチが完了しました &7"%research%"' INDUSTRIAL_MINER:
usage: "&4使用法: &c%usage%" no-fuel: "&cIndustrial Minerは燃料切れです上のチェストに燃料を補充してください。"
miner: piston-facing: "&cIndustrial Minerのピストンは上向きに設置してください"
no-ores: "&e周辺には鉱石が見つかりませんでした" piston-space: "&cピストンの可動するスペースが必要です"
destroyed: "&cIndustrial Minerは破壊されました。"
already-running: "&cこのIndustrial Minerは稼働中です"
full-chest: "&cIndustrial Minerのチェストが一杯です"
no-permission: "&4Industrial Minerを使う権限がありません"
finished: "&eIndustrial Minerの稼働完了合計で%ores%個の鉱石を入手しました!"
anvil:
not-working: "&4Slimefunアイテムは金床を利用できません"
backpack:
already-open: "&cこのバックパックはどこかで使用中です"
no-stack: "&cバックパックはスタックされていると使用できません"
workbench: workbench:
not-enhanced: "&4Slimefunアイテムは作業台を利用できません" not-enhanced: "&4Slimefunアイテムは作業台を利用できません"
gps:
deathpoint: "&4死亡地点 &7%date%"
waypoint:
new: "&eウェイポイント名をチャットで入力してください&7カラーコード対応"
added: "&a新しいウェイポイントを登録しました"
max: "&4ウェイポイント数の上限に到達しています"
insufficient-complexity:
- "&4GPSネットワークの複雑さ不足: &c%complexity%"
- "&4a) GPSネットワークをセットアップしていない"
- "&4b) GPSネットワークの複雑さが不足している"
geo:
scan-required: "&4惑星スキャンが必要です&cGEO-Scannerでスキャンしてください"
inventory:
no-access: "&4アクセス権がありません"
android:
started: "&7アンドロイド動作開始"
stopped: "&7アンドロイド動作停止"
scripts:
already-uploaded: "&4このスクリプトはアップロード済みです"
instructions:
START: "&2開始"
REPEAT: "&9繰り返し"
WAIT: "&e0.5秒待機"
GO_FORWARD: "&7前へ移動"
GO_UP: "&7上へ移動"
GO_DOWN: "&7下へ移動"
TURN_LEFT: "&7左へ旋回"
TURN_RIGHT: "&7右へ旋回"
DIG_UP: "&b上を採掘"
DIG_FORWARD: "&b前を採掘"
DIG_DOWN: "&b下を採掘"
MOVE_AND_DIG_UP: "&b上へ移動・採掘"
MOVE_AND_DIG_FORWARD: "&b前へ移動・採掘"
MOVE_AND_DIG_DOWN: "&b下へ移動・採掘"
ATTACK_MOBS_ANIMALS: "&4攻撃&cモンスター・動物"
ATTACK_MOBS: "&4攻撃&cモンスター"
ATTACK_ANIMALS: "&4攻撃&c動物"
ATTACK_ANIMALS_ADULT: "&4攻撃&c動物&7[親]&c"
CHOP_TREE: "&c伐採・植林"
CATCH_FISH: "&b釣り"
FARM_FORWARD: "&b収穫・植え直し"
FARM_DOWN: "&b収穫・植え直し&7下方"
FARM_EXOTIC_FORWARD: "&bExoticGardenの収穫・植え直し"
FARM_EXOTIC_DOWN: "&bExoticGardenの収穫・植え直し&7下方"
INTERFACE_ITEMS: "&9所持アイテムをInterfaceに入れる"
INTERFACE_FUEL: "&c燃料をInterfaceから取り出す"
enter-name:
-
- "&eスクリプトの名前を入力してください"
uploaded:
- "&bアップロード中…"
- "&aスクリプトのアップロード完了"
rating:
own: "&4自身のスクリプトは評価できません"
already: "&4このスクリプトは評価済みです"
editor: スクリプトエディタ
languages:
default: サーバデフォルト
en: 英語
de: ドイツ語
fr: フランス語
it: イタリア語
es: スペイン語
pl: ポーランド語
sv: スウェーデン語
nl: オランダ語
cs: チェコ語
hu: ハンガリー語
lv: ラトビア語
ru: ロシア語
sk: スロバキア語
zh-TW: 中国語(台湾)
vi: ベトナム語
id: インドネシア語
zh-CN: 中国語(中国)
el: ギリシャ語
he: ヘブライ語
pt: ポルトガル語(ポルトガル)
ar: アラビア語
af: アフリカーンス語
da: デンマーク語
fi: フィンランド語
uk: ウクライナ語
ms: マレー語
'no': ノルウェー語
ja: 日本語
fa: ペルシア語
th: タイ語
ro: ルーマニア語
pt-BR: ポルトガル語(ブラジル)
bg: ブルガリア語
ko: 韓国語
tr: トルコ語
hr: クロアチア語
mk: マケドニア語
sr: セルビア語
be: ベラルーシ語
tl: タガログ語
miner:
no-ores: "&e周辺には鉱石が見つかりませんでした"

View File

@ -0,0 +1,317 @@
---
commands:
help: Ipapakita itong help screen.
cheat: Pinapayagan kang dayain ang mga Aytem sa Slimefun.
give: Nagbibigay ito ng mga Aytem sa Slimefun.
guide: Bibigyan ka nito ng Simefun Guide.
timings: Lag-Info patungkol sa iyong server.
teleporter: Tingnan ang mga Waypoints ng mga Players.
versions: Ipapakita nito ang mga na-install na Addon sa Slimefun.
search: Hahanapin sa Guide ang binigyan na katawagan.
open_guide: Bubuksan nito ang Slimefun's Guide na wala ang libro.
stats: Ipapakita ang hindi karamihan na Estatistika ng Player.
research:
description: Iaunlock/Irereset ang mga Researches para sa Player.
reset: "&cNareset mo ang Knowledge para kay %player%."
reset-target: "&cNareset ang iyong Knowledge."
backpack:
description: Kunin ang isang kopya ng isang umiiral na backpack
invalid-id: "&4Ang id ay dapat na isang hindi negatibong numero!"
player-never-joined: "&4Walang nahanap na manlalaro na may pangalang iyon!"
backpack-does-not-exist: "&4Ang tinukoy na backpack ay hindi umiiral!"
restored-backpack-given: "&aAng iyong backpack ay naibalik at naidagdag sa iyong
imbentaryo!"
guide:
search:
message: "&bAno ang hinahanap mo?"
name: "&7Hanap..."
tooltip: "&bI-click upang maghanap para sa isang item"
inventory: 'Naghahanap para sa: %item%'
cheat:
no-multiblocks: "&4Hindi ka puwedeng mag-daya sa Multiblocks, kailangan mo itong
buoin!"
languages:
updated: "&aNapalitan na ang iyong wika sa: &b%lang%"
translations:
name: "&aMay kulang ba?"
lore: I-click upang magdagdag ng iyong sariling pagsasalin
select: I-click upang piliin ang wikang ito
select-default: I-click upang piliin ang default na wika
selected-language: 'Kasalukuyang pinili:'
title:
main: Slimefun Guide
settings: Mga Settings & Impormasyon
languages: Pumili ng gustong wika.
credits: Ang mga tumulong sa Slimefun4
wiki: Ang Slimefun4 Wiki
addons: Ang mga Addons para sa Slimefun4
bugs: Mga Bug Reports
source: Ang Source Code
credits:
commit: Commit
commits: Mga Commits
roles:
developer: "&6Developer"
wiki: "&3Wiki Editor"
resourcepack: "&cResourcepack Artist"
translator: "&9Translator"
profile-link: I-click upang bisitahin ang kanilang profile sa GitHub
pages:
previous: Nakaraang pahina
next: Susunod na pahina
tooltips:
open-category: I-click upang buksan
versions-notice: Napakahalaga ng mga ito kapag nag-uulat ng mga bug!
wiki: Tingnan ang item na ito sa opisyal na Slimefun Wiki
recipes:
machine: Mga recipe na ginawa sa Makina na ito
miner: Mga mapagkukunan na maaari mong makuha sa Miner na ito
generator: Magagamit na mga uri ng gasolina
gold-pan: Mga mapagkukunan na maaari mong makuha
back:
title: Balik
guide: Bumalik sa Slimefun Guide
settings: Bumalik sa Settings Panel
locked: NAKAKANDADO
locked-category:
- Upang i-unlock ang kategoryang ito
- kailangang i-unlock ang lahat ng mga item mula sa
- sumusunod na mga kategorya
messages:
not-researched: "&4Kulang ang iyong Knowledge upang ito'y maintindihan."
not-enough-xp: "&4Kulang ang iyong XP upang ito'y ma-unlock."
unlocked: '&bNa-unlock mo ang &7"%research%"'
only-players: "&4Ang command na ito ay para lamang sa Players."
unknown-player: "&4Hindi kilala na Player: &c%player%"
no-permission: "&4Wala kang permiso para gawin ito."
usage: "&4Paggamit: &c%usage%"
not-online: "&cHindi online si &4%player%!"
not-valid-item: "&cHindi valid ang &4%item%!"
not-valid-amount: "&cHindi valid ang amount na &4%amount% : dapat ito'y mas mataas
kaysa sa 0!"
given-item: '&bIka''y binigyan ng &a%amount% &7"%item%&7"'
give-item: '&bBinigyan mo si %player% ng &a%amount% &7"%item%&7"'
not-valid-research: "&4%research% &cay hindi valid na Research!"
give-research: '&bBinigyan mo si %player% ng Research &7"%research%&7"'
hungry: "&cIkaw ay sobrang gutom para gawin ito!"
mode-change: "&b%device% mode ay pinalitan ng: &9%mode%"
disabled-in-world: "&4&lDinisable ang Aytem sa world na ito."
disabled-item: "&4&lDinisable ang Aytem na ito! Paano mo ito nakuha?"
no-tome-yourself: "&cHindi mo magagamit ang &4Tome of Knowledge &cpara sa'yo..."
multimeter: "&bTinagong Enerhiya: &3%stored% &b/ &3%capacity%"
talisman:
anvil: "&a&oAng iyong anting-anting ay niligtas ang iyong tool sa pagkasira."
miner: "&a&oNa-doble ang drops dahil sa iyong anting-anting."
hunter: "&a&oNa-doble ang drops dahil sa iyong anting-anting."
lava: "&a&oNiligtas ka ng iyong anting-ating sa iyong pagkamatay sa apoy."
water: "&a&oNiligtas ka ng iyong anting-anting sa pagkalunod."
angel: "&a&oNiligtas ka ng iyong anting-anting sa pagkalaglag."
fire: "&a&oNiligtas ka ng iyong anting-ating sa iyong pagkamatay sa apoy."
magician: "&a&oBinigyan ka ng karagdagang Enchantment dahil sa iyong anting-anting."
traveller: "&a&oBinigyan ka ng anting-anting mo ng Speed Boost!"
warrior: "&a&oBinigyan ka ng anting-anting mo ng Kalakasan nang mga ilang saglit."
knight: "&a&oBinigyan ka ng 5 Seconds of Regeneration galing sa anting-anting
mo."
whirlwind: "&a&oTumilapon ang bala dahil sa iyong anting-anting."
wizard: "&a&oBinigyan ka ng iyong anting-anting na mas magandang Fortune Level
ngunit baka bumaba ang iba mong Enchantment Levels."
soulbound-rune:
fail: "&cMaaari mo lang mabigkis ang isa lang na aytem sa iyong kaluluwa kada
isang beses."
success: "&aNabigkis mo ang aytem na ito sa iyong kaluluwa! Nandito lang ito sa'yo
kapag ika'y namatay."
research:
start: "&7Bumulong ang mga Ancient Spirit sa iyong mga tenga!"
progress: "&7Sinimulan mong malaman ang &b%research% &e(%progress%)"
fire-extinguish: "&7Naibsan mo ang apoy sa'yo."
cannot-place: "&cHindi mo puwedeng ilagay ang block jan!"
no-pvp: "&cBawal makipaglaban dito!"
radiation: "&4Na-expose ka sa nakakamatay na radiation! &cTanggalin ang radioactive
aytem sa iyong inventory o isuot ang kompletong Hazmat Suit!"
opening-guide: "&bBinubuksan ang guide, maaari itong tumagal ng mga ilang segundo..."
opening-backpack: "&bBinubuksan ang backpack, maaari itong tumagal ng mga ilang
segundo..."
no-iron-golem-heal: "&cHindi ito Iron Ingot. Hindi ito ginagamit para gumaling ang
mga Iron Golems!"
link-prompt: "&ePindutin dito:"
diet-cookie: "&eNakakaramdam ka nang gaan sa iyong katawan..."
fortune-cookie:
- "&7Tulungan mo ako, nakulong ako sa Fortune Cookie Factory!"
- "&7Mamamatay ka bukas... dahil sa Creeper."
- "&7Sa ilang punto ng iyong buhay, may mangyayaring masama."
- "&7Sa susunod na linggo, mapapansin mo na hindi pala ito ang totoong mundo, nasa
isang ka palang kompyuter game."
- "&7Sasarap ang lasa ng cookie na ito ng ilang segundo."
- '&7Ang maririnig mo na huling salita ay "PUKSAIN!!!"'
- "&7Kahit anong gawin mo, huwag mong yakapin ang Creeper... Nasubukan ko na ito.
Ang sarap, ngunit hindi ito katumbas ng halaga."
- "&742. Ang sagot ay 42."
- "&7Ang isang Walshy sa isang araw ay maiiwasan ang problema."
- "&7Huwag kang maghukay na diretso pababa!"
machines:
pattern-not-found: "&ePasensiya na, hindi ko maintindihan ang Recipe na ito. Pakilagay
ang mga Aytem sa tamang pattern sa loob ng Dispense."
unknown-material: "&ePasensiya na, hindi ko maintindihan ang Aytem na ito sa Dispenser.
Maglagay ka ng mga alam ko sa Dispenser."
wrong-item: "&ePasensiya na, hindi ko maintindihan ang Aytem na kasama ang ni-right
click mo. Paki-check ang Recipies at tingnan kung anong mga Aytem na puwede mong
gamitin."
full-inventory: "&ePasensiya na, dahil puno na ang aking inventory!"
in-use: "&cAng inventory ng Block na ito ay nakabukas na sa ibang Player."
ignition-chamber-no-flint: "&cKulang ng Flint and Steel ang Ignition Chamber."
ANCIENT_ALTAR:
not-enough-pedestals: "&4Hindi napalibutan ng pedestals ang altar &c(%pedestals%
/ 8)"
unknown-catalyst: "&4Hindi kilala ang Catalyst! &cGamitin na lamang ang tamang
Recipe!"
unknown-recipe: "&4Hindi kilala ang Recipe! &cGamitin na lamang ang tamang Recipe!"
ANCIENT_PEDESTAL:
obstructed: "&4Barado ang Pedestal! &cTanggalin lahat ang mga gamit sa taas ng
pedestal!"
HOLOGRAM_PROJECTOR:
enter-text: "&7I-enter ang gusto mong makita sa Hologram Text galing sa Chat.
&r(Supported ang Color Codes)"
inventory-title: Hologram Editor
ELEVATOR:
no-destinations: "&4Walang nahanap na mga patutunguhan."
pick-a-floor: "&3- Pumili ng palapag -"
current-floor: "&eIto ang sahig na iyong naroroon:"
click-to-teleport: "&ePindutin ito &7para magteleport sa palapag na ito:"
enter-name: "&7I-enter ang gusto mong makita sa Hologram Text galing sa Chat.
&r(Supported ang Color Codes)"
named: "&2Napangalanan na ang floor na: &r%floor%"
TELEPORTER:
teleporting: "&3Teleporting..."
teleported: "&3Teleported!"
cancelled: "&4Na-kansel ang teleportation!"
invulnerability: "&b&lBinigyan ka ng 30 segundo ng Invulnerability!"
gui:
title: Ang iyong mga waypoints
tooltip: I-click para mag-teleport
time: Tinatayang oras
CARGO_NODES:
must-be-placed: "&4Kailangang mailagay ito sa isang chest o makina!"
GPS_CONTROL_PANEL:
title: GPS - Control Panel
transmitters: Transmitter Overview
waypoints: Waypoint Overview
INDUSTRIAL_MINER:
no-fuel: "&cAng iyong Industrial Miner ay naubusan ng gasolina! Ilagay ang iyong
gasolina sa chest."
piston-facing: "&cAng iyong Industrial Miner ay nangangailangan ng mga piston
upang humarap ito pataas!"
piston-space: "&cAng dalawang piston ay kailangang magkaroon ng isang walang laman
na block sa itaas ng mga ito!"
destroyed: "&cAng iyong Industrial Miner ay nawasak."
already-running: "&cAng Industrial Miner na ito ay tumatakbo na!"
full-chest: "&cAng chest ng iyong Industrial Miner ay puno!"
no-permission: "&4Mukhang wala kang pahintulot upang mapatakbo ang isang Industrial
Miner dito!"
finished: "&eTapos na ang iyong Industrial Miner! Nakuha nito ang isang kabuuang
%ores% ore(s)!"
anvil:
not-working: "&4Hindi puwedeng gamitin ang mga Slimefun Aytem sa isang Anvil!"
backpack:
already-open: "&cPasensiya na, ang backpack na ito ay nakabukas na sa ibang lugar!"
no-stack: "&cHindi puwedeng i-stack ang mga Backpack."
workbench:
not-enhanced: "&4Hindi puwedeng gamitin ang mga Slimefun Aytem sa normal na workbench."
gps:
deathpoint: "&4Kinamatayan &7%date%"
waypoint:
new: "&eMangyaring mag-type ng isang pangalan para sa iyong bagong waypoint sa
chat. &7(Supported ang Color Codes!)"
added: "&aTagumpay ang pag-add ng bagong waypoint"
max: "&4Naabot mo na ang maximum amount ng waypoints."
insufficient-complexity:
- "&4Kulang ang GPS Network Complexity: &c%complexity%"
- "&4a) Wala ka pang GPS Network setup."
- "&4b) Hindi pa complex ang iyong GPS Network!"
geo:
scan-required: "&4Kailagan ng GEO-Scan! &cI-scan muna ang chunk na ito gamit ng
GEO-Scanner!"
inventory:
no-access: "&4Hindi ka pinapayagan na i-access ang block na ito."
android:
started: "&7Ang iyong Android ay nagpatuloy sa pagpapatakbo ng script nito."
stopped: "&7Ang iyong Android ay naka-pause sa script na ito."
scripts:
already-uploaded: "&4Na-upload na ang script na ito."
instructions:
START: "&2Simulan ang Script"
REPEAT: "&9Ulitin ang Script"
WAIT: "&eHintay 0.5s"
GO_FORWARD: "&7Umabante"
GO_UP: "&7Pataas"
GO_DOWN: "&7Pababa"
TURN_LEFT: "&7Lumiko pakaliwa"
TURN_RIGHT: "&7Lumiko pakanan"
DIG_UP: "&bMaghukay pataas"
DIG_FORWARD: "&bMaghukay paabante"
DIG_DOWN: "&bMaghukay pababa"
MOVE_AND_DIG_UP: "&bGumalaw at Maghukay pataas"
MOVE_AND_DIG_FORWARD: "&bGumalaw at Maghukay paabante"
MOVE_AND_DIG_DOWN: "&bGumalaw at Maghukay pababa"
ATTACK_MOBS_ANIMALS: "&4Atake &c(Mga matatapang na mobs at mga hayop)"
ATTACK_MOBS: "&4Atake &c(Mga matatapang na mobs)"
ATTACK_ANIMALS: "&4Atake &c(Mga hayop)"
ATTACK_ANIMALS_ADULT: "&4Atake &c(Mga hayop &7[Matanda]&c)"
CHOP_TREE: "&cTumaga at Magtanim"
CATCH_FISH: "&bMaghuli ng Isda"
FARM_FORWARD: "&bMag-ani at Magtanim"
FARM_DOWN: "&bMag-ani at Magtanim &7(Block sa ilalim)"
FARM_EXOTIC_FORWARD: "&bMasulong na Mag-ani at Magtanim"
FARM_EXOTIC_DOWN: "&bMasulong na Mag-ani at Magtanim &7(Block sa ilalim)"
INTERFACE_ITEMS: "&9Itulak ang Mga nilalaman ng Imbentaryo sa Interface"
INTERFACE_FUEL: "&cItulak ang fuel galing sa Interface"
enter-name:
-
- "&eMangyaring mag-type ng isang pangalan para sa iyong script"
uploaded:
- "&bUploading..."
- "&aTagumpay ang pag-upload ng script!"
rating:
own: "&4Hindi puwedeng i-rate ang sarili mong script!"
already: "&4Nakapag-iwan ka na ng Rating para sa script na ito!"
editor: Script Editor
languages:
default: Server-Default
en: Ingles
de: Aleman
fr: Pranses
it: Italyano
es: Espanyol
pl: Polish
sv: Suweko
nl: Dutch
cs: Czech
hu: Hungarian
lv: Latvian
ru: Ruso
sk: Slovak
zh-TW: Intsik (Taiwan)
vi: Vietnamese
id: Indonesian
zh-CN: Intsik (China)
el: Greek
he: Hebreo
ar: Arabe
af: Mga Afrikaans
da: Danish
fi: Finnish
uk: Ukranian
ms: Malay
'no': Norwegian
ja: Hapon
fa: Persian
th: Thai
ro: Romanian
pt: Portugues (Portugal)
pt-BR: Portugues (Brazil)
bg: Bulgarian
ko: Koreano
tr: Turko
hr: Croatian
mk: Macedonian
sr: Serbian
be: Belarusian

View File

@ -0,0 +1,158 @@
---
slimefun:
multiblock:
name: Multiblock
lore:
- Buuin ang ipinakita na istraktura.
- Hindi ito crafted.
enhanced_crafting_table:
name: Enhanced Crafting Table
lore:
- I-craft ang item na ito tulad ng ipinakita
- sa Enhanced Crafting Table.
- Ang isang normal na Crafting Table ay hindi sapat!
armor_forge:
name: Armor Forge
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Armor Forge.
grind_stone:
name: Grind Stone
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Grind Stone.
smeltery:
name: Smeltery
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Smeltery.
ore_crusher:
name: Ore Crusher
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ng Ore Crusher.
mob_drop:
name: Mob Drop
lore:
- Patayin ang mob na iyon upang
- makuha ang aytem na ito.
gold_pan:
name: Gold Pan
lore:
- Gamitin ang Gold Pan upang
- makuha ang aytem na ito.
compressor:
name: Compressor
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Compressor.
pressure_chamber:
name: Pressure Chamber
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Pressure Chamber
ore_washer:
name: Ore Washer
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Ore Washer
juicer:
name: Juicer
lore:
- I-craft ang Juice na ito tulad ng ipinakita
- gamit ang Juicer.
magic_workbench:
name: Magic Workbench
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Magic Workbench.
ancient_altar:
name: Ancient Altar
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Ancient Altar.
- Hanapin ang Ancient Altar para sa karagdagang Impormasyon.
heated_pressure_chamber:
name: Heated Pressure Chamber
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Heated Pressure Chamber.
food_fabricator:
name: Food Fabricator
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Food Fabricator.
food_composter:
name: Food Composter
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Food Composter.
freezer:
name: Freezer
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Freezer.
geo_miner:
name: GEO Miner
lore:
- Ang item na ito ay maaaring tipunin
- sa pamamagitan ng paggamit ng isang GEO Miner.
nuclear_reactor:
name: Nuclear Reactor
lore:
- Ang Item na ito ay isang byproduct
- ng pagpapatakbo ng isang Nuclear Reactor.
oil_pump:
name: Oil Pump
lore:
- Ang item na ito ay maaaring tipunin
- sa pamamagitan ng paggamit ng isang Oil Pump.
pickaxe_of_containment:
name: Pickaxe of Containment
lore:
- Maaaring makuha ang block na ito
- sa pamamagitan ng pagmimina ng Spawner kasama
- ang Pickaxe of Containment.
refinery:
name: Refinery
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Refinery.
minecraft:
shaped:
name: Shaped Crafting Recipe
lore:
- I-craft ang item na ito tulad ng ipinakita
- sa normal na Crafting Table.
- Mahalaga ang hugis.
shapeless:
name: Shapeless Crafting Recipe
lore:
- I-craft ang item na ito tulad ng ipinakita
- sa normal na Crafting Table.
- Shapeless ang Recipe na ito.
furnace:
name: Furnace Recipe
lore:
- Lutuin ang item na ito sa isang Furnace
- upang likhain ang iyong ninanais na item.
blasting:
name: Blast Furnace Recipe
lore:
- Lutuin ang item na ito sa isang Blast Furnace
- upang likhain ang iyong ninanais na item.
smoking:
name: Smoker Recipe
lore:
- Lutuin ang item na ito sa isang Smoker
- upang likhain ang iyong ninanais na item.
campfire:
name: Campfire Recipe
lore:
- Lutuin ang item na ito sa isang Campfire
- upang likhain ang iyong ninanais na item.
stonecutting:
name: Stonecutter Recipe
lore:
- I-craft ang item na ito tulad ng ipinakita
- gamit ang Stonecutter.

View File

@ -233,4 +233,5 @@ slimefun:
tree_growth_accelerator: Faster Trees tree_growth_accelerator: Faster Trees
industrial_miner: Industrial Mining industrial_miner: Industrial Mining
advanced_industrial_miner: Better Mining advanced_industrial_miner: Better Mining
magic_pills: De-Zombification magical_zombie_pills: De-Zombification
auto_brewer: Industrial Brewery

View File

@ -1,236 +1,238 @@
--- ---
slimefun: slimefun:
24k_gold_block: 黄金の国 walking_sticks: 転ばぬ先の杖
advanced_android: 強化アンドロイド portable_crafter: どこでもクラフト
advanced_butcher_android: 強化屠殺アンドロイド fortune_cookie: フォーチュンクッキー
advanced_circuit_board: 発展電子回路 portable_dustbin: ポイ捨て禁止
advanced_electric_smeltery: 電気精錬所Ⅱ meat_jerky: ジャーキー
advanced_farmer_android: 強化農耕アンドロイド
advanced_fisherman_android: 強化釣師アンドロイド
advanced_output_node: カーゴ配送強化
alloys: 合金Ⅰ
ancient_altar: 古の祭壇
ancient_runes: 太古のルーン
android_interfaces: アンドロイドインタフェース
android_memory_core: メモリーコア
angel_talisman: 天使のタリスマン
animal_growth_accelerator: 動物成長促進術
anvil_talisman: 金床のタリスマン
armored_jetboots: アーマードジェットブーツ
armored_jetpack: アーマードジェットパック
armor_forge: 防具作成術 armor_forge: 防具作成術
auto_anvil: 電動修理術 glowstone_armor: グロウストーン防具
auto_breeder: 自動交配 lumps: 魔法の欠片
auto_drier: 乾燥機 ender_backpack: どこでもエンダーチェスト
auto_enchanting: エンチャント操作術 ender_armor: エンダー防具
automated_crafting_chamber: 自動クラフト magic_eye_of_ender: 魔法のエンダーアイ
automated_panning_machine: 自動パンニング magic_sugar: 魔法の砂糖
automatic_ignition_chamber: 自動再点火室 monster_jerky: モンスタージャーキー
backpacks: バックパックⅠ slime_armor: スライム防具Ⅰ
sword_of_beheading: 処刑人の剣
basic_circuit_board: 基本電子回路 basic_circuit_board: 基本電子回路
advanced_circuit_board: 発展電子回路
smeltery: 精錬所
steel: スチールの時代
misc_power_items: エネルギーコア
battery: はじめてのバッテリー battery: はじめてのバッテリー
better_carbon_press: カーボンプレスⅡ steel_plate: スチールの加工
better_crop_growth_accelerator: 作物成長促進術Ⅱ steel_thruster: 推進機
better_electric_crucibles: 電気るつぼⅡ parachute: パラシュート
better_electric_furnace: 電気炉Ⅱ grappling_hook: グラップリングフック
better_food_fabricator: オーガニック食品生成所 jetpacks: ジェットパック
better_freezer: 冷凍庫 multitools: マルチツール
better_gps_transmitters: 中級GPS送信機 solar_panel_and_helmet: 太陽光の利用
better_heated_pressure_chamber: 加熱圧力室Ⅱ elemental_staff: 属性の杖
better_solar_generators: 強化太陽光発電所 grind_stone: 石臼
bio_reactor: バイオマス発電所
blade_of_vampires: 吸血鬼の剣
blistering_ingots: 猛烈な放射能
block_placer: ブロック設置機
boosted_uranium: ウラン235
boots_of_the_stomper: 衝撃拡散のブーツ
bound_armor: ソウルバウンド防具
bound_backpack: ソウルバウンドバックパック
bound_tools: ソウルバウンド道具
bound_weapons: ソウルバウンド武器
bronze: ブロンズの時代
butcher_androids: 屠殺アンドロイド
cactus_armor: サボテン防具 cactus_armor: サボテン防具
capacitors: キャパシタⅠ gold_pan: パンニング
carbonado: ブラックダイヤモンド magical_book_cover: 魔法の本の作り方
carbonado_furnace: 強化かまどⅤ slimefun_metals: 新たな金属
carbonado_tools: 上級ガジェット ore_crusher: 鉱石粉砕
carbon_press: カーボンプレスⅠ bronze: ブロンズの時代
cargo_basics: カーゴ素材 alloys: 合金Ⅰ
cargo_nodes: カーゴ運搬術
chainmail_armor: チェーンメイル防具
charging_bench: 充電装置
coal_generator: 火力発電所
cobalt_pickaxe: コバルトのピッケル
combustion_reactor: 燃焼発電所
common_talisman: タリスマン
composter: コンポスター
compressor_and_carbon: 石炭紀 compressor_and_carbon: 石炭紀
cooler: 満腹感 gilded_iron_armor: 金メッキ防具
copper_wire: ジュール熱 synthetic_diamond: 合成ダイヤモンド
crop_growth_accelerator: 作物成長促進術Ⅰ pressure_chamber: 圧力室
crucible: るつぼ synthetic_sapphire: 合成サファイア
crushed_ore: 鉱石の洗浄
damascus_steel: ダマスカス鋼の時代 damascus_steel: ダマスカス鋼の時代
damascus_steel_armor: ダマスカス鋼防具 damascus_steel_armor: ダマスカス鋼防具
diet_cookie: ダイエットクッキー reinforced_alloy: 強化鋼の時代
duct_tape: ダクトテープ carbonado: ブラックダイヤモンド
electric_crucible: 電気るつぼⅠ magic_workbench: 魔法の作業台
electric_furnaces: 電気炉Ⅰ wind_staff: 風属性の杖
electric_ingot_machines: 自動インゴット作成Ⅰ reinforced_armor: 強化鋼防具
ore_washer: 鉱石洗浄
gold_carats: 純金
silicon: シリコンバレー
fire_staff: 火属性の杖
smelters_pickaxe: 精錬のピッケル
common_talisman: タリスマン
anvil_talisman: 金床のタリスマン
miner_talisman: 採掘者のタリスマン
hunter_talisman: 狩人のタリスマン
lava_talisman: 溶岩歩行のタリスマン
water_talisman: 水中呼吸のタリスマン
angel_talisman: 天使のタリスマン
fire_talisman: 消防士のタリスマン
lava_crystal: 溶岩のクリスタル
magician_talisman: 奇術師のタリスマン
traveller_talisman: 探索者のタリスマン
warrior_talisman: 戦士のタリスマン
knight_talisman: 騎士のタリスマン
gilded_iron: 金メッキ
synthetic_emerald: 合成エメラルド
chainmail_armor: チェーンメイル防具
whirlwind_talisman: 旋風のタリスマン
wizard_talisman: 魔術師のタリスマン
lumber_axe: 木こりの斧
hazmat_suit: 危険物取扱装備
uranium: 放射性物質
crushed_ore: 鉱石の洗浄
redstone_alloy: レッドストーン合金
carbonado_tools: 上級ガジェット
first_aid: 応急手当
gold_armor: 純金防具
night_vision_googles: 暗視ゴーグル
pickaxe_of_containment: 魂封じのピッケル
hercules_pickaxe: ヘラクレスのピッケル
table_saw: テーブルソー
slime_steel_armor: スライム防具Ⅱ
blade_of_vampires: 吸血鬼の剣
water_staff: 水属性の杖
24k_gold_block: 黄金の国
composter: コンポスター
farmer_shoes: 農家の靴
explosive_tools: 爆発のピッケル
automated_panning_machine: 自動パンニング
boots_of_the_stomper: 衝撃拡散のブーツ
pickaxe_of_the_seeker: 探索のピッケル
backpacks: バックパックⅠ
woven_backpack: バックパックⅡ
crucible: るつぼ
gilded_backpack: バックパックⅢ
armored_jetpack: アーマードジェットパック
ender_talismans: エンダータリスマン
nickel_and_cobalt: 合金Ⅱ
magnet: 磁性金属
infused_magnet: 魔法の磁石
cobalt_pickaxe: コバルトのピッケル
essence_of_afterlife: ネクロマンシー
bound_backpack: ソウルバウンドバックパック
jetboots: ジェットブーツ
armored_jetboots: アーマードジェットブーツ
seismic_axe: 地震の斧
pickaxe_of_vein_mining: 鉱脈のピッケル
bound_weapons: ソウルバウンド武器
bound_tools: ソウルバウンド道具
bound_armor: ソウルバウンド防具
juicer: ジュース
repaired_spawner: スポナーの修理士
enhanced_furnace: 強化かまどⅠ
more_enhanced_furnaces: 強化かまどⅡ
high_tier_enhanced_furnaces: 強化かまどⅢ
reinforced_furnace: 強化かまどⅣ
carbonado_furnace: 強化かまどⅤ
electric_motor: ヒートアップ electric_motor: ヒートアップ
block_placer: ブロック設置機
scroll_of_dimensional_teleposition: 逆転劇
special_bows: ロビンフッド
tome_of_knowledge_sharing: 共有知識
flask_of_knowledge: 経験値備蓄術
hardened_glass: 耐爆ガラス
golden_apple_juice: 金のジュース
cooler: 満腹感
ancient_altar: 古の祭壇
wither_proof_obsidian: 耐ウィザー黒曜石
ancient_runes: 太古のルーン
special_runes: 古雅なルーン
infernal_bonemeal: 地獄の骨粉
rainbow_blocks: 虹ブロック
infused_hopper: 魔法のホッパー
wither_proof_glass: 耐ウィザーガラス
duct_tape: ダクトテープ
plastic_sheet: プラスチック
android_memory_core: メモリーコア
oil: 油田
fuel: 精製
hologram_projector: ホログラム
capacitors: キャパシタⅠ
high_tier_capacitors: キャパシタⅡ
solar_generators: 太陽光発電所
electric_furnaces: 電気炉Ⅰ
electric_ore_grinding: 粉砕粉砕 electric_ore_grinding: 粉砕粉砕
electric_press: 電動プレス heated_pressure_chamber: 加熱圧力室Ⅰ
electric_smeltery: 電気精錬所Ⅰ coal_generator: 火力発電所
elemental_staff: 属性の杖 bio_reactor: バイオマス発電所
auto_enchanting: エンチャント操作術
auto_anvil: 電動修理術
multimeter: マルチメーター
gps_setup: GPS時代の夜明け
gps_emergency_transmitter: 緊急戦線復帰
programmable_androids: アンドロイド
android_interfaces: アンドロイドインタフェース
geo_scanner: 惑星スキャン
combustion_reactor: 燃焼発電所
teleporter: テレポーター構成機器
teleporter_activation_plates: テレポーター起動装置
better_solar_generators: 強化太陽光発電所
better_gps_transmitters: 中級GPS送信機
elevator: エレベーター elevator: エレベーター
elytra: エリトラ energized_solar_generator: 全日制太陽光発電所
energized_gps_transmitter: 上級GPS送信機
energy_regulator: エネルギーネットワーク
butcher_androids: 屠殺アンドロイド
organic_food: オーガニック食品
auto_breeder: 自動交配
advanced_android: 強化アンドロイド
advanced_butcher_android: 強化屠殺アンドロイド
advanced_fisherman_android: 強化釣師アンドロイド
animal_growth_accelerator: 動物成長促進術
xp_collector: 経験値回収
organic_fertilizer: 有機肥料
crop_growth_accelerator: 作物成長促進術Ⅰ
better_crop_growth_accelerator: 作物成長促進術Ⅱ
reactor_essentials: 原子炉必需品
nuclear_reactor: 原子力発電所
freezer: ミスター・フリーズ
cargo_basics: カーゴ素材
cargo_nodes: カーゴ運搬術
electric_ingot_machines: 自動インゴット作成Ⅰ
high_tier_electric_ingot_machines: 自動インゴット作成Ⅱ
automated_crafting_chamber: 自動クラフト
better_food_fabricator: オーガニック食品生成所
reactor_access_port: 原子炉とのやりとり
fluid_pump: 液体ポンプ
better_freezer: 冷凍庫
boosted_uranium: ウラン235
trash_can: ごみ処理施設
advanced_output_node: カーゴ配送強化
carbon_press: カーボンプレスⅠ
electric_smeltery: 電気精錬所Ⅰ
better_electric_furnace: 電気炉Ⅱ
better_carbon_press: カーボンプレスⅡ
empowered_android: 上級アンドロイド empowered_android: 上級アンドロイド
empowered_butcher_android: 上級屠殺アンドロイド empowered_butcher_android: 上級屠殺アンドロイド
empowered_fisherman_android: 上級釣師アンドロイド empowered_fisherman_android: 上級釣師アンドロイド
ender_armor: エンダー防具
ender_backpack: どこでもエンダーチェスト
ender_talismans: エンダータリスマン
energized_gps_transmitter: 上級GPS送信機
energized_solar_generator: 全日制太陽光発電所
energy_regulator: エネルギーネットワーク
enhanced_furnace: 強化かまどⅠ
essence_of_afterlife: ネクロマンシー
explosive_tools: 爆発のピッケル
farmer_shoes: 農家の靴
fire_staff: 火属性の杖
fire_talisman: 消防士のタリスマン
first_aid: 応急手当
flask_of_knowledge: 経験値備蓄術
fluid_pump: 液体ポンプ
fortune_cookie: フォーチュンクッキー
freezer: ミスター・フリーズ
fuel: 精製
geo_miner: 惑星採掘術
geo_scanner: 惑星スキャン
gilded_backpack: バックパックⅢ
gilded_iron: 金メッキ
gilded_iron_armor: 金メッキ防具
glowstone_armor: グロウストーン防具
gold_armor: 純金防具
gold_carats: 純金
golden_apple_juice: 金のジュース
gold_pan: パンニング
gps_emergency_transmitter: 緊急戦線復帰
gps_setup: GPS時代の夜明け
grappling_hook: グラップリングフック
grind_stone: 石臼
hardened_glass: 耐爆ガラス
hazmat_suit: 危険物取扱装備
heated_pressure_chamber: 加熱圧力室Ⅰ
hercules_pickaxe: ヘラクレスのピッケル
high_tier_capacitors: キャパシタⅡ
high_tier_carbon_press: カーボンプレスⅢ high_tier_carbon_press: カーボンプレスⅢ
high_tier_electric_ingot_machines: 自動インゴット作成Ⅱ wither_assembler: 全自動ウィザートラップ
high_tier_enhanced_furnaces: 強化かまどⅢ better_heated_pressure_chamber: 加熱圧力室Ⅱ
hologram_projector: ホログラム elytra: エリトラ
hunter_talisman: 狩人のタリスマン special_elytras: スペシャルエリトラ
infernal_bonemeal: 地獄の骨粉 electric_crucible: 電気るつぼⅠ
infused_hopper: 魔法のホッパー better_electric_crucibles: 電気るつぼⅡ
infused_magnet: 魔法の磁石 advanced_electric_smeltery: 電気精錬所Ⅱ
jetboots: ジェットブーツ advanced_farmer_android: 強化農耕アンドロイド
jetpacks: ジェットパック
juicer: ジュース
kelp_cookie: 昆布クッキー
knight_talisman: 騎士のタリスマン
lava_crystal: 溶岩のクリスタル
lava_generator: 溶岩発電所 lava_generator: 溶岩発電所
lava_talisman: 溶岩歩行のタリスマン
lightning_rune: 雷のルーン
lumber_axe: 木こりの斧
lumps: 魔法の欠片
magical_book_cover: 魔法の本の作り方
magic_eye_of_ender: 魔法のエンダーアイ
magician_talisman: 奇術師のタリスマン
magic_sugar: 魔法の砂糖
magic_workbench: 魔法の作業台
magnesium_generator: マグネシウム発電所
magnet: 磁性金属
makeshift_smeltery: 間に合わせの製錬所
meat_jerky: ジャーキー
miner_talisman: 採掘者のタリスマン
misc_power_items: エネルギーコア
monster_jerky: モンスタージャーキー
more_enhanced_furnaces: 強化かまどⅡ
multimeter: マルチメーター
multitools: マルチツール
nether_gold_pan: ネザーパンニング
nether_ice: ネザーアイスクーラント nether_ice: ネザーアイスクーラント
nether_star_reactor: ネザースター発電所 nether_star_reactor: ネザースター発電所
nickel_and_cobalt: 合金Ⅱ blistering_ingots: 猛烈な放射能
night_vision_googles: 暗視ゴーグル automatic_ignition_chamber: 自動再点火室
nuclear_reactor: 原子力発電所
oil: 油田
ore_crusher: 鉱石粉砕
ore_washer: 鉱石洗浄
organic_fertilizer: 有機肥料
organic_food: オーガニック食品
output_chest: 基本機械搬出術 output_chest: 基本機械搬出術
parachute: パラシュート copper_wire: ジュール熱
pickaxe_of_containment: 魂封じのピッケル
pickaxe_of_the_seeker: 探索のピッケル
pickaxe_of_vein_mining: 鉱脈のピッケル
plastic_sheet: プラスチック
portable_crafter: どこでもクラフト
portable_dustbin: ポイ捨て禁止
pressure_chamber: 圧力室
programmable_androids: アンドロイド
radiant_backpack: バックパックⅣ radiant_backpack: バックパックⅣ
rainbow_blocks: 虹ブロック auto_drier: 乾燥機
reactor_access_port: 原子炉とのやりとり diet_cookie: ダイエットクッキー
reactor_essentials: 原子炉必需品
redstone_alloy: レッドストーン合金
reinforced_alloy: 強化鋼の時代
reinforced_armor: 強化鋼防具
reinforced_furnace: 強化かまどⅣ
repaired_spawner: スポナーの修理士
scroll_of_dimensional_teleposition: 逆転劇
seismic_axe: 地震の斧
silicon: シリコンバレー
slime_armor: スライム防具Ⅰ
slimefun_metals: 新たな金属
slime_steel_armor: スライム防具Ⅱ
smelters_pickaxe: 精錬のピッケル
smeltery: 精錬所
solar_generators: 太陽光発電所
solar_panel_and_helmet: 太陽光の利用
soulbound_rune: ソウルバウンドルーン
special_bows: ロビンフッド
special_elytras: スペシャルエリトラ
special_runes: 古雅なルーン
steel: スチールの時代
steel_plate: スチールの加工
steel_thruster: 推進機
storm_staff: 雷属性の杖 storm_staff: 雷属性の杖
sword_of_beheading: 処刑人の剣 soulbound_rune: ソウルバウンドルーン
synthetic_diamond: 合成ダイヤモンド geo_miner: 惑星採掘術
synthetic_emerald: 合成エメラルド lightning_rune: 雷のルーン
synthetic_sapphire: 合成サファイア
table_saw: テーブルソー
teleporter: テレポーター構成機器
teleporter_activation_plates: テレポーター起動装置
tome_of_knowledge_sharing: 共有知識
totem_of_undying: 不死のトーテム totem_of_undying: 不死のトーテム
trash_can: ごみ処理施設 charging_bench: 充電装置
traveller_talisman: 探索者のタリスマン nether_gold_pan: ネザーパンニング
electric_press: 電動プレス
magnesium_generator: マグネシウム発電所
kelp_cookie: 昆布クッキー
makeshift_smeltery: 間に合わせの製錬所
tree_growth_accelerator: 1ニョッキ!2ニョッキ! tree_growth_accelerator: 1ニョッキ!2ニョッキ!
uranium: 放射性物質
walking_sticks: 転ばぬ先の杖
warrior_talisman: 戦士のタリスマン
water_staff: 水属性の杖
water_talisman: 水中呼吸のタリスマン
whirlwind_talisman: 旋風のタリスマン
wind_staff: 風属性の杖
wither_assembler: 全自動ウィザートラップ
wither_proof_glass: 耐ウィザーガラス
wither_proof_obsidian: 耐ウィザー黒曜石
wizard_talisman: 魔術師のタリスマン
woven_backpack: バックパックⅡ
xp_collector: 経験値回収
industrial_miner: 工業的採掘 industrial_miner: 工業的採掘
advanced_industrial_miner: よりよい採掘 advanced_industrial_miner: よりよい採掘
magical_zombie_pills: ゾンビ化解除
auto_brewer: 工業的醸造

View File

@ -0,0 +1,236 @@
---
slimefun:
walking_sticks: Walking Sticks
portable_crafter: Portable Crafter
fortune_cookie: Fortune Cookie
portable_dustbin: Portable Dustbin
meat_jerky: Meat Jerky
armor_forge: Armor Crafting
glowstone_armor: Glowstone Armor
lumps: Lumps and Magic
ender_backpack: Ender Backpack
ender_armor: Ender Armor
magic_eye_of_ender: Magic Eye of Ender
magic_sugar: Magic Sugar
monster_jerky: Monster Jerky
slime_armor: Slime Armor
sword_of_beheading: Sword of Beheading
basic_circuit_board: Basic Circuit Board
advanced_circuit_board: Advanced Circuit Board
smeltery: Smeltery
steel: Steel Age
misc_power_items: Mahalagang Mga item na nauugnay sa kapangyarihan
battery: Ang iyong unang Baterya
steel_plate: Steel Plating
steel_thruster: Steel Thruster
parachute: Parachute
grappling_hook: Grappling Hook
jetpacks: Jetpacks
multitools: Multi Tools
solar_panel_and_helmet: Solar Power
elemental_staff: Elemental Staves
grind_stone: Grind Stone
cactus_armor: Cactus Suit
gold_pan: Gold Pan
magical_book_cover: Magical Book Binding
slimefun_metals: New Metals
ore_crusher: Ore Doubling
bronze: Bronze Creation
alloys: Advanced Alloys
compressor_and_carbon: Carbon Creation
gilded_iron_armor: Gilded Iron Armor
synthetic_diamond: Synthetic Diamonds
pressure_chamber: Pressure Chamber
synthetic_sapphire: Synthetic Sapphires
damascus_steel: Damascus Steel
damascus_steel_armor: Damascus Steel Armor
reinforced_alloy: Reinforced Alloy
carbonado: Black Diamonds
magic_workbench: Magic Workbench
wind_staff: Wind Staff
reinforced_armor: Reinforced Armor
ore_washer: Ore Washer
gold_carats: Pure Gold
silicon: Silicon Valley
fire_staff: Fire Staff
smelters_pickaxe: Smelters Pickaxe
common_talisman: Karaniwang Anting-anting
anvil_talisman: Ang anting-anting ng Anvil
miner_talisman: Ang anting-anting ng Miner
hunter_talisman: Ang Anting-anting ng Mangangaso
lava_talisman: Ang Anting-anting ng Lava Walker
water_talisman: Ang Anting-anting ng Water Breather
angel_talisman: Ang Anting-anting ng Anghel
fire_talisman: Ang Anting-anting ng Bumbero
lava_crystal: Fiery Situation
magician_talisman: Ang Anting-anting ng Mago
traveller_talisman: Ang Anting-anting ng Manlalakbay
warrior_talisman: Ang Anting-anting ng Mandirigma
knight_talisman: Ang Anting-anting ng Knight
gilded_iron: Shiny Iron
synthetic_emerald: Fake Gem
chainmail_armor: Chainmail Armor
whirlwind_talisman: Ang Anting-anting ng Whirlwind
wizard_talisman: Ang Anting-anting ng Wizard
lumber_axe: Lumber Axe
hazmat_suit: Hazmat Suit
uranium: Radioactive
crushed_ore: Ore Purification
redstone_alloy: Redstone Alloy
carbonado_tools: Top Tier Machines
first_aid: First Aid
gold_armor: Shiny Armor
night_vision_googles: Night Vision Goggles
pickaxe_of_containment: Pickaxe of Containment
hercules_pickaxe: Hercules Pickaxe
table_saw: Table Saw
slime_steel_armor: Slimy Steel Armor
blade_of_vampires: Blade of Vampires
water_staff: Water Staff
24k_gold_block: Golden City
composter: Composting Dirt
farmer_shoes: Farmer Shoes
explosive_tools: Explosive Tools
automated_panning_machine: Automated Gold Pan
boots_of_the_stomper: Boots of the Stomper
pickaxe_of_the_seeker: Pickaxe of the Seeker
backpacks: Mga Backpacks
woven_backpack: Woven Backpack
crucible: Crucible
gilded_backpack: Gilded Backpack
armored_jetpack: Armored Jetpack
ender_talismans: Ender Talismans
nickel_and_cobalt: Even more Ores
magnet: Magnetic Metals
infused_magnet: Infused Magnets
cobalt_pickaxe: Speedy Pickaxe
essence_of_afterlife: Necromancy
bound_backpack: Soulbound Storage
jetboots: Jet Boots
armored_jetboots: Armoured Jet Boots
seismic_axe: Seismic Axe
pickaxe_of_vein_mining: Pickaxe of Vein Mining
bound_weapons: Soulbound Weapons
bound_tools: Soulbound Tools
bound_armor: Soulbound Armor
juicer: Delicious Drinks
repaired_spawner: Repairing Spawners
enhanced_furnace: Enhanced Furnace
more_enhanced_furnaces: Better Furnaces
high_tier_enhanced_furnaces: High Tier Furnace
reinforced_furnace: Reinforced Furnace
carbonado_furnace: Carbonado Edged furnace
electric_motor: Heating up
block_placer: Block Placer
scroll_of_dimensional_teleposition: Turning things around
special_bows: Robin Hood
tome_of_knowledge_sharing: Sharing with friends
flask_of_knowledge: XP Storage
hardened_glass: Withstanding Explosions
golden_apple_juice: Golden Potion
cooler: Portable Beverages
ancient_altar: Ancient Altar
wither_proof_obsidian: Wither-Proof Obsidian
ancient_runes: Elemental Runes
special_runes: Purple Runes
infernal_bonemeal: Infernal Bonemeal
rainbow_blocks: Rainbow Blocks
infused_hopper: Infused Hopper
wither_proof_glass: Wither-Proof Glass
duct_tape: Duct Tape
plastic_sheet: Plastik
android_memory_core: Memory Core
oil: Oil
fuel: Fuel
hologram_projector: Holograms
capacitors: Tier 1 Capacitors
high_tier_capacitors: Tier 2 Capacitors
solar_generators: Solar Power Plant
electric_furnaces: Powered Furnace
electric_ore_grinding: 'Crushing and Grinding '
heated_pressure_chamber: Heated Pressure Chamber
coal_generator: Coal Generator
bio_reactor: Bio-Reactor
auto_enchanting: Automatic Enchanting and Disenchanting
auto_anvil: Automatic Anvil
multimeter: Power Measurement
gps_setup: Basic GPS Setup
gps_emergency_transmitter: GPS Emergency Waypoint
programmable_androids: Programmable Androids
android_interfaces: Andrioid Interfaces
geo_scanner: GEO-Scans
combustion_reactor: Combustion Reactor
teleporter: Teleporter Base Components
teleporter_activation_plates: Teleported Activation
better_solar_generators: Upgraded Solar Generators
better_gps_transmitters: Upgraded Transmitters
elevator: Elevators
energized_solar_generator: Full-Time Solar Power
energized_gps_transmitter: Top Tier Transmitter
energy_regulator: Energy Networks 101
butcher_androids: Butcher Androids
organic_food: Organic Food
auto_breeder: Automated Feeding
advanced_android: Advanced Androids
advanced_butcher_android: Advanced Androids - Butcher
advanced_fisherman_android: Advanced Androids - Fisherman
animal_growth_accelerator: Animal Growth Manipulation
xp_collector: XP Collector
organic_fertilizer: Organic Fertilizer
crop_growth_accelerator: Crop Growth Acceleration
better_crop_growth_accelerator: Upgraded Crop Growth Accelerator
reactor_essentials: Reactor Essentials
nuclear_reactor: Nuclear Power Plant
freezer: Mr Freeze
cargo_basics: Cargo Basics
cargo_nodes: Cargo Setup
electric_ingot_machines: Electric Ingot Fabrication
high_tier_electric_ingot_machines: Super Fast Ingot Fabrication
automated_crafting_chamber: Automated Crafting
better_food_fabricator: Upgraded Food Fabrication
reactor_access_port: Reactor Interaction
fluid_pump: Fluid Pump
better_freezer: Upgraded Freezer
boosted_uranium: Never-Ending Circle
trash_can: Basura
advanced_output_node: Advanced Output Node
carbon_press: Carbon Press
electric_smeltery: Electric Smeltery
better_electric_furnace: Upgraded Electric Furnace
better_carbon_press: Upgraded Carbon Press
empowered_android: Empowered Androids
empowered_butcher_android: Empowered Androids - Butcher
empowered_fisherman_android: Empowered Androids - Fisherman
high_tier_carbon_press: Ultimate Carbon Press
wither_assembler: Automated Wither Killer
better_heated_pressure_chamber: Upgraded Heated Pressure Chamber
elytra: Elytras
special_elytras: Espesyal na Elytras
electric_crucible: Electrified Crucible
better_electric_crucibles: Hot Crucibles
advanced_electric_smeltery: Advanced Electric Smeltery
advanced_farmer_android: Advanced Androids - Farmer
lava_generator: Lava Generator
nether_ice: Nether Ice Coolant
nether_star_reactor: Nether Star Reactor
blistering_ingots: Blistering Radioactivity
automatic_ignition_chamber: Automatic Ignition Chamber
output_chest: Basic machinery output chest
copper_wire: Thinned-down Conductivity
radiant_backpack: Radiant Backpack
auto_drier: A Dry Day
diet_cookie: Diet Cookie
storm_staff: Storm Staff
soulbound_rune: Soulbound Rune
geo_miner: GEO-Miner
lightning_rune: Lightning Rune
totem_of_undying: Totem ng Undying
charging_bench: Charging Bench
nether_gold_pan: Nether Gold Pan
electric_press: Electric Press
magnesium_generator: Kapangyarihan mula sa Magnesium
kelp_cookie: Tasty Kelp
makeshift_smeltery: Improvised Smeltery
tree_growth_accelerator: Faster Trees
industrial_miner: Industrial Mining
advanced_industrial_miner: Better Mining

View File

@ -0,0 +1,24 @@
---
tooltips:
results: Result ng GEO-Scan
chunk: Scanned Chunk
world: Mundo
unit: Unit
units: Units
resources:
slimefun:
oil: Langis
nether_ice: Nether Ice
salt: Asin
uranium: Uranium
slimefunorechunks:
iron_ore_chunk: Iron Ore Chunk
gold_ore_chunk: Gold Ore Chunk
copper_ore_chunk: Copper Ore Chunk
tin_ore_chunk: Tin Ore Chunk
silver_ore_chunk: Silver Ore Chunk
aluminum_ore_chunk: Aluminum Ore Chunk
lead_ore_chunk: Lead Ore Chunk
zinc_ore_chunk: Zinc Ore Chunk
nickel_ore_chunk: Nickel Ore Chunk
cobalt_ore_chunk: Cobalt Ore Chunk

View File

@ -1,12 +1,19 @@
package io.github.thebusybiscuit.slimefun4.testing.tests.items; package io.github.thebusybiscuit.slimefun4.testing.tests.items;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
import be.seeseemelk.mockbukkit.MockBukkit; import be.seeseemelk.mockbukkit.MockBukkit;
import be.seeseemelk.mockbukkit.ServerMock; import be.seeseemelk.mockbukkit.ServerMock;
@ -14,6 +21,7 @@ import io.github.thebusybiscuit.slimefun4.implementation.setup.PostSetup;
import io.github.thebusybiscuit.slimefun4.implementation.setup.SlimefunItemSetup; import io.github.thebusybiscuit.slimefun4.implementation.setup.SlimefunItemSetup;
import io.github.thebusybiscuit.slimefun4.testing.TestUtilities; import io.github.thebusybiscuit.slimefun4.testing.TestUtilities;
import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.SlimefunPlugin;
import me.mrCookieSlime.Slimefun.Objects.Category;
@TestMethodOrder(value = OrderAnnotation.class) @TestMethodOrder(value = OrderAnnotation.class)
public class TestItemSetup { public class TestItemSetup {
@ -49,4 +57,17 @@ public class TestItemSetup {
public void testWikiSetup() { public void testWikiSetup() {
Assertions.assertDoesNotThrow(() -> PostSetup.setupWiki()); Assertions.assertDoesNotThrow(() -> PostSetup.setupWiki());
} }
@Test
@Order(value = 3)
public void testCategoryTranslations() throws IOException {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/languages/categories_en.yml"), StandardCharsets.UTF_8))) {
FileConfiguration config = YamlConfiguration.loadConfiguration(reader);
for (Category category : SlimefunPlugin.getRegistry().getCategories()) {
String path = category.getKey().getNamespace() + '.' + category.getKey().getKey();
Assertions.assertTrue(config.contains(path));
}
}
}
} }

View File

@ -1,14 +1,26 @@
package io.github.thebusybiscuit.slimefun4.testing.tests.researches; package io.github.thebusybiscuit.slimefun4.testing.tests.researches;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Order;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
import be.seeseemelk.mockbukkit.MockBukkit; import be.seeseemelk.mockbukkit.MockBukkit;
import io.github.thebusybiscuit.slimefun4.core.researching.Research;
import io.github.thebusybiscuit.slimefun4.implementation.setup.ResearchSetup; import io.github.thebusybiscuit.slimefun4.implementation.setup.ResearchSetup;
import me.mrCookieSlime.Slimefun.SlimefunPlugin; import me.mrCookieSlime.Slimefun.SlimefunPlugin;
@TestMethodOrder(value = OrderAnnotation.class)
public class TestResearchSetup { public class TestResearchSetup {
@BeforeAll @BeforeAll
@ -23,14 +35,29 @@ public class TestResearchSetup {
} }
@Test @Test
@Order(value = 1)
public void testForExceptions() { public void testForExceptions() {
// Not really ideal but still important to test. // Not really ideal but still important to test.
// Research amount is variable, so we can't test for that. // Research amount is variable, so we can't test for that.
// We are really only concerned about any runtime exceptions here. // We are really only concerned about any runtime exceptions here.
SlimefunPlugin.getRegistry().setResearchingEnabled(true);
Assertions.assertDoesNotThrow(() -> ResearchSetup.setupResearches()); Assertions.assertDoesNotThrow(() -> ResearchSetup.setupResearches());
// Running it a second time should NOT be allowed. // Running it a second time should NOT be allowed.
Assertions.assertThrows(UnsupportedOperationException.class, () -> ResearchSetup.setupResearches()); Assertions.assertThrows(UnsupportedOperationException.class, () -> ResearchSetup.setupResearches());
} }
@Test
@Order(value = 2)
public void testResearchTranslations() throws IOException {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/languages/researches_en.yml"), StandardCharsets.UTF_8))) {
FileConfiguration config = YamlConfiguration.loadConfiguration(reader);
for (Research research : SlimefunPlugin.getRegistry().getResearches()) {
String path = research.getKey().getNamespace() + '.' + research.getKey().getKey();
Assertions.assertTrue(config.contains(path));
}
}
}
} }