diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..dd8cdcc
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,11 @@
+
+
- * This class extends {@link Configuration} to provide custom methods for loading, saving, and managing + * This class extends {@link ConfigurationEx} to provide custom methods for loading, saving, and managing * configuration files. It automatically handles the creation of parent directories and copies default configuration * files from the plugin's resources if they do not exist. *
* Note: This class allows for flexible management of multiple configuration files, specified by their file name. */ -public class Configuration extends Configuration { +public class ConfigurationEx extends Configuration { private final File configFile; - private final String pluginName; + private Log logger; + JavaPlugin plugin; /** * Constructs a new instance of {@code ConfigUtil}. @@ -28,10 +29,11 @@ public class Configuration extends Configuration { * @param plugin the plugin instance using this configuration utility * @param fileName the name of the configuration file to manage (e.g., "config.yml", "settings.yml") */ - public Configuration(JavaPlugin plugin, String fileName) { - super(new File(plugin.getDataFolder(), fileName)); + public ConfigurationEx(JavaPlugin _plugin, String fileName, Log _logger) { + super(new File(_plugin.getDataFolder(), fileName)); + plugin = _plugin; + logger = _logger; this.configFile = new File(plugin.getDataFolder(), fileName); - this.pluginName = plugin.getDescription().getName(); } /** @@ -54,7 +56,7 @@ public class Configuration extends Configuration { try { super.load(); } catch (Exception e) { - Logger.severe(String.format("[%s] Failed to load config '%s': %s", pluginName, configFile.getName(), e.getMessage())); + logger.severe(String.format("Failed to load config '%s': %s", configFile.getName(), e.getMessage())); } } @@ -67,7 +69,7 @@ public class Configuration extends Configuration { try { Files.createDirectories(configFile.getParentFile().toPath()); } catch (IOException e) { - Logger.severe(String.format("[%s] Failed to generate default config directory: %s", pluginName, e.getMessage())); + logger.severe(String.format("Failed to generate default config directory: %s", e.getMessage())); } } @@ -80,19 +82,23 @@ public class Configuration extends Configuration { * Logs an error if the default configuration file cannot be found or copied. */ private void copyDefaultConfig() { - // Adjust the path to ensure it's correct for your JAR structure - String resourcePath = "/" + configFile.getName(); + // Load the config from the JAR directly (it is located at the root level) + String resourcePath = "/" + configFile.getName(); // Root path of JAR - try (InputStream input = getClass().getResourceAsStream(resourcePath)) { + try (InputStream input = plugin.getClass().getResourceAsStream(resourcePath)) { if (input == null) { - Logger.severe(String.format("[%s] Default config '%s' wasn't found.", pluginName, configFile.getName())); + logger.severe(String.format("Default config '%s' wasn't found in the JAR.", configFile.getName())); return; } Files.copy(input, configFile.toPath()); - Logger.info(String.format("[%s] Default config '%s' generated successfully.", pluginName, configFile.getName())); + if (Files.exists(configFile.toPath())) { + logger.info(String.format("Default config '%s' generated successfully.", configFile.getName())); + } else { + logger.warning("We tried to generate the default config file, but it was not found even after the creation. Maybe your permissions are broken?"); + } } catch (IOException e) { - Logger.severe(String.format("[%s] Failed to generate default config '%s': %s", pluginName, configFile.getName(), e.getMessage())); + logger.severe(String.format("Failed to generate default config '%s': %s", configFile.getName(), e.getMessage())); } } @@ -104,9 +110,9 @@ public class Configuration extends Configuration { public void loadConfig() { try { this.load(); - Logger.info(String.format("[%s] Config '%s' loaded successfully.", pluginName, configFile.getName())); + logger.info(String.format("Config '%s' loaded successfully.", configFile.getName())); } catch (Exception e) { - Logger.severe(String.format("[%s] Failed to load config '%s': %s", pluginName, configFile.getName(), e.getMessage())); + logger.severe(String.format("Failed to load config '%s': %s", configFile.getName(), e.getMessage())); } } @@ -118,9 +124,9 @@ public class Configuration extends Configuration { public void saveConfig() { try { this.save(); - Logger.info(String.format("[%s] Config '%s' saved successfully.", pluginName, configFile.getName())); + logger.info(String.format("Config '%s' saved successfully.", configFile.getName())); } catch (Exception e) { - Logger.severe(String.format("[%s] Failed to save config '%s': %s", pluginName, configFile.getName(), e.getMessage())); + logger.severe(String.format("Failed to save config '%s': %s", configFile.getName(), e.getMessage())); } } diff --git a/src/gd/rf/adrianvictor/lib/Log.java b/src/gd/rf/adrianvictor/lib/Log.java index f04ea93..e276349 100644 --- a/src/gd/rf/adrianvictor/lib/Log.java +++ b/src/gd/rf/adrianvictor/lib/Log.java @@ -1,28 +1,39 @@ package gd.rf.adrianvictor.lib; import static org.bukkit.Bukkit.getServer; +import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.plugin.java.JavaPlugin; + public class Log { - public static void info(String message) { - getServer().getLogger().info(message); + JavaPlugin plugin; + PluginDescriptionFile pdf; + + public Log(JavaPlugin _plugin) { + plugin = _plugin; + pdf = plugin.getDescription(); } - public static void infoc(String message) { - getServer().getLogger().info(message); + public void info(String message) { + getServer().getLogger().info("[" + pdf.getName() + "] " + message); } - public static void warning(String message) { - getServer().getLogger().warning(message); + public void infoc(String message) { + getServer().getLogger().info("[" + pdf.getName() + "] " + Color.formatColors(message)); } - public static void warningc(String message) { - getServer().getLogger().warning(message); + public void warning(String message) { + getServer().getLogger().warning("[" + pdf.getName() + "] " + message); } - public static void severe(String message) { - getServer().getLogger().severe(message); + public void warningc(String message) { + getServer().getLogger().warning("[" + pdf.getName() + "] " + Color.formatColors(message)); } - public static void severec(String message) { - getServer().getLogger().severe(message); + public void severe(String message) { + getServer().getLogger().severe("[" + pdf.getName() + "] " + message); + } + + public void severec(String message) { + getServer().getLogger().severe("[" + pdf.getName() + "] " + Color.formatColors(message)); } } \ No newline at end of file diff --git a/src/gd/rf/adrianvictor/lib/Main.java b/src/gd/rf/adrianvictor/lib/Main.java index c31100e..b5d59f0 100644 --- a/src/gd/rf/adrianvictor/lib/Main.java +++ b/src/gd/rf/adrianvictor/lib/Main.java @@ -2,7 +2,17 @@ package gd.rf.adrianvictor.lib; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin { - public void onLoad() { - Log.info(this + " is loading."); - } + + Log logger; + + @Override + public void onDisable() { + logger.info("is being disabled."); + } + + @Override + public void onEnable() { + logger = new Log(this); + logger.info("is loading."); + } } \ No newline at end of file diff --git a/src/gd/rf/adrianvictor/lib/PlayerEx.java b/src/gd/rf/adrianvictor/lib/PlayerEx.java new file mode 100644 index 0000000..d5388df --- /dev/null +++ b/src/gd/rf/adrianvictor/lib/PlayerEx.java @@ -0,0 +1,8 @@ +package gd.rf.adrianvictor.lib; +import org.bukkit.entity.Player; + +public class PlayerEx { + public static void strikeLightning(Player player) { + player.getWorld().strikeLightning(player.getLocation()); + } +} diff --git a/src/gd/rf/adrianvictor/lib/Text.java b/src/gd/rf/adrianvictor/lib/Text.java new file mode 100644 index 0000000..82c2f0b --- /dev/null +++ b/src/gd/rf/adrianvictor/lib/Text.java @@ -0,0 +1,20 @@ +package gd.rf.adrianvictor.lib; + +import java.util.Random; + +import org.bukkit.ChatColor; + +public class Text { + public static String generateRandomString(int length) { + String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + Random random = new Random(); + StringBuilder randomString = new StringBuilder(length); + + for (int i = 0; i < length; i++) { + int randomIndex = random.nextInt(characters.length()); + randomString.append(characters.charAt(randomIndex)); + } + + return randomString.toString(); + } +}