This should actually fix rmichela#10

This commit is contained in:
Justin Crawford 2019-10-06 02:50:06 -07:00
parent 1b4c7c2304
commit 0afba39d57
No known key found for this signature in database
GPG Key ID: 0D84DEDBB8EF259C
5 changed files with 31 additions and 28 deletions

View File

@ -6,7 +6,7 @@
<groupId>com.ryanmichela</groupId>
<artifactId>sshd</artifactId>
<version>1.3.6</version>
<version>1.3.6.1</version>
<url>https://github.com/Justasic/Bukkit-SSHD/</url>
<properties>

View File

@ -67,8 +67,7 @@ public class ConsoleLogFormatter extends Formatter {
return result;
}
public
String format(LogRecord logrecord)
public String format(LogRecord logrecord)
{
try
{

View File

@ -138,7 +138,7 @@ public class ConsoleShellFactory implements ShellFactory {
this.ConsoleReader.clearScreen();
continue;
}
// Hide the mkpasswd command input.
// Hide the mkpasswd command input from other users.
Boolean mkpasswd = command.split(" ")[0].equals("mkpasswd");
Bukkit.getScheduler().runTask(
@ -153,17 +153,12 @@ public class ConsoleShellFactory implements ShellFactory {
else
{
if (!mkpasswd)
{
SshdPlugin.instance.getLogger().info("<" + this.Username + "> <" + (mkpasswd ? "True": "False") + "> " + command);
SshdPlugin.instance.getLogger().info("<" + this.Username + "> " + command);
}
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
}
});
}
// This should help stop one of the bugs where bytes are waiting to be written
// but the client fucked off already so the plugin throws an exception.
((Logger)LogManager.getRootLogger()).removeAppender(this.streamHandlerAppender);
}
catch (IOException e)
{

View File

@ -1,49 +1,59 @@
package com.ryanmichela.sshd;
import org.apache.sshd.common.SshException;
import org.apache.sshd.common.channel.exception.SshChannelClosedException;
import java.io.IOException;
import java.io.OutputStream;
import java.math.BigInteger;
/**
* Copyright 2013 Ryan Michela
*/
public class FlushyOutputStream extends OutputStream {
public class FlushyOutputStream extends OutputStream
{
private OutputStream base;
private boolean isClosed = false;
public FlushyOutputStream(OutputStream base) {
public FlushyOutputStream(OutputStream base)
{
this.base = base;
}
@Override
public void write(int b) throws IOException {
if (isClosed) return;
base.write(b);
base.flush();
public void write(int b) throws IOException
{
this.write(BigInteger.valueOf(b).toByteArray());
}
@Override
public void write(byte[] b) throws IOException {
if (isClosed) return;
base.write(b);
base.flush();
public void write(byte[] b) throws IOException
{
this.write(b, 0, b.length);
}
@Override
public void write(byte[] b, int off, int len) throws IOException {
if (isClosed) return;
try {
public void write(byte[] b, int off, int len) throws IOException
{
if (isClosed)
return;
try
{
base.write(b, off, len);
base.flush();
} catch (SshException e) {
if (!e.getMessage().contains("channel already closed")) throw e;
}
catch (SshChannelClosedException e)
{
// ignored.
}
}
@Override
public void close() {
public void close() throws IOException
{
isClosed = true;
base.close();
}
}

View File

@ -39,7 +39,6 @@ class MkpasswdCommand implements CommandExecutor
// Dumb but whatever. Some people are really dense.
if (algoritm.equalsIgnoreCase("PLAIN"))
{
sender.sendMessage("Your hash: " + password);
// I mean c'mon...
sender.sendMessage("Bro really? it's literally your unencrypted password...");
}