add ssh support

This commit is contained in:
Lemon
2019-01-18 18:08:20 +05:00
parent 746ccdfd44
commit 7c6c407f78
4 changed files with 104 additions and 0 deletions

View File

@ -0,0 +1,94 @@
package me.totalfreedom.totalfreedommod.bridge;
import com.ryanmichela.bukkitssh.BukkitSSH;
import com.ryanmichela.bukkitssh.SshTerminal;
import me.totalfreedom.bukkitssh.SSHCommandEvent;
import me.totalfreedom.bukkitssh.SSHPreLoginEvent;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import me.totalfreedom.totalfreedommod.FreedomService;
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
import me.totalfreedom.totalfreedommod.admin.Admin;
import me.totalfreedom.totalfreedommod.rank.Rank;
import me.totalfreedom.totalfreedommod.util.FLog;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.plugin.Plugin;
public class BukkitSSHBridge extends FreedomService
{
private BukkitSSH BukkitSSHPlugin = null;
public BukkitSSHBridge(TotalFreedomMod plugin)
{
super(plugin);
}
@Override
protected void onStart()
{
}
@Override
protected void onStop()
{
}
@EventHandler(priority = EventPriority.NORMAL)
public void onTelnetPreLogin(SSHPreLoginEvent event)
{
final String ip = event.getIp();
if (ip == null || ip.isEmpty())
{
return;
}
final Admin admin = plugin.al.getEntryByIpFuzzy(ip);
if (admin == null || !admin.isActive() || !admin.getRank().hasConsoleVariant())
{
return;
}
event.setBypassPassword(true);
event.setName(admin.getName());
}
@EventHandler(priority = EventPriority.NORMAL)
public void onTelnetCommand(SSHCommandEvent event)
{
if (plugin.cb.isCommandBlocked(event.getCommand(), event.getSender()))
{
event.setCancelled(true);
}
}
public BukkitSSH getBukkitSSHPlugin()
{
if (BukkitSSHPlugin == null)
{
try
{
final Plugin BukkitSSH = server.getPluginManager().getPlugin("BukkitSSH");
if (BukkitSSH != null)
{
if (BukkitSSH instanceof BukkitSSH)
{
BukkitSSHPlugin = (BukkitSSH)BukkitSSH;
}
}
}
catch (Exception ex)
{
FLog.severe(ex);
}
}
return BukkitSSHPlugin;
}
}