diff --git a/src/main/java/lol/hyper/toolstats/events/BlockBreak.java b/src/main/java/lol/hyper/toolstats/events/BlockBreak.java index 2e214eb..5bd22aa 100644 --- a/src/main/java/lol/hyper/toolstats/events/BlockBreak.java +++ b/src/main/java/lol/hyper/toolstats/events/BlockBreak.java @@ -46,6 +46,9 @@ public class BlockBreak implements Listener { return; } Player player = event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java b/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java index 5cd82ab..20500a5 100644 --- a/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java +++ b/src/main/java/lol/hyper/toolstats/events/BlockDispenseEvent.java @@ -48,11 +48,13 @@ public class BlockDispenseEvent implements Listener { @EventHandler(priority = EventPriority.HIGHEST) public void onDispense(BlockDispenseLootEvent event) { Player player = event.getPlayer(); - if (player == null) { return; } + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/CraftItem.java b/src/main/java/lol/hyper/toolstats/events/CraftItem.java index 08d580e..2106360 100644 --- a/src/main/java/lol/hyper/toolstats/events/CraftItem.java +++ b/src/main/java/lol/hyper/toolstats/events/CraftItem.java @@ -50,6 +50,9 @@ public class CraftItem implements Listener { return; } Player player = (Player) event.getWhoClicked(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java b/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java index fb5ee7b..94d350d 100644 --- a/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java +++ b/src/main/java/lol/hyper/toolstats/events/CreativeEvent.java @@ -45,6 +45,9 @@ public class CreativeEvent implements Listener { @EventHandler public void onCreativeEvent(InventoryCreativeEvent event) { Player player = (Player) event.getWhoClicked(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } // make sure they are in creative mode if (player.getGameMode() != GameMode.CREATIVE) { return; diff --git a/src/main/java/lol/hyper/toolstats/events/EntityDamage.java b/src/main/java/lol/hyper/toolstats/events/EntityDamage.java index f41a2b0..32a5fbd 100644 --- a/src/main/java/lol/hyper/toolstats/events/EntityDamage.java +++ b/src/main/java/lol/hyper/toolstats/events/EntityDamage.java @@ -56,6 +56,10 @@ public class EntityDamage implements Listener { return; } + if (toolStats.config.getStringList("blacklist-worlds").contains(mobBeingAttacked.getWorld().toString())) { + return; + } + // ignore void and /kill damage EntityDamageEvent.DamageCause cause = event.getCause(); if (ignoredCauses.contains(cause)) { diff --git a/src/main/java/lol/hyper/toolstats/events/EntityDeath.java b/src/main/java/lol/hyper/toolstats/events/EntityDeath.java index a5db1e6..7a89463 100644 --- a/src/main/java/lol/hyper/toolstats/events/EntityDeath.java +++ b/src/main/java/lol/hyper/toolstats/events/EntityDeath.java @@ -49,6 +49,9 @@ public class EntityDeath implements Listener { if (livingEntity instanceof Player) { return; } + if (toolStats.config.getStringList("blacklist-worlds").contains(livingEntity.getWorld().toString())) { + return; + } UUID livingEntityUUID = event.getEntity().getUniqueId(); // if it's a mob we are tracking that matters if (toolStats.mobKill.trackedMobs.contains(livingEntityUUID)) { diff --git a/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java b/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java index e6b2331..d92b659 100644 --- a/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java +++ b/src/main/java/lol/hyper/toolstats/events/GenerateLoot.java @@ -50,6 +50,9 @@ public class GenerateLoot implements Listener { return; } Location lootLocation = event.getLootContext().getLocation(); + if (toolStats.config.getStringList("blacklist-worlds").contains(lootLocation.getWorld().toString())) { + return; + } Chunk lootChunk = lootLocation.getChunk(); Bukkit.getRegionScheduler().runDelayed(toolStats, lootLocation.getWorld(), lootChunk.getX(), lootChunk.getZ(), scheduledTask -> { if (inventoryHolder instanceof Container) { diff --git a/src/main/java/lol/hyper/toolstats/events/InventoryClose.java b/src/main/java/lol/hyper/toolstats/events/InventoryClose.java index f98e74f..1f4b940 100644 --- a/src/main/java/lol/hyper/toolstats/events/InventoryClose.java +++ b/src/main/java/lol/hyper/toolstats/events/InventoryClose.java @@ -57,6 +57,9 @@ public class InventoryClose implements Listener { } Player player = (Player) event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } Inventory closedInventory = event.getInventory(); InventoryHolder holder = closedInventory.getHolder(); if (toolStats.generateLoot.generatedInventory.containsKey(closedInventory)) { diff --git a/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java b/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java index 0de96d8..9917f7f 100644 --- a/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java +++ b/src/main/java/lol/hyper/toolstats/events/InventoryOpen.java @@ -53,6 +53,9 @@ public class InventoryOpen implements Listener { } Player player = (Player) event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } for (ItemStack itemStack : inventory) { if (itemStack == null) { continue; diff --git a/src/main/java/lol/hyper/toolstats/events/PickupItem.java b/src/main/java/lol/hyper/toolstats/events/PickupItem.java index 10ca690..c588e9f 100644 --- a/src/main/java/lol/hyper/toolstats/events/PickupItem.java +++ b/src/main/java/lol/hyper/toolstats/events/PickupItem.java @@ -54,6 +54,9 @@ public class PickupItem implements Listener { } Entity entity = event.getEntity(); if (entity instanceof Player player) { + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerFish.java b/src/main/java/lol/hyper/toolstats/events/PlayerFish.java index 6710c0f..7f8a391 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerFish.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerFish.java @@ -57,6 +57,9 @@ public class PlayerFish implements Listener { } Player player = event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerInteract.java b/src/main/java/lol/hyper/toolstats/events/PlayerInteract.java index 17e6c52..ae8df40 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerInteract.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerInteract.java @@ -62,6 +62,9 @@ public class PlayerInteract implements Listener { } Player player = event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java b/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java index 56665fa..fee246f 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerJoin.java @@ -42,6 +42,9 @@ public class PlayerJoin implements Listener { @EventHandler public void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } Inventory inventory = player.getInventory(); for (ItemStack itemStack : inventory) { diff --git a/src/main/java/lol/hyper/toolstats/events/PlayerMove.java b/src/main/java/lol/hyper/toolstats/events/PlayerMove.java index 45c7cbe..864697f 100644 --- a/src/main/java/lol/hyper/toolstats/events/PlayerMove.java +++ b/src/main/java/lol/hyper/toolstats/events/PlayerMove.java @@ -42,6 +42,9 @@ public class PlayerMove implements Listener { @EventHandler(priority = EventPriority.MONITOR) public void onMove(PlayerMoveEvent event) { Player player = event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } // player starts to fly if (player.isGliding()) { // if they are flying, and we don't have them tracked, add them diff --git a/src/main/java/lol/hyper/toolstats/events/ProjectileShoot.java b/src/main/java/lol/hyper/toolstats/events/ProjectileShoot.java index 8df789c..4f4d724 100644 --- a/src/main/java/lol/hyper/toolstats/events/ProjectileShoot.java +++ b/src/main/java/lol/hyper/toolstats/events/ProjectileShoot.java @@ -41,6 +41,10 @@ public class ProjectileShoot implements Listener { return; } + if (toolStats.config.getStringList("blacklist-worlds").contains(tridentEntity.getWorld().toString())) { + return; + } + tridentEntity.getScheduler().runDelayed(toolStats, scheduledTask -> { ItemStack tridentStack = tridentEntity.getItemStack(); ItemMeta newTridentMeta = toolStats.itemLore.updateTridentThrows(tridentStack, 1); diff --git a/src/main/java/lol/hyper/toolstats/events/SheepShear.java b/src/main/java/lol/hyper/toolstats/events/SheepShear.java index c77ced1..be66e03 100644 --- a/src/main/java/lol/hyper/toolstats/events/SheepShear.java +++ b/src/main/java/lol/hyper/toolstats/events/SheepShear.java @@ -45,6 +45,9 @@ public class SheepShear implements Listener { return; } Player player = event.getPlayer(); + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/ShootBow.java b/src/main/java/lol/hyper/toolstats/events/ShootBow.java index 446167e..70a189b 100644 --- a/src/main/java/lol/hyper/toolstats/events/ShootBow.java +++ b/src/main/java/lol/hyper/toolstats/events/ShootBow.java @@ -46,6 +46,9 @@ public class ShootBow implements Listener { return; } + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) { return; } diff --git a/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java b/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java index aa2e5fe..5efe18b 100644 --- a/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java +++ b/src/main/java/lol/hyper/toolstats/events/VillagerTrade.java @@ -56,6 +56,9 @@ public class VillagerTrade implements Listener { if (!(event.getWhoClicked() instanceof Player player)) { return; } + if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().toString())) { + return; + } if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) { return; } diff --git a/src/main/java/lol/hyper/toolstats/tools/config/versions/Version15.java b/src/main/java/lol/hyper/toolstats/tools/config/versions/Version15.java index f46c68f..b8804e1 100644 --- a/src/main/java/lol/hyper/toolstats/tools/config/versions/Version15.java +++ b/src/main/java/lol/hyper/toolstats/tools/config/versions/Version15.java @@ -18,9 +18,11 @@ package lol.hyper.toolstats.tools.config.versions; import lol.hyper.toolstats.ToolStats; +import org.bukkit.configuration.ConfigurationSection; import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.List; public class Version15 { @@ -121,11 +123,17 @@ public class Version15 { toolStats.logger.info("Adding enabled.trident-throws"); // default for new stats + toolStats.logger.info("Adding new default messages"); toolStats.config.set("messages.bosses-killed.wither", "&7Withers killed: &8{kills}"); toolStats.config.set("messages.bosses-killed.enderdragon", "&7Ender Dragons killed: &8{kills}"); toolStats.config.set("messages.critical-strikes", "&7Critical strikes: &8{strikes}"); toolStats.config.set("messages.trident-throws", "&7Times thrown: &8{times}"); + // blacklist feature + toolStats.logger.info("Adding new blacklist-worlds feature"); + List worlds = Arrays.asList("world_1", "world_2"); + toolStats.config.set("blacklist-worlds", worlds); + try { toolStats.config.save("plugins" + File.separator + "ToolStats" + File.separator + "config.yml"); } catch (IOException exception) { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 886274a..2aaf6a9 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -409,4 +409,9 @@ normalize-time-creation: false # Allows stats and origins to be tracked if the player is in creative mode. allow-creative: false -config-version: 14 \ No newline at end of file +# Allows you to turn off ToolStats in the worlds on the list. +blacklist-worlds: + - world_1 + - world_2 + +config-version: 15 \ No newline at end of file