Jump to content

[1.8] XP Bar disappearing why? [SOLVED]


JoelGodOfWar

Recommended Posts

Been wondering why this code when enabled, causes the XP bar to be removed and replaced with random text?

Is there a call i should make to render the XP Bar when text is rendered on the screen?

package com.datacraftcoords.event;



import org.lwjgl.opengl.GL11;

import com.datacraftcoords.Configs;
import com.datacraftcoords.GuiRepairOverride;

import net.minecraft.client.Minecraft;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.MathHelper;
import net.minecraftforge.client.event.RenderGameOverlayEvent;
import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.client.gui.GuiRepair;
import net.minecraft.client.gui.inventory.GuiEditSign;
import net.minecraftforge.client.event.GuiOpenEvent;

public class EventManager {

//public static String daConfig;
/** Enables/Disables this Mod */
public static boolean Enabled;
public static boolean chunkEnabled;

    /**
     * Toggles this Mod on or off
     * @return The state the Mod was changed to
     */
    public static void ToggleEnabled()
    {
    		Enabled = !Enabled;
    		Configs.SaveConfigSettings();
    	        	
    }

@SubscribeEvent
public void renderOverlay(RenderGameOverlayEvent e){
	/** Checks if Enabled, if it is Enabled process code. */
	if(EventManager.Enabled)
        {
		/** Checks if experience bar is displayed or not. If it is start code. */
	if(e.type == ElementType.JUMPBAR || e.type == ElementType.EXPERIENCE){
		//String DefaultChatStringFormat = "[{x}, {y}, {z}]";
		/** Gets Biome, and compares it to nether. Then alters the coords displayed based on results */
		String varBiome = getBiome();
		if(!varBiome.equals("Hell")){
			/** We are NOT in the Nether so display Overworld, and Nether Coords. */
			String coordinateString = "{x}, {y}, {z}";
        	coordinateString = coordinateString.replace("{x}", Integer.toString(GetXCoordinate()));
        	coordinateString = coordinateString.replace("{y}", Integer.toString(GetYCoordinate()));
        	coordinateString = coordinateString.replace("{z}", Integer.toString(GetZCoordinate()));
        	/** Display Overworld coords */
        	mc.fontRendererObj.drawString(EnumChatFormatting.YELLOW + "O: " + coordinateString + " " + EnumChatFormatting.RED + yawCalc() + EnumChatFormatting.WHITE + " T:" + CalculateMessageForInfoLine(null), 2, 2, 0xffffff);
        	
        	String coordinateString2 = "{x}, {y}, {z}";
        	coordinateString2 = coordinateString2.replace("{x}", Integer.toString(GetXCoordinate() / );
        	coordinateString2 = coordinateString2.replace("{y}", Integer.toString(GetYCoordinate()));
        	coordinateString2 = coordinateString2.replace("{z}", Integer.toString(GetZCoordinate() / );
        	/** Display Nether Coords, Overworld Dived by 8*/
        	mc.fontRendererObj.drawString(EnumChatFormatting.LIGHT_PURPLE + "N: " + coordinateString2 + EnumChatFormatting.GREEN + " XP: " + getXP(), 2, 12, 0xffffff);
        	//System.out.println("Biome " + varBiome + " - coord1 " + coordinateString + " - coord2 " + coordinateString2);
        	}
		else if(varBiome.equals("Hell")){
			/** We ARE in the Nether so display Nether, and Overworld Coords. */
			String coordinateString3 = "{x}, {y}, {z}";
        	coordinateString3 = coordinateString3.replace("{x}", Integer.toString(GetXCoordinate()));
        	coordinateString3 = coordinateString3.replace("{y}", Integer.toString(GetYCoordinate()));
        	coordinateString3 = coordinateString3.replace("{z}", Integer.toString(GetZCoordinate()));
        	/** Display Nether Coords */
        	mc.fontRendererObj.drawString(EnumChatFormatting.LIGHT_PURPLE + "N: " + coordinateString3 + " " + EnumChatFormatting.RED + yawCalc() + EnumChatFormatting.WHITE + " T:" + CalculateMessageForInfoLine(null), 2, 2, 0xffffff);
        	
        	String coordinateString4 = "{x}, {y}, {z}";
        	coordinateString4 = coordinateString4.replace("{x}", Integer.toString((GetXCoordinate() * ));
        	coordinateString4 = coordinateString4.replace("{y}", Integer.toString(GetYCoordinate()));
        	coordinateString4 = coordinateString4.replace("{z}", Integer.toString((GetZCoordinate() * ));
        	/** Display Overworld Coords, Nether Multiplied by 8 */
        	mc.fontRendererObj.drawString(EnumChatFormatting.YELLOW + "O: " + coordinateString4 + EnumChatFormatting.GREEN + " XP: " + getXP(), 2, 12, 0xffffff);
        	//System.out.println("Biome " + varBiome + " - coord3 " + coordinateString3 + " - coord4 " + coordinateString4);
		}

        	//Minecraft.getMinecraft().fontRendererObj.drawString("" + coordFormat + "", 2, 2, 0xffffff);
		/** Display Biome */
		mc.fontRendererObj.drawString("B: " + getBiome() + "", 2, 22, 0xffffff);
		int chunkX = GetXCoordinate() / 16;
		int chunkY = GetYCoordinate() / 16;
		int chunkZ = GetZCoordinate() / 16;
		int inChunkX = GetXCoordinate() % 16;
		int inChunkY = GetYCoordinate() % 16;
		int inChunkZ = GetZCoordinate() % 16;
		String daChunk = ("" + Integer.toString(inChunkX) + " " + Integer.toString(inChunkY) + " " + Integer.toString(inChunkZ) + " in " + Integer.toString(chunkX) + " " + Integer.toString(chunkY) + " " + Integer.toString(chunkZ)); 

		if(chunkEnabled){
			mc.fontRendererObj.drawString("C: " + daChunk + "", 2, 32, 0xffffff);
		}

	}
	}
}
//public static String coordFormat = "" + Integer.toString(GetXCoordinate()) + ", " + Integer.toString(GetYCoordinate()) + ", " + Integer.toString(GetZCoordinate()) + "";

protected static Minecraft mc = Minecraft.getMinecraft();
//String yawCalc = "" + (MathHelper.floor_double((double) (mc.thePlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3);
/** Get Direction we are facing N S E W */
public static double getYaw(){
	return (double) (MathHelper.floor_double((double) (mc.thePlayer.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3);
}
public static String yawCalc(){
	double var1 = getYaw();
	String var2 = "";
	if(var1 == 0){
		var2 = "S";
	}
	else if(var1 == 1){
		var2 = "W";
	}
	else if(var1 == 2){
		var2 = "N";
	}
	else if(var1 == 3){
		var2 = "E";
	}
	return var2;
}
/** Get XP, Current to Next Level */
public static String getXP(){
	return (String) "" +  String.valueOf((int) Math.ceil(mc.thePlayer.experience * mc.thePlayer.xpBarCap())) + "/" + mc.thePlayer.xpBarCap();
}
/** Get Biome */
public static String getBiome(){
	return (String) "" + mc.thePlayer.worldObj.getBiomeGenForCoords(mc.thePlayer.getPosition()).biomeName;
}
/** Get Player Coordinates */
public static int GetXCoordinate()
{
	return (int) Math.floor(mc.thePlayer.posX);
}
public static int GetYCoordinate()
{
	return (int) Math.floor(mc.thePlayer.posY);
}
public static int GetZCoordinate()
{
	return (int) Math.floor(mc.thePlayer.posZ);
}

private static long mobSpawningStartTime = 13187;
//mobs stop spawning at: 22813
//mobs start to burn at: 23600
private static long mobSpawningStopTime = 23600;
/**
     * Calculates time
     * @return time if the Clock is enabled, otherwise "".
     */
    public static String CalculateMessageForInfoLine(String infoLineMessageUpToThisPoint)
    {
        if (Enabled)
        {
        	
            	//0 game time is 6am, so add 6000
                long time = (mc.theWorld.getWorldTime() + 6000) % 24000;
                
                long hours = time / 1000;
                long seconds = (long)((time % 1000) * (60.0/1000.0));

                if(IsNight())
        		{
                    String nighttimeClockString = EnumChatFormatting.GRAY + String.format("%02d", hours) + ":" + String.format("%02d", seconds);
                    return nighttimeClockString;
        		}
                else
        		{
                    String daytimeClockString = EnumChatFormatting.YELLOW + String.format("%02d", hours) + ":" + String.format("%02d", seconds);
                    return daytimeClockString;
        		}
        	
        	
        	
        }

        return "";
    }
    
    public static boolean IsNight()
    {
    	long time = (mc.theWorld.getWorldTime()) % 24000;
    	return time >= mobSpawningStartTime && time < mobSpawningStopTime;
    }
    @SubscribeEvent
    public void GuiOpenEvent(GuiOpenEvent event)
{
    	//if(UseQuickPlaceSign && event.gui instanceof GuiEditSign && mc.thePlayer.isSneaking())
    	//{
    	//	event.setCanceled(true);
    	//}
    	if(true && event.gui instanceof GuiRepair)
    	{
    		event.gui = new GuiRepairOverride(mc.thePlayer.inventory, mc.theWorld);
    	}
}
}

Link to comment
Share on other sites

Lots of mess in code. :P

 

Your problem sounds like you are not rebinding texture.

After using FontRenderer in OverlayEvent you need to rebing WIDGETS. They are in Gui I think (or somewhere).

 

Note: Might not be it.

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

Drawing strings (FontRenderer) is nothing else but a tesselator that grabs a symbol on some coordinates in symbols map and draws it in sequence.

 

After using FontRenderer your bound texture is set to using this symbol map, you need to come back to default (icons).

 

How: At the very end of your own rendering do:

 

mc.getTextureManager().bindTexture(Gui.icons);

 

Gui.icons is minecraft field (public static final ResourceLocation icons = new ResourceLocation("textures/gui/icons.png");).

 

Note that OverlayEvent has many rendering phases (each for every overlay part) - use rebinding not in all phases but jsut after you do something in one of them.

 

P.S: And yes, I made mistake, not widgets, but icons.

1.7.10 is no longer supported by forge, you are on your own.

Link to comment
Share on other sites

I fixed it another way just a few minutes ago, but i will try this also.

The fix i found was changing this

if(e.type == ElementType.JUMPBAR || e.type == ElementType.EXPERIENCE){

to this

if(e.type == RenderGameOverlayEvent.ElementType.TEXT){

and now the experience bar displays.

 

thank you Ernio

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Honestly i gave up on hiring a online hacker due to the bad experienced i always encounter with them but this time i was really in urgent need for a legit one cos i needed to be sure what my partners plan is as he is avoiding me and always hiding hen making calls couple with his late night movement. i was so scared so i got a helping hand from a friend Hyung who introduced me with this expert hacker, i was scared and lost trust in him at first but after giving him a try in couple of hours i got access to my partner phone and saw his call recordings, hidden text messages, social accounts , hidden photos and more. Thank you [ Hacker11tech @ gm ail . c om ] for been legit.
    • Hello I'm looking for help launching minecraft through curseforge. I've scoured the Internet and can't seem to find anyone with a solution to my specific situation/fix that I haven't tried. I'll post the Curseforge debug Logs below. But basically I'm on a Laptop (Lenovo Legion Slim 7 2021) And the people I've seen with the most similar scenario and found a fix they always had an AMD graphics card and were missing the correct drivers, Well i have the Nvidia geforce RTX 3060 Laptop version with all the most updated drivers, I've reinstalled the drivers so that doesn't seem to me the problem. Also, minecraft will launch in vanilla and through another modloader called modrinth. So it doesn't feel like a Java error either but I don't no how to read this debug page so I'm looking for advice. Please help?!  
    • Hello. Basically I made a custom standalone util library (https://github.com/lolhol/Pathfinder3D) and want to use it with my mod. Although I have done the normal jit pack stuff (basically the tutorial on their website) the Minecraft crashes the second it starts saying that it cannot find the name of a class inside of my library. (When I remove the implement(<my library link thingy>) mc launches normally and does not crash (if I comment out the code that uses the custom lib)). Now then, is there a quick fix for this because all of the other questions that I found on this topic were trying to load another mod (again, not what I’m trying to do). Am I doing something wrong? 
    • Fast Leaf Decay (by olafskiii) Rubidium (by Asek3) Artifacts (by ochotonida) Framework (by MrCrayfish) Max Health Fix (by DarkhaxDev) Embeddium/Rubidium Extras (by Txni) Essential Mod (by SparkUniverse_) Immersive Aircraft [Fabric/Forge] (by Conczin) Cherished Worlds (Fabric/Forge/NeoForge/Quilt) (by TheIllusiveC4) ExpandAbility (by florensie) Sophisticated Core (by P3pp3rF1y) Tinkers' Levelling Addon (by Pyre540) Better Advancements (by way2muchnoise) Immersive Melodies [Fabric/Forge] (by Conczin) Citadel (by sbom_xela) Vampirism - Become a vampire! (by maxanier) FerriteCore ((Neo)Forge) (by malte0811) CoroUtil (by Corosus) Create Big Cannons (by rbasamoyai) Controlling (by Jaredlll08) Cloth Config API (Fabric/Forge/NeoForge) (by shedaniel) Mekanism (by bradyaidanc) BetterF3 (by cominixo) Supplementaries (by MehVahdJukaar) Chest Cavity - Forge Port (by booneldanforever) ConnectedTexturesMod (by tterrag1098) NetherPortalFix (by BlayTheNinth) Spartan Weaponry (by ObliviousSpartan) Charm of Undying (Fabric/Forge/Quilt) (by TheIllusiveC4) Plushie Mod (by Link4real) JourneyMap (by techbrew) Farmer's Delight (by vectorwing) Connectivity[Forge/Fabric] (by someaddon) Create : Misc & Things (by To0pa) Create: Steam 'n' Rails (by IThundxr) Shutup Experimental Settings! (by Corgi_Taco) Alex's Mobs (by sbom_xela) Quark (by Vazkii) Tool Belt (by gigaherz) Just Enough Items (JEI) (by mezz) Bookshelf (by DarkhaxDev) FastWorkbench (by Shadows_of_Fire) Tinkers Construct (by mDiyo) Collective (by Serilum) Inventory HUD+ (by dmitrylovin) Explorer's Compass (by Chaosyr) playerAnimator (by KosmX) Size Devices (by DaFlame_rl) Jade 🔍 (by Snownee) Create Slice & Dice (by possible_triangle) Create Jetpack (by possible_triangle) Carry On (by Tschipp) Moonlight Lib (by MehVahdJukaar) Kotlin for Forge (by thedarkcolour) CraftTweaker (by Jaredlll08) Just Enough Resources (JER) (by way2muchnoise) AI Improvements (by QueenOfMissiles) Patchouli (by Vazkii) Catalogue (by MrCrayfish) Tool Stats (by DarkhaxDev) It Takes a Pillage (by izofar) JEITweaker (by Jaredlll08) Waystones (by BlayTheNinth) Vampires Need Umbrellas (by focamacho) Oculus (by Asek3) Mantle (by mDiyo) Mob Grinding Utils (by vadis365) Chiseled (by freepeopleworking) AutoRegLib (by Vazkii) Mystical Agriculture (by BlakeBr0) Embeddium/Rubidium Dynamic Lights (by Txni) Flywheel (Legacy) (by jozufozu) Builder's Delight (Forge) (by Tynoxs) Apotheosis (by Shadows_of_Fire) What Are They Up To (Watut) (by Corosus) Create: Interiors (by sudolev) FastFurnace (by Shadows_of_Fire) Balm (Forge Edition) (by BlayTheNinth) Clumps (by Jaredlll08) Iris & Oculus Flywheel Compat (by leon_mout) Configured (by MrCrayfish) Tinkers' Expansion (by Insane96) Crafting on a stick (by OfekN_) MrCrayfish's Gun Mod (by MrCrayfish) Create: Crystal Clear (by singularity_cyvack) FTB Library (Forge) (by FTB) AppleSkin (by squeek502) Curios API (Forge/NeoForge) (by TheIllusiveC4) Better Third Person (by Socolio) Caelus API (Forge/NeoForge) (by TheIllusiveC4) Sons Of Sins (by Furti_Two) SwingThroughGrass (by exidex) AttributeFix (by DarkhaxDev) Quests Additions (Forge) (by NaturaSpell) Building Gadgets (by Direwolf20) Enchantment Descriptions (by DarkhaxDev) Skin Layers 3D (Fabric/Forge) (by tr7zw) Bad Wither No Cookie - Reloaded (by Kreezxil) Placebo (by Shadows_of_Fire) FTB Teams (Forge) (by FTB) Mod Name Tooltip (by mezz) Enigmatic Graves (by Quarris) Sophisticated Backpacks (by P3pp3rF1y) GeckoLib (by Gecko) Builders Crafts & Additions (by MRHminer) Immersive Portals (for Forge) (by qouteall) Architectury API (Fabric/Forge/NeoForge) (by shedaniel) Lazy DataFixerUpper(LazyDFU) [FORGE] (by Corgi_Taco) Create Ore Excavation (by tom54541) Tinkers' Rapier (by sz0999312) Mowzie's Mobs (by bobmowzie) Better Combat [Fabric & Forge] (by daedelus_dev) Create Stuff & Additions (by Furti_Two) Cucumber Library (by BlakeBr0) FPS Reducer (by bre2el) Item Filters (by LatvianModder) FTB Quests (Forge) (by FTB) L_Ender 's Cataclysm (by mcl_ender) Starter Kit (by Serilum) Feature NBT Deadlock Be Gone (by telepathicgrunt) Materialis (by RCXcrafter) KleeSlabs (by BlayTheNinth) Pehkui (by Virtuoel) Grappling Hook Mod (by yyonne) Security Craft (by Geforce132) Ars Nouveau (by baileyholl2) Mouse Tweaks (by YaLTeR) Werewolves - Become a Beast! (by Cheaterpaul) Elytra Slot (Fabric/Forge/Quilt) (by TheIllusiveC4) Create (by simibubi) Budschie's Morph Mod (by budschie_) Ore Excavation (by Funwayguy) Create Confectionery (by Furti_Two)
    • Hello, im kind of a newbie on creating mods, and i been trying to make simples mods so far, Right now, i'm creating a mod which detect an specific type of mob and kill it if reach a certain number, by far the mod is detecting the mob and counting them but at the time it reach the limit number, it don't do anything. The Game don't tweak, don't crash, just i't don't run the method i call, which is kill().   public InteractionResultHolder<ItemStack> use(Level pLevel, Player pPlayer, InteractionHand pUsedHand) { final var TotalCows = pLevel.getNearbyEntities(Cow.class, TargetingConditions.forNonCombat(), pPlayer, pPlayer.getBoundingBox().inflate(5)); if(pLevel.isClientSide){ if(pPlayer.getItemInHand(InteractionHand.MAIN_HAND).getItem() == this.asItem()){ if(!TotalCows.isEmpty()){ if(TotalCows.get(0).isAlive()){ TotalCows.get(0).kill(); } }else{ pPlayer.sendSystemMessage(Component.literal("No hay vacas")); } } } The sendSystemMessage is get triggered, and when i change the method .kill() by any other like send a message it got called, can i get some tips, and a clue of what i'm missing
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.