mirror of
https://github.com/hyperdefined/ToolStats.git
synced 2025-12-08 13:44:59 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
05200f075b | ||
|
|
9973d743a5 | ||
|
|
a89b9d6f6a | ||
|
|
082f529c32 | ||
|
|
05f940026f |
2
pom.xml
2
pom.xml
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
<groupId>lol.hyper</groupId>
|
<groupId>lol.hyper</groupId>
|
||||||
<artifactId>toolstats</artifactId>
|
<artifactId>toolstats</artifactId>
|
||||||
<version>1.4.3</version>
|
<version>1.4.4</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>ToolStats</name>
|
<name>ToolStats</name>
|
||||||
|
|||||||
@@ -271,13 +271,16 @@ public class CommandToolStats implements TabExecutor {
|
|||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
if (sender.hasPermission("toolstats.reload")) {
|
if (sender.hasPermission("toolstats.reload")) {
|
||||||
return Arrays.asList("reset", "reload");
|
return Arrays.asList("reset", "reload");
|
||||||
} else {
|
}
|
||||||
|
if (sender.hasPermission("toolstats.reset")) {
|
||||||
return Collections.singletonList("reset");
|
return Collections.singletonList("reset");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (args.length == 2) {
|
if (args.length == 2) {
|
||||||
if (args[0].equalsIgnoreCase("reset")) {
|
if (args[0].equalsIgnoreCase("reset")) {
|
||||||
return Collections.singletonList("confirm");
|
if (sender.hasPermission("toolstats.reset.confirm")) {
|
||||||
|
return Collections.singletonList("confirm");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -70,17 +70,18 @@ public class BlocksMined implements Listener {
|
|||||||
}
|
}
|
||||||
// read the current stats from the item
|
// read the current stats from the item
|
||||||
// if they don't exist, then start from 0
|
// if they don't exist, then start from 0
|
||||||
Integer blocksMined = 0;
|
Integer blocksMined = null;
|
||||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||||
if (container.has(toolStats.genericMined, PersistentDataType.INTEGER)) {
|
if (container.has(toolStats.genericMined, PersistentDataType.INTEGER)) {
|
||||||
blocksMined = container.get(toolStats.genericMined, PersistentDataType.INTEGER);
|
blocksMined = container.get(toolStats.genericMined, PersistentDataType.INTEGER);
|
||||||
}
|
}
|
||||||
if (blocksMined == null) {
|
if (blocksMined == null) {
|
||||||
return;
|
blocksMined = 0;
|
||||||
} else {
|
|
||||||
blocksMined++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blocksMined++;
|
||||||
container.set(toolStats.genericMined, PersistentDataType.INTEGER, blocksMined);
|
container.set(toolStats.genericMined, PersistentDataType.INTEGER, blocksMined);
|
||||||
|
|
||||||
String configLore = toolStats.getLoreFromConfig("blocks-mined", false);
|
String configLore = toolStats.getLoreFromConfig("blocks-mined", false);
|
||||||
String configLoreRaw = toolStats.getLoreFromConfig("blocks-mined", true);
|
String configLoreRaw = toolStats.getLoreFromConfig("blocks-mined", true);
|
||||||
|
|
||||||
|
|||||||
@@ -49,10 +49,18 @@ public class EntityDamage implements Listener {
|
|||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(event.getEntity() instanceof LivingEntity)) {
|
if (!(event.getEntity() instanceof LivingEntity)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LivingEntity livingEntity = (LivingEntity) event.getEntity();
|
LivingEntity livingEntity = (LivingEntity) event.getEntity();
|
||||||
|
|
||||||
|
// ignore void and /kill damage
|
||||||
|
EntityDamageEvent.DamageCause cause = event.getCause();
|
||||||
|
if (cause == EntityDamageEvent.DamageCause.SUICIDE || cause == EntityDamageEvent.DamageCause.VOID) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// mob is going to die
|
// mob is going to die
|
||||||
if (livingEntity.getHealth() - event.getFinalDamage() <= 0) {
|
if (livingEntity.getHealth() - event.getFinalDamage() <= 0) {
|
||||||
// a player is killing something
|
// a player is killing something
|
||||||
@@ -141,6 +149,13 @@ public class EntityDamage implements Listener {
|
|||||||
if (!(event.getEntity() instanceof LivingEntity)) {
|
if (!(event.getEntity() instanceof LivingEntity)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ignore void and /kill damage
|
||||||
|
EntityDamageEvent.DamageCause cause = event.getCause();
|
||||||
|
if (cause == EntityDamageEvent.DamageCause.SUICIDE || cause == EntityDamageEvent.DamageCause.VOID) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
LivingEntity livingEntity = (LivingEntity) event.getEntity();
|
LivingEntity livingEntity = (LivingEntity) event.getEntity();
|
||||||
// player is taken damage but not being killed
|
// player is taken damage but not being killed
|
||||||
if (livingEntity instanceof Player) {
|
if (livingEntity instanceof Player) {
|
||||||
@@ -164,6 +179,13 @@ public class EntityDamage implements Listener {
|
|||||||
if (!(event.getEntity() instanceof LivingEntity)) {
|
if (!(event.getEntity() instanceof LivingEntity)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ignore void and /kill damage
|
||||||
|
EntityDamageEvent.DamageCause cause = event.getCause();
|
||||||
|
if (cause == EntityDamageEvent.DamageCause.SUICIDE || cause == EntityDamageEvent.DamageCause.VOID) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
LivingEntity livingEntity = (LivingEntity) event.getEntity();
|
LivingEntity livingEntity = (LivingEntity) event.getEntity();
|
||||||
// player is taken damage but not being killed
|
// player is taken damage but not being killed
|
||||||
if (livingEntity instanceof Player) {
|
if (livingEntity instanceof Player) {
|
||||||
@@ -194,16 +216,16 @@ public class EntityDamage implements Listener {
|
|||||||
if (meta == null) {
|
if (meta == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Integer playerKills = 0;
|
Integer playerKills = null;
|
||||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||||
if (container.has(toolStats.swordPlayerKills, PersistentDataType.INTEGER)) {
|
if (container.has(toolStats.swordPlayerKills, PersistentDataType.INTEGER)) {
|
||||||
playerKills = container.get(toolStats.swordPlayerKills, PersistentDataType.INTEGER);
|
playerKills = container.get(toolStats.swordPlayerKills, PersistentDataType.INTEGER);
|
||||||
}
|
}
|
||||||
if (playerKills == null) {
|
if (playerKills == null) {
|
||||||
return null;
|
playerKills = 0;
|
||||||
} else {
|
|
||||||
playerKills++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
playerKills++;
|
||||||
container.set(toolStats.swordPlayerKills, PersistentDataType.INTEGER, playerKills);
|
container.set(toolStats.swordPlayerKills, PersistentDataType.INTEGER, playerKills);
|
||||||
|
|
||||||
String playerKillsLore = toolStats.getLoreFromConfig("kills.player", false);
|
String playerKillsLore = toolStats.getLoreFromConfig("kills.player", false);
|
||||||
@@ -257,16 +279,16 @@ public class EntityDamage implements Listener {
|
|||||||
if (meta == null) {
|
if (meta == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Integer mobKills = 0;
|
Integer mobKills = null;
|
||||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||||
if (container.has(toolStats.swordMobKills, PersistentDataType.INTEGER)) {
|
if (container.has(toolStats.swordMobKills, PersistentDataType.INTEGER)) {
|
||||||
mobKills = container.get(toolStats.swordMobKills, PersistentDataType.INTEGER);
|
mobKills = container.get(toolStats.swordMobKills, PersistentDataType.INTEGER);
|
||||||
}
|
}
|
||||||
if (mobKills == null) {
|
if (mobKills == null) {
|
||||||
return null;
|
mobKills = 0;
|
||||||
} else {
|
|
||||||
mobKills++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mobKills++;
|
||||||
container.set(toolStats.swordMobKills, PersistentDataType.INTEGER, mobKills);
|
container.set(toolStats.swordMobKills, PersistentDataType.INTEGER, mobKills);
|
||||||
|
|
||||||
String mobKillsLore = toolStats.getLoreFromConfig("kills.mob", false);
|
String mobKillsLore = toolStats.getLoreFromConfig("kills.mob", false);
|
||||||
@@ -319,16 +341,16 @@ public class EntityDamage implements Listener {
|
|||||||
if (meta == null) {
|
if (meta == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Double damageTaken = 0.0;
|
Double damageTaken = null;
|
||||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||||
if (container.has(toolStats.armorDamage, PersistentDataType.DOUBLE)) {
|
if (container.has(toolStats.armorDamage, PersistentDataType.DOUBLE)) {
|
||||||
damageTaken = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE);
|
damageTaken = container.get(toolStats.armorDamage, PersistentDataType.DOUBLE);
|
||||||
}
|
}
|
||||||
if (damageTaken == null) {
|
if (damageTaken == null) {
|
||||||
return;
|
damageTaken = 0.0;
|
||||||
} else {
|
|
||||||
damageTaken = damageTaken + damage;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
damageTaken = damageTaken + damage;
|
||||||
container.set(toolStats.armorDamage, PersistentDataType.DOUBLE, damageTaken);
|
container.set(toolStats.armorDamage, PersistentDataType.DOUBLE, damageTaken);
|
||||||
|
|
||||||
String damageTakenLore = toolStats.getLoreFromConfig("damage-taken", false);
|
String damageTakenLore = toolStats.getLoreFromConfig("damage-taken", false);
|
||||||
|
|||||||
@@ -82,16 +82,16 @@ public class PlayerFish implements Listener {
|
|||||||
if (meta == null) {
|
if (meta == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Integer fishCaught = 0;
|
Integer fishCaught = null;
|
||||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||||
if (container.has(toolStats.fishingRodCaught, PersistentDataType.INTEGER)) {
|
if (container.has(toolStats.fishingRodCaught, PersistentDataType.INTEGER)) {
|
||||||
fishCaught = container.get(toolStats.fishingRodCaught, PersistentDataType.INTEGER);
|
fishCaught = container.get(toolStats.fishingRodCaught, PersistentDataType.INTEGER);
|
||||||
}
|
}
|
||||||
if (fishCaught == null) {
|
if (fishCaught == null) {
|
||||||
return;
|
fishCaught = 0;
|
||||||
} else {
|
|
||||||
fishCaught++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fishCaught++;
|
||||||
container.set(toolStats.fishingRodCaught, PersistentDataType.INTEGER, fishCaught);
|
container.set(toolStats.fishingRodCaught, PersistentDataType.INTEGER, fishCaught);
|
||||||
|
|
||||||
String fishCaughtLore = toolStats.getLoreFromConfig("fished.fish-caught", false);
|
String fishCaughtLore = toolStats.getLoreFromConfig("fished.fish-caught", false);
|
||||||
|
|||||||
@@ -84,10 +84,10 @@ public class SheepShear implements Listener {
|
|||||||
sheepSheared = container.get(toolStats.shearsSheared, PersistentDataType.INTEGER);
|
sheepSheared = container.get(toolStats.shearsSheared, PersistentDataType.INTEGER);
|
||||||
}
|
}
|
||||||
if (sheepSheared == null) {
|
if (sheepSheared == null) {
|
||||||
return;
|
sheepSheared = 0;
|
||||||
} else {
|
|
||||||
sheepSheared++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sheepSheared++;
|
||||||
container.set(toolStats.shearsSheared, PersistentDataType.INTEGER, sheepSheared);
|
container.set(toolStats.shearsSheared, PersistentDataType.INTEGER, sheepSheared);
|
||||||
|
|
||||||
String sheepShearedLore = toolStats.getLoreFromConfig("sheep-sheared", false);
|
String sheepShearedLore = toolStats.getLoreFromConfig("sheep-sheared", false);
|
||||||
|
|||||||
@@ -78,7 +78,6 @@ public class VillagerTrade implements Listener {
|
|||||||
if (newItem != null) {
|
if (newItem != null) {
|
||||||
// this gets delayed since villager inventories suck for no reason
|
// this gets delayed since villager inventories suck for no reason
|
||||||
Bukkit.getScheduler().runTaskLater(toolStats, () -> event.setCurrentItem(newItem), 5);
|
Bukkit.getScheduler().runTaskLater(toolStats, () -> event.setCurrentItem(newItem), 5);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user