mirror of
https://github.com/ME1312/SubServers-2.git
synced 2024-11-29 05:36:13 +01:00
Add the illusive ConsoleStream.java
This commit is contained in:
parent
05825bcbce
commit
ebe9474a70
@ -0,0 +1,59 @@
|
|||||||
|
package net.ME1312.SubServers.Host.Library.Log;
|
||||||
|
|
||||||
|
import jline.console.ConsoleReader;
|
||||||
|
import jline.console.CursorBuffer;
|
||||||
|
import net.ME1312.SubServers.Host.Library.Container;
|
||||||
|
import net.ME1312.SubServers.Host.Library.TextColor;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Console Log Stream Class
|
||||||
|
*/
|
||||||
|
public class ConsoleStream extends PrintStream {
|
||||||
|
private ConsoleReader jline;
|
||||||
|
private PrintStream original;
|
||||||
|
private LinkedList<Integer> buffer;
|
||||||
|
private CursorBuffer hidden;
|
||||||
|
|
||||||
|
public ConsoleStream(ConsoleReader jline, PrintStream original) {
|
||||||
|
super(original);
|
||||||
|
this.jline = jline;
|
||||||
|
this.buffer = new LinkedList<Integer>();
|
||||||
|
this.original = original;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(int i) {
|
||||||
|
try {
|
||||||
|
if (((char) i) == '\n') {
|
||||||
|
LinkedList<Integer> buffer = this.buffer;
|
||||||
|
this.buffer = new LinkedList<Integer>();
|
||||||
|
hide();
|
||||||
|
for (Integer b : buffer) original.write(b);
|
||||||
|
original.print(TextColor.RESET.asAnsiCode());
|
||||||
|
original.write(i);
|
||||||
|
show();
|
||||||
|
} else {
|
||||||
|
buffer.add(i);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void hide() {
|
||||||
|
hidden = jline.getCursorBuffer().copy();
|
||||||
|
try {
|
||||||
|
jline.getOutput().write("\u001b[1G\u001b[K");
|
||||||
|
jline.flush();
|
||||||
|
} catch (IOException e) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void show() {
|
||||||
|
try {
|
||||||
|
jline.resetPromptLine(jline.getPrompt(), hidden.toString(), hidden.cursor);
|
||||||
|
jline.flush();
|
||||||
|
} catch (IOException e) {}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user