mirror of
https://github.com/hyperdefined/ToolStats.git
synced 2026-01-27 07:55:59 +00:00
properly do black/whitelist feature based on feedback
This commit is contained in:
@@ -46,7 +46,7 @@ public class BlockBreak implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class BlockDispenseEvent implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class ChunkPopulate implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
World world = event.getChunk().getWorld();
|
World world = event.getChunk().getWorld();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(world.getName())) {
|
if (!toolStats.configTools.checkWorld(world.getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// this is delayed because entities are not loaded instantly
|
// this is delayed because entities are not loaded instantly
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class CraftItem implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = (Player) event.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class CreativeEvent implements Listener {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onCreativeEvent(InventoryCreativeEvent event) {
|
public void onCreativeEvent(InventoryCreativeEvent event) {
|
||||||
Player player = (Player) event.getWhoClicked();
|
Player player = (Player) event.getWhoClicked();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// make sure they are in creative mode
|
// make sure they are in creative mode
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class EntityDamage implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(mobBeingAttacked.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(mobBeingAttacked.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class EntityDeath implements Listener {
|
|||||||
if (livingEntity instanceof Player) {
|
if (livingEntity instanceof Player) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(livingEntity.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(livingEntity.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
UUID livingEntityUUID = event.getEntity().getUniqueId();
|
UUID livingEntityUUID = event.getEntity().getUniqueId();
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class GenerateLoot implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Location lootLocation = event.getLootContext().getLocation();
|
Location lootLocation = event.getLootContext().getLocation();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(lootLocation.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(lootLocation.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Chunk lootChunk = lootLocation.getChunk();
|
Chunk lootChunk = lootLocation.getChunk();
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class InventoryClose implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player player = (Player) event.getPlayer();
|
Player player = (Player) event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Inventory closedInventory = event.getInventory();
|
Inventory closedInventory = event.getInventory();
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class InventoryOpen implements Listener {
|
|||||||
|
|
||||||
Inventory inventory = event.getInventory();
|
Inventory inventory = event.getInventory();
|
||||||
Player player = (Player) event.getPlayer();
|
Player player = (Player) event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (ItemStack itemStack : inventory) {
|
for (ItemStack itemStack : inventory) {
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class PickupItem implements Listener {
|
|||||||
}
|
}
|
||||||
Entity entity = event.getEntity();
|
Entity entity = event.getEntity();
|
||||||
if (entity instanceof Player player) {
|
if (entity instanceof Player player) {
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class PlayerFish implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class PlayerInteract implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class PlayerJoin implements Listener {
|
|||||||
@EventHandler
|
@EventHandler
|
||||||
public void onJoin(PlayerJoinEvent event) {
|
public void onJoin(PlayerJoinEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public class PlayerMove implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.MONITOR)
|
@EventHandler(priority = EventPriority.MONITOR)
|
||||||
public void onMove(PlayerMoveEvent event) {
|
public void onMove(PlayerMoveEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// player starts to fly
|
// player starts to fly
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class ProjectileShoot implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(tridentEntity.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(tridentEntity.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class SheepShear implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class ShootBow implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
if (player.getGameMode() == GameMode.CREATIVE && !toolStats.config.getBoolean("allow-creative")) {
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class VillagerTrade implements Listener {
|
|||||||
if (!(event.getWhoClicked() instanceof Player player)) {
|
if (!(event.getWhoClicked() instanceof Player player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (toolStats.config.getStringList("blacklist-worlds").contains(player.getWorld().getName())) {
|
if (!toolStats.configTools.checkWorld(player.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
|
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) {
|
||||||
|
|||||||
@@ -94,6 +94,47 @@ public class ConfigTools {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check the status of a world from the config.
|
||||||
|
*
|
||||||
|
* @param worldName The world to check.
|
||||||
|
* @return True if we can work in this world, false if not.
|
||||||
|
*/
|
||||||
|
public boolean checkWorld(String worldName) {
|
||||||
|
boolean enabled = toolStats.config.getBoolean("world-limit.enabled");
|
||||||
|
// if the system is disabled, all worlds are allowed
|
||||||
|
if (!enabled) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
String mode = toolStats.config.getString("worlds.mode");
|
||||||
|
if (mode == null) {
|
||||||
|
toolStats.logger.info("worlds.mode is not set, not allowing any worlds by default.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> worlds = toolStats.config.getStringList("worlds.worlds");
|
||||||
|
// if no worlds are defined, deny them
|
||||||
|
if (worlds.isEmpty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mode.equalsIgnoreCase("blacklist")) {
|
||||||
|
// this world is on list and mode = blacklisted
|
||||||
|
// don't allow this world, allow others not on list
|
||||||
|
return !worlds.contains(worldName);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mode.equalsIgnoreCase("whitelist")) {
|
||||||
|
// this world is on list and mode = whitelisted
|
||||||
|
// allow it. if the world is not on list, don't allow it
|
||||||
|
return worlds.contains(worldName);
|
||||||
|
}
|
||||||
|
|
||||||
|
toolStats.logger.warn("Unknown worlds.mode '{}', denying by default.", mode);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format a string to be ready for lore usage.
|
* Format a string to be ready for lore usage.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -130,9 +130,11 @@ public class Version15 {
|
|||||||
toolStats.config.set("messages.trident-throws", "&7Times thrown: &8{times}");
|
toolStats.config.set("messages.trident-throws", "&7Times thrown: &8{times}");
|
||||||
|
|
||||||
// blacklist feature
|
// blacklist feature
|
||||||
toolStats.logger.info("Adding new blacklist-worlds feature");
|
toolStats.logger.info("Adding new world-limit feature, which is disabled by default");
|
||||||
List<String> worlds = Arrays.asList("world_1", "world_2");
|
List<String> worlds = Arrays.asList("world_1", "world_2");
|
||||||
toolStats.config.set("blacklist-worlds", worlds);
|
toolStats.config.set("world-limit.enabled", false);
|
||||||
|
toolStats.config.set("world-limit.mode", "blacklist");
|
||||||
|
toolStats.config.set("world-limit.worlds", worlds);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
toolStats.config.save("plugins" + File.separator + "ToolStats" + File.separator + "config.yml");
|
toolStats.config.save("plugins" + File.separator + "ToolStats" + File.separator + "config.yml");
|
||||||
|
|||||||
@@ -409,9 +409,13 @@ normalize-time-creation: false
|
|||||||
# Allows stats and origins to be tracked if the player is in creative mode.
|
# Allows stats and origins to be tracked if the player is in creative mode.
|
||||||
allow-creative: false
|
allow-creative: false
|
||||||
|
|
||||||
# Allows you to turn off ToolStats in the worlds on the list.
|
# Allows you to change what worlds ToolStats works in.
|
||||||
blacklist-worlds:
|
# Mode is blacklist or whitelist.
|
||||||
- world_1
|
world-limit:
|
||||||
- world_2
|
enabled: false
|
||||||
|
mode: "blacklist"
|
||||||
|
worlds:
|
||||||
|
- world_1
|
||||||
|
- world_2
|
||||||
|
|
||||||
config-version: 15
|
config-version: 15
|
||||||
Reference in New Issue
Block a user