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.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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
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