Files
CustomNPC-Plus/src/main/java/noppes/npcs/client/gui/SubGuiMailmanSendSetup.java
T
2025-07-23 14:22:52 -04:00

103 lines
3.5 KiB
Java

package noppes.npcs.client.gui;
import kamkeel.npcs.network.PacketClient;
import kamkeel.npcs.network.packets.request.MailOpenSetupPacket;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.client.gui.player.GuiMailmanWrite;
import noppes.npcs.client.gui.select.GuiQuestSelection;
import noppes.npcs.client.gui.util.GuiNpcButton;
import noppes.npcs.client.gui.util.GuiNpcLabel;
import noppes.npcs.client.gui.util.GuiNpcTextField;
import noppes.npcs.client.gui.util.GuiSelectionListener;
import noppes.npcs.client.gui.util.ITextfieldListener;
import noppes.npcs.client.gui.util.SubGuiInterface;
import noppes.npcs.containers.ContainerMail;
import noppes.npcs.controllers.data.PlayerMail;
public class SubGuiMailmanSendSetup extends SubGuiInterface implements ITextfieldListener, GuiSelectionListener {
private PlayerMail mail;
public SubGuiMailmanSendSetup(PlayerMail mail, GuiScreen parent) {
this.parent = parent;
xSize = 256;
setBackground("menubg.png");
this.mail = mail;
}
@Override
public void initGui() {
super.initGui();
addLabel(new GuiNpcLabel(1, "mailbox.subject", guiLeft + 4, guiTop + 19));
addTextField(new GuiNpcTextField(1, this, fontRendererObj, guiLeft + 60, guiTop + 14, 180, 20, mail.subject));
addLabel(new GuiNpcLabel(0, "mailbox.sender", guiLeft + 4, guiTop + 41));
addTextField(new GuiNpcTextField(0, this, fontRendererObj, guiLeft + 60, guiTop + 36, 180, 20, mail.sender));
addButton(new GuiNpcButton(2, guiLeft + 29, guiTop + 100, "mailbox.write"));
addLabel(new GuiNpcLabel(3, "quest.quest", guiLeft + 13, guiTop + 135));
String title = mail.questTitle;
if (title.isEmpty())
title = "gui.select";
addButton(new GuiNpcButton(3, guiLeft + 70, guiTop + 130, 100, 20, title));
addButton(new GuiNpcButton(4, guiLeft + 171, guiTop + 130, 20, 20, "X"));
addButton(new GuiNpcButton(0, guiLeft + 26, guiTop + 190, 100, 20, "gui.done"));
addButton(new GuiNpcButton(1, guiLeft + 130, guiTop + 190, 100, 20, "gui.cancel"));
if (player.openContainer instanceof ContainerMail) {
ContainerMail container = (ContainerMail) player.openContainer;
mail.items = container.mail.items;
}
}
public void buttonEvent(GuiButton guibutton) {
int id = guibutton.id;
if (id == 0) {
close();
}
if (id == 1) {
mail.questId = -1;
mail.questTitle = "";
mail.message = new NBTTagCompound();
close();
}
if (id == 2) {
GuiMailmanWrite.parent = getParent();
GuiMailmanWrite.mail = mail;
PacketClient.sendClient(new MailOpenSetupPacket(mail.writeNBT()));
}
if (id == 3) {
setSubGui(new GuiQuestSelection(mail.questId));
}
if (id == 4) {
mail.questId = -1;
mail.questTitle = "";
initGui();
}
}
@Override
public void selected(int ob, String name) {
mail.questId = ob;
mail.questTitle = name;
initGui();
}
@Override
public void save() {
}
@Override
public void unFocused(GuiNpcTextField textField) {
if (textField.id == 0)
mail.sender = textField.getText();
if (textField.id == 1)
mail.subject = textField.getText();
}
}