mirror of
https://code.chipmunk.land/ChomeNS/chipmunkmod.git
synced 2025-11-13 21:06:16 +00:00
AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH AHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH THIS TOOK ME AGES well mabe chomens moment but fabric is gay mabe btw am i gay!??!/1?! probably not but mabe mabe chipmunk is trans.,,.,.,.,. am i trans?!/1?!/?! mabe mabe probably no too., well ok bye luv you <3
68 lines
1.7 KiB
Java
68 lines
1.7 KiB
Java
package land.chipmunk.chipmunkmod.song;
|
|
|
|
import land.chipmunk.chipmunkmod.modules.SongPlayer;
|
|
import land.chipmunk.chipmunkmod.util.DownloadUtilities;
|
|
import net.minecraft.text.Text;
|
|
|
|
import java.io.File;
|
|
import java.net.URL;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Paths;
|
|
|
|
public class SongLoaderThread extends Thread {
|
|
private String location;
|
|
private File songPath;
|
|
private URL songUrl;
|
|
public SongLoaderException exception;
|
|
public Song song;
|
|
|
|
private boolean isUrl = false;
|
|
|
|
public SongLoaderThread (URL location) throws SongLoaderException {
|
|
isUrl = true;
|
|
songUrl = location;
|
|
}
|
|
|
|
public SongLoaderThread (Path location) throws SongLoaderException {
|
|
isUrl = false;
|
|
songPath = location.toFile();
|
|
}
|
|
|
|
public void run () {
|
|
byte[] bytes;
|
|
String name;
|
|
try {
|
|
if (isUrl) {
|
|
bytes = DownloadUtilities.DownloadToByteArray(songUrl, 10*1024*1024);
|
|
name = Paths.get(songUrl.toURI().getPath()).getFileName().toString();
|
|
} else {
|
|
bytes = Files.readAllBytes(songPath.toPath());
|
|
name = songPath.getName();
|
|
}
|
|
} catch (Exception e) {
|
|
exception = new SongLoaderException(Text.literal(e.getMessage()), e);
|
|
return;
|
|
}
|
|
|
|
try {
|
|
song = MidiConverter.getSongFromBytes(bytes, name);
|
|
} catch (Exception e) {
|
|
}
|
|
|
|
if (song == null) {
|
|
try {
|
|
song = NBSConverter.getSongFromBytes(bytes, name);
|
|
} catch (Exception e) {
|
|
}
|
|
}
|
|
|
|
if (song == null) {
|
|
exception = new SongLoaderException(Text.translatable("Invalid song format"));
|
|
}
|
|
}
|
|
|
|
private File getSongFile (String name) {
|
|
return new File(SongPlayer.SONG_DIR, name);
|
|
}
|
|
}
|