51 lines
1.4 KiB
Java
51 lines
1.4 KiB
Java
package carpet.script.bundled;
|
|
|
|
import carpet.CarpetServer;
|
|
import net.minecraft.nbt.Tag;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
import java.nio.file.Files;
|
|
|
|
import static carpet.script.bundled.FileModule.read;
|
|
import static carpet.script.bundled.FileModule.write;
|
|
|
|
public abstract class Module
|
|
{
|
|
public abstract String getName();
|
|
public abstract String getCode();
|
|
public boolean isInternal() {return true; }
|
|
|
|
public Tag getData(String file)
|
|
{
|
|
File dataFile = CarpetServer.minecraft_server.getLevelStorage().resolveFile(
|
|
CarpetServer.minecraft_server.getLevelName(), "scripts/"+getName()+".data"+(file==null?"":"."+file)+".nbt");
|
|
if (!Files.exists(dataFile.toPath()) || !(dataFile.isFile())) return null;
|
|
return read(dataFile);
|
|
}
|
|
|
|
public void saveData(String file, Tag globalState)
|
|
{
|
|
File dataFile =CarpetServer.minecraft_server.getLevelStorage().resolveFile(
|
|
CarpetServer.minecraft_server.getLevelName(), "scripts/"+getName()+".data"+(file==null?"":"."+file)+".nbt");
|
|
if (!Files.exists(dataFile.toPath().getParent()))
|
|
{
|
|
try
|
|
{
|
|
Files.createDirectory(dataFile.toPath().getParent());
|
|
}
|
|
catch (IOException ignored)
|
|
{
|
|
}
|
|
}
|
|
write(globalState, dataFile);
|
|
|
|
}
|
|
|
|
@Override
|
|
public int hashCode()
|
|
{
|
|
return getName().hashCode();
|
|
}
|
|
}
|