Files
CustomNPC-Plus/src/main/java/noppes/npcs/client/gui/script/GuiScriptAllNPCs.java
T

63 lines
2.5 KiB
Java
Raw Normal View History

2022-03-23 03:54:06 -05:00
package noppes.npcs.client.gui.script;
2025-02-02 23:15:53 -05:00
import kamkeel.npcs.network.packets.request.script.GlobalNPCScriptPacket;
2022-03-23 03:54:06 -05:00
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.NBTTags;
2026-01-11 17:15:13 -05:00
import noppes.npcs.api.handler.IScriptHookHandler;
import noppes.npcs.controllers.ScriptContainer;
2026-01-11 17:15:13 -05:00
import noppes.npcs.controllers.ScriptHookController;
2023-03-16 04:27:19 -05:00
import noppes.npcs.controllers.data.GlobalNPCDataScript;
2022-03-23 03:54:06 -05:00
2026-01-11 17:15:13 -05:00
import java.util.ArrayList;
import java.util.List;
2022-03-23 03:54:06 -05:00
public class GuiScriptAllNPCs extends GuiScriptInterface {
2025-03-12 20:12:01 -04:00
private final GlobalNPCDataScript script = new GlobalNPCDataScript(null);
2022-03-23 03:54:06 -05:00
public GuiScriptAllNPCs() {
2026-01-11 17:15:13 -05:00
this.hookList = new ArrayList<>(ScriptHookController.Instance.getAllHooks(IScriptHookHandler.CONTEXT_GLOBAL_NPC));
2023-03-16 04:27:19 -05:00
2022-03-23 03:54:06 -05:00
this.handler = this.script;
2025-02-02 23:15:53 -05:00
GlobalNPCScriptPacket.Get();
2022-03-23 03:54:06 -05:00
}
public void setGuiData(NBTTagCompound compound) {
2025-07-23 14:22:52 -04:00
if (compound.hasKey("LoadComplete")) {
loaded = true;
return;
}
if (!compound.hasKey("Tab")) {
script.setLanguage(compound.getString("ScriptLanguage"));
script.setEnabled(compound.getBoolean("ScriptEnabled"));
super.setGuiData(compound);
} else {
int tab = compound.getInteger("Tab");
ScriptContainer container = new ScriptContainer(script);
container.readFromNBT(compound.getCompoundTag("Script"));
if (script.getScripts().isEmpty()) {
for (int i = 0; i < compound.getInteger("TotalScripts"); i++) {
script.getScripts().add(new ScriptContainer(script));
}
}
2025-03-12 20:12:01 -04:00
script.getScripts().set(tab, container);
initGui();
}
2022-03-23 03:54:06 -05:00
}
public void save() {
2025-07-23 14:22:52 -04:00
if (loaded) {
super.save();
List<ScriptContainer> containers = this.script.getScripts();
for (int i = 0; i < containers.size(); i++) {
ScriptContainer container = containers.get(i);
GlobalNPCScriptPacket.Save(i, containers.size(), container.writeToNBT(new NBTTagCompound()));
}
NBTTagCompound scriptData = new NBTTagCompound();
scriptData.setString("ScriptLanguage", this.script.getLanguage());
scriptData.setBoolean("ScriptEnabled", this.script.getEnabled());
scriptData.setTag("ScriptConsole", NBTTags.NBTLongStringMap(this.script.getConsoleText()));
GlobalNPCScriptPacket.Save(-1, containers.size(), scriptData);
}
2022-03-23 03:54:06 -05:00
}
}