diff --git a/.idea/artifacts/Informator_jar.xml b/.idea/artifacts/Informator_jar.xml
index 0eb4301..8faa225 100644
--- a/.idea/artifacts/Informator_jar.xml
+++ b/.idea/artifacts/Informator_jar.xml
@@ -1,6 +1,6 @@
- $USER_HOME$/Plocha/betaserver/plugins/
+ $USER_HOME$/Plocha/beta server/plugins
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 28403f3..2454f64 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -12,8 +12,9 @@
+
-
+
\ No newline at end of file
diff --git a/src/main/java/xyz/soukup/informator/Informator.java b/src/main/java/xyz/soukup/informator/Informator.java
index 0f62e78..6987593 100644
--- a/src/main/java/xyz/soukup/informator/Informator.java
+++ b/src/main/java/xyz/soukup/informator/Informator.java
@@ -4,6 +4,7 @@ import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitTask;
import xyz.soukup.informator.handlers.AnimationHandler;
import xyz.soukup.informator.handlers.ConfigHandler;
+import xyz.soukup.informator.handlers.TabHandler;
import xyz.soukup.informator.handlers.clockHandler;
import java.io.IOException;
@@ -46,13 +47,17 @@ public final class Informator extends JavaPlugin {
throw new RuntimeException(e);
}
AnimationHandler.loadAnimations();
- clockHandler.centralClock
+ if (ConfigHandler.config.getBoolean("modules-enabled.tab")){
+ TabHandler.loadTabs();
+ }
+ clockHandler clockHandler = new clockHandler();
logger.info("");
logger.info("\u001B[33m===========================================================");
logger.info("");
logger.info("\u001B[34m Informator loaded!");
logger.info("");
logger.info("\u001B[33m===========================================================");
+ TabHandler.loadTabs();
}
public static Informator getPlugin(){
return instance;
diff --git a/src/main/java/xyz/soukup/informator/handlers/AnimationHandler.java b/src/main/java/xyz/soukup/informator/handlers/AnimationHandler.java
index bc490eb..79ab64c 100644
--- a/src/main/java/xyz/soukup/informator/handlers/AnimationHandler.java
+++ b/src/main/java/xyz/soukup/informator/handlers/AnimationHandler.java
@@ -19,7 +19,6 @@ public class AnimationHandler {
private static final HashMap tpsCounter = new HashMap();
private static final HashMap animationSpeed = new HashMap();
private static final HashMap currentFrame = new HashMap();
- private static Integer cycles = 0;
public static void loadAnimations(){
animations.addAll(aconfig.getKeys(false));
@@ -47,15 +46,14 @@ public class AnimationHandler {
}
- cycles++;
}
public static String getCurrentFrame(String name){
if (animations.contains(name))
- return animationFrames.get(name).get(currentFrame.get(name))+ " " + currentFrame.get(name);
+ return animationFrames.get(name).get(currentFrame.get(name));
else
- return null;
+ return "&cinvalid animation";
}
}
diff --git a/src/main/java/xyz/soukup/informator/handlers/ConfigHandler.java b/src/main/java/xyz/soukup/informator/handlers/ConfigHandler.java
index 1db3d1d..0449276 100644
--- a/src/main/java/xyz/soukup/informator/handlers/ConfigHandler.java
+++ b/src/main/java/xyz/soukup/informator/handlers/ConfigHandler.java
@@ -16,6 +16,9 @@ public class ConfigHandler {
static Informator plugin = Informator.getPlugin();
static Logger logger = plugin.getLogger();
public static YamlConfiguration animationConfig = new YamlConfiguration();
+ public static YamlConfiguration config = new YamlConfiguration();
+
+ public static YamlConfiguration tabConfig = new YamlConfiguration();
public static void loadConfigs() throws IOException, InvalidConfigurationException {
List configsToLoad = new ArrayList<>();
configsToLoad.add("config.yml");
@@ -29,6 +32,10 @@ public class ConfigHandler {
}
animationConfig.load(new File(plugin.getDataFolder(), "animations.yml"));
+ tabConfig.load(new File(plugin.getDataFolder(), "modules/tab.yml"));
+ config.load(new File(plugin.getDataFolder(), "config.yml"));
+
+
}
diff --git a/src/main/java/xyz/soukup/informator/handlers/PlaceholderHandler.java b/src/main/java/xyz/soukup/informator/handlers/PlaceholderHandler.java
new file mode 100644
index 0000000..3e958fa
--- /dev/null
+++ b/src/main/java/xyz/soukup/informator/handlers/PlaceholderHandler.java
@@ -0,0 +1,46 @@
+package xyz.soukup.informator.handlers;
+
+import org.bukkit.ChatColor;
+import org.bukkit.entity.Player;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+public class PlaceholderHandler {
+ public static String substituteAll(String text, Player player){
+ String result = substitudeAnimation(text);
+ result = substitudeColor(result);
+ return result;
+ }
+ public static String substitudeAnimation(String text){
+ // Define the regular expression pattern for placeholders
+ Pattern pattern = Pattern.compile("%%animation:(.*?)%%");
+
+ // Create a matcher with the input string
+ Matcher matcher = pattern.matcher(text);
+
+ // StringBuffer to hold the result
+ StringBuffer result = new StringBuffer();
+
+ // Find and replace placeholders
+ while (matcher.find()) {
+ // Get the animation name
+ String animationName = matcher.group(1);
+
+ // Look up the corresponding value from the map
+ String replacement = AnimationHandler.getCurrentFrame(animationName);
+
+ // Append the replacement to the result
+ matcher.appendReplacement(result, replacement);
+ }
+
+ // Append the remainder of the input string after the last match
+ matcher.appendTail(result);
+
+ // Convert the result to a String
+ return result.toString();
+ }
+ public static String substitudeColor(String text){
+ return ChatColor.translateAlternateColorCodes('&', text);
+ }
+}
diff --git a/src/main/java/xyz/soukup/informator/handlers/TabHandler.java b/src/main/java/xyz/soukup/informator/handlers/TabHandler.java
new file mode 100644
index 0000000..d794c7d
--- /dev/null
+++ b/src/main/java/xyz/soukup/informator/handlers/TabHandler.java
@@ -0,0 +1,78 @@
+package xyz.soukup.informator.handlers;
+
+import org.bukkit.Bukkit;
+import org.bukkit.configuration.ConfigurationSection;
+import org.bukkit.configuration.file.YamlConfiguration;
+import org.bukkit.entity.Player;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+public class TabHandler {
+ private static HashMap> tabData = new HashMap<>();
+ public static HashMap playerTab = new HashMap<>();
+ private static final YamlConfiguration tabConfig = ConfigHandler.tabConfig;
+
+ public static void loadTabs(){
+ List tabSources = new ArrayList<>();
+ tabSources.add("tabs.required");
+ tabSources.add("tabs.world.worlds");
+ tabSources.add("tabs.group.groups");
+ tabSources.add("tabs.player.players");
+ for(String targetKey: tabSources){
+ ConfigurationSection targetSection = tabConfig.getConfigurationSection(targetKey);
+
+ if (targetSection != null) {
+ Set keys = targetSection.getKeys(false);
+ for (String key : keys) {
+ List