Migrate logging to SLF4J

Signed-off-by: solonovamax <solonovamax@12oclockpoint.com>
This commit is contained in:
solonovamax
2021-08-30 19:53:35 -04:00
parent c445a0434d
commit a776ecfc2b
42 changed files with 306 additions and 325 deletions

View File

@@ -8,6 +8,8 @@ import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
@@ -31,6 +33,7 @@ import com.dfsek.terra.commands.TerraCommandManager;
public class TerraBukkitPlugin extends JavaPlugin {
public static final BukkitVersion BUKKIT_VERSION;
private static final Logger logger = LoggerFactory.getLogger(TerraBukkitPlugin.class);
static {
String ver = Bukkit.getServer().getClass().getPackage().getName();
@@ -53,9 +56,9 @@ public class TerraBukkitPlugin extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("Running on version " + BUKKIT_VERSION);
logger.info("Running on version {}", BUKKIT_VERSION);
if(BUKKIT_VERSION == BukkitVersion.UNKNOWN) {
getLogger().warning("Terra is running on an unknown Bukkit version. Proceed with caution.");
logger.warn("Terra is running on an unknown Bukkit version. Proceed with caution.");
}
terraPlugin.getEventManager().callEvent(new PlatformInitializationEvent());
@@ -72,9 +75,12 @@ public class TerraBukkitPlugin extends JavaPlugin {
manager.register("save-data", SaveDataCommand.class);
manager.register("fix-chunk", FixChunkCommand.class);
} catch(MalformedCommandException e) { // This should never happen.
terraPlugin.logger().severe("Errors occurred while registering commands.");
e.printStackTrace();
terraPlugin.logger().severe("Please report this to Terra.");
logger.error("""
TERRA HAS BEEN DISABLED
Errors occurred while registering commands.
Please report this to Terra.
""", e);
Bukkit.getPluginManager().disablePlugin(this);
return;
}
@@ -115,21 +121,21 @@ public class TerraBukkitPlugin extends JavaPlugin {
private void registerSpigotEvents(boolean outdated) {
if(outdated) {
getLogger().severe("You are using an outdated version of Paper.");
getLogger().severe("This version does not contain StructureLocateEvent.");
getLogger().severe("Terra will now fall back to Spigot events.");
getLogger().severe("This will prevent cartographer villagers from spawning,");
getLogger().severe("and cause structure location to not function.");
getLogger().severe("If you want these functionalities, update to the latest build of Paper.");
getLogger().severe("If you use a fork, update to the latest version, then if you still");
getLogger().severe("receive this message, ask the fork developer to update upstream.");
logger.error("You are using an outdated version of Paper.");
logger.error("This version does not contain StructureLocateEvent.");
logger.error("Terra will now fall back to Spigot events.");
logger.error("This will prevent cartographer villagers from spawning,");
logger.error("and cause structure location to not function.");
logger.error("If you want these functionalities, update to the latest build of Paper.");
logger.error("If you use a fork, update to the latest version, then if you still");
logger.error("receive this message, ask the fork developer to update upstream.");
} else {
getLogger().severe("Paper is not in use. Falling back to Spigot events.");
getLogger().severe("This will prevent cartographer villagers from spawning,");
getLogger().severe("and cause structure location to not function.");
getLogger().severe("If you want these functionalities (and all the other");
getLogger().severe("benefits that Paper offers), upgrade your server to Paper.");
getLogger().severe("Find out more at https://papermc.io/");
logger.error("Paper is not in use. Falling back to Spigot events.");
logger.error("This will prevent cartographer villagers from spawning,");
logger.error("and cause structure location to not function.");
logger.error("If you want these functionalities (and all the other");
logger.error("benefits that Paper offers), upgrade your server to Paper.");
logger.error("Find out more at https://papermc.io/");
}
Bukkit.getPluginManager().registerEvents(new SpigotListener(terraPlugin), this); // Register Spigot event listener

View File

@@ -10,7 +10,6 @@ import java.util.Locale;
import java.util.Optional;
import com.dfsek.terra.AbstractTerraPlugin;
import com.dfsek.terra.api.Logger;
import com.dfsek.terra.api.addon.TerraAddon;
import com.dfsek.terra.api.block.state.BlockState;
import com.dfsek.terra.api.handle.ItemHandle;
@@ -19,7 +18,6 @@ import com.dfsek.terra.api.world.biome.Biome;
import com.dfsek.terra.bukkit.handles.BukkitItemHandle;
import com.dfsek.terra.bukkit.handles.BukkitWorldHandle;
import com.dfsek.terra.bukkit.world.BukkitBiome;
import com.dfsek.terra.util.logging.JavaLogger;
public class TerraPluginImpl extends AbstractTerraPlugin {
@@ -78,11 +76,6 @@ public class TerraPluginImpl extends AbstractTerraPlugin {
}
@Override
protected Logger createLogger() {
return new JavaLogger(plugin.getLogger());
}
@Override
protected Optional<TerraAddon> getPlatformAddon() {
return Optional.of(new BukkitAddon(this));

View File

@@ -6,6 +6,8 @@ import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Arrays;
@@ -20,6 +22,8 @@ import com.dfsek.terra.bukkit.world.BukkitAdapter;
public class BukkitCommandAdapter implements CommandExecutor, TabCompleter {
private static final Logger logger = LoggerFactory.getLogger(BukkitCommandAdapter.class);
private final CommandManager manager;
public BukkitCommandAdapter(CommandManager manager) {
@@ -51,7 +55,7 @@ public class BukkitCommandAdapter implements CommandExecutor, TabCompleter {
.filter(s -> s.toLowerCase(Locale.ROOT).startsWith(args[args.length - 1].toLowerCase(Locale.ROOT))).sorted(
String::compareTo).collect(Collectors.toList());
} catch(CommandException e) {
e.printStackTrace();
logger.warn("Exception occurred during tab completion", e);
return Collections.emptyList();
}
}

View File

@@ -3,6 +3,8 @@ package com.dfsek.terra.bukkit.generator;
import org.bukkit.World;
import org.bukkit.generator.BlockPopulator;
import org.jetbrains.annotations.NotNull;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -23,6 +25,7 @@ import com.dfsek.terra.bukkit.world.BukkitBiomeGrid;
public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGenerator implements GeneratorWrapper {
private static final Logger logger = LoggerFactory.getLogger(BukkitChunkGeneratorWrapper.class);
private static final Map<com.dfsek.terra.api.world.World, PopulationManager> popMap = new HashMap<>();
@@ -44,17 +47,17 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener
public static synchronized void saveAll() {
for(Map.Entry<com.dfsek.terra.api.world.World, PopulationManager> e : popMap.entrySet()) {
for(Map.Entry<com.dfsek.terra.api.world.World, PopulationManager> entry : popMap.entrySet()) {
try {
e.getValue().saveBlocks(e.getKey());
} catch(IOException ioException) {
ioException.printStackTrace();
entry.getValue().saveBlocks(entry.getKey());
} catch(IOException e) {
logger.error("Error occurred while saving population manager", e);
}
}
}
public static synchronized void fixChunk(Chunk c) {
popMap.get(c.getWorld()).checkNeighbors(c.getX(), c.getZ(), c.getWorld());
public static synchronized void fixChunk(Chunk chunk) {
popMap.get(chunk.getWorld()).checkNeighbors(chunk.getX(), chunk.getZ(), chunk.getWorld());
}
private void load(com.dfsek.terra.api.world.World w) {
@@ -63,7 +66,7 @@ public class BukkitChunkGeneratorWrapper extends org.bukkit.generator.ChunkGener
} catch(FileNotFoundException ignore) {
} catch(IOException | ClassNotFoundException e) {
e.printStackTrace();
logger.error("Error occurred while loading terra world", e);
}
popMap.put(w, popMan);
needsLoad = false;

View File

@@ -7,6 +7,8 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntitySpawnEvent;
import org.bukkit.event.entity.VillagerAcquireTradeEvent;
import org.bukkit.event.entity.VillagerCareerChangeEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.dfsek.terra.api.TerraPlugin;
@@ -18,6 +20,8 @@ import com.dfsek.terra.api.TerraPlugin;
* StructureLocateEvent).
*/
public class SpigotListener implements Listener {
private static final Logger logger = LoggerFactory.getLogger(SpigotListener.class);
private final TerraPlugin main;
public SpigotListener(TerraPlugin main) {
@@ -26,46 +30,57 @@ public class SpigotListener implements Listener {
@EventHandler(priority = EventPriority.NORMAL)
public void onEnderEye(EntitySpawnEvent e) {
/*
/*
Entity entity = e.getEntity();
if(e.getEntityType().equals(EntityType.ENDER_SIGNAL)) {
main.getDebugLogger().info("Detected Ender Signal...");
if(e.getEntityType() == EntityType.ENDER_SIGNAL) {
logger.info("Detected Ender Signal...");
World w = BukkitAdapter.adapt(e.getEntity().getWorld());
EnderSignal signal = (EnderSignal) entity;
ConfiguredStructure config = tw.getConfig().getRegistry(TerraStructure.class).get(w.getConfig().getLocatable().get
("STRONGHOLD"));
if(config != null) {
main.getDebugLogger().info("Overriding Ender Signal...");
logger.info("Overriding Ender Signal...");
AsyncStructureFinder finder = new AsyncStructureFinder(tw.getBiomeProvider(), config, BukkitAdapter.adapt(e.getLocation()
.toVector()), tw.getWorld(), 0, 500, location -> {
if(location != null)
signal.setTargetLocation(BukkitAdapter.adapt(location).toLocation(e.getLocation().getWorld()));
main.getDebugLogger().info("Location: " + location);
logger.info("Location: {}", location);
}, main);
finder.run(); // Do this synchronously so eye doesn't change direction several ticks after spawning.
} else
main.logger().warning("No overrides are defined for Strongholds. Ender Signals will not work correctly.");
logger.warn("No overrides are defined for Strongholds. Ender Signals will not work correctly.");
}
*/
*/
}
@EventHandler
public void onCartographerChange(VillagerAcquireTradeEvent e) {
if(!(e.getEntity() instanceof Villager)) return;
if(((Villager) e.getEntity()).getProfession().equals(Villager.Profession.CARTOGRAPHER)) {
main.logger().severe("Prevented server crash by stopping Cartographer villager from spawning.");
main.logger().severe("Please upgrade to Paper, which has a StructureLocateEvent that fixes this issue");
main.logger().severe("at the source, and doesn't require us to do stupid band-aids.");
if(!(e.getEntity() instanceof Villager))
return;
if(((Villager) e.getEntity()).getProfession() == Villager.Profession.CARTOGRAPHER) {
logger.error("""
.------------------------------------------------------------------------.
| Prevented server crash by stopping Cartographer villager from |
| spawning. Please upgrade to Paper, which has a StructureLocateEvent |
| that fixes this issue at the source, and doesn't require us to do |
| stupid band-aids. |
|------------------------------------------------------------------------|
""");
e.setCancelled(true); // Cancel leveling if the villager is a Cartographer, to prevent crashing server.
}
}
@EventHandler
public void onCartographerLevel(VillagerCareerChangeEvent e) {
if(e.getProfession().equals(Villager.Profession.CARTOGRAPHER)) {
main.logger().severe("Prevented server crash by stopping Cartographer villager from spawning.");
main.logger().severe("Please upgrade to Paper, which has a StructureLocateEvent that fixes this issue");
main.logger().severe("at the source, and doesn't require us to do stupid band-aids.");
if(e.getProfession() == Villager.Profession.CARTOGRAPHER) {
logger.error("""
.------------------------------------------------------------------------.
| Prevented server crash by stopping Cartographer villager from leveling |
| up. Please upgrade to Paper, which has a StructureLocateEvent that |
| fixes this issue at the source, and doesn't require us to do stupid |
| band-aids. |
|------------------------------------------------------------------------|
""");
e.getEntity().setProfession(Villager.Profession.NITWIT); // Give villager new profession to prevent server crash.
e.setCancelled(true);
}