Thread fix

This commit is contained in:
Michael Wain 2024-07-30 02:21:01 +03:00
parent 8b6014bcfc
commit f31369ab95
2 changed files with 23 additions and 3 deletions

View File

@ -8,14 +8,20 @@ public class SendSet extends Thread {
private final String username; private final String username;
private final boolean isCape; private final boolean isCape;
private boolean isRunning = true;
public SendSet(String username, boolean isCape) { public SendSet(String username, boolean isCape) {
this.username = username; this.username = username;
this.isCape = isCape; this.isCape = isCape;
} }
public void setRunning(boolean isRunning) {
this.isRunning = isRunning;
}
@Override @Override
public void run() { public void run() {
while(true) { while(isRunning) {
try { try {
Thread.sleep(4000); Thread.sleep(4000);
if (isCape) { if (isCape) {

View File

@ -14,9 +14,13 @@ import java.awt.image.BufferedImage;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.DataOutputStream; import java.io.DataOutputStream;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class Packet246SkinSet extends Packet { public class Packet246SkinSet extends Packet {
private static final Map<String, SendSet> skinThread = new HashMap<>();
private static final Map<String, SendSet> capeThread = new HashMap<>();
private String username; private String username;
private byte[] skin; private byte[] skin;
private byte[] cape; private byte[] cape;
@ -67,8 +71,18 @@ public class Packet246SkinSet extends Packet {
BufferedImage skin1 = OfflineSkinMod.bytesToImage(this.skin); BufferedImage skin1 = OfflineSkinMod.bytesToImage(this.skin);
BufferedImage cape1 = OfflineSkinMod.bytesToImage(this.cape); BufferedImage cape1 = OfflineSkinMod.bytesToImage(this.cape);
OfflineSkinMod.skins.put(this.username, new SkinConfig(skin1, cape1, this.modelType)); OfflineSkinMod.skins.put(this.username, new SkinConfig(skin1, cape1, this.modelType));
new SendSet(this.username, false).start(); if( Packet246SkinSet.skinThread.containsKey(this.username) ) {
new SendSet(this.username, true).start(); Packet246SkinSet.skinThread.get(this.username).setRunning(false);
}
SendSet ss = new SendSet(this.username, false);
Packet246SkinSet.skinThread.put(this.username, ss);
ss.start();
if( Packet246SkinSet.capeThread.containsKey(this.username) ) {
Packet246SkinSet.capeThread.get(this.username).setRunning(false);
}
SendSet cs = new SendSet(this.username, true);
Packet246SkinSet.capeThread.put(this.username, cs);
cs.start();
} }
@Override @Override