mirror of
				https://e.coding.net/circlecloud/Yum.git
				synced 2025-11-04 13:16:02 +00:00 
			
		
		
		
	@@ -3,8 +3,10 @@ package pw.yumc.Yum.managers;
 | 
				
			|||||||
import java.io.BufferedInputStream;
 | 
					import java.io.BufferedInputStream;
 | 
				
			||||||
import java.io.File;
 | 
					import java.io.File;
 | 
				
			||||||
import java.io.FileOutputStream;
 | 
					import java.io.FileOutputStream;
 | 
				
			||||||
 | 
					import java.net.HttpURLConnection;
 | 
				
			||||||
import java.net.MalformedURLException;
 | 
					import java.net.MalformedURLException;
 | 
				
			||||||
import java.net.URL;
 | 
					import java.net.URL;
 | 
				
			||||||
 | 
					import java.net.URLConnection;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang.StringUtils;
 | 
				
			||||||
import org.bukkit.Bukkit;
 | 
					import org.bukkit.Bukkit;
 | 
				
			||||||
@@ -146,14 +148,15 @@ public class DownloadManager {
 | 
				
			|||||||
        try {
 | 
					        try {
 | 
				
			||||||
            sender.sendMessage("§6开始下载: §3" + getFileName(url));
 | 
					            sender.sendMessage("§6开始下载: §3" + getFileName(url));
 | 
				
			||||||
            sender.sendMessage("§6下载地址: §3" + url.toString());
 | 
					            sender.sendMessage("§6下载地址: §3" + url.toString());
 | 
				
			||||||
            final int fileLength = url.openConnection().getContentLength();
 | 
					            final URLConnection uc = reload(sender, url.openConnection());
 | 
				
			||||||
 | 
					            final int fileLength = uc.getContentLength();
 | 
				
			||||||
            if (fileLength < 0) {
 | 
					            if (fileLength < 0) {
 | 
				
			||||||
                sender.sendMessage("§6下载: §c文件 " + file.getName() + " 获取长度错误(可能是网络问题)!");
 | 
					                sender.sendMessage("§6下载: §c文件 " + file.getName() + " 获取长度错误(可能是网络问题)!");
 | 
				
			||||||
                sender.sendMessage("§6文件: §c" + file.getName() + " 下载失败!");
 | 
					                sender.sendMessage("§6文件: §c" + file.getName() + " 下载失败!");
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            sender.sendMessage("§6文件长度: §3" + fileLength);
 | 
					            sender.sendMessage("§6文件长度: §3" + fileLength);
 | 
				
			||||||
            in = new BufferedInputStream(url.openStream());
 | 
					            in = new BufferedInputStream(uc.getInputStream());
 | 
				
			||||||
            if (!file.getParentFile().exists()) {
 | 
					            if (!file.getParentFile().exists()) {
 | 
				
			||||||
                file.getParentFile().mkdirs();
 | 
					                file.getParentFile().mkdirs();
 | 
				
			||||||
                sender.sendMessage("§6创建新目录: §d" + file.getParentFile().getAbsolutePath());
 | 
					                sender.sendMessage("§6创建新目录: §d" + file.getParentFile().getAbsolutePath());
 | 
				
			||||||
@@ -259,4 +262,22 @@ public class DownloadManager {
 | 
				
			|||||||
        return sb.toString();
 | 
					        return sb.toString();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * 302 301跳转处理
 | 
				
			||||||
 | 
					     *
 | 
				
			||||||
 | 
					     * @param 跳转地址
 | 
				
			||||||
 | 
					     * @return 最终地址
 | 
				
			||||||
 | 
					     * @throws Exception
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    private URLConnection reload(final CommandSender sender, final URLConnection uc) throws Exception {
 | 
				
			||||||
 | 
					        final HttpURLConnection huc = (HttpURLConnection) uc;
 | 
				
			||||||
 | 
					        // 302, 301
 | 
				
			||||||
 | 
					        if (huc.getResponseCode() == HttpURLConnection.HTTP_MOVED_TEMP || huc.getResponseCode() == HttpURLConnection.HTTP_MOVED_PERM) {
 | 
				
			||||||
 | 
					            final String url = huc.getHeaderField("Location");
 | 
				
			||||||
 | 
					            sender.sendMessage("§6跳转至地址: §3" + url);
 | 
				
			||||||
 | 
					            return reload(sender, new URL(url).openConnection());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return uc;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user