mirror of
https://github.com/hyperdefined/ToolStats.git
synced 2025-12-06 06:41:44 +00:00
added config support
This commit is contained in:
@@ -23,8 +23,12 @@ import lol.hyper.toolstats.events.*;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
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 java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
@@ -59,9 +63,17 @@ public final class ToolStats extends JavaPlugin {
|
||||
public SheepShear sheepShear;
|
||||
|
||||
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
|
||||
public void onEnable() {
|
||||
if (!configFile.exists()) {
|
||||
this.saveResource("config.yml", true);
|
||||
logger.info("Copying default config!");
|
||||
}
|
||||
loadConfig();
|
||||
blocksMined = new BlocksMined(this);
|
||||
craftItem = new CraftItem(this);
|
||||
entityDeath = new EntityDeath(this);
|
||||
@@ -90,6 +102,13 @@ public final class ToolStats extends JavaPlugin {
|
||||
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() {
|
||||
GitHubReleaseAPI api;
|
||||
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.");
|
||||
}
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,7 +101,9 @@ public class BlocksMined implements Listener {
|
||||
lore = new ArrayList<>();
|
||||
lore.add(blocksMinedLore.replace("X", Integer.toString(blocksMined)));
|
||||
}
|
||||
if (toolStats.checkConfig(itemStack, "blocks-mined")) {
|
||||
meta.setLore(lore);
|
||||
}
|
||||
itemStack.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,8 +80,12 @@ public class CraftItem implements Listener {
|
||||
} else {
|
||||
lore = new ArrayList<>();
|
||||
}
|
||||
if (toolStats.checkConfig(itemStack, "crafted-date")) {
|
||||
lore.add(timeCreatedLore.replace("X", format.format(finalDate)));
|
||||
}
|
||||
if (toolStats.checkConfig(itemStack, "crafted-by")) {
|
||||
lore.add(ownerLore.replace("X", owner.getName()));
|
||||
}
|
||||
meta.setLore(lore);
|
||||
newItem.setItemMeta(meta);
|
||||
return newItem;
|
||||
|
||||
@@ -146,7 +146,9 @@ public class EntityDamage implements Listener {
|
||||
lore = new ArrayList<>();
|
||||
lore.add(playerKillsLore.replace("X", Integer.toString(playerKills)));
|
||||
}
|
||||
if (toolStats.checkConfig(itemStack, "player-kills")) {
|
||||
meta.setLore(lore);
|
||||
}
|
||||
finalItem.setItemMeta(meta);
|
||||
return finalItem;
|
||||
}
|
||||
@@ -192,7 +194,9 @@ public class EntityDamage implements Listener {
|
||||
lore = new ArrayList<>();
|
||||
lore.add(mobKillsLore.replace("X", Integer.toString(mobKills)));
|
||||
}
|
||||
if (toolStats.checkConfig(itemStack, "mob-kills")) {
|
||||
meta.setLore(lore);
|
||||
}
|
||||
finalItem.setItemMeta(meta);
|
||||
return finalItem;
|
||||
}
|
||||
@@ -238,7 +242,9 @@ public class EntityDamage implements Listener {
|
||||
lore = new ArrayList<>();
|
||||
lore.add(damageTakenLore.replace("X", decimalFormat.format(damageTaken)));
|
||||
}
|
||||
if (toolStats.config.getBoolean("enabled.armor-damage")) {
|
||||
meta.setLore(lore);
|
||||
}
|
||||
itemStack.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,7 +82,9 @@ public class EntityDeath implements Listener {
|
||||
if (!hasTag) {
|
||||
lore.add(droppedLore.replace("X", mob));
|
||||
}
|
||||
if (toolStats.config.getBoolean("enabled.dropped-by")) {
|
||||
meta.setLore(lore);
|
||||
}
|
||||
itemStack.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +95,9 @@ public class PlayerFish implements Listener {
|
||||
lore = new ArrayList<>();
|
||||
lore.add(fishCaughtLore.replace("X", Integer.toString(fishCaught)));
|
||||
}
|
||||
if (toolStats.config.getBoolean("enabled.fish-caught")) {
|
||||
meta.setLore(lore);
|
||||
}
|
||||
itemStack.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +100,9 @@ public class SheepShear implements Listener {
|
||||
lore = new ArrayList<>();
|
||||
lore.add(sheepShearLore.replace("X", Integer.toString(sheepSheared)));
|
||||
}
|
||||
if (toolStats.config.getBoolean("enabled.sheep-sheared")) {
|
||||
meta.setLore(lore);
|
||||
}
|
||||
itemStack.setItemMeta(meta);
|
||||
}
|
||||
}
|
||||
|
||||
39
src/main/resources/config.yml
Normal file
39
src/main/resources/config.yml
Normal 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
|
||||
Reference in New Issue
Block a user