added config support

This commit is contained in:
hyperdefined
2022-01-29 14:27:42 -05:00
parent 71ae4bca6a
commit 1b2a7fe427
8 changed files with 132 additions and 9 deletions

View File

@@ -23,8 +23,12 @@ import lol.hyper.toolstats.events.*;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.HashSet; import java.util.HashSet;
import java.util.Set; import java.util.Set;
@@ -59,9 +63,17 @@ public final class ToolStats extends JavaPlugin {
public SheepShear sheepShear; public SheepShear sheepShear;
public final Logger logger = this.getLogger(); public final Logger logger = this.getLogger();
public final File configFile = new File(this.getDataFolder(), "config.yml");
public FileConfiguration config;
public final int CONFIG_VERSION = 1;
@Override @Override
public void onEnable() { public void onEnable() {
if (!configFile.exists()) {
this.saveResource("config.yml", true);
logger.info("Copying default config!");
}
loadConfig();
blocksMined = new BlocksMined(this); blocksMined = new BlocksMined(this);
craftItem = new CraftItem(this); craftItem = new CraftItem(this);
entityDeath = new EntityDeath(this); entityDeath = new EntityDeath(this);
@@ -90,6 +102,13 @@ public final class ToolStats extends JavaPlugin {
keys.add(armorDamage); keys.add(armorDamage);
} }
public void loadConfig() {
config = YamlConfiguration.loadConfiguration(configFile);
if (config.getInt("config-version") != CONFIG_VERSION) {
logger.warning("Your config file is outdated! Please regenerate the config.");
}
}
public void checkForUpdates() { public void checkForUpdates() {
GitHubReleaseAPI api; GitHubReleaseAPI api;
try { try {
@@ -112,4 +131,51 @@ public final class ToolStats extends JavaPlugin {
logger.warning("A new version is available (" + latest.getTagVersion() + ")! You are running version " + current.getTagVersion() + ". You are " + buildsBehind + " version(s) behind."); logger.warning("A new version is available (" + latest.getTagVersion() + ")! You are running version " + current.getTagVersion() + ". You are " + buildsBehind + " version(s) behind.");
} }
} }
public boolean checkConfig(ItemStack itemStack, String configName) {
String itemName = itemStack.getType().toString().toLowerCase();
String itemType = null;
if (itemName.contains("bow") || itemName.contains("shears")) {
if (itemName.contains("bow")) {
itemType = "bow";
}
if (itemName.contains("shears")) {
itemType = "shears";
}
} else {
itemType = itemName.substring(itemName.indexOf("_") + 1);
}
if (itemType == null) {
return false;
}
switch (itemType) {
case "pickaxe": {
return config.getBoolean("enabled." + configName + ".pickaxe");
}
case "sword": {
return config.getBoolean("enabled." + configName + ".sword");
}
case "shovel": {
return config.getBoolean("enabled." + configName + ".shovel");
}
case "axe": {
return config.getBoolean("enabled." + configName + ".axe");
}
case "hoe": {
return config.getBoolean("enabled." + configName + ".hoe");
}
case "shears": {
return config.getBoolean("enabled." + configName + ".shears");
}
case "bow": {
return config.getBoolean("enabled." + configName + ".bow");
}
case "armor": {
return config.getBoolean("enabled." + configName + ".armor");
}
}
return false;
}
} }

View File

@@ -101,7 +101,9 @@ public class BlocksMined implements Listener {
lore = new ArrayList<>(); lore = new ArrayList<>();
lore.add(blocksMinedLore.replace("X", Integer.toString(blocksMined))); lore.add(blocksMinedLore.replace("X", Integer.toString(blocksMined)));
} }
meta.setLore(lore); if (toolStats.checkConfig(itemStack, "blocks-mined")) {
meta.setLore(lore);
}
itemStack.setItemMeta(meta); itemStack.setItemMeta(meta);
} }
} }

View File

@@ -80,8 +80,12 @@ public class CraftItem implements Listener {
} else { } else {
lore = new ArrayList<>(); lore = new ArrayList<>();
} }
lore.add(timeCreatedLore.replace("X", format.format(finalDate))); if (toolStats.checkConfig(itemStack, "crafted-date")) {
lore.add(ownerLore.replace("X", owner.getName())); lore.add(timeCreatedLore.replace("X", format.format(finalDate)));
}
if (toolStats.checkConfig(itemStack, "crafted-by")) {
lore.add(ownerLore.replace("X", owner.getName()));
}
meta.setLore(lore); meta.setLore(lore);
newItem.setItemMeta(meta); newItem.setItemMeta(meta);
return newItem; return newItem;

View File

@@ -146,7 +146,9 @@ public class EntityDamage implements Listener {
lore = new ArrayList<>(); lore = new ArrayList<>();
lore.add(playerKillsLore.replace("X", Integer.toString(playerKills))); lore.add(playerKillsLore.replace("X", Integer.toString(playerKills)));
} }
meta.setLore(lore); if (toolStats.checkConfig(itemStack, "player-kills")) {
meta.setLore(lore);
}
finalItem.setItemMeta(meta); finalItem.setItemMeta(meta);
return finalItem; return finalItem;
} }
@@ -192,7 +194,9 @@ public class EntityDamage implements Listener {
lore = new ArrayList<>(); lore = new ArrayList<>();
lore.add(mobKillsLore.replace("X", Integer.toString(mobKills))); lore.add(mobKillsLore.replace("X", Integer.toString(mobKills)));
} }
meta.setLore(lore); if (toolStats.checkConfig(itemStack, "mob-kills")) {
meta.setLore(lore);
}
finalItem.setItemMeta(meta); finalItem.setItemMeta(meta);
return finalItem; return finalItem;
} }
@@ -238,7 +242,9 @@ public class EntityDamage implements Listener {
lore = new ArrayList<>(); lore = new ArrayList<>();
lore.add(damageTakenLore.replace("X", decimalFormat.format(damageTaken))); lore.add(damageTakenLore.replace("X", decimalFormat.format(damageTaken)));
} }
meta.setLore(lore); if (toolStats.config.getBoolean("enabled.armor-damage")) {
meta.setLore(lore);
}
itemStack.setItemMeta(meta); itemStack.setItemMeta(meta);
} }
} }

View File

@@ -82,7 +82,9 @@ public class EntityDeath implements Listener {
if (!hasTag) { if (!hasTag) {
lore.add(droppedLore.replace("X", mob)); lore.add(droppedLore.replace("X", mob));
} }
meta.setLore(lore); if (toolStats.config.getBoolean("enabled.dropped-by")) {
meta.setLore(lore);
}
itemStack.setItemMeta(meta); itemStack.setItemMeta(meta);
} }
} }

View File

@@ -95,7 +95,9 @@ public class PlayerFish implements Listener {
lore = new ArrayList<>(); lore = new ArrayList<>();
lore.add(fishCaughtLore.replace("X", Integer.toString(fishCaught))); lore.add(fishCaughtLore.replace("X", Integer.toString(fishCaught)));
} }
meta.setLore(lore); if (toolStats.config.getBoolean("enabled.fish-caught")) {
meta.setLore(lore);
}
itemStack.setItemMeta(meta); itemStack.setItemMeta(meta);
} }
} }

View File

@@ -100,7 +100,9 @@ public class SheepShear implements Listener {
lore = new ArrayList<>(); lore = new ArrayList<>();
lore.add(sheepShearLore.replace("X", Integer.toString(sheepSheared))); lore.add(sheepShearLore.replace("X", Integer.toString(sheepSheared)));
} }
meta.setLore(lore); if (toolStats.config.getBoolean("enabled.sheep-sheared")) {
meta.setLore(lore);
}
itemStack.setItemMeta(meta); itemStack.setItemMeta(meta);
} }
} }

View File

@@ -0,0 +1,39 @@
enabled:
crafted-by:
pickaxe: true
sword: true
shovel: true
axe: true
hoe: true
shears: true
bow: true
armor: true
crafted-date:
pickaxe: true
sword: true
shovel: true
axe: true
hoe: true
shears: true
bow: true
armor: true
player-kills:
sword: true
axe: true
trident: true
mob-kills:
sword: true
axe: true
trident: true
blocks-mined:
pickaxe: true
shovel: true
axe: true
hoe: true
shears: true
fish-caught: true
sheep-sheared: true
armor-damage: true
dropped-by: true
config-version: 1