9
0
mirror of https://github.com/Xiao-MoMi/Custom-Fishing.git synced 2025-12-27 02:49:17 +00:00

checkpoint - 10

This commit is contained in:
XiaoMoMi
2024-05-27 22:45:43 +08:00
parent eb0cb7173a
commit 32ea035d83
86 changed files with 2861 additions and 2950 deletions

View File

@@ -13,4 +13,6 @@ public interface ConfigLoader {
YamlDocument loadData(File file);
YamlDocument loadData(File file, char routeSeparator);
void saveResource(String filePath);
}

View File

@@ -236,13 +236,6 @@ public enum Dependency {
"caffeine",
Relocation.of("caffeine", "com{}github{}benmanes{}caffeine")
),
LETTUCE(
"io{}lettuce",
"lettuce-core",
"maven",
"lettuce-core",
Relocation.of("lettuce", "io{}lettuce")
),
JEDIS(
"redis{}clients",
"jedis",

View File

@@ -17,126 +17,25 @@
package net.momirealms.customfishing.common.helper;
import net.momirealms.customfishing.common.plugin.CustomFishingPlugin;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.concurrent.CompletableFuture;
import java.util.function.Function;
/**
* This class implements the VersionManager interface and is responsible for managing version-related information.
*/
public class VersionHelper {
private final boolean isNewerThan1_19_3;
private final boolean isNewerThan1_19_4;
private final boolean isNewerThan1_20;
private final boolean isNewerThan1_20_5;
private final boolean isNewerThan1_19;
private final String serverVersion;
private final boolean isSpigot;
private boolean hasRegionScheduler;
private boolean isMojmap;
private final String pluginVersion;
public VersionHelper(String serverVersion) {
this.serverVersion = serverVersion;
String[] split = serverVersion.split("\\.");
int main_ver = Integer.parseInt(split[0]);
// Determine if the server version is newer than 1_19_R2 and 1_20_R1
if (main_ver >= 20) {
isNewerThan1_20_5 = Integer.parseInt(split[1]) >= 5;
isNewerThan1_19_3 = isNewerThan1_19_4 = true;
isNewerThan1_20 = true;
isNewerThan1_19 = true;
} else if (main_ver == 19) {
isNewerThan1_20 = isNewerThan1_20_5 = false;
isNewerThan1_19_3 = Integer.parseInt(split[1]) >= 3;
isNewerThan1_19_4 = Integer.parseInt(split[1]) >= 4;
isNewerThan1_19 = true;
} else {
isNewerThan1_20 = isNewerThan1_20_5 = isNewerThan1_19 = isNewerThan1_19_3 = isNewerThan1_19_4 = false;
}
// Check if the server is Spigot
String server_name = plugin.getServer().getName();
this.isSpigot = server_name.equals("CraftBukkit");
// Check if the server is Folia
try {
Class.forName("io.papermc.paper.threadedregions.scheduler.AsyncScheduler");
this.hasRegionScheduler = true;
} catch (ClassNotFoundException ignored) {
}
// Check if the server is Mojmap
try {
Class.forName("net.minecraft.network.protocol.game.ClientboundBossEventPacket");
this.isMojmap = true;
} catch (ClassNotFoundException ignored) {
}
// Get the plugin version
this.pluginVersion = plugin.getDescription().getVersion();
}
@Override
public boolean isVersionNewerThan1_19() {
return isNewerThan1_19;
}
@Override
public boolean isVersionNewerThan1_19_4() {
return isNewerThan1_19_4;
}
@Override
public boolean isVersionNewerThan1_19_3() {
return isNewerThan1_19_3;
}
@Override
public boolean isVersionNewerThan1_20() {
return isNewerThan1_20;
}
@Override
public boolean isNewerThan1_20_5() {
return isNewerThan1_20_5;
}
@Override
public boolean isSpigot() {
return isSpigot;
}
@Override
public String getPluginVersion() {
return pluginVersion;
}
@Override
public boolean hasRegionScheduler() {
return hasRegionScheduler;
}
@Override
public boolean isMojmap() {
return isMojmap;
}
@Override
public String getServerVersion() {
return serverVersion;
}
// Method to asynchronously check for plugin updates
@Override
public CompletableFuture<Boolean> checkUpdate() {
public static final Function<CustomFishingPlugin, CompletableFuture<Boolean>> UPDATE_CHECKER = (plugin) -> {
CompletableFuture<Boolean> updateFuture = new CompletableFuture<>();
plugin.getScheduler().async(() -> {
plugin.getScheduler().async().execute(() -> {
try {
URL url = new URL("https://api.polymart.org/v1/getResourceInfoSimple/?resource_id=2723&key=version");
URLConnection conn = url.openConnection();
@@ -144,7 +43,7 @@ public class VersionHelper {
conn.setReadTimeout(60000);
InputStream inputStream = conn.getInputStream();
String newest = new BufferedReader(new InputStreamReader(inputStream)).readLine();
String current = plugin.getVersionManager().getPluginVersion();
String current = plugin.getPluginVersion();
inputStream.close();
if (!compareVer(newest, current)) {
updateFuture.complete(false);
@@ -152,15 +51,71 @@ public class VersionHelper {
}
updateFuture.complete(true);
} catch (Exception exception) {
LogUtils.warn("Error occurred when checking update.", exception);
plugin.getPluginLogger().warn("Error occurred when checking update.", exception);
updateFuture.complete(false);
}
});
return updateFuture;
};
private static float version;
private static boolean mojmap;
private static boolean folia;
public static void init(String serverVersion) {
String[] split = serverVersion.split("\\.");
version = Float.parseFloat(split[1] + "." + split[2]);
checkMojMap();
checkFolia();
}
private static void checkMojMap() {
// Check if the server is Mojmap
try {
Class.forName("net.minecraft.network.protocol.game.ClientboundBossEventPacket");
mojmap = true;
} catch (ClassNotFoundException ignored) {
}
}
private static void checkFolia() {
try {
Class.forName("io.papermc.paper.threadedregions.RegionizedServer");
folia = true;
} catch (ClassNotFoundException ignored) {
}
}
public static boolean isVersionNewerThan1_19() {
return version >= 19;
}
public static boolean isVersionNewerThan1_19_4() {
return version >= 19.4;
}
public static boolean isVersionNewerThan1_19_3() {
return version >= 19.3;
}
public static boolean isVersionNewerThan1_20() {
return version >= 20.0;
}
public boolean isNewerThan1_20_5() {
return version >= 20.5;
}
public static boolean isFolia() {
return folia;
}
public static boolean isMojmap() {
return mojmap;
}
// Method to compare two version strings
private boolean compareVer(String newV, String currentV) {
private static boolean compareVer(String newV, String currentV) {
if (newV == null || currentV == null || newV.isEmpty() || currentV.isEmpty()) {
return false;
}

View File

@@ -5,5 +5,112 @@ import net.kyori.adventure.text.TranslatableComponent;
public interface MessageConstants {
TranslatableComponent.Builder COMMAND_RELOAD = Component.translatable().key("argument.entity.notfound.player");
TranslatableComponent.Builder COMMAND_PREFIX = Component.translatable().key("command.prefix");
TranslatableComponent.Builder COMMAND_RELOAD_SUCCESS = Component.translatable().key("command.reload.success");
TranslatableComponent.Builder COMMAND_ITEM_FAILURE_NOT_EXIST = Component.translatable().key("command.item.failure.not_exist");
TranslatableComponent.Builder COMMAND_ITEM_GIVE_SUCCESS = Component.translatable().key("command.item.give.success");
TranslatableComponent.Builder COMMAND_ITEM_GET_SUCCESS = Component.translatable().key("command.item.get.success");
TranslatableComponent.Builder COMMAND_FISH_FINDER_POSSIBLE_LOOTS = Component.translatable().key("command.fish_finder.possible_loots");
TranslatableComponent.Builder COMMAND_FISH_FINDER_NO_LOOT = Component.translatable().key("command.fish_finder.no_loot");
TranslatableComponent.Builder COMMAND_FISH_FINDER_SPLIT_CHAR = Component.translatable().key("command.fish_finder.split_char");
TranslatableComponent.Builder COMMAND_COMPETITION_FAILURE_NOT_EXIST = Component.translatable().key("command.competition.failure.not_exist");
TranslatableComponent.Builder COMMAND_COMPETITION_FAILURE_NO_COMPETITION = Component.translatable().key("command.competition.failure.no_competition");
TranslatableComponent.Builder COMMAND_COMPETITION_FAILURE_STOP_SUCCESS = Component.translatable().key("command.competition.failure.stop.success");
TranslatableComponent.Builder COMMAND_COMPETITION_FAILURE_END_SUCCESS = Component.translatable().key("command.competition.failure.end.success");
TranslatableComponent.Builder COMMAND_BAG_EDIT_FAILURE_UNSAFE = Component.translatable().key("command.bag.edit.failure.unsafe");
TranslatableComponent.Builder COMMAND_BAG_EDIT_FAILURE_NEVER_PLAYED = Component.translatable().key("command.bag.edit.failure.never_played");
TranslatableComponent.Builder COMMAND_BAG_OPEN_SUCCESS = Component.translatable().key("command.bag.edit.open.success");
TranslatableComponent.Builder COMMAND_DATA_FAILURE_NOT_LOAD = Component.translatable().key("command.data.failure.not_load");
TranslatableComponent.Builder COMMAND_MARKET_OPEN_SUCCESS = Component.translatable().key("command.market.open.success");
TranslatableComponent.Builder GUI_SELECT_FILE = Component.translatable().key("gui.select_file");
TranslatableComponent.Builder GUI_SELECT_ITEM = Component.translatable().key("gui.select_item");
TranslatableComponent.Builder GUI_INVALID_KEY = Component.translatable().key("gui.invalid_key");
TranslatableComponent.Builder GUI_NEW_VALUE = Component.translatable().key("gui.new_value");
TranslatableComponent.Builder GUI_TEMP_NEW_KEY = Component.translatable().key("gui.temp_new_key");
TranslatableComponent.Builder GUI_SET_NEW_KEY = Component.translatable().key("gui.set_new_key");
TranslatableComponent.Builder GUI_EDIT_KEY = Component.translatable().key("gui.edit_key");
TranslatableComponent.Builder GUI_DELETE_PROPERTY = Component.translatable().key("gui.delete_property");
TranslatableComponent.Builder GUI_CLICK_CONFIRM = Component.translatable().key("gui.click_confirm");
TranslatableComponent.Builder GUI_INVALID_NUMBER = Component.translatable().key("gui.invalid_number");
TranslatableComponent.Builder GUI_ILLEGAL_FORMAT = Component.translatable().key("gui.illegal_format");
TranslatableComponent.Builder GUI_SCROLL_UP = Component.translatable().key("gui.scroll_up");
TranslatableComponent.Builder GUI_SCROLL_DOWN = Component.translatable().key("gui.scroll_down");
TranslatableComponent.Builder GUI_CANNOT_SCROLL_UP = Component.translatable().key("gui.cannot_scroll_up");
TranslatableComponent.Builder GUI_CANNOT_SCROLL_DOWN = Component.translatable().key("gui.cannot_scroll_down");
TranslatableComponent.Builder GUI_NEXT_PAGE = Component.translatable().key("gui.next_page");
TranslatableComponent.Builder GUI_GOTO_NEXT_PAGE = Component.translatable().key("gui.goto_next_page");
TranslatableComponent.Builder GUI_CANNOT_GOTO_NEXT_PAGE = Component.translatable().key("gui.cannot_goto_next_page");
TranslatableComponent.Builder GUI_PREVIOUS_PAGE = Component.translatable().key("gui.previous_page");
TranslatableComponent.Builder GUI_GOTO_PREVIOUS_PAGE = Component.translatable().key("gui.goto_previous_page");
TranslatableComponent.Builder GUI_CANNOT_GOTO_PREVIOUS_PAGE = Component.translatable().key("gui.cannot_goto_previous_page");
TranslatableComponent.Builder GUI_BACK_TO_PARENT_PAGE = Component.translatable().key("gui.back_to_parent_page");
TranslatableComponent.Builder GUI_BACK_TO_PARENT_FOLDER = Component.translatable().key("gui.back_to_parent_folder");
TranslatableComponent.Builder GUI_CURRENT_VALUE = Component.translatable().key("gui.current_value");
TranslatableComponent.Builder GUI_CLICK_TO_TOGGLE = Component.translatable().key("gui.click_to_toggle");
TranslatableComponent.Builder GUI_LEFT_CLICK_EDIT = Component.translatable().key("gui.left_click_edit");
TranslatableComponent.Builder GUI_RIGHT_CLICK_RESET = Component.translatable().key("gui.right_click_reset");
TranslatableComponent.Builder GUI_RIGHT_CLICK_DELETE = Component.translatable().key("gui.right_click_delete");
TranslatableComponent.Builder GUI_RIGHT_CLICK_CANCEL = Component.translatable().key("gui.right_click_cancel");
TranslatableComponent.Builder GUI_LOOT_SHOW_IN_FINDER = Component.translatable().key("gui.loot_show_in_finder");
TranslatableComponent.Builder GUI_LOOT_SCORE = Component.translatable().key("gui.loot_score");
TranslatableComponent.Builder GUI_LOOT_NICK = Component.translatable().key("gui.loot_nick");
TranslatableComponent.Builder GUI_LOOT_INSTANT_GAME = Component.translatable().key("gui.loot_instant_game");
TranslatableComponent.Builder GUI_LOOT_DISABLE_STATISTICS = Component.translatable().key("gui.loot_disable_statistics");
TranslatableComponent.Builder GUI_LOOT_DISABLE_GAME = Component.translatable().key("gui.loot_disable_game");
TranslatableComponent.Builder GUI_ITEM_AMOUNT = Component.translatable().key("gui.item_amount");
TranslatableComponent.Builder GUI_ITEM_CUSTOM_MODEL_DATA = Component.translatable().key("gui.item_custom_model_data");
TranslatableComponent.Builder GUI_ITEM_DISPLAY_NAME = Component.translatable().key("gui.item_display_name");
TranslatableComponent.Builder GUI_ITEM_CUSTOM_DURABILITY = Component.translatable().key("gui.item_custom_durability");
TranslatableComponent.Builder GUI_ITEM_ENCHANTMENT = Component.translatable().key("gui.item_enchantment");
TranslatableComponent.Builder GUI_ITEM_HEAD64 = Component.translatable().key("gui.item_head64");
TranslatableComponent.Builder GUI_ITEM_FLAG = Component.translatable().key("gui.item_item_flag");
TranslatableComponent.Builder GUI_ITEM_LORE = Component.translatable().key("gui.item_lore");
TranslatableComponent.Builder GUI_ITEM_MATERIAL = Component.translatable().key("gui.item_material");
TranslatableComponent.Builder GUI_ITEM_NBT = Component.translatable().key("gui.item_nbt");
TranslatableComponent.Builder GUI_ITEM_PREVENT_GRAB = Component.translatable().key("gui.item_prevent_grab");
TranslatableComponent.Builder GUI_ITEM_PRICE = Component.translatable().key("gui.item_price");
TranslatableComponent.Builder GUI_ITEM_PRICE_BASE = Component.translatable().key("gui.item_price_base");
TranslatableComponent.Builder GUI_ITEM_PRICE_BONUS = Component.translatable().key("gui.item_price_bonus");
TranslatableComponent.Builder GUI_ITEM_RANDOM_DURABILITY = Component.translatable().key("gui.item_random_durability");
TranslatableComponent.Builder GUI_ITEM_SIZE = Component.translatable().key("gui.item_size");
TranslatableComponent.Builder GUI_ITEM_STACKABLE = Component.translatable().key("gui.item_stackable");
TranslatableComponent.Builder GUI_ITEM_STORED_ENCHANTMENT = Component.translatable().key("gui.item_stored_enchantment");
TranslatableComponent.Builder GUI_ITEM_TAG = Component.translatable().key("gui.item_tag");
TranslatableComponent.Builder GUI_ITEM_UNBREAKABLE = Component.translatable().key("gui.item_unbreakable");
TranslatableComponent.Builder GUI_PAGE_AMOUNT_TITLE = Component.translatable().key("gui.page_amount_title");
TranslatableComponent.Builder GUI_PAGE_MODEL_DATA_TITLE = Component.translatable().key("gui.page_model_data_title");
TranslatableComponent.Builder GUI_PAGE_DISPLAY_NAME_TITLE = Component.translatable().key("gui.page_display_name_title");
TranslatableComponent.Builder GUI_PAGE_NEW_DISPLAY_NAME = Component.translatable().key("gui.page_new_display_name");
TranslatableComponent.Builder GUI_PAGE_CUSTOM_DURABILITY_TITLE = Component.translatable().key("gui.page_custom_durability_title");
TranslatableComponent.Builder GUI_PAGE_STORED_ENCHANTMENT_TITLE = Component.translatable().key("gui.page_stored_enchantment_title");
TranslatableComponent.Builder GUI_PAGE_ENCHANTMENT_TITLE = Component.translatable().key("gui.page_enchantment_title");
TranslatableComponent.Builder GUI_PAGE_SELECT_ONE_ENCHANTMENT = Component.translatable().key("gui.page_select_one_enchantment");
TranslatableComponent.Builder GUI_PAGE_ADD_NEW_ENCHANTMENT = Component.translatable().key("gui.page_add_new_enchantment");
TranslatableComponent.Builder GUI_PAGE_ITEM_FLAG_TITLE = Component.translatable().key("gui.page_item_flag_title");
TranslatableComponent.Builder GUI_PAGE_LORE_TITLE = Component.translatable().key("gui.page_lore_title");
TranslatableComponent.Builder GUI_PAGE_ADD_NEW_LORE = Component.translatable().key("gui.page_add_new_lore");
TranslatableComponent.Builder GUI_PAGE_SELECT_ONE_LORE = Component.translatable().key("gui.page_select_one_lore");
TranslatableComponent.Builder GUI_PAGE_MATERIAL_TITLE = Component.translatable().key("gui.page_material_title");
TranslatableComponent.Builder GUI_PAGE_NBT_COMPOUND_KEY_TITLE = Component.translatable().key("gui.page_nbt_compound_key_title");
TranslatableComponent.Builder GUI_PAGE_NBT_LIST_KEY_TITLE = Component.translatable().key("gui.page_nbt_list_key_title");
TranslatableComponent.Builder GUI_PAGE_NBT_KEY_TITLE = Component.translatable().key("gui.page_nbt_key_title");
TranslatableComponent.Builder GUI_PAGE_NBT_INVALID_KEY = Component.translatable().key("gui.page_nbt_invalid_key");
TranslatableComponent.Builder GUI_PAGE_NBT_ADD_NEW_COMPOUND= Component.translatable().key("gui.page_nbt_add_new_compound");
TranslatableComponent.Builder GUI_PAGE_NBT_ADD_NEW_LIST = Component.translatable().key("gui.page_nbt_add_new_list");
TranslatableComponent.Builder GUI_PAGE_NBT_ADD_NEW_VALUE = Component.translatable().key("gui.page_nbt_add_new_value");
TranslatableComponent.Builder GUI_PAGE_ADD_NEW_KEY = Component.translatable().key("gui.page_add_new_key");
TranslatableComponent.Builder GUI_PAGE_NBT_PREVIEW = Component.translatable().key("gui.page_nbt_preview");
TranslatableComponent.Builder GUI_PAGE_NBT_BACK_TO_COMPOUND = Component.translatable().key("gui.page_nbt_back_to_compound");
TranslatableComponent.Builder GUI_PAGE_NBT_SET_VALUE_TITLE = Component.translatable().key("gui.page_nbt_set_value_title");
TranslatableComponent.Builder GUI_PAGE_NBT_EDIT_TITLE = Component.translatable().key("gui.page_nbt_edit_title");
TranslatableComponent.Builder GUI_PAGE_NICK_TITLE = Component.translatable().key("gui.page_nick_title");
TranslatableComponent.Builder GUI_PAGE_NEW_NICK = Component.translatable().key("gui.page_new_nick");
TranslatableComponent.Builder GUI_PAGE_PRICE_TITLE = Component.translatable().key("gui.page_price_title");
TranslatableComponent.Builder GUI_PAGE_BASE_PRICE = Component.translatable().key("gui.page_base_price");
TranslatableComponent.Builder GUI_PAGE_BASE_BONUS = Component.translatable().key("gui.page_base_bonus");
TranslatableComponent.Builder GUI_PAGE_SCORE_TITLE = Component.translatable().key("gui.page_score_title");
TranslatableComponent.Builder GUI_PAGE_SIZE_TITLE = Component.translatable().key("gui.page_size_title");
TranslatableComponent.Builder GUI_PAGE_SIZE_MIN = Component.translatable().key("gui.page_size_min");
TranslatableComponent.Builder GUI_PAGE_SIZE_MAX = Component.translatable().key("gui.page_size_max");
TranslatableComponent.Builder GUI_PAGE_SIZE_MAX_NO_LESS_MIN = Component.translatable().key("gui.page_size_max_no_less_min");
}

View File

@@ -5,7 +5,123 @@ public class StandardLocales {
public static String COMPETITION_NO_PLAYER = "No Player";
public static String COMPETITION_NO_SCORE = "No Score";
public static String COMPETITION_NO_RANK = "No Rank";
public static String GOAL_TOTAL_SIZE;
public static String GOAL_CATCH_AMOUNT;
public static String GOAL_TOTAL_SCORE;
public static String GOAL_MAX_SIZE;
public static String FORMAT_SECOND = "s";
public static String FORMAT_MINUTE = "m";
public static String FORMAT_HOUR = "h";
public static String COMMAND_PREFIX;
public static String COMMAND_RELOAD;
public static String COMMAND_COMPETITION_NOT_EXISTS;
public static String COMMAND_N0_COMPETITION_ONGOING;
public static String COMMAND_END_COMPETITION;
public static String COMMAND_STOP_COMPETITION;
public static String COMMAND_ITEM_NOT_EXISTS;
public static String COMMAND_GET_ITEM;
public static String COMMAND_GIVE_ITEM;
public static String COMMAND_NEVER_PLAYED;
public static String COMMAND_UNSAFE_MODIFICATION;
public static String COMMAND_DATA_NOT_LOAD;
public static String COMMAND_MARKET_OPEN;
public static String COMMAND_FISHING_BAG_OPEN;
public static String COMMAND_POSSIBLE_LOOTS_SPLIT_CHAR;
public static String COMMAND_POSSIBLE_LOOTS;
public static String GUI_SCROLL_DOWN;
public static String GUI_SCROLL_UP;
public static String GUI_CANNOT_SCROLL_UP;
public static String GUI_CANNOT_SCROLL_DOWN;
public static String GUI_NEXT_PAGE;
public static String GUI_GOTO_NEXT_PAGE;
public static String GUI_CANNOT_GOTO_NEXT_PAGE;
public static String GUI_PREVIOUS_PAGE;
public static String GUI_GOTO_PREVIOUS_PAGE;
public static String GUI_CANNOT_GOTO_PREVIOUS_PAGE;
public static String GUI_BACK_TO_PARENT_PAGE;
public static String GUI_BACK_TO_PARENT_FOLDER;
public static String GUI_CURRENT_VALUE;
public static String GUI_CLICK_TO_TOGGLE;
public static String GUI_LEFT_CLICK_EDIT;
public static String GUI_RIGHT_CLICK_RESET;
public static String GUI_RIGHT_CLICK_DELETE;
public static String GUI_LOOT_SHOW_IN_FINDER;
public static String GUI_LOOT_SCORE;
public static String GUI_LOOT_NICK;
public static String GUI_LOOT_INSTANT_GAME;
public static String GUI_LOOT_DISABLE_STATS;
public static String GUI_LOOT_DISABLE_GAME;
public static String GUI_ITEM_AMOUNT;
public static String GUI_ITEM_MODEL_DATA;
public static String GUI_ITEM_DISPLAY_NAME;
public static String GUI_ITEM_DURABILITY;
public static String GUI_ITEM_ENCHANTMENT;
public static String GUI_ITEM_HEAD64;
public static String GUI_ITEM_FLAG;
public static String GUI_ITEM_LORE;
public static String GUI_ITEM_MATERIAL;
public static String GUI_ITEM_NBT;
public static String GUI_ITEM_PREVENT_GRAB;
public static String GUI_ITEM_PRICE;
public static String GUI_ITEM_PRICE_BASE;
public static String GUI_ITEM_PRICE_BONUS;
public static String GUI_ITEM_RANDOM_DURABILITY;
public static String GUI_ITEM_SIZE;
public static String GUI_ITEM_STACKABLE;
public static String GUI_ITEM_STORED_ENCHANTMENT;
public static String GUI_ITEM_TAG;
public static String GUI_ITEM_UNBREAKABLE;
public static String GUI_DELETE_PROPERTY;
public static String GUI_NEW_VALUE;
public static String GUI_CLICK_CONFIRM;
public static String GUI_INVALID_NUMBER;
public static String GUI_ILLEGAL_FORMAT;
public static String GUI_TITLE_AMOUNT;
public static String GUI_TITLE_MODEL_DATA;
public static String GUI_TITLE_DISPLAY_NAME;
public static String GUI_NEW_DISPLAY_NAME;
public static String GUI_TITLE_CUSTOM_DURABILITY;
public static String GUI_TITLE_ENCHANTMENT;
public static String GUI_TITLE_STORED_ENCHANTMENT;
public static String GUI_SELECT_ONE_ENCHANTMENT;
public static String GUI_ADD_NEW_ENCHANTMENT;
public static String GUI_TITLE_ITEM_FLAG;
public static String GUI_TITLE_LORE;
public static String GUI_ADD_NEW_LORE;
public static String GUI_SELECT_ONE_LORE;
public static String GUI_TITLE_MATERIAL;
public static String GUI_TITLE_NBT_COMPOUND;
public static String GUI_TITLE_NBT_LIST;
public static String GUI_TITLE_NBT_KEY;
public static String GUI_NBT_INVALID_KEY;
public static String GUI_RIGHT_CLICK_CANCEL;
public static String GUI_NBT_ADD_COMPOUND;
public static String GUI_NBT_ADD_LIST;
public static String GUI_NBT_ADD_VALUE;
public static String GUI_NBT_PREVIEW;
public static String GUI_NBT_BACK_TO_COMPOUND;
public static String GUI_NBT_SET_VALUE_TITLE;
public static String GUI_NBT_EDIT_TITLE;
public static String GUI_NICK_TITLE;
public static String GUI_NICK_NEW;
public static String GUI_PRICE_TITLE;
public static String GUI_PRICE_BASE;
public static String GUI_PRICE_BONUS;
public static String GUI_SCORE_TITLE;
public static String GUI_SIZE_TITLE;
public static String GUI_SIZE_MIN;
public static String GUI_SIZE_MAX;
public static String GUI_SIZE_MAX_NO_LESS;
public static String GUI_SELECT_FILE;
public static String GUI_SELECT_ITEM;
public static String GUI_ADD_NEW_KEY;
public static String GUI_DUPE_INVALID_KEY;
public static String GUI_SEARCH;
public static String GUI_TEMP_NEW_KEY;
public static String GUI_SET_NEW_KEY;
public static String GUI_EDIT_KEY;
}

View File

@@ -20,7 +20,7 @@ import java.util.stream.Stream;
public class TranslationManager {
public static final Locale DEFAULT_LOCALE = Locale.ENGLISH;
private static final List<String> locales = List.of("en");
private static final List<String> locales = List.of("en", "zh_cn");
private final CustomFishingPlugin plugin;
private final Set<Locale> installed = ConcurrentHashMap.newKeySet();
@@ -40,7 +40,7 @@ public class TranslationManager {
}
for (String lang : locales) {
this.plugin.getConfigManager().loadConfig("translations/" + lang + ".yml");
this.plugin.getConfigManager().saveResource("translations/" + lang + ".yml");
}
this.registry = MiniMessageTranslationRegistry.create(Key.key("customfishing", "main"), AdventureHelper.getMiniMessage());