Jump to content

Jamestec

Members
  • Posts

    2
  • Joined

  • Last visited

Everything posted by Jamestec

  1. Is your IP set in "server.properties" file your External IP (as in the one you get when you google "What is my IP")? Can you connect to your server using your External IP instead of localhost?
  2. Hello, I'm trying to make a plugin to delete the bugged Buildcraft pipe each time it appears on console. Current Code; import java.util.List; import java.util.logging.Filter; import java.util.logging.LogRecord; import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.plugin.java.JavaPlugin; public class LogFilter implements Filter { private String pipeBug = "Pipe failed to load from NBT at"; @Override public boolean isLoggable(LogRecord record) { String message = record.getMessage(); if(message != null) { if(message.contains(pipeBug)) { checkPipe(message); } } return true; } public void checkPipe(String message) { String[] hold = message.split(" "); String[] location = hold[(hold.length - 1)].split(","); List<World> worlds = Bukkit.getServer().getWorlds(); int count = 0; int countTotal = worlds.size(); while (count < countTotal) { Block block = new Location(worlds.get(count), Double.valueOf(location[0]), Double.valueOf(location[1]), Double.valueOf(location[2])).getBlock(); if(block.getTypeId() == 166) { block.breakNaturally(); count = countTotal; } } } } I've checked that block.breakNaturally() works on bugged Buildcraft pipes by setting up a command that does that on Player.getTargetBlock() and it does work. I've also checked that the bugged .getTypeID is 166. I've tried to check the messages that receives by doing a Broadcast or sending me a message, but it seems to break the whole thing (I also have code that denies "<Player> joined with: [" from being logged and I notice this doesn't work when I try to send any debug messages, whether it be "Bukkit.getServer().getLogger()" or "Logger.getLogger("Minecraft")". On my main Class I've added; Logger.getLogger("ForgeModLoader").setFilter(new LogFilter()); To filter the "<Player> joined with: [" I also do (in the same class as LogFilter, but I removed the code from above). I've also tried; Logger.getLogger("global").setFilter(new LogFilter()); Logger.getLogger("Patcher").setFilter(new LogFilter()); Logger.getLogger("").setFilter(new LogFilter()); Logger.getLogger("Client").setFilter(new LogFilter()); But they also don't seem to pick up Buildcraft log messages ("Pipe failed to load from NBT at"). I've done this on onEnable(); Enumeration<String> cc =LogManager.getLogManager().getLoggerNames(); while(cc.hasMoreElements()) { getLogger().info(Logger.getLogger(cc.nextElement()).getName()); } And got this list; Loader global sun.net.www.protocol.http.HttpURLConnection com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource com.sk89q.minecraft.util.commands.CommandsManager Client Minecraft com.sk89q.wepif.PermissionsResolverManager Votifier com.google.common.collect.CustomConcurrentHashMap com.mchange.v2.log.MLog com.sk89q.minecraft.util.commands.SimpleInjector com.enjin.officialplugin.EnjinMinecraftPlugin Minecraft.WorldEdit ForgeModLoader Patcher (Last one is "". If I filter "Minecraft", there is a infinite recursion.) So I think my question is, what logger do I have to set my Filter to, so I can Filter "Pipe failed to load from NBT at" messages? Or am I doing something wrong in my approach?
×
×
  • Create New...