2021-09-30 21:44:30 -05:00
|
|
|
package noppes.npcs.client.gui.script;
|
|
|
|
|
|
2025-02-02 23:15:53 -05:00
|
|
|
import kamkeel.npcs.network.packets.request.script.PlayerScriptPacket;
|
2021-09-30 21:44:30 -05:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
2023-02-19 15:20:51 -06:00
|
|
|
import noppes.npcs.NBTTags;
|
2025-03-11 17:16:54 -04:00
|
|
|
import noppes.npcs.constants.EnumScriptType;
|
2023-02-19 13:38:43 -06:00
|
|
|
import noppes.npcs.controllers.ScriptContainer;
|
2025-03-14 03:33:10 -04:00
|
|
|
import noppes.npcs.controllers.data.EffectScript;
|
2021-10-11 06:49:30 -05:00
|
|
|
import noppes.npcs.controllers.data.PlayerDataScript;
|
2021-09-30 21:44:30 -05:00
|
|
|
|
2023-02-19 13:38:43 -06:00
|
|
|
import java.util.List;
|
|
|
|
|
|
2021-09-30 21:44:30 -05:00
|
|
|
public class GuiScriptPlayers extends GuiScriptInterface {
|
2025-03-13 17:14:45 -04:00
|
|
|
private PlayerDataScript script = new PlayerDataScript((EntityPlayer) null);
|
2021-09-30 21:44:30 -05:00
|
|
|
|
|
|
|
|
public GuiScriptPlayers() {
|
2025-03-11 17:16:54 -04:00
|
|
|
hookList.add(EnumScriptType.INIT.function);
|
|
|
|
|
hookList.add(EnumScriptType.TICK.function);
|
|
|
|
|
hookList.add(EnumScriptType.INTERACT.function);
|
2025-06-02 14:56:29 -04:00
|
|
|
hookList.add(EnumScriptType.RIGHT_CLICK.function);
|
2025-03-11 17:16:54 -04:00
|
|
|
hookList.add(EnumScriptType.ATTACK.function);
|
|
|
|
|
hookList.add(EnumScriptType.ATTACKED.function);
|
|
|
|
|
hookList.add(EnumScriptType.DAMAGED_ENTITY.function);
|
|
|
|
|
hookList.add(EnumScriptType.DAMAGED.function);
|
|
|
|
|
hookList.add(EnumScriptType.KILLS.function);
|
|
|
|
|
hookList.add(EnumScriptType.KILLED.function);
|
|
|
|
|
hookList.add(EnumScriptType.DROP.function);
|
|
|
|
|
hookList.add(EnumScriptType.RESPAWN.function);
|
|
|
|
|
hookList.add(EnumScriptType.BREAK_BLOCK.function);
|
|
|
|
|
hookList.add(EnumScriptType.CHAT.function);
|
|
|
|
|
hookList.add(EnumScriptType.LOGIN.function);
|
|
|
|
|
hookList.add(EnumScriptType.LOGOUT.function);
|
|
|
|
|
hookList.add(EnumScriptType.KEY_PRESSED.function);
|
|
|
|
|
hookList.add(EnumScriptType.MOUSE_CLICKED.function);
|
|
|
|
|
hookList.add(EnumScriptType.TOSS.function);
|
|
|
|
|
hookList.add(EnumScriptType.PICKUP.function);
|
|
|
|
|
hookList.add(EnumScriptType.PICKUP_XP.function);
|
|
|
|
|
hookList.add(EnumScriptType.RANGED_CHARGE.function);
|
|
|
|
|
hookList.add(EnumScriptType.RANGED_LAUNCHED.function);
|
|
|
|
|
hookList.add(EnumScriptType.TIMER.function);
|
|
|
|
|
hookList.add(EnumScriptType.START_USING_ITEM.function);
|
|
|
|
|
hookList.add(EnumScriptType.USING_ITEM.function);
|
|
|
|
|
hookList.add(EnumScriptType.STOP_USING_ITEM.function);
|
|
|
|
|
hookList.add(EnumScriptType.FINISH_USING_ITEM.function);
|
|
|
|
|
hookList.add(EnumScriptType.CONTAINER_OPEN.function);
|
|
|
|
|
hookList.add(EnumScriptType.USE_HOE.function);
|
|
|
|
|
hookList.add(EnumScriptType.BONEMEAL.function);
|
|
|
|
|
hookList.add(EnumScriptType.FILL_BUCKET.function);
|
|
|
|
|
hookList.add(EnumScriptType.JUMP.function);
|
|
|
|
|
hookList.add(EnumScriptType.FALL.function);
|
|
|
|
|
hookList.add(EnumScriptType.WAKE_UP.function);
|
|
|
|
|
hookList.add(EnumScriptType.SLEEP.function);
|
|
|
|
|
hookList.add(EnumScriptType.PLAYSOUND.function);
|
|
|
|
|
hookList.add(EnumScriptType.LIGHTNING.function);
|
|
|
|
|
hookList.add(EnumScriptType.CHANGED_DIM.function);
|
|
|
|
|
hookList.add(EnumScriptType.QUEST_START.function);
|
|
|
|
|
hookList.add(EnumScriptType.QUEST_COMPLETED.function);
|
|
|
|
|
hookList.add(EnumScriptType.QUEST_TURNIN.function);
|
|
|
|
|
hookList.add(EnumScriptType.FACTION_POINTS.function);
|
|
|
|
|
hookList.add(EnumScriptType.DIALOG_OPEN.function);
|
|
|
|
|
hookList.add(EnumScriptType.DIALOG_OPTION.function);
|
|
|
|
|
hookList.add(EnumScriptType.DIALOG_CLOSE.function);
|
|
|
|
|
hookList.add(EnumScriptType.SCRIPT_COMMAND.function);
|
|
|
|
|
hookList.add(EnumScriptType.CUSTOM_GUI_CLOSED.function);
|
|
|
|
|
hookList.add(EnumScriptType.CUSTOM_GUI_BUTTON.function);
|
|
|
|
|
hookList.add(EnumScriptType.CUSTOM_GUI_SLOT.function);
|
|
|
|
|
hookList.add(EnumScriptType.CUSTOM_GUI_SLOT_CLICKED.function);
|
|
|
|
|
hookList.add(EnumScriptType.CUSTOM_GUI_SCROLL.function);
|
|
|
|
|
hookList.add(EnumScriptType.CUSTOM_GUI_TEXTFIELD.function);
|
|
|
|
|
hookList.add(EnumScriptType.PARTY_QUEST_COMPLETED.function);
|
|
|
|
|
hookList.add(EnumScriptType.PARTY_QUEST_SET.function);
|
|
|
|
|
hookList.add(EnumScriptType.PARTY_QUEST_TURNED_IN.function);
|
|
|
|
|
hookList.add(EnumScriptType.PARTY_INVITE.function);
|
|
|
|
|
hookList.add(EnumScriptType.PARTY_KICK.function);
|
|
|
|
|
hookList.add(EnumScriptType.PARTY_LEAVE.function);
|
|
|
|
|
hookList.add(EnumScriptType.PARTY_DISBAND.function);
|
|
|
|
|
hookList.add(EnumScriptType.ANIMATION_START.function);
|
|
|
|
|
hookList.add(EnumScriptType.ANIMATION_END.function);
|
|
|
|
|
hookList.add(EnumScriptType.ANIMATION_FRAME_ENTER.function);
|
|
|
|
|
hookList.add(EnumScriptType.ANIMATION_FRAME_EXIT.function);
|
|
|
|
|
hookList.add(EnumScriptType.PROFILE_CHANGE.function);
|
|
|
|
|
hookList.add(EnumScriptType.PROFILE_REMOVE.function);
|
|
|
|
|
hookList.add(EnumScriptType.PROFILE_CREATE.function);
|
2025-03-14 03:33:10 -04:00
|
|
|
hookList.add(EffectScript.ScriptType.OnEffectAdd.function);
|
|
|
|
|
hookList.add(EffectScript.ScriptType.OnEffectTick.function);
|
|
|
|
|
hookList.add(EffectScript.ScriptType.OnEffectRemove.function);
|
2023-03-16 04:27:19 -05:00
|
|
|
|
2021-09-30 21:44:30 -05:00
|
|
|
this.handler = this.script;
|
2025-02-02 23:15:53 -05:00
|
|
|
PlayerScriptPacket.Get();
|
2021-09-30 21:44:30 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void setGuiData(NBTTagCompound compound) {
|
2025-07-23 14:22:52 -04:00
|
|
|
if (compound.hasKey("LoadComplete")) {
|
2025-05-29 21:09:58 -04:00
|
|
|
loaded = true;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-19 13:38:43 -06:00
|
|
|
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-13 17:14:45 -04:00
|
|
|
script.getScripts().set(tab, container);
|
2023-02-19 13:38:43 -06:00
|
|
|
initGui();
|
|
|
|
|
}
|
2021-09-30 21:44:30 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void save() {
|
2025-07-23 14:22:52 -04:00
|
|
|
if (loaded) {
|
2025-05-29 21:09:58 -04:00
|
|
|
super.save();
|
|
|
|
|
List<ScriptContainer> containers = this.script.getScripts();
|
|
|
|
|
for (int i = 0; i < containers.size(); i++) {
|
|
|
|
|
ScriptContainer container = containers.get(i);
|
|
|
|
|
PlayerScriptPacket.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()));
|
|
|
|
|
PlayerScriptPacket.Save(-1, containers.size(), scriptData);
|
2023-02-19 13:38:43 -06:00
|
|
|
}
|
2021-10-18 06:33:39 -05:00
|
|
|
}
|
2021-09-30 21:44:30 -05:00
|
|
|
}
|