use of cc.hyperium.mods.levelhead.Levelhead in project Hyperium by HyperiumClient.
the class LevelheadGui method attemptPurchase.
private void attemptPurchase(String key) {
Levelhead instance = Levelhead.getInstance();
LevelheadJsonHolder paidData = instance.getPaidData();
Hyperium.LOGGER.debug(paidData);
LevelheadJsonHolder extraDisplays = paidData.optJsonObject("extra_displays");
LevelheadJsonHolder stats = paidData.optJsonObject("stats");
boolean found;
boolean display = false;
String name = null;
String description = null;
int cost = 0;
LevelheadJsonHolder seed = null;
boolean single = false;
if (extraDisplays.has(key)) {
seed = extraDisplays.optJsonObject(key);
} else if (stats.has(key)) {
seed = stats.optJsonObject(key);
}
found = seed != null;
if (seed != null) {
name = seed.optString("name");
description = seed.optString("description");
cost = seed.optInt("cost");
single = seed.optBoolean("single");
}
int remainingLevelheadCredits = instance.getRawPurchases().optInt("remaining_levelhead_credits");
if (remainingLevelheadCredits < cost) {
mc.displayGuiScreen(null);
Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage("Insufficient Levelhead credits! " + name + " costs " + cost + " credits but you only have " + remainingLevelheadCredits);
Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage("You can purchase more Levelhead credits here: https://purchase.sk1er.club/category/1050972");
return;
}
if (instance.getAuth().isFailed()) {
mc.displayGuiScreen(null);
Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage("Could not verify your identity. Please restart your client. If the issue persists, contact Sk1er.");
return;
}
if (found) {
String finalName = name;
ids.put(key.hashCode(), () -> {
Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage("Attempting to purchase: " + finalName);
Multithreading.runAsync(() -> {
LevelheadJsonHolder jsonHolder = new LevelheadJsonHolder(Sk1erMod.getInstance().rawWithAgent("https://api.sk1er.club/levelhead_purchase?access_token=" + instance.getAuth().getAccessKey() + "&request=" + key + "&hash=" + instance.getAuth().getHash()));
if (jsonHolder.optBoolean("success")) {
instance.refreshPurchaseStates();
Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage("Successfully purchased: " + finalName);
} else {
Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage("Failed to purchase: " + finalName + ". Cause: " + jsonHolder.optString("cause"));
}
});
});
GuiYesNo gui = new GuiYesNo(this, "Purchase " + finalName, "Description:" + " " + description + ". This item may be purchased " + (single ? "one time" : "many times") + ". Type: " + (display ? "Display" : "Extra Stat"), "Purchase for " + cost + " credits", "Cancel", key.hashCode());
Hyperium.INSTANCE.getHandlers().getGuiDisplayHandler().setDisplayNextTick(gui);
} else {
Hyperium.INSTANCE.getHandlers().getGeneralChatHandler().sendMessage("Could not find package: " + key + ". Please contact Sk1er immediately.");
}
}
use of cc.hyperium.mods.levelhead.Levelhead in project Hyperium by HyperiumClient.
the class LevelheadGui method drawPingHook.
public static void drawPingHook(int i, int x, int y, NetworkPlayerInfo playerInfo) {
if (!Levelhead.getInstance().getDisplayManager().getMasterConfig().isEnabled()) {
return;
}
Levelhead instance = Levelhead.getInstance();
LevelheadDisplay tab = instance.getDisplayManager().getTab();
if (tab != null) {
if (!tab.getConfig().isEnabled())
return;
if (instance.getLevelheadPurchaseStates().isTab()) {
String s = tab.getTrueValueCache().get(playerInfo.getGameProfile().getId());
if (s != null) {
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRendererObj;
int x1 = i + x - 12 - fontRenderer.getStringWidth(s);
Scoreboard board = Minecraft.getMinecraft().theWorld.getScoreboard();
ScoreObjective objective = board.getObjectiveInDisplaySlot(0);
if (objective != null) {
int score = board.getValueFromObjective(playerInfo.getGameProfile().getName(), objective).getScorePoints();
int extraWidth = fontRenderer.getStringWidth(" " + score);
x1 -= extraWidth;
}
DisplayConfig config = tab.getConfig();
if (config.isFooterChroma()) {
fontRenderer.drawString(s, x1, y, instance.getRGBColor());
} else if (config.isFooterRgb()) {
fontRenderer.drawString(s, x1, y, new Color(config.getFooterRed(), config.getFooterGreen(), config.getFooterBlue()).getRGB());
} else {
fontRenderer.drawString(config.getFooterColor() + s, x1, y, -1);
}
}
}
}
}
use of cc.hyperium.mods.levelhead.Levelhead in project Hyperium by HyperiumClient.
the class LevelheadGui method drawScreen.
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
drawDefaultBackground();
Levelhead instance = Levelhead.getInstance();
currentID = 0;
buttonList.clear();
drawScaledText(UNDERLINE.toString() + BOLD + "Levelhead " + instance.getVersion(), width / 2, 5, 2, -1, true, true);
drawScaledText("By Sk1er LLC", width / 2, 30, 1.5, -1, true, true);
reg(new GuiButton(++currentID, 1, 2, 150, 20, YELLOW + "Mod Status: " + (instance.getDisplayManager().getMasterConfig().isEnabled() ? GREEN + "Enabled" : RED + "Disabled")), button -> {
instance.getDisplayManager().getMasterConfig().setEnabled(!instance.getDisplayManager().getMasterConfig().isEnabled());
button.displayString = "Mod Status: " + (instance.getDisplayManager().getMasterConfig().isEnabled() ? GREEN + "Enabled" : RED + "Disabled");
});
FontRenderer fontRenderer = mc.fontRendererObj;
if (purchasingStats) {
reg(new GuiButton(++currentID, 1, height - 21, 100, 20, "Back"), guiButton -> purchasingStats = false);
drawScaledText("Purchase Extra Stats", width / 2, 50, 2.0, -1, true, true);
drawScaledText("These stats can be displayed above players' heads, in lobbies or in tab.", width / 2, 67, 1, -1, true, true);
LevelheadJsonHolder stats = instance.getPaidData().optJsonObject("stats");
int pos = 75 - offset;
for (String key : stats.getKeys()) {
LevelheadJsonHolder jsonHolder = stats.optJsonObject(key);
boolean purchased = instance.getPurchaseStatus().optBoolean(key);
String name = jsonHolder.optString("name");
if (purchased)
name += " (Purchased)";
if (pos > 74 && pos < width - 100) {
reg(new GuiButton(++currentID, width / 2 - 100, pos, name), guiButton -> {
if (!purchased)
attemptPurchase(key);
});
}
pos += 22;
}
} else {
reg(new GuiButton(++currentID, 1, 44, 150, 20, YELLOW + "Purchase Extra Stats"), guiButton -> purchasingStats = true);
if (currentlyBeingEdited == null) {
currentlyBeingEdited = instance.getDisplayManager().getAboveHead().get(0);
textField.setText(currentlyBeingEdited.getConfig().getCustomHeader());
}
int index = 0;
DisplayConfig config = currentlyBeingEdited.getConfig();
int editWidth = 125;
doGeneral(config, instance, editWidth);
if (currentlyBeingEdited instanceof AboveHeadDisplay) {
doHead(config, instance, editWidth, mouseX, mouseY);
index = 0;
} else if (currentlyBeingEdited instanceof ChatDisplay) {
doChat(config, instance, editWidth);
index = 1;
} else if (currentlyBeingEdited instanceof TabDisplay) {
doTab(instance);
index = 2;
}
String[] types = { "Above Head Display", "Chat Display", "Tab Display" };
drawScaledText(LIGHT_PURPLE + "Levelhead Credits: " + AQUA + instance.getRawPurchases().optInt("remaining_levelhead_credits"), width / 3, height - 90, 1.5D, -1, true, true);
drawScaledText((currentlyBeingEdited instanceof AboveHeadDisplay ? GREEN : (currentlyBeingEdited instanceof TabDisplay && instance.getLevelheadPurchaseStates().isTab() ? GREEN : (currentlyBeingEdited instanceof ChatDisplay && instance.getLevelheadPurchaseStates().isChat() ? GREEN : RED))) + types[index], width / 3, height - 110, 1.25, new Color(255, 255, 255).getRGB(), true, true);
int finalIndex = index;
reg(new GuiButton(++currentID, width / 3 - 65 - 20, height - 115, 20, 20, "<"), guiButton -> {
if (finalIndex == 0) {
currentlyBeingEdited = instance.getDisplayManager().getChat();
} else if (finalIndex == 1) {
currentlyBeingEdited = instance.getDisplayManager().getTab();
} else {
currentlyBeingEdited = instance.getDisplayManager().getAboveHead().get(0);
}
});
reg(new GuiButton(++currentID, width / 3 + 65, height - 115, 20, 20, ">"), guiButton -> {
if (finalIndex == 0) {
currentlyBeingEdited = instance.getDisplayManager().getTab();
} else if (finalIndex == 1) {
currentlyBeingEdited = instance.getDisplayManager().getAboveHead().get(0);
} else {
currentlyBeingEdited = instance.getDisplayManager().getChat();
}
});
if (bigChange) {
int start = height - 25;
int i = 0;
for (String s : "Some changes cannot be applied in real time.\nThey will be applied once you close this GUI".split("\n")) {
fontRenderer.drawString(s, width - fontRenderer.getStringWidth(s) - 5, start + (i * 10), Color.RED.getRGB(), true);
i++;
}
}
drawScaledText(LIGHT_PURPLE + "Custom Levelhead Status: " + (isCustom ? GREEN + "Enabled" : RED + "Disabled"), 2, height - 55, 1.25, -1, true, false);
reg(new GuiButton(++currentID, 2, height - 44, 220, 20, (isCustom ? ChatColor.YELLOW + "Click to change custom Levelhead." : ChatColor.YELLOW + "Click to purchase custom Levelhead")), button -> {
try {
if (isCustom) {
Minecraft.getMinecraft().displayGuiScreen(new CustomLevelheadConfigurer());
} else {
Desktop.getDesktop().browse(new URI("http://sk1er.club/customlevelhead"));
}
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
});
reg(new GuiButton(++currentID, 1, 23, 150, 20, YELLOW + "Purchase Levelhead Credits"), button -> {
Desktop desktop = Desktop.getDesktop();
if (desktop != null) {
try {
desktop.browse(new URI("https://purchase.sk1er.club/category/1050972"));
} catch (IOException | URISyntaxException e) {
e.printStackTrace();
}
}
});
}
super.drawScreen(mouseX, mouseY, partialTicks);
}
use of cc.hyperium.mods.levelhead.Levelhead in project Hyperium by HyperiumClient.
the class LevelheadGui method doHead.
private void doHead(DisplayConfig config, Levelhead instance, int editWidth, int mouseX, int mouseY) {
List<AboveHeadDisplay> aboveHead = instance.getDisplayManager().getAboveHead();
textField.drawTextBox();
if (!textField.getText().equalsIgnoreCase(config.getCustomHeader())) {
config.setCustomHeader(textField.getText());
updatePeopleToValues();
}
reg(new GuiButton(++currentID, width / 3 - 100, height - 137, 200, 20, YELLOW + "Purchase Additional Above Head Layer"), button -> attemptPurchase("head"));
reg(new GuiButton(++currentID, width - editWidth * 2 - 3, 29, editWidth, 20, YELLOW + "Editing Layer: " + AQUA + (aboveHead.indexOf(currentlyBeingEdited) + 1)), button -> {
int i = aboveHead.indexOf(currentlyBeingEdited);
i++;
if (i >= aboveHead.size()) {
i = 0;
}
currentlyBeingEdited = aboveHead.get(i);
textField.setText(currentlyBeingEdited.getConfig().getCustomHeader());
});
reg(new GuiButton(++currentID, width - editWidth * 2 - 3, 50, editWidth, 20, YELLOW + "Show On Self: " + AQUA + (currentlyBeingEdited.getConfig().isShowSelf() ? "YES" : "NO")), button -> currentlyBeingEdited.getConfig().setShowSelf(!currentlyBeingEdited.getConfig().isShowSelf()));
int colorConfigStart = 93 + 2;
reg(new GuiButton(++currentID, width - editWidth * 2 - 2, colorConfigStart, editWidth, 20, YELLOW + "Header Mode: " + AQUA + getMode(true)), button -> {
if (config.isHeaderRgb()) {
config.setHeaderRgb(false);
config.setHeaderChroma(true);
} else if (config.isHeaderChroma()) {
config.setHeaderRgb(false);
config.setHeaderChroma(false);
} else {
config.setHeaderRgb(true);
config.setHeaderChroma(false);
}
updatePeopleToValues();
});
if (config.isHeaderRgb()) {
regSlider(new GuiSlider(++currentID, width - editWidth * 2 - 2, colorConfigStart + 22, editWidth, 20, YELLOW + "Header Red: " + AQUA, "", 0, 255, config.getHeaderRed(), false, true, slider -> {
config.setHeaderRed(slider.getValueInt());
updatePeopleToValues();
}));
regSlider(new GuiSlider(++currentID, width - editWidth * 2 - 2, colorConfigStart + 44, editWidth, 20, YELLOW + "Header Green: " + AQUA, "", 0, 255, config.getHeaderGreen(), false, true, slider -> {
config.setHeaderGreen(slider.getValueInt());
updatePeopleToValues();
}));
regSlider(new GuiSlider(++currentID, width - editWidth * 2 - 2, colorConfigStart + 66, editWidth, 20, YELLOW + "Header Blue: " + AQUA, "", 0, 255, config.getHeaderBlue(), false, true, slider -> {
config.setHeaderBlue(slider.getValueInt());
updatePeopleToValues();
}));
} else if (!config.isHeaderChroma()) {
reg(new GuiButton(++currentID, width - editWidth * 2 - 2, colorConfigStart + 22, editWidth, 20, config.getHeaderColor() + "Rotate Header Color"), button -> {
int primaryId = colors.indexOf(removeColorChar(config.getHeaderColor()));
if (++primaryId == colors.length()) {
primaryId = 0;
}
config.setHeaderColor(COLOR_CHAR + colors.charAt(primaryId));
updatePeopleToValues();
});
}
reg(new GuiButton(++currentID, width - editWidth - 1, colorConfigStart, editWidth, 20, YELLOW + "Footer Mode: " + AQUA + getMode(false)), button -> {
updateFooterColorState(config);
button.displayString = "Footer Mode: " + getMode(false);
updatePeopleToValues();
});
if (config.isFooterRgb()) {
regSlider(new GuiSlider(++currentID, width - editWidth - 1, colorConfigStart + 22, editWidth, 20, YELLOW + "Footer Red: " + AQUA, "", 0, 255, config.getFooterRed(), false, true, slider -> {
config.setFooterRed(slider.getValueInt());
updatePeopleToValues();
}));
regSlider(new GuiSlider(++currentID, width - editWidth - 1, colorConfigStart + 44, editWidth, 20, YELLOW + "Footer Green: " + AQUA, "", 0, 255, config.getFooterGreen(), false, true, slider -> {
config.setFooterGreen(slider.getValueInt());
updatePeopleToValues();
}));
regSlider(new GuiSlider(++currentID, width - editWidth - 1, colorConfigStart + 66, editWidth, 20, YELLOW + "Footer Blue: " + AQUA, "", 0, 255, config.getFooterBlue(), false, true, slider -> {
config.setFooterBlue(slider.getValueInt());
updatePeopleToValues();
}));
} else if (!config.isFooterChroma()) {
reg(new GuiButton(++currentID, width - editWidth - 1, colorConfigStart + 22, editWidth, 20, config.getFooterColor() + "Rotate Footer Color"), button -> incrementColor(config, false));
}
regSlider(new GuiSlider(++currentID, width - editWidth * 2 - 2, colorConfigStart + 88, editWidth, 20, YELLOW + "Vertical Offset: " + AQUA, "", -50, 100, instance.getDisplayManager().getMasterConfig().getOffset() * 100D, false, true, slider -> instance.getDisplayManager().getMasterConfig().setOffset(slider.getValue() / 100D)));
regSlider(new GuiSlider(++currentID, width - editWidth - 1, colorConfigStart + 88, editWidth, 20, YELLOW + "Font Size: " + AQUA, "", 1, 20, instance.getDisplayManager().getMasterConfig().getFontSize() * 10D, false, true, slider -> {
instance.getDisplayManager().getMasterConfig().setFontSize(slider.getValue() / 10D);
updatePeopleToValues();
}));
if (isCustom) {
reg(new GuiButton(++currentID, width - editWidth * 2 - 2, colorConfigStart + 88 + 22, editWidth * 2 + 1, 20, YELLOW + "Export Colors to Custom Levelhead"), guiButton -> {
final LevelheadJsonHolder object;
String encode;
String url;
ChatComponentText text;
ChatStyle style;
ChatComponentText valueIn;
ChatStyle style2;
object = new LevelheadJsonHolder();
object.put("header_obj", currentlyBeingEdited.getHeaderConfig());
object.put("footer_obj", currentlyBeingEdited.getFooterConfig());
try {
encode = URLEncoder.encode(object.toString(), "UTF-8");
url = "https://sk1er.club/user?levelhead_color=" + encode;
text = new ChatComponentText("Click here to update your custom Levelhead colors");
style = new ChatStyle();
style.setBold(true);
style.setColor(EnumChatFormatting.YELLOW);
style.setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url));
valueIn = new ChatComponentText("Please be logged in to your Sk1er.club for this to work. Do /levelhead dumpcache after clicking to see new colors!");
valueIn.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, url));
style2 = new ChatStyle();
style2.setColor(EnumChatFormatting.RED);
valueIn.setChatStyle(style2);
style.setChatHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, valueIn));
text.setChatStyle(style);
mc.thePlayer.addChatComponentMessage(valueIn);
mc.thePlayer.addChatComponentMessage(text);
} catch (UnsupportedEncodingException e2) {
e2.printStackTrace();
}
mc.displayGuiScreen(null);
});
}
GlStateManager.pushMatrix();
GlStateManager.color(1, 1, 1);
RenderHelper.enableStandardItemLighting();
GlStateManager.enableAlpha();
GlStateManager.shadeModel(7424);
GlStateManager.enableAlpha();
GlStateManager.enableDepth();
GlStateManager.translate(0, 0, 50);
ScaledResolution current = new ScaledResolution(mc);
int posX = current.getScaledWidth() / 3;
int posY = current.getScaledHeight() / 2;
GuiInventory.drawEntityOnScreen(posX, posY + 50, 50, posX - mouseX, posY - mouseY, mc.thePlayer);
GlStateManager.depthFunc(515);
GlStateManager.resetColor();
GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
GlStateManager.disableDepth();
GlStateManager.popMatrix();
drawScaledText("Custom Prefix: ", width - editWidth * 3 / 2 - 3, 77, 1.5, -1, true, true);
}
use of cc.hyperium.mods.levelhead.Levelhead in project Hyperium by HyperiumClient.
the class LevelheadGui method getLevelheadWidth.
public static int getLevelheadWidth(NetworkPlayerInfo playerInfo) {
if (!Levelhead.getInstance().getDisplayManager().getMasterConfig().isEnabled()) {
return 0;
}
Levelhead instance = Levelhead.getInstance();
LevelheadDisplay tab = instance.getDisplayManager().getTab();
if (tab != null) {
if (!tab.getConfig().isEnabled())
return 0;
if (instance.getLevelheadPurchaseStates().isTab()) {
String s = tab.getTrueValueCache().get(playerInfo.getGameProfile().getId());
if (s != null)
return Minecraft.getMinecraft().fontRendererObj.getStringWidth(s) + 2;
}
}
return 0;
}
Aggregations