package eu.milujukockoholky.vexliolobby.config; import eu.milujukockoholky.vexliolobby.utility.TextUtil; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import java.util.List; public enum Messages { PREFIX("GENERAL.PREFIX"), NO_PERMISSION("GENERAL.NO_PERMISSION"), CUSTOM_COMMAND_NO_PERMISSION("GENERAL.CUSTOM_COMMAND_NO_PERMISSION"), INVALID_PLAYER("GENERAL.INVALID_PLAYER"), CONFIG_RELOAD("GENERAL.CONFIG_RELOAD"), COOLDOWN_ACTIVE("GENERAL.COOLDOWN_ACTIVE"), GAMEMODE_CHANGE("GAMEMODE.GAMEMODE_CHANGE"), GAMEMODE_CHANGE_OTHER("GAMEMODE.GAMEMODE_CHANGE_OTHER"), GAMEMODE_INVALID("GAMEMODE.GAMEMODE_INVALID"), FLIGHT_ENABLE("FLIGHT.ENABLE"), FLIGHT_ENABLE_OTHER("FLIGHT.ENABLE_OTHER"), FLIGHT_DISABLE("FLIGHT.DISABLE"), FLIGHT_DISABLE_OTHER("FLIGHT.DISABLE_OTHER"), PLAYER_HIDER_HIDDEN("PLAYER_HIDER.HIDDEN"), PLAYER_HIDER_SHOWN("PLAYER_HIDER.SHOWN"), SET_LOBBY("LOBBY.SET_LOBBY"), CLEARCHAT("CHAT.CLEARCHAT"), CLEARCHAT_PLAYER("CHAT.CLEARCHAT_PLAYER"), DOUBLE_JUMP_COOLDOWN("DOUBLE_JUMP.COOLDOWN_ACTIVE"), EVENT_ITEM_DROP("WORLD_EVENT_MODIFICATIONS.ITEM_DROP"), EVENT_ITEM_PICKUP("WORLD_EVENT_MODIFICATIONS.ITEM_PICKUP"), EVENT_BLOCK_PLACE("WORLD_EVENT_MODIFICATIONS.BLOCK_PLACE"), EVENT_BLOCK_BREAK("WORLD_EVENT_MODIFICATIONS.BLOCK_BREAK"), EVENT_BLOCK_INTERACT("WORLD_EVENT_MODIFICATIONS.BLOCK_INTERACT"), BUILD_MODE_ENABLED_ACTIONBAR("BUILD_MODE.ENABLED_ACTION_BAR"), BUILD_MODE_ENABLED("BUILD_MODE.ENABLED"), BUILD_MODE_DISABLED("BUILD_MODE.DISABLED"), BUILD_MODE_COMMAND_TARGET_NOT_FOUND("BUILD_MODE.TARGET_NOT_FOUND"), BUILD_MODE_COMMAND_ENABLED_FOR_TARGET("BUILD_MODE.ENABLED_FOR_TARGET"); private static FileConfiguration config; private final String path; Messages(String path) { this.path = path; } public static void setConfiguration(FileConfiguration c) { config = c; } public String toString() { Object value = config.get("Messages." + this.path); String message; if (value == null) { message = "VexlioHub: message not found (" + this.path + ") - Check your messages.yml!"; } else { message = value instanceof List ? TextUtil.fromList((List) value) : value.toString(); } return message; } public void send(CommandSender receiver, Object... replacements) { String message = toString(); if (!message.isEmpty()) { receiver.sendMessage(TextUtil.color(replace(message, replacements))); } } private String replace(String message, Object... replacements) { for (int i = 0; i < replacements.length; i += 2) { if (i + 1 >= replacements.length) break; message = message.replace(String.valueOf(replacements[i]), String.valueOf(replacements[i + 1])); } String prefix = config.getString("Messages." + PREFIX.getPath()); return message.replace("%prefix%", prefix != null && !prefix.isEmpty() ? prefix : ""); } public String getPath() { return this.path; } }