further improvement of logging messages
This commit is contained in:
parent
01fed3258d
commit
3f8e651346
@ -8,7 +8,6 @@ import me.xginko.villageroptimizer.config.Config;
|
|||||||
import me.xginko.villageroptimizer.utils.CommonUtil;
|
import me.xginko.villageroptimizer.utils.CommonUtil;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Server;
|
import org.bukkit.Server;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@ -158,11 +157,9 @@ public class VillagerChunkLimit implements VillagerOptimizerModule, Listener {
|
|||||||
scheduler.runAtEntity(villager, kill -> {
|
scheduler.runAtEntity(villager, kill -> {
|
||||||
villager.remove();
|
villager.remove();
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = villager.getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(
|
VillagerOptimizer.getLog().info(Component.text(
|
||||||
"Removed unoptimized villager with profession '" + villager.getProfession().name() + "' at " +
|
"Removed unoptimized villager with profession '" + villager.getProfession().name() + "' at " +
|
||||||
"x=" + location.getX() + ", y=" + location.getY() + ", z=" + location.getZ() +
|
CommonUtil.formatLocation(villager.getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
" in world " + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -183,11 +180,9 @@ public class VillagerChunkLimit implements VillagerOptimizerModule, Listener {
|
|||||||
villager.remove();
|
villager.remove();
|
||||||
|
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = villager.getLocation();
|
VillagerOptimizer.getLog().info(Component.text("Removed optimized villager with profession '" +
|
||||||
VillagerOptimizer.getLog().info(Component.text(
|
villager.getProfession().name() + "' at " +
|
||||||
"Removed optimized villager with profession '" + villager.getProfession().name() + "' at " +
|
CommonUtil.formatLocation(villager.getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
"x=" + location.getX() + ", y=" + location.getY() + ", z=" + location.getZ() +
|
|
||||||
" in world " + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,9 @@ import me.xginko.villageroptimizer.VillagerCache;
|
|||||||
import me.xginko.villageroptimizer.VillagerOptimizer;
|
import me.xginko.villageroptimizer.VillagerOptimizer;
|
||||||
import me.xginko.villageroptimizer.config.Config;
|
import me.xginko.villageroptimizer.config.Config;
|
||||||
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
|
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
|
||||||
|
import me.xginko.villageroptimizer.utils.CommonUtil;
|
||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -79,14 +80,13 @@ public class EnableLeashingVillagers implements VillagerOptimizerModule, Listene
|
|||||||
|
|
||||||
scheduler.runAtEntity(villager, leash -> {
|
scheduler.runAtEntity(villager, leash -> {
|
||||||
// Legitimate to not use entities from the event object since they are final in PlayerLeashEntityEvent
|
// Legitimate to not use entities from the event object since they are final in PlayerLeashEntityEvent
|
||||||
if (villager.setLeashHolder(player)) {
|
if (!villager.setLeashHolder(player)) return;
|
||||||
handItem.subtract(1);
|
if (player.getGameMode().equals(GameMode.SURVIVAL))
|
||||||
if (log_enabled) {
|
handItem.subtract(1); // Manually consume for survival players
|
||||||
final Location location = villager.getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(player.getName() + " leashed a villager at " +
|
if (log_enabled) {
|
||||||
"x=" + location.getBlockX() + ", y=" + location.getBlockY() + ", z=" + location.getBlockZ() +
|
VillagerOptimizer.getLog().info(Component.text(player.getName() + " leashed a villager at " +
|
||||||
", world=" + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
CommonUtil.formatLocation(villager.getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@ import org.bukkit.event.inventory.InventoryType;
|
|||||||
import org.bukkit.potion.PotionEffect;
|
import org.bukkit.potion.PotionEffect;
|
||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class LevelOptimizedProfession implements VillagerOptimizerModule, Listener {
|
public class LevelOptimizedProfession implements VillagerOptimizerModule, Listener {
|
||||||
@ -86,7 +87,7 @@ public class LevelOptimizedProfession implements VillagerOptimizerModule, Listen
|
|||||||
Player player = (Player) event.getPlayer();
|
Player player = (Player) event.getPlayer();
|
||||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%time%")
|
.matchLiteral("%time%")
|
||||||
.replacement(CommonUtil.formatTime(wVillager.getLevelCooldownMillis(cooldown_millis)))
|
.replacement(CommonUtil.formatDuration(Duration.ofMillis(wVillager.getLevelCooldownMillis(cooldown_millis))))
|
||||||
.build();
|
.build();
|
||||||
VillagerOptimizer.getLang(player.locale()).villager_leveling_up.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
VillagerOptimizer.getLang(player.locale()).villager_leveling_up.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,8 @@ import org.bukkit.event.HandlerList;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
|
||||||
public class RestockOptimizedTrades implements VillagerOptimizerModule, Listener {
|
public class RestockOptimizedTrades implements VillagerOptimizerModule, Listener {
|
||||||
|
|
||||||
private final VillagerCache villagerCache;
|
private final VillagerCache villagerCache;
|
||||||
@ -71,7 +73,7 @@ public class RestockOptimizedTrades implements VillagerOptimizerModule, Listener
|
|||||||
if (notify_player && !player_bypassing) {
|
if (notify_player && !player_bypassing) {
|
||||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%time%")
|
.matchLiteral("%time%")
|
||||||
.replacement(CommonUtil.formatTime(wVillager.getRestockCooldownMillis(restock_delay_millis)))
|
.replacement(CommonUtil.formatDuration(Duration.ofMillis(wVillager.getRestockCooldownMillis(restock_delay_millis))))
|
||||||
.build();
|
.build();
|
||||||
VillagerOptimizer.getLang(player.locale()).trades_restocked.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
VillagerOptimizer.getLang(player.locale()).trades_restocked.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.block.BlockBreakEvent;
|
import org.bukkit.event.block.BlockBreakEvent;
|
||||||
import org.bukkit.event.block.BlockPlaceEvent;
|
import org.bukkit.event.block.BlockPlaceEvent;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@ -144,17 +145,15 @@ public class OptimizeByBlock implements VillagerOptimizerModule, Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = closestOptimizableVillager.villager().getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(player.getName() + " optimized villager by block at " +
|
VillagerOptimizer.getLog().info(Component.text(player.getName() + " optimized villager by block at " +
|
||||||
"x=" + location.getX() + ", y=" + location.getY() + ", z=" + location.getZ() +
|
CommonUtil.formatLocation(closestOptimizableVillager.villager().getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
" in world " + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
CommonUtil.shakeHead(closestOptimizableVillager.villager());
|
CommonUtil.shakeHead(closestOptimizableVillager.villager());
|
||||||
if (notify_player) {
|
if (notify_player) {
|
||||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%time%")
|
.matchLiteral("%time%")
|
||||||
.replacement(CommonUtil.formatTime(closestOptimizableVillager.getOptimizeCooldownMillis(cooldown_millis)))
|
.replacement(CommonUtil.formatDuration(Duration.ofMillis(closestOptimizableVillager.getOptimizeCooldownMillis(cooldown_millis))))
|
||||||
.build();
|
.build();
|
||||||
VillagerOptimizer.getLang(player.locale()).block_on_optimize_cooldown.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
VillagerOptimizer.getLang(player.locale()).block_on_optimize_cooldown.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||||
}
|
}
|
||||||
@ -209,10 +208,8 @@ public class OptimizeByBlock implements VillagerOptimizerModule, Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = closestOptimizedVillager.villager().getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(player.getName() + " unoptimized villager by block at " +
|
VillagerOptimizer.getLog().info(Component.text(player.getName() + " unoptimized villager by block at " +
|
||||||
"x=" + location.getBlockX() + ", y=" + location.getBlockY() + ", z=" + location.getBlockZ() +
|
CommonUtil.formatLocation(closestOptimizedVillager.villager().getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
", world=" + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,8 +4,8 @@ import me.xginko.villageroptimizer.VillagerCache;
|
|||||||
import me.xginko.villageroptimizer.VillagerOptimizer;
|
import me.xginko.villageroptimizer.VillagerOptimizer;
|
||||||
import me.xginko.villageroptimizer.WrappedVillager;
|
import me.xginko.villageroptimizer.WrappedVillager;
|
||||||
import me.xginko.villageroptimizer.config.Config;
|
import me.xginko.villageroptimizer.config.Config;
|
||||||
import me.xginko.villageroptimizer.enums.permissions.Bypass;
|
|
||||||
import me.xginko.villageroptimizer.enums.OptimizationType;
|
import me.xginko.villageroptimizer.enums.OptimizationType;
|
||||||
|
import me.xginko.villageroptimizer.enums.permissions.Bypass;
|
||||||
import me.xginko.villageroptimizer.enums.permissions.Optimize;
|
import me.xginko.villageroptimizer.enums.permissions.Optimize;
|
||||||
import me.xginko.villageroptimizer.events.VillagerOptimizeEvent;
|
import me.xginko.villageroptimizer.events.VillagerOptimizeEvent;
|
||||||
import me.xginko.villageroptimizer.events.VillagerUnoptimizeEvent;
|
import me.xginko.villageroptimizer.events.VillagerUnoptimizeEvent;
|
||||||
@ -14,7 +14,6 @@ import me.xginko.villageroptimizer.utils.CommonUtil;
|
|||||||
import net.kyori.adventure.text.Component;
|
import net.kyori.adventure.text.Component;
|
||||||
import net.kyori.adventure.text.TextReplacementConfig;
|
import net.kyori.adventure.text.TextReplacementConfig;
|
||||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -27,6 +26,7 @@ import org.bukkit.event.player.PlayerInteractEntityEvent;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -111,11 +111,9 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = wVillager.villager().getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
||||||
" optimized villager by nametag '" + name + "' at " +
|
" optimized villager by nametag '" + name + "' at " +
|
||||||
"x=" + location.getBlockX() + ", y=" + location.getBlockY() + ", z=" + location.getBlockZ() +
|
CommonUtil.formatLocation(wVillager.villager().getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
", world=" + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@ -123,7 +121,7 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
|
|||||||
if (notify_player) {
|
if (notify_player) {
|
||||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%time%")
|
.matchLiteral("%time%")
|
||||||
.replacement(CommonUtil.formatTime(wVillager.getOptimizeCooldownMillis(cooldown)))
|
.replacement(CommonUtil.formatDuration(Duration.ofMillis(wVillager.getOptimizeCooldownMillis(cooldown))))
|
||||||
.build();
|
.build();
|
||||||
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line.replaceText(timeLeft)));
|
||||||
}
|
}
|
||||||
@ -140,11 +138,9 @@ public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = wVillager.villager().getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
||||||
" unoptimized villager by nametag '" + name + "' at " +
|
" unoptimized villager by nametag '" + name + "' at " +
|
||||||
"x=" + location.getX() + ", y=" + location.getY() + ", z=" + location.getZ() +
|
CommonUtil.formatLocation(wVillager.villager().getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
", world=" + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
|||||||
if (notify_player) {
|
if (notify_player) {
|
||||||
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
final TextReplacementConfig timeLeft = TextReplacementConfig.builder()
|
||||||
.matchLiteral("%time%")
|
.matchLiteral("%time%")
|
||||||
.replacement(CommonUtil.formatTime(finalToOptimize.getOptimizeCooldownMillis(cooldown_millis)))
|
.replacement(CommonUtil.formatDuration(Duration.ofMillis(finalToOptimize.getOptimizeCooldownMillis(cooldown_millis))))
|
||||||
.build();
|
.build();
|
||||||
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
VillagerOptimizer.getLang(player.locale()).nametag_on_optimize_cooldown.forEach(line -> player.sendMessage(line
|
||||||
.replaceText(timeLeft)
|
.replaceText(timeLeft)
|
||||||
@ -161,11 +161,9 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = finalToOptimize.villager().getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
||||||
" optimized villager by workstation (" + placed.getType().toString().toLowerCase() + ") at " +
|
" optimized villager by workstation (" + placed.getType().toString().toLowerCase() + ") at " +
|
||||||
"x=" + location.getBlockX() + ", y=" + location.getBlockY() + ", z=" + location.getBlockZ() +
|
CommonUtil.formatLocation(finalToOptimize.villager().getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
", world=" + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
}, toOptimize.canLooseProfession() ? resettable_delay_millis : delay_millis, TimeUnit.MILLISECONDS));
|
}, toOptimize.canLooseProfession() ? resettable_delay_millis : delay_millis, TimeUnit.MILLISECONDS));
|
||||||
}
|
}
|
||||||
@ -224,11 +222,9 @@ public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (log_enabled) {
|
if (log_enabled) {
|
||||||
final Location location = closestOptimizedVillager.villager().getLocation();
|
|
||||||
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
VillagerOptimizer.getLog().info(Component.text(player.getName() +
|
||||||
" unoptimized villager by workstation (" + broken.getType().toString().toLowerCase() + ") at " +
|
" unoptimized villager by workstation (" + broken.getType().toString().toLowerCase() + ") at " +
|
||||||
"x=" + location.getBlockX() + ", y=" + location.getBlockY() + ", z=" + location.getBlockZ() +
|
CommonUtil.formatLocation(closestOptimizedVillager.villager().getLocation())).color(VillagerOptimizer.plugin_style.color()));
|
||||||
", world=" + location.getWorld().getName()).style(VillagerOptimizer.plugin_style));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
package me.xginko.villageroptimizer.utils;
|
package me.xginko.villageroptimizer.utils;
|
||||||
|
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Villager;
|
import org.bukkit.entity.Villager;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@ -8,8 +9,7 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
|
|
||||||
public class CommonUtil {
|
public class CommonUtil {
|
||||||
public static @NotNull String formatTime(final long millis) {
|
public static @NotNull String formatDuration(Duration duration) {
|
||||||
Duration duration = Duration.ofMillis(millis);
|
|
||||||
final int seconds = duration.toSecondsPart();
|
final int seconds = duration.toSecondsPart();
|
||||||
final int minutes = duration.toMinutesPart();
|
final int minutes = duration.toMinutesPart();
|
||||||
final int hours = duration.toHoursPart();
|
final int hours = duration.toHoursPart();
|
||||||
@ -23,6 +23,10 @@ public class CommonUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String formatLocation(@NotNull Location location) {
|
||||||
|
return "[" + location.getWorld().getName() + "] x=" + location.getBlockX() + ", y=" + location.getBlockY() + ", z=" + location.getBlockZ();
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean specificChunkLoadedMethodAvailable = true;
|
private static boolean specificChunkLoadedMethodAvailable = true;
|
||||||
public static boolean isEntitiesLoaded(@NotNull Chunk chunk) {
|
public static boolean isEntitiesLoaded(@NotNull Chunk chunk) {
|
||||||
if (!specificChunkLoadedMethodAvailable) {
|
if (!specificChunkLoadedMethodAvailable) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user