Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package co.amscraft.ultralib.ftpserver;
- import co.amscraft.ultralib.UltraLib;
- import co.amscraft.ultralib.modules.Module;
- import co.amscraft.ultralib.utils.ObjectUtils;
- import co.amscraft.ultralib.utils.savevar.SaveVar;
- import org.apache.ftpserver.DataConnectionConfiguration;
- import org.apache.ftpserver.FtpServer;
- import org.apache.ftpserver.FtpServerFactory;
- import org.apache.ftpserver.command.Command;
- import org.apache.ftpserver.command.CommandFactory;
- import org.apache.ftpserver.filesystem.nativefs.NativeFileSystemFactory;
- import org.apache.ftpserver.ftplet.Authority;
- import org.apache.ftpserver.ftplet.User;
- import org.apache.ftpserver.ftplet.UserManager;
- import org.apache.ftpserver.impl.FtpIoSession;
- import org.apache.ftpserver.impl.FtpServerContext;
- import org.apache.ftpserver.ipfilter.SessionFilter;
- import org.apache.ftpserver.listener.Listener;
- import org.apache.ftpserver.listener.ListenerFactory;
- import org.apache.ftpserver.ssl.SslConfiguration;
- import org.apache.ftpserver.ssl.SslConfigurationFactory;
- import org.apache.ftpserver.usermanager.ClearTextPasswordEncryptor;
- import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory;
- import org.apache.ftpserver.usermanager.impl.BaseUser;
- import org.apache.ftpserver.usermanager.impl.ConcurrentLoginPermission;
- import org.apache.ftpserver.usermanager.impl.PropertiesUserManager;
- import org.apache.ftpserver.usermanager.impl.WritePermission;
- import org.apache.mina.core.session.IoSession;
- import org.apache.mina.filter.firewall.Subnet;
- import org.bukkit.scheduler.BukkitRunnable;
- import java.io.File;
- import java.net.InetAddress;
- import java.net.URL;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Set;
- import java.util.logging.Level;
- public class FTPServer extends Module {
- @Override
- public String[] getModuleDependancies() {
- return new String[0];
- }
- @Override
- public void onEnable() {
- new Thread() {
- public void run() {
- try {
- startFTP();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }.start();
- new BukkitRunnable() {
- public void run() {
- addUser("admin", "TempAdminPassword");
- System.out.println("Added user admin");
- }
- }.runTask(UltraLib.getInstance());
- }
- @Override
- public void onDisable() {
- server.stop();
- }
- public static boolean canDownload(String file) {
- for (String blockedExtention: blockedFileExtentions) {
- if (file.endsWith(blockedExtention)) {
- return false;
- }
- }
- for (String blockedFolder: blockedFolders) {
- if (file.startsWith(blockedFolder)) {
- return false;
- }
- }
- for (String blockedPhrase: blockedPhrases) {
- if (file.toLowerCase().contains(blockedPhrase.toLowerCase())) {
- return false;
- }
- }
- return true;
- }
- @SaveVar
- public static String USER_FILE = UltraLib.getInstance().getDataFolder() + "/modules/CustomFTPServer/users.txt";
- @SaveVar
- public static int PORT = <InsertPortHere>;
- @SaveVar
- public static List<String> blockedFileExtentions = new ArrayList<>();
- @SaveVar
- public static List<String> blockedPhrases = new ArrayList<>();
- @SaveVar
- public static List<String> blockedFolders = new ArrayList<>();
- static FtpServerFactory serverFactory;
- static ListenerFactory factory;
- static FtpServer server;
- public static void startFTP() throws Exception{
- serverFactory = new FtpServerFactory();
- factory = new ListenerFactory();
- PropertiesUserManagerFactory userManagerFactory = new PropertiesUserManagerFactory();
- File users = new File(USER_FILE);
- UltraLib.getInstance().getLogger().log(Level.INFO, "File users exists: " + users.exists());
- //users.createNewFile();
- userManagerFactory.setFile(users);
- CommandFactory cmds = serverFactory.getCommandFactory();
- CustomRETR retr = new CustomRETR();
- serverFactory.setCommandFactory(new CommandFactory() {
- @Override
- public Command getCommand(String s) {
- if (s.equals("RETR")) {
- return retr;
- }
- return cmds.getCommand(s);
- }
- });
- factory.setPort(2221);
- serverFactory.addListener("default", factory.createListener());
- server = serverFactory.createServer();
- server.start();
- }
- public static void addUser(String username, String password) {
- BaseUser user = new BaseUser();
- user.setName(username);
- user.setPassword(password);
- try {
- serverFactory.getUserManager().save(user);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement