Search in sources :

Example 6 with IParty

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();
}
Also used : GuiButtonThemed(betterquesting.api.client.gui.controls.GuiButtonThemed) IParty(betterquesting.api.questing.party.IParty) UUID(java.util.UUID) ItemStack(net.minecraft.item.ItemStack) GuiTextField(net.minecraft.client.gui.GuiTextField)

Example 7 with IParty

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());
}
Also used : IParty(betterquesting.api.questing.party.IParty)

Example 8 with IParty

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());
        }));
    }
}
Also used : IPanelButton(betterquesting.api2.client.gui.controls.IPanelButton) NBTTagCompound(net.minecraft.nbt.NBTTagCompound) IParty(betterquesting.api.questing.party.IParty) Minecraft(net.minecraft.client.Minecraft) GuiJsonEditor(betterquesting.client.gui.editors.json.scrolling.GuiJsonEditor) GuiManageParty(betterquesting.client.gui.party.GuiManageParty) GuiNoParty(betterquesting.client.gui.party.GuiNoParty)

Example 9 with IParty

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);
            }
        }
    }
}
Also used : EntityPlayerMP(net.minecraft.entity.player.EntityPlayerMP) IParty(betterquesting.api.questing.party.IParty) MinecraftServer(net.minecraft.server.MinecraftServer) TextComponentString(net.minecraft.util.text.TextComponentString) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 10 with IParty

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);
            }
        }
    }
}
Also used : UserEntry(betterquesting.misc.UserEntry) IParty(betterquesting.api.questing.party.IParty) UUID(java.util.UUID)

Aggregations

IParty (betterquesting.api.questing.party.IParty)15 UUID (java.util.UUID)9 UserEntry (betterquesting.misc.UserEntry)3 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)3 EnumPartyStatus (betterquesting.api.enums.EnumPartyStatus)2 ITask (betterquesting.api.questing.tasks.ITask)2 PartyInstance (betterquesting.questing.party.PartyInstance)2 EntityPlayerMP (net.minecraft.entity.player.EntityPlayerMP)2 MinecraftServer (net.minecraft.server.MinecraftServer)2 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)2 GuiButtonThemed (betterquesting.api.client.gui.controls.GuiButtonThemed)1 EnumPacketAction (betterquesting.api.enums.EnumPacketAction)1 DatabaseEvent (betterquesting.api.events.DatabaseEvent)1 IReward (betterquesting.api.questing.rewards.IReward)1 IPanelButton (betterquesting.api2.client.gui.controls.IPanelButton)1 GuiJsonEditor (betterquesting.client.gui.editors.json.scrolling.GuiJsonEditor)1 GuiManageParty (betterquesting.client.gui.party.GuiManageParty)1 GuiNoParty (betterquesting.client.gui.party.GuiNoParty)1 ArrayList (java.util.ArrayList)1 Minecraft (net.minecraft.client.Minecraft)1