#Read console output

1 messages · Page 1 of 1 (latest)

quick ruin
#

Currently trying something like this, but doesn't work...

getLogger().addHandler(new Handler() {
    @Override
    public void publish(LogRecord record) {
        for (Player player : getServer().getOnlinePlayers()) {
            player.sendMessage(record.getMessage());
        }
    }

    @Override
    public void flush() {

    }

    @Override
    public void close() throws SecurityException {

    }
});
#

(made a thread so I can distinguish chat better)

fresh plover
#

whats not working?

quick ruin
#

it... won't do anything

#

no errors nothing

fresh plover
#

try to add a ConsoleHandler and override the publish method anonymously

quick ruin
#

consolehandler?

fresh plover
quick ruin
#

mhm okay

fresh plover
#

not sure tho

quick ruin
#

oh it does work now

#

except it logs like 1% of the logs

fresh plover
#

different logger?

#

to what logger did you add the handler?

quick ruin
#

ohhh

#

probably because I added handler to my own plugin's logger

fresh plover
#

thus only your plugin logs will be handled

#

dunno what thus means but seemed like a good place to use it

#

😂

quick ruin
#

oh nice

#

idk how I would get the entire server's logger or other plugins' logger though

fresh plover
#

theres a Bukkit.getLogger method with which you might want to do something with 👀

quick ruin
#

hmmm

#

I tried that

#

doesnt have any arguments or anything

fresh plover
#

wdym

quick ruin
#

I can only get my plugin's logger

fresh plover
#

Bukkit.getLogger().addHandler(/**/)

quick ruin
#

yeah

#

that only gets my plugin's logger

#

getServer().getLogger()?

fresh plover
#

it returns the primary logger associated with the server

#

same thing Bukkit class calls getServer internally

quick ruin
#

huh

fresh plover
#

show your code

quick ruin
#

oh wait

#

I need to add unregistering parts too

#

so it wont like multiply

#

while testing

#
private ConsoleHandler handler = new ConsoleHandler() {
    @Override
    public void publish(LogRecord record) {
        for (Player player : getServer().getOnlinePlayers()) {
            player.sendMessage(record.getMessage());
        }
    }
};

@Override
public void onEnable() {
    Bukkit.getLogger().addHandler(handler);
}

@Override
public void onDisable() {
    Bukkit.getLogger().removeHandler(handler);
}
#

it won't work at all now

#

not even own plugin messages

fresh plover
#

add it to the logger before enabling

#

you might try that

#

makes no sense lol

#

just dont remove it

quick ruin
quick ruin
fresh plover
#

ah then remove it, you shouldnt use /reload anyways

quick ruin
#

for testing it's useful 🤷

quick ruin
fresh plover
#

idk it doesnt make sense

#

is there even stuff getting logged via the bukkit logger?

quick ruin
#

not sure

#

should I add it to every plugin every stuff

quick ruin
fresh plover
#

maybe add a streamhandler to System.out or smth

quick ruin
#

omg I got it working somehow

#

finally

fresh plover
#

what did you do

quick ruin
#

this message on it