优化代码,性能暴涨

This commit is contained in:
Administrator
2025-01-29 14:01:11 +08:00
parent e243203535
commit 6de65562be
130 changed files with 9138 additions and 1020 deletions
@@ -7,6 +7,7 @@ import java.util.function.BiConsumer;
import org.kne.cloud.network.MultipurposeSocketAddress;
import org.kne.cloud.network.scanner.InetAddressRange;
import org.kne.cloud.network.scanner.PortRange;
import org.kne.cloud.network.scanner.ScanRange;
import org.kne.cloud.network.scanner.TCPNetworkScanner;
public class MinecraftScanner extends TCPNetworkScanner{
@@ -19,7 +20,7 @@ public class MinecraftScanner extends TCPNetworkScanner{
public void setMinecraftConsumer(BiConsumer<MultipurposeSocketAddress, MinecraftServerPinger> minecraftConsumer) {
this.minecraftConsumer = minecraftConsumer;
}
public MinecraftScanner() {
{
super.setConsumer((mpsa,s)->{
if(s!=null) {
try {
@@ -28,9 +29,13 @@ public class MinecraftScanner extends TCPNetworkScanner{
minecraftConsumer.accept(mpsa, msp);
}
} catch (UnknownHostException e) {
e.printStackTrace();
if(minecraftConsumer!=null) {
minecraftConsumer.accept(mpsa, null);
}
} catch (Exception e) {
e.printStackTrace();
if(minecraftConsumer!=null) {
minecraftConsumer.accept(mpsa, null);
}
}
}else {
if(minecraftConsumer!=null) {
@@ -39,35 +44,20 @@ public class MinecraftScanner extends TCPNetworkScanner{
}
});
}
public MinecraftScanner() {
}
public MinecraftScanner(int connectTimeout, int soTimeout) {
super(connectTimeout, soTimeout);
super.setConsumer((mpsa,s)->{
if(s!=null) {
try {
MinecraftServerPinger msp=new MinecraftServerPinger(mpsa,s);
if(minecraftConsumer!=null) {
minecraftConsumer.accept(mpsa, msp);
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}else {
if(minecraftConsumer!=null) {
minecraftConsumer.accept(mpsa, null);
}
}
});
}
public static void main(String[] args) throws UnknownHostException {
MinecraftScanner tcn = new MinecraftScanner();
tcn.getPortRanges().add(new PortRange(25565));
tcn.getPortRanges().add(new PortRange(34000, 37000));
tcn.getAddressRanges().add(new InetAddressRange("192.168.0.1","192.168.0.255"));
tcn.getRanges().add(new ScanRange(new InetAddressRange("127.0.0.1","127.0.0.2"),new PortRange(25565,37000)));
tcn.setMinecraftConsumer((mpsa,mc)->{
if(mc!=null)
System.out.println(mc);
});
tcn.setProcessConsumer((f)->{//System.out.println(f);
@@ -3,8 +3,11 @@ package org.kne.cloud.network.minecraft;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.EOFException;
import java.io.Externalizable;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.OutputStream;
import java.io.Serializable;
import java.io.StringReader;
@@ -37,7 +40,7 @@ public class MinecraftServerPinger implements Serializable{
private long latency=-1;
private String json;
private BufferedImage icon;
//private BufferedImage icon;
private int max;
private int online;
private String description;
@@ -47,6 +50,8 @@ public class MinecraftServerPinger implements Serializable{
private String klalbversion;
private Inet6Address klalbvaddr;
private int klalbvport;
private String icon;
private transient BufferedImage image;
public MinecraftServerPinger(MultipurposeSocketAddress target) throws UnknownHostException, IOException {
this(target,target.connectSocket());
@@ -146,12 +151,8 @@ public class MinecraftServerPinger implements Serializable{
if(favicon!=null) {
String s=favicon.getAsString();
if(s.startsWith("data:image/png;base64,")){
s=s.replace("\n", "");
try {
icon=ImageIO.read(new ByteArrayInputStream(Base64.getDecoder().decode(s.substring("data:image/png;base64,".length()))));
} catch (IOException e) {
e.printStackTrace();
}
icon=s.replace("\n", "");
}
}
/*try {
@@ -261,7 +262,15 @@ public class MinecraftServerPinger implements Serializable{
}
public BufferedImage getIcon() {
return icon;
if(icon==null)
return null;
if(image==null)
try {
image= ImageIO.read(new ByteArrayInputStream(Base64.getDecoder().decode(icon.substring("data:image/png;base64,".length()))));
} catch (IOException e) {
e.printStackTrace();
}
return image;
}
public int getMax() {
@@ -305,4 +314,6 @@ public class MinecraftServerPinger implements Serializable{
MinecraftServerPinger sp=new MinecraftServerPinger(MinecraftServerAddress.findAddress("mc.hypixel.cn"));
System.out.println(sp);
}
}
@@ -0,0 +1,38 @@
package org.kne.cloud.network.minecraft;
import java.net.UnknownHostException;
import org.kne.cloud.network.MultipurposeSocketAddress;
import org.kne.cloud.network.scanner.InetAddressRange;
import org.kne.cloud.network.scanner.PortRange;
import org.kne.cloud.network.scanner.ScanRange;
public class MinecraftServerScanRange extends ScanRange {
public MinecraftServerScanRange(InetAddressRange addressRange, PortRange portRange) {
super(addressRange, portRange);
}
public MinecraftServerScanRange(MultipurposeSocketAddress begin, MultipurposeSocketAddress end)
throws UnknownHostException {
super(begin, end);
}
public MinecraftServerScanRange(String range) throws UnknownHostException {
super(range);
}
@Override
protected void setMsaString(String range) throws UnknownHostException {
String[]sp=range.split("~");
MultipurposeSocketAddress begin=MinecraftServerAddress.findAddress (sp[0]);
MultipurposeSocketAddress end;
if(sp.length>1) {
end=MinecraftServerAddress.findAddress (sp[1]);
}else {
end=MinecraftServerAddress.findAddress (sp[0]);
}
setMsa(begin, end);
}
}
@@ -18,7 +18,7 @@ import org.kne.cloud.network.SocketToSocketProxy;
import org.kne.cloud.network.klalb.CONST;
import org.kne.cloud.network.klalb.KLALBController;
import org.kne.cloud.network.klalb.KLALBRemoteLine;
import org.kne.cloud.network.klalb.KLALBStateGUI2;
import org.kne.cloud.network.klalb.ui.KLALBStateGUI2;
import org.kne.util.AutoProperties;
public class SimpleKLALBMinecraftClient {