add blacklist-worlds feature

This commit is contained in:
hyperdefined
2026-01-26 13:23:28 -05:00
parent 96dd3ccd89
commit a21fbf7a95
20 changed files with 70 additions and 2 deletions

View File

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

View File

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

View File

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

View File

@@ -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;

View File

@@ -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)) {

View File

@@ -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)) {

View File

@@ -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) {

View File

@@ -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)) {

View File

@@ -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;

View File

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

View File

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

View File

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

View File

@@ -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) {

View File

@@ -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

View File

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

View File

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

View File

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

View File

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

View File

@@ -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<String> 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) {

View File

@@ -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
# Allows you to turn off ToolStats in the worlds on the list.
blacklist-worlds:
- world_1
- world_2
config-version: 15