use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class GuiNoParty method initGui.
@Override
public void initGui() {
super.initGui();
UUID playerID = QuestingAPI.getQuestingUUID(mc.player);
IParty party = PartyManager.INSTANCE.getUserParty(playerID);
if (party != null) {
mc.displayGuiScreen(new GuiManageParty(parent, party));
return;
}
heart = new ItemStack(BetterQuesting.extraLife);
lives = LifeDatabase.INSTANCE.getLives(playerID);
invites.clear();
for (int i : PartyManager.INSTANCE.getPartyInvites(playerID)) {
invites.add(PartyManager.INSTANCE.getValue(i));
}
rightScroll = 0;
maxRows = (sizeY - 72) / 20;
btnCreate = new GuiButtonThemed(1, guiLeft + sizeX / 4 - 75, height / 2 + 00, 150, 20, I18n.format("betterquesting.btn.party_new"), true);
this.buttonList.add(btnCreate);
fieldName = new GuiTextField(0, mc.fontRenderer, guiLeft + sizeX / 4 - 74, height / 2 - 19, 148, 18);
fieldName.setText("New Party");
// Party Invites
for (int i = 0; i < maxRows; i++) {
GuiButtonThemed btn = new GuiButtonThemed(this.buttonList.size(), guiLeft + sizeX - 74, guiTop + 48 + (i * 20), 50, 20, I18n.format("betterquesting.btn.party_join"), true);
this.buttonList.add(btn);
}
RefreshColumns();
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class GuiNoParty method drawScreen.
@Override
public void drawScreen(int mx, int my, float partialTick) {
super.drawScreen(mx, my, partialTick);
if (QuestSettings.INSTANCE.canUserEdit(mc.player)) {
RenderUtils.RenderItemStack(mc, heart, guiLeft + 16, guiTop + sizeY - 32, "");
mc.fontRenderer.drawString("x " + lives, guiLeft + 36, guiTop + sizeY - 28, getTextColor());
}
mc.renderEngine.bindTexture(currentTheme().getGuiTexture());
this.drawTexturedModalRect(guiLeft + sizeX - 24, this.guiTop + 48, 248, 0, 8, 20);
int s = 20;
while (s < (maxRows - 1) * 20) {
this.drawTexturedModalRect(guiLeft + sizeX - 24, this.guiTop + 48 + s, 248, 20, 8, 20);
s += 20;
}
this.drawTexturedModalRect(guiLeft + sizeX - 24, this.guiTop + 48 + s, 248, 40, 8, 20);
this.drawTexturedModalRect(guiLeft + sizeX - 24, this.guiTop + 48 + (int) Math.max(0, s * (float) rightScroll / (invites.size() - maxRows)), 248, 60, 8, 20);
String memTitle = TextFormatting.UNDERLINE + I18n.format("betterquesting.gui.party_invites");
mc.fontRenderer.drawString(memTitle, guiLeft + sizeX / 4 * 3 - mc.fontRenderer.getStringWidth(memTitle) / 2, guiTop + 32, getTextColor(), false);
int dotL = mc.fontRenderer.getStringWidth("...");
for (int i = 0; i < invites.size(); i++) {
int n = i + rightScroll;
IParty party = invites.get(i);
if (n < 0 || n >= invites.size() || i >= maxRows) {
continue;
}
String name = party.getName();
if (// Prevents overlap onto left side, especially when rendering unresolved UUIDs
mc.fontRenderer.getStringWidth(name) > sizeX / 2 - 32 - 58) {
name = mc.fontRenderer.trimStringToWidth(name, sizeX / 2 - 32 - 58 - dotL) + "...";
}
mc.fontRenderer.drawString(name, guiLeft + sizeX - 82 - mc.fontRenderer.getStringWidth(name), guiTop + 48 + (i * 20) + 4, getTextColor(), false);
}
mc.fontRenderer.drawString(I18n.format("betterquesting.gui.name"), guiLeft + sizeX / 4 - 75, height / 2 - 30, getTextColor(), false);
fieldName.drawTextBox();
RenderUtils.DrawLine(width / 2, guiTop + 32, width / 2, guiTop + sizeY - 32, 2F, getTextColor());
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class GuiHome method onButtonPress.
private void onButtonPress(PEventButton event) {
Minecraft mc = Minecraft.getMinecraft();
IPanelButton btn = event.getButton();
if (// Exit
btn.getButtonID() == 0) {
mc.displayGuiScreen(this.parent);
} else if (// Quests
btn.getButtonID() == 1) {
mc.displayGuiScreen(new GuiQuestLines(this));
} else if (// Party
btn.getButtonID() == 2) {
IParty party = PartyManager.INSTANCE.getUserParty(QuestingAPI.getQuestingUUID(mc.player));
if (party != null) {
mc.displayGuiScreen(new GuiManageParty(this, party));
} else {
mc.displayGuiScreen(new GuiNoParty(this));
}
} else if (// Theme
btn.getButtonID() == 3) {
mc.displayGuiScreen(new GuiThemes(this));
} else if (// Editor
btn.getButtonID() == 4) {
mc.displayGuiScreen(new GuiJsonEditor(this, QuestSettings.INSTANCE.writeToNBT(new NBTTagCompound(), EnumSaveType.CONFIG), null, (NBTTagCompound value) -> {
QuestSettings.INSTANCE.readFromNBT(value, EnumSaveType.CONFIG);
PacketSender.INSTANCE.sendToServer(QuestSettings.INSTANCE.getSyncPacket());
}));
}
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class EventHandler method onPlayerRespawn.
@SubscribeEvent
public void onPlayerRespawn(PlayerRespawnEvent event) {
if (QuestSettings.INSTANCE.getProperty(NativeProps.HARDCORE) && event.player instanceof EntityPlayerMP && !((EntityPlayerMP) event.player).queuedEndExit) {
EntityPlayerMP mpPlayer = (EntityPlayerMP) event.player;
IParty party = PartyManager.INSTANCE.getUserParty(QuestingAPI.getQuestingUUID(mpPlayer));
int lives = (party == null || !party.getProperties().getProperty(NativeProps.PARTY_LIVES)) ? LifeDatabase.INSTANCE.getLives(QuestingAPI.getQuestingUUID(mpPlayer)) : LifeDatabase.INSTANCE.getLives(party);
if (lives <= 0) {
MinecraftServer server = mpPlayer.getServer();
if (server == null) {
return;
}
mpPlayer.setGameType(GameType.SPECTATOR);
mpPlayer.getServerWorld().getGameRules().setOrCreateGameRule("spectatorsGenerateChunks", "false");
} else {
if (lives == 1) {
mpPlayer.sendStatusMessage(new TextComponentString("This is your last life!"), true);
} else {
mpPlayer.sendStatusMessage(new TextComponentString(lives + " lives remaining!"), true);
}
}
}
}
use of betterquesting.api.questing.party.IParty in project BetterQuesting by Funwayguy.
the class QuestInstance method setClaimed.
/**
* Temporary hack to make this a thing for users
*/
public void setClaimed(UUID uuid, long timestamp) {
IParty party = PartyManager.INSTANCE.getUserParty(uuid);
if (party == null) {
UserEntry entry = this.GetUserEntry(uuid);
if (entry != null) {
entry.setClaimed(true, timestamp);
} else {
entry = new UserEntry(uuid, timestamp);
entry.setClaimed(true, timestamp);
completeUsers.add(entry);
}
} else {
for (UUID mem : party.getMembers()) {
UserEntry entry = this.GetUserEntry(mem);
if (entry != null) {
entry.setClaimed(true, timestamp);
} else {
entry = new UserEntry(mem, timestamp);
entry.setClaimed(true, timestamp);
completeUsers.add(entry);
}
}
}
}
Aggregations