Search in sources :

Example 1 with CharacterData

use of com.wynntils.core.framework.instances.data.CharacterData in project Wynntils by Wynntils.

the class ServerEvents method joinWorldEvent.

/**
 * Called when the user joins a Wynncraft World, used to register some stuff:
 *  - Make the player use the command /friend list in order to gatter the user friend list
 *  - Check if the last user class was registered if not, make the player execute /class to register it
 *  - Updates the last class
 *  - Updates and check the Download Queue
 *
 * @param e Represents the event
 */
@SubscribeEvent(priority = EventPriority.LOWEST)
public void joinWorldEvent(WynnWorldEvent.Join e) {
    if (PlayerInfo.get(CharacterData.class).getClassId() == -1 || CoreDBConfig.INSTANCE.lastClass == ClassType.NONE)
        McIf.player().sendChatMessage("/class");
    // This codeblock will only be executed if the Wynncraft AUTOJOIN setting is enabled
    // Reason: When you join a world with autojoin enabled, your current class is NONE,
    // while joining without autojoin will make your current class into the selected over the character selection.
    CharacterData data = PlayerInfo.get(CharacterData.class);
    if (data.getCurrentClass() == ClassType.NONE && CoreDBConfig.INSTANCE.lastClass != ClassType.NONE) {
        data.updatePlayerClass(CoreDBConfig.INSTANCE.lastClass, CoreDBConfig.INSTANCE.lastClassIsReskinned);
    }
    // avoid dispatching commands while in wars/nether
    if (Reference.onWars)
        return;
    // guild members
    if (WebManager.getPlayerProfile() != null && WebManager.getPlayerProfile().getGuildName() != null) {
        waitingForGuildList = true;
        McIf.player().sendChatMessage("/guild list");
    }
    // friends
    waitingForFriendList = true;
    McIf.player().sendChatMessage("/friends list");
    // party members
    // party list here
    PartyManager.handlePartyList();
    startUpdateRegionName();
}
Also used : CharacterData(com.wynntils.core.framework.instances.data.CharacterData) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 2 with CharacterData

use of com.wynntils.core.framework.instances.data.CharacterData in project Wynntils by Wynntils.

the class OverlayEvents method onClientTick.

@SubscribeEvent(priority = EventPriority.LOWEST)
public void onClientTick(TickEvent.ClientTickEvent e) {
    if (Reference.onWorld && e.phase == TickEvent.Phase.END) {
        /* XP Gain Messages */
        CharacterData data = PlayerInfo.get(CharacterData.class);
        if (OverlayConfig.GameUpdate.GameUpdateEXPMessages.INSTANCE.enabled) {
            if (tickcounter % (int) (OverlayConfig.GameUpdate.GameUpdateEXPMessages.INSTANCE.expUpdateRate * 20f) == 0) {
                if (oldxp != data.getCurrentXP()) {
                    if (!data.getCurrentXPAsPercentage().equals("")) {
                        if (oldxp < data.getCurrentXP()) {
                            DecimalFormat df = new DecimalFormat("0.0");
                            float xpchange = Float.parseFloat(data.getCurrentXPAsPercentage()) - Float.parseFloat(oldxppercent);
                            GameUpdateOverlay.queueMessage(OverlayConfig.GameUpdate.GameUpdateEXPMessages.INSTANCE.expMessageFormat.replace("%xo%", Integer.toString(oldxp)).replace("%xn%", Integer.toString(data.getCurrentXP())).replace("%xc%", Integer.toString(data.getCurrentXP() - oldxp)).replace("%po%", oldxppercent).replace("%pn%", data.getCurrentXPAsPercentage()).replace("%pc%", df.format(xpchange)));
                        }
                        oldxp = data.getCurrentXP();
                        oldxppercent = data.getCurrentXPAsPercentage();
                    }
                }
            }
        }
        /*Inventory full message*/
        if (OverlayConfig.GameUpdate.GameUpdateInventoryMessages.INSTANCE.enabled) {
            if (tickcounter % (int) (OverlayConfig.GameUpdate.GameUpdateInventoryMessages.INSTANCE.inventoryUpdateRate * 20f) == 0) {
                IInventory inv = McIf.player().inventory;
                int itemCounter = 0;
                for (int i = 0; i < inv.getSizeInventory(); i++) {
                    if (!inv.getStackInSlot(i).isEmpty()) {
                        itemCounter++;
                    }
                }
                if (itemCounter == inv.getSizeInventory() - 1) {
                    GameUpdateOverlay.queueMessage(OverlayConfig.GameUpdate.GameUpdateInventoryMessages.INSTANCE.inventoryMessageFormat);
                }
            }
        }
        tickcounter++;
    }
}
Also used : IInventory(net.minecraft.inventory.IInventory) CharacterData(com.wynntils.core.framework.instances.data.CharacterData) DecimalFormat(java.text.DecimalFormat) SubscribeEvent(net.minecraftforge.fml.common.eventhandler.SubscribeEvent)

Example 3 with CharacterData

use of com.wynntils.core.framework.instances.data.CharacterData in project Wynntils by Wynntils.

the class LevelingOverlay method render.

@Override
public void render(RenderGameOverlayEvent.Pre event) {
    CharacterData data = get(CharacterData.class);
    if (((event.getType() == RenderGameOverlayEvent.ElementType.EXPERIENCE) || (event.getType() == RenderGameOverlayEvent.ElementType.JUMPBAR)) && Reference.onWorld && data.isLoaded()) {
        String text = OverlayConfig.Leveling.INSTANCE.levelingText.replace("%actual%", "" + data.getCurrentXP()).replace("%max%", "" + data.getXpNeededToLevelUp()).replace("%percent%", data.getCurrentXPAsPercentage()).replace("%needed%", "" + (data.getXpNeededToLevelUp() - data.getCurrentXP())).replace("%actualg%", GROUPED_FORMAT.format(data.getCurrentXP())).replace("%maxg%", GROUPED_FORMAT.format(data.getXpNeededToLevelUp())).replace("%neededg%", GROUPED_FORMAT.format(data.getXpNeededToLevelUp() - data.getCurrentXP())).replace("%curlvl%", "" + data.getLevel()).replace("%nextlvl%", data.getLevel() == 104 ? "" : "" + (data.getLevel() + 1));
        drawString(text, 0, 0, CommonColors.LIGHT_BLUE, SmartFontRenderer.TextAlignment.MIDDLE, OverlayConfig.Leveling.INSTANCE.textShadow);
        staticSize.x = (int) getStringWidth(text);
    }
}
Also used : CharacterData(com.wynntils.core.framework.instances.data.CharacterData)

Aggregations

CharacterData (com.wynntils.core.framework.instances.data.CharacterData)3 SubscribeEvent (net.minecraftforge.fml.common.eventhandler.SubscribeEvent)2 DecimalFormat (java.text.DecimalFormat)1 IInventory (net.minecraft.inventory.IInventory)1