Added logger class that takes variables and replaces % with them

This commit is contained in:
stjn 2021-11-03 16:54:12 +01:00
parent f09061f6b6
commit 784cf905fb
8 changed files with 66 additions and 21 deletions

View File

@ -7,6 +7,7 @@ import com.alttd.config.Config;
import com.alttd.config.VillagerConfig; import com.alttd.config.VillagerConfig;
import com.alttd.config.WorthConfig; import com.alttd.config.WorthConfig;
import com.alttd.events.VillagerInteract; import com.alttd.events.VillagerInteract;
import com.alttd.util.Logger;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
public class VillagerUI extends JavaPlugin { public class VillagerUI extends JavaPlugin {
@ -30,9 +31,9 @@ public class VillagerUI extends JavaPlugin {
VillagerConfig.reload(); VillagerConfig.reload();
WorthConfig.reload(); WorthConfig.reload();
Database.init(); Database.init();
getLogger().info("--------------------------------------------------"); Logger.info("--------------------------------------------------");
getLogger().info("Villager UI started"); Logger.info("Villager UI started");
getLogger().info("--------------------------------------------------"); Logger.info("--------------------------------------------------");
} }
private void registerEvents() { private void registerEvents() {

View File

@ -5,6 +5,7 @@ import com.alttd.commands.subcommands.CommandCreateVillager;
import com.alttd.commands.subcommands.CommandHelp; import com.alttd.commands.subcommands.CommandHelp;
import com.alttd.commands.subcommands.CommandReload; import com.alttd.commands.subcommands.CommandReload;
import com.alttd.config.Config; import com.alttd.config.Config;
import com.alttd.util.Logger;
import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.Template; import net.kyori.adventure.text.minimessage.Template;
import org.bukkit.command.*; import org.bukkit.command.*;
@ -27,7 +28,7 @@ public class CommandManager implements CommandExecutor, TabExecutor {
if (command == null) { if (command == null) {
subCommands = null; subCommands = null;
miniMessage = null; miniMessage = null;
villagerUI.getLogger().severe("Unable to find villager ui command."); Logger.severe("Unable to find villager ui command.");
return; return;
} }
command.setExecutor(this); command.setExecutor(this);

View File

@ -2,6 +2,7 @@ package com.alttd.commands.database;
import com.alttd.VillagerUI; import com.alttd.VillagerUI;
import com.alttd.config.Config; import com.alttd.config.Config;
import com.alttd.util.Logger;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import java.sql.Connection; import java.sql.Connection;
@ -22,9 +23,9 @@ public class Database {
connection = DriverManager.getConnection(url, Config.USERNAME, Config.PASSWORD); connection = DriverManager.getConnection(url, Config.USERNAME, Config.PASSWORD);
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
VillagerUI.getInstance().getLogger().severe("Connection to database failed!"); Logger.severe("Connection to database failed!");
connection = null; connection = null;
VillagerUI.getInstance().getLogger().severe("Shutting down VillagerUI"); Logger.severe("Shutting down VillagerUI");
Bukkit.getPluginManager().disablePlugin(VillagerUI.getInstance()); Bukkit.getPluginManager().disablePlugin(VillagerUI.getInstance());
return; return;
} }
@ -33,16 +34,21 @@ public class Database {
createUserPointsTable(); createUserPointsTable();
} }
static void createUserPointsTable() { private static void createUserPointsTable() {
try { try {
String sql = "CREATE TABLE IF NOT EXISTS user_points(" + String sql = "CREATE TABLE IF NOT EXISTS user_points(" +
"UUID varchar 36 NOT NULL, " + "UUID varchar(36) NOT NULL, " +
"Points int NOT NULL, " + "points int NOT NULL, " +
"PRIMARY KEY (UUID)" + "villager_type varchar(128) NOT NULL, " +
"PRIMARY KEY (UUID), " +
"UNIQUE KEY (villager_type)" +
")"; ")";
connection.prepareStatement(sql).executeUpdate(); connection.prepareStatement(sql).executeUpdate();
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
Logger.severe("Error while trying to create user point table");
Logger.severe("Shutting down VillagerUI");
Bukkit.getPluginManager().disablePlugin(VillagerUI.getInstance());
} }
} }

View File

@ -1,6 +1,7 @@
package com.alttd.config; package com.alttd.config;
import com.alttd.VillagerUI; import com.alttd.VillagerUI;
import com.alttd.util.Logger;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
@ -16,13 +17,11 @@ import java.lang.reflect.Modifier;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.logging.Logger;
@SuppressWarnings({"unused", "SameParameterValue"}) @SuppressWarnings({"unused", "SameParameterValue"})
abstract class AbstractConfig { abstract class AbstractConfig {
File file; File file;
YamlConfiguration yaml; YamlConfiguration yaml;
Logger logger;
AbstractConfig(String filename) { AbstractConfig(String filename) {
init(new File(VillagerUI.getInstance().getDataFolder(), filename), filename); init(new File(VillagerUI.getInstance().getDataFolder(), filename), filename);
@ -35,12 +34,11 @@ abstract class AbstractConfig {
private void init(File file, String filename) { private void init(File file, String filename) {
this.file = file; this.file = file;
this.yaml = new YamlConfiguration(); this.yaml = new YamlConfiguration();
this.logger = VillagerUI.getInstance().getLogger();
try { try {
yaml.load(file); yaml.load(file);
} catch (IOException ignore) { } catch (IOException ignore) {
} catch (InvalidConfigurationException ex) { } catch (InvalidConfigurationException ex) {
logger.severe(String.format("Could not load %s, please correct your syntax errors", filename)); Logger.severe(String.format("Could not load %s, please correct your syntax errors", filename));
throw new RuntimeException(ex); throw new RuntimeException(ex);
} }
yaml.options().copyDefaults(true); yaml.options().copyDefaults(true);
@ -56,7 +54,7 @@ abstract class AbstractConfig {
} catch (InvocationTargetException ex) { } catch (InvocationTargetException ex) {
throw new RuntimeException(ex.getCause()); throw new RuntimeException(ex.getCause());
} catch (Exception ex) { } catch (Exception ex) {
logger.severe("Error invoking " + method); Logger.severe("Error invoking %.", method.toString());
ex.printStackTrace(); ex.printStackTrace();
} }
} }
@ -70,7 +68,7 @@ abstract class AbstractConfig {
try { try {
yaml.save(file); yaml.save(file);
} catch (IOException ex) { } catch (IOException ex) {
logger.severe("Could not save " + file); Logger.severe("Could not save %.", file.toString());
ex.printStackTrace(); ex.printStackTrace();
} }
} }

View File

@ -2,6 +2,7 @@ package com.alttd.config;
import com.alttd.VillagerUI; import com.alttd.VillagerUI;
import com.alttd.objects.VillagerType; import com.alttd.objects.VillagerType;
import com.alttd.util.Logger;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -83,13 +84,13 @@ public final class Config extends AbstractConfig {
VillagerType.clearVillagerTypes(); VillagerType.clearVillagerTypes();
ConfigurationSection configurationSection = config.getConfigurationSection("villager-types"); ConfigurationSection configurationSection = config.getConfigurationSection("villager-types");
if (configurationSection == null) { if (configurationSection == null) {
VillagerUI.getInstance().getLogger().warning("No villager types found in config."); Logger.warning("No villager types found in config.");
return; return;
} }
Set<String> keys = configurationSection.getKeys(false); Set<String> keys = configurationSection.getKeys(false);
if (keys.isEmpty()) if (keys.isEmpty())
VillagerUI.getInstance().getLogger().warning("No villager types found in config."); Logger.warning("No villager types found in config.");
keys.forEach(key -> { keys.forEach(key -> {
ConfigurationSection villagerType = configurationSection.getConfigurationSection(key); ConfigurationSection villagerType = configurationSection.getConfigurationSection(key);
@ -114,7 +115,7 @@ public final class Config extends AbstractConfig {
productsSection.getKeys(false).forEach(item -> { productsSection.getKeys(false).forEach(item -> {
Material material = Material.getMaterial(item); Material material = Material.getMaterial(item);
if (material == null) { if (material == null) {
VillagerUI.getInstance().getLogger().warning("Invalid key in products -> " + item); Logger.warning("Invalid key in products -> " + item);
return; return;
} }
products.add(new ItemStack(material, productsSection.getInt(item))); products.add(new ItemStack(material, productsSection.getInt(item)));

View File

@ -3,6 +3,7 @@ package com.alttd.config;
import com.alttd.VillagerUI; import com.alttd.VillagerUI;
import com.alttd.objects.LoadedVillagers; import com.alttd.objects.LoadedVillagers;
import com.alttd.objects.VillagerType; import com.alttd.objects.VillagerType;
import com.alttd.util.Logger;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import java.util.Set; import java.util.Set;
@ -33,7 +34,7 @@ public class VillagerConfig extends AbstractConfig {
if (villagerType != null) if (villagerType != null)
LoadedVillagers.addLoadedVillager(UUID.fromString(key), villagerType); LoadedVillagers.addLoadedVillager(UUID.fromString(key), villagerType);
else else
VillagerUI.getInstance().getLogger().warning("Invalid config entry " + key + "."); Logger.warning("Invalid config entry %.", key);
}); });
} }

View File

@ -2,6 +2,7 @@ package com.alttd.config;
import com.alttd.VillagerUI; import com.alttd.VillagerUI;
import com.alttd.objects.Price; import com.alttd.objects.Price;
import com.alttd.util.Logger;
import com.alttd.util.Utilities; import com.alttd.util.Utilities;
import it.unimi.dsi.fastutil.objects.Object2DoubleMap; import it.unimi.dsi.fastutil.objects.Object2DoubleMap;
import it.unimi.dsi.fastutil.objects.Object2DoubleOpenHashMap; import it.unimi.dsi.fastutil.objects.Object2DoubleOpenHashMap;
@ -42,7 +43,7 @@ public class WorthConfig extends AbstractConfig {
for (String key : materials) { for (String key : materials) {
Material material = Material.getMaterial(key); Material material = Material.getMaterial(key);
if (material == null) { if (material == null) {
VillagerUI.getInstance().getLogger().warning("Invalid key in worth.yml -> " + key); Logger.warning("Invalid key in worth.yml: %.", key);
continue; continue;
} }
prices.put(Material.getMaterial(key), new Price(Utilities.round(pointSection.getDouble(key), 2), Integer.parseInt(point))); prices.put(Material.getMaterial(key), new Price(Utilities.round(pointSection.getDouble(key), 2), Integer.parseInt(point)));

View File

@ -0,0 +1,36 @@
package com.alttd.util;
import com.alttd.VillagerUI;
public class Logger {
static private final java.util.logging.Logger logger;
static {
logger = VillagerUI.getInstance().getLogger();
}
public static void info(String info, String... variables)
{
for (String variable : variables) {
info = info.replaceFirst("%", variable);
}
logger.info(info);
}
public static void warning(String warning, String... variables)
{
for (String variable : variables) {
warning = warning.replaceFirst("%", variable);
}
logger.warning(warning);
}
public static void severe(String severe, String... variables)
{
for (String variable : variables) {
severe = severe.replaceFirst("%", variable);
}
logger.severe(severe);
}
}