mirror of
https://github.com/StarWishsama/Slimefun4.git
synced 2024-09-19 19:25:48 +00:00
Slimefun can now be translated (see wiki)
This commit is contained in:
parent
911aa64e32
commit
761d52a9c6
@ -35,6 +35,7 @@
|
||||
* Added support for Furnaces and Brewing Stands to Cargo Networks
|
||||
* Added Organic Food/Fertilizer for Dried Kelp
|
||||
* Added many more strings to the messages.yml
|
||||
* Added ability to translate messages for Players
|
||||
|
||||
### Changes
|
||||
* Removed Solar Array
|
||||
@ -59,6 +60,7 @@
|
||||
* Fixed #1394
|
||||
* Fixed #1313
|
||||
* Fixed #1396
|
||||
* Fixed Backpacks being placeable
|
||||
|
||||
## Release Candidate 4 (06 Jan 2020)
|
||||
https://thebusybiscuit.github.io/builds/TheBusyBiscuit/Slimefun4/stable/#4
|
||||
|
@ -147,14 +147,14 @@ public class ChestSlimefunGuide implements ISlimefunGuide {
|
||||
}
|
||||
}
|
||||
|
||||
menu.addItem(46, ChestMenuUtils.getPreviousButton(page, pages));
|
||||
menu.addItem(46, ChestMenuUtils.getPreviousButton(p, page, pages));
|
||||
menu.addMenuClickHandler(46, (pl, slot, item, action) -> {
|
||||
int next = page - 1;
|
||||
if (next != page && next > 0) openMainMenu(profile, survival, next);
|
||||
return false;
|
||||
});
|
||||
|
||||
menu.addItem(52, ChestMenuUtils.getNextButton(page, pages));
|
||||
menu.addItem(52, ChestMenuUtils.getNextButton(p, page, pages));
|
||||
menu.addMenuClickHandler(52, (pl, slot, item, action) -> {
|
||||
int next = page + 1;
|
||||
if (next != page && next <= pages) openMainMenu(profile, survival, next);
|
||||
@ -185,14 +185,14 @@ public class ChestSlimefunGuide implements ISlimefunGuide {
|
||||
int index = 9;
|
||||
int pages = (category.getItems().size() - 1) / CATEGORY_SIZE + 1;
|
||||
|
||||
menu.addItem(46, ChestMenuUtils.getPreviousButton(page, pages));
|
||||
menu.addItem(46, ChestMenuUtils.getPreviousButton(p, page, pages));
|
||||
menu.addMenuClickHandler(46, (pl, slot, item, action) -> {
|
||||
int next = page - 1;
|
||||
if (next != page && next > 0) openCategory(profile, category, survival, next);
|
||||
return false;
|
||||
});
|
||||
|
||||
menu.addItem(52, ChestMenuUtils.getNextButton(page, pages));
|
||||
menu.addItem(52, ChestMenuUtils.getNextButton(p, page, pages));
|
||||
menu.addMenuClickHandler(52, (pl, slot, item, action) -> {
|
||||
int next = page + 1;
|
||||
if (next != page && next <= pages) openCategory(profile, category, survival, next);
|
||||
@ -408,7 +408,7 @@ public class ChestSlimefunGuide implements ISlimefunGuide {
|
||||
menu.addItem(i, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
|
||||
}
|
||||
|
||||
menu.addItem(28, ChestMenuUtils.getPreviousButton(index + 1, recipes.length),
|
||||
menu.addItem(28, ChestMenuUtils.getPreviousButton(p, index + 1, recipes.length),
|
||||
(pl, slot, action, stack) -> {
|
||||
if (index > 0) {
|
||||
showMinecraftRecipe(recipes, index - 1, item, profile, p, false);
|
||||
@ -416,7 +416,7 @@ public class ChestSlimefunGuide implements ISlimefunGuide {
|
||||
return false;
|
||||
});
|
||||
|
||||
menu.addItem(34, ChestMenuUtils.getNextButton(index + 1, recipes.length),
|
||||
menu.addItem(34, ChestMenuUtils.getNextButton(p, index + 1, recipes.length),
|
||||
(pl, slot, action, stack) -> {
|
||||
if (index < recipes.length - 1) {
|
||||
showMinecraftRecipe(recipes, index + 1, item, profile, p, false);
|
||||
@ -455,7 +455,7 @@ public class ChestSlimefunGuide implements ISlimefunGuide {
|
||||
displayItem(menu, profile, p, item, result, recipeType, recipe, addToHistory);
|
||||
|
||||
if (item instanceof RecipeDisplayItem) {
|
||||
displayRecipes(profile, menu, (RecipeDisplayItem) item, 0);
|
||||
displayRecipes(p, profile, menu, (RecipeDisplayItem) item, 0);
|
||||
}
|
||||
|
||||
menu.open(p);
|
||||
@ -559,7 +559,7 @@ public class ChestSlimefunGuide implements ISlimefunGuide {
|
||||
}
|
||||
}
|
||||
|
||||
private void displayRecipes(PlayerProfile profile, ChestMenu menu, RecipeDisplayItem sfItem, int page) {
|
||||
private void displayRecipes(Player p, PlayerProfile profile, ChestMenu menu, RecipeDisplayItem sfItem, int page) {
|
||||
List<ItemStack> recipes = sfItem.getDisplayRecipes();
|
||||
|
||||
if (!recipes.isEmpty()) {
|
||||
@ -574,20 +574,20 @@ public class ChestSlimefunGuide implements ISlimefunGuide {
|
||||
|
||||
int pages = (recipes.size() - 1) / 18 + 1;
|
||||
|
||||
menu.replaceExistingItem(28, ChestMenuUtils.getPreviousButton(page + 1, pages));
|
||||
menu.replaceExistingItem(28, ChestMenuUtils.getPreviousButton(p, page + 1, pages));
|
||||
menu.addMenuClickHandler(28, (pl, slot, itemstack, action) -> {
|
||||
if (page > 0) {
|
||||
displayRecipes(profile, menu, sfItem, page - 1);
|
||||
displayRecipes(pl, profile, menu, sfItem, page - 1);
|
||||
pl.playSound(pl.getLocation(), Sound.ITEM_BOOK_PAGE_TURN, 1, 1);
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
menu.replaceExistingItem(34, ChestMenuUtils.getNextButton(page + 1, pages));
|
||||
menu.replaceExistingItem(34, ChestMenuUtils.getNextButton(p, page + 1, pages));
|
||||
menu.addMenuClickHandler(34, (pl, slot, itemstack, action) -> {
|
||||
if (recipes.size() > (18 * (page + 1))) {
|
||||
displayRecipes(profile, menu, sfItem, page + 1);
|
||||
displayRecipes(pl, profile, menu, sfItem, page + 1);
|
||||
pl.playSound(pl.getLocation(), Sound.ITEM_BOOK_PAGE_TURN, 1, 1);
|
||||
}
|
||||
|
||||
|
@ -266,10 +266,11 @@ public final class GuideSettings {
|
||||
});
|
||||
}
|
||||
else if (i == 7) {
|
||||
menu.addItem(7, new CustomItem(SkullItem.fromHash("3edd20be93520949e6ce789dc4f43efaeb28c717ee6bfcbbe02780142f716"), "&cAdd your Translation", "", "&4This is not possible yet", "&4Stay tuned for updates on this!")
|
||||
, (pl, slot, item, action) ->
|
||||
false
|
||||
);
|
||||
menu.addItem(7, new CustomItem(SkullItem.fromHash("3edd20be93520949e6ce789dc4f43efaeb28c717ee6bfcbbe02780142f716"), SlimefunPlugin.getLocal().getMessage(p, "guide.languages.translations.name"), "", "&7\u21E8 &eClick to add your own translations")
|
||||
, (pl, slot, item, action) -> {
|
||||
ChatUtils.sendURL(pl, "https://github.com/TheBusyBiscuit/Slimefun4/wiki/Translating-Slimefun");
|
||||
return false;
|
||||
});
|
||||
}
|
||||
else {
|
||||
menu.addItem(i, ChestMenuUtils.getBackground(), ChestMenuUtils.getEmptyClickHandler());
|
||||
@ -386,13 +387,13 @@ public final class GuideSettings {
|
||||
});
|
||||
}
|
||||
|
||||
menu.addItem(46, ChestMenuUtils.getPreviousButton(page + 1, pages));
|
||||
menu.addItem(46, ChestMenuUtils.getPreviousButton(p, page + 1, pages));
|
||||
menu.addMenuClickHandler(46, (pl, slot, item, action) -> {
|
||||
if (page > 0) openCredits(pl, page - 1);
|
||||
return false;
|
||||
});
|
||||
|
||||
menu.addItem(52, ChestMenuUtils.getNextButton(page + 1, pages));
|
||||
menu.addItem(52, ChestMenuUtils.getNextButton(p, page + 1, pages));
|
||||
menu.addMenuClickHandler(52, (pl, slot, item, action) -> {
|
||||
if (page + 1 < pages) openCredits(pl, page + 1);
|
||||
return false;
|
||||
|
@ -114,22 +114,19 @@ public class LocalizationService extends SlimefunLocalization {
|
||||
}
|
||||
|
||||
private void addLanguage(String id, String hash) {
|
||||
if (hasLanguage(id)) {
|
||||
FileConfiguration cfg;
|
||||
|
||||
if (!hasLanguage(id)) {
|
||||
cfg = getConfig().getConfiguration();
|
||||
}
|
||||
else {
|
||||
String path = "/languages/messages_" + id + ".yml";
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(plugin.getClass().getResourceAsStream(path)))) {
|
||||
cfg = YamlConfiguration.loadConfiguration(reader);
|
||||
cfg.setDefaults(getConfig().getConfiguration());
|
||||
} catch (IOException e) {
|
||||
Slimefun.getLogger().log(Level.SEVERE, "Failed to load language file into memory: \"" + path + "\"", e);
|
||||
cfg = getConfig().getConfiguration();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
languages.put(id, new Language(id, cfg, hash));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,14 @@ package io.github.thebusybiscuit.slimefun4.core.services.localization;
|
||||
|
||||
public enum SupportedLanguage {
|
||||
|
||||
ENGLISH("en", "a1701f21835a898b20759fb30a583a38b994abf60d3912ab4ce9f2311e74f72");
|
||||
ENGLISH("en", "a1701f21835a898b20759fb30a583a38b994abf60d3912ab4ce9f2311e74f72"),
|
||||
GERMAN("de", "5e7899b4806858697e283f084d9173fe487886453774626b24bd8cfecc77b3f"),
|
||||
FRENCH("fr", "51269a067ee37e63635ca1e723b676f139dc2dbddff96bbfef99d8b35c996bc"),
|
||||
ITALIAN("it", "85ce89223fa42fe06ad65d8d44ca412ae899c831309d68924dfe0d142fdbeea4"),
|
||||
SPANISH("es", "32bd4521983309e0ad76c1ee29874287957ec3d96f8d889324da8c887e485ea8"),
|
||||
POLISH("pl", "921b2af8d2322282fce4a1aa4f257a52b68e27eb334f4a181fd976bae6d8eb"),
|
||||
SWEDISH("sv", "e910904bff9c86f6ed47688e9429c26e8d9c5d5743bd3ebb8e6f5040be192998"),
|
||||
DUTCH("nl", "c23cf210edea396f2f5dfbced69848434f93404eefeabf54b23c073b090adf");
|
||||
|
||||
private final String id;
|
||||
private final String textureHash;
|
||||
|
@ -113,14 +113,6 @@ public class BlockListener implements Listener {
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.PORTABLE_CRAFTER, true)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.PORTABLE_DUSTBIN, true)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BACKPACK_SMALL, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BACKPACK_MEDIUM, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BACKPACK_LARGE, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.WOVEN_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.GILDED_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.RADIANT_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.BOUND_BACKPACK, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.COOLER, false)) e.setCancelled(true);
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.ENDER_BACKPACK, false)) e.setCancelled(true);
|
||||
|
||||
else if (SlimefunManager.isItemSimilar(item, SlimefunItems.CARBON, false)) e.setCancelled(true);
|
||||
|
@ -4,6 +4,7 @@ import java.util.Arrays;
|
||||
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemFlag;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.Damageable;
|
||||
@ -12,6 +13,7 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||
import io.github.thebusybiscuit.cscorelib2.chat.ChatColors;
|
||||
import io.github.thebusybiscuit.cscorelib2.item.CustomItem;
|
||||
import me.mrCookieSlime.CSCoreLibPlugin.general.Inventory.ChestMenu.MenuClickHandler;
|
||||
import me.mrCookieSlime.Slimefun.SlimefunPlugin;
|
||||
import me.mrCookieSlime.Slimefun.api.SlimefunItemStack;
|
||||
import me.mrCookieSlime.Slimefun.api.inventory.BlockMenu;
|
||||
|
||||
@ -56,20 +58,32 @@ public final class ChestMenuUtils {
|
||||
return WIKI_BUTTON;
|
||||
}
|
||||
|
||||
public static ItemStack getPreviousButton(int page, int pages) {
|
||||
public static ItemStack getPreviousButton(Player p, int page, int pages) {
|
||||
if (pages == 1 || page == 1) {
|
||||
return new CustomItem(PREV_BUTTON_INACTIVE, meta -> meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")")));
|
||||
return new CustomItem(PREV_BUTTON_INACTIVE, meta -> {
|
||||
meta.setDisplayName(ChatColor.DARK_GRAY + "\u21E6 " + SlimefunPlugin.getLocal().getMessage(p, "guide.pages.previous"));
|
||||
meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")"));
|
||||
});
|
||||
}
|
||||
|
||||
return new CustomItem(PREV_BUTTON_ACTIVE, meta -> meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")")));
|
||||
return new CustomItem(PREV_BUTTON_ACTIVE, meta -> {
|
||||
meta.setDisplayName(ChatColor.RESET + "\u21E6 " + SlimefunPlugin.getLocal().getMessage(p, "guide.pages.previous"));
|
||||
meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")"));
|
||||
});
|
||||
}
|
||||
|
||||
public static ItemStack getNextButton(int page, int pages) {
|
||||
public static ItemStack getNextButton(Player p, int page, int pages) {
|
||||
if (pages == 1 || page == pages) {
|
||||
return new CustomItem(NEXT_BUTTON_INACTIVE, meta -> meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")")));
|
||||
return new CustomItem(NEXT_BUTTON_INACTIVE, meta -> {
|
||||
meta.setDisplayName(ChatColor.DARK_GRAY + SlimefunPlugin.getLocal().getMessage(p, "guide.pages.next") + " \u21E6");
|
||||
meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")"));
|
||||
});
|
||||
}
|
||||
|
||||
return new CustomItem(NEXT_BUTTON_ACTIVE, meta -> meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")")));
|
||||
return new CustomItem(NEXT_BUTTON_ACTIVE, meta -> {
|
||||
meta.setDisplayName(ChatColor.RESET + SlimefunPlugin.getLocal().getMessage(p, "guide.pages.next") + " \u21E6");
|
||||
meta.setLore(Arrays.asList("", ChatColor.GRAY + "(" + page + " / " + pages + ")"));
|
||||
});
|
||||
}
|
||||
|
||||
public static void updateProgressbar(BlockMenu menu, int slot, int timeleft, int time, ItemStack indicator) {
|
||||
|
@ -26,6 +26,8 @@ public class SlimefunBackpack extends SimpleSlimefunItem<ItemUseHandler> {
|
||||
@Override
|
||||
public ItemUseHandler getItemHandler() {
|
||||
return e -> {
|
||||
e.cancel();
|
||||
|
||||
BackpackListener listener = SlimefunPlugin.getBackpackListener();
|
||||
|
||||
if (listener != null) {
|
||||
|
@ -26,8 +26,14 @@ guide:
|
||||
cheat:
|
||||
no-multiblocks: '&4You cannot cheat in Multiblocks, you have to build them!'
|
||||
|
||||
pages:
|
||||
previous: 'Previous page'
|
||||
next: 'Next page'
|
||||
|
||||
languages:
|
||||
updated: '&aYour language was successfully set to: &b%lang%'
|
||||
translations:
|
||||
name: '&aIs something missing?'
|
||||
|
||||
title:
|
||||
main: 'Slimefun Guide'
|
||||
@ -231,3 +237,7 @@ languages:
|
||||
de: 'German'
|
||||
fr: 'French'
|
||||
it: 'Italian'
|
||||
es: 'Spanish'
|
||||
pl: 'Polish'
|
||||
sv: 'Swedish'
|
||||
nl: 'Dutch'
|
Loading…
Reference in New Issue
Block a user