Начинающий
- Статус
- Оффлайн
- Регистрация
- 14 Дек 2024
- Сообщения
- 64
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
короче во всем виноват
ConfigSkin
ConfigSkin
ConfigSkin:
package com.nicside.api.system.configs;
import lombok.Getter;
import com.nicside.api.system.backend.ClientInfo;
import com.nicside.api.utils.math.TimerUtil;
import com.nicside.client.features.commands.CommandSkin;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.concurrent.atomic.AtomicBoolean;
public class ConfigSkin {
@Getter private static final ConfigSkin instance = new ConfigSkin();
private final Path configPath = Paths.get(ClientInfo.CONFIG_PATH_OTHER, "last_skin");;
private final TimerUtil timerUtil = new TimerUtil();
public void load() {
try {
if (!Files.exists(configPath.getParent())) {
Files.createDirectories(configPath.getParent());
}
if (!Files.exists(configPath)) {
Files.createFile(configPath);
Files.writeString(configPath, "");
}
} catch (IOException e) {
e.printStackTrace();
}
update();
}
public void save(String skinName) {
try {
if (skinName != null && !skinName.trim().isEmpty()) {
Files.writeString(configPath, skinName.trim());
} else {
Files.writeString(configPath, "");
}
} catch (IOException e) {
e.printStackTrace();
}
}
public String update() {
try {
if (Files.exists(configPath)) {
String content = Files.readString(configPath);
boolean em = content.isEmpty();
if (!em) CommandSkin.skinEnabled = true;
return em ? null : content;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
private final AtomicBoolean fetchingInProgress = new AtomicBoolean(false);
public void fetchSkin() {
if (CommandSkin.skinEnabled && timerUtil.finished(2000) && !fetchingInProgress.get()) {
timerUtil.reset();
fetchingInProgress.set(true);
String skinName = update();
Thread thread = new Thread(() -> {
try {
CommandSkin.customSkinTextures = CommandSkin.createTextureSupplier(skinName);
} catch (Exception ignored) {
} finally {
fetchingInProgress.set(false);
}
});
thread.setName("SkinFetch-Thread");
thread.setDaemon(true);
thread.start();
}
}
}