Catches any errors that occur when triggering events.

It is pretty annoying for the game to crash because of a GUI mod. This should reduce that.
This commit is contained in:
Markil3
2021-03-26 09:25:55 -06:00
parent a94b7f2929
commit b4ebd7d6a2

View File

@@ -61,14 +61,24 @@ public class EventBus
@SubscribeEvent @SubscribeEvent
public static void onClick(final PlayerInteractEvent event) public static void onClick(final PlayerInteractEvent event)
{ {
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> try
{ {
Item item = DistExecutor.runWhenOn(Dist.CLIENT, () -> () ->
Optional.ofNullable(event.getItemStack()) {
.map(ItemStack::getItem) Item item =
.orElse(null); Optional.ofNullable(event.getItemStack())
TimerUtils.onClick(event.getHand(), item); .map(ItemStack::getItem)
}); .orElse(null);
TimerUtils.onClick(event.getHand(), item);
});
}
catch (Exception e)
{
LOGGER.error(
"Error in running markil3.immersive_hud.EventBus#onClick " +
"event",
e);
}
} }
/** /**
@@ -83,10 +93,20 @@ public class EventBus
@SubscribeEvent @SubscribeEvent
public static void onMount(final EntityMountEvent event) public static void onMount(final EntityMountEvent event)
{ {
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> try
{ {
TimerUtils.resetMountHealth(); DistExecutor.runWhenOn(Dist.CLIENT, () -> () ->
}); {
TimerUtils.resetMountHealth();
});
}
catch (Exception e)
{
LOGGER.error(
"Error in running markil3.immersive_hud.EventBus#onMount " +
"event",
e);
}
} }
/** /**
@@ -98,11 +118,21 @@ public class EventBus
@SubscribeEvent @SubscribeEvent
public static void onRenderHand(final RenderHandEvent event) public static void onRenderHand(final RenderHandEvent event)
{ {
if (TimerUtils.onRenderHand(event.getHand(), try
event.getMatrixStack(),
event.getPartialTicks()))
{ {
event.setCanceled(true); if (TimerUtils.onRenderHand(event.getHand(),
event.getMatrixStack(),
event.getPartialTicks()))
{
event.setCanceled(true);
}
}
catch (Exception e)
{
LOGGER.error(
"Error in running markil3.immersive_hud" +
".EventBus#onRenderHand event",
e);
} }
} }
@@ -115,153 +145,162 @@ public class EventBus
@SubscribeEvent @SubscribeEvent
public static void onGUIDraw(final RenderGameOverlayEvent event) public static void onGUIDraw(final RenderGameOverlayEvent event)
{ {
Minecraft mc = Minecraft.getInstance(); try
boolean fadeIn = false;
switch (event.getType())
{ {
case CROSSHAIRS: Minecraft mc = Minecraft.getInstance();
if (event instanceof RenderGameOverlayEvent.Pre) boolean fadeIn = false;
switch (event.getType())
{ {
if (TimerUtils.drawCrosshair(event.getPartialTicks())) case CROSSHAIRS:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawCrosshair(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
/*
* Reset the transparency.
*/
else if (event instanceof RenderGameOverlayEvent.Post)
{
resetAlpha();
}
break;
case POTION_ICONS:
if (event instanceof RenderGameOverlayEvent.Pre)
{
TimerUtils.updatePotions(mc.player);
event.setCanceled(true);
RenderUtils.renderPotionIcons(mc,
mc.ingameGUI, event.getPartialTicks());
resetAlpha();
}
break;
case HOTBAR:
if (event instanceof RenderGameOverlayEvent.Pre)
{ {
event.setCanceled(true); event.setCanceled(true);
if (!TimerUtils.drawHotbar(event.getPartialTicks()))
{
RenderUtils.renderHotbar(mc, mc.ingameGUI,
event.getPartialTicks(), TimerUtils.hotbarTime);
}
} }
} break;
/* case HEALTH:
* Reset the transparency. if (event instanceof RenderGameOverlayEvent.Pre)
*/
else if (event instanceof RenderGameOverlayEvent.Post)
{
resetAlpha();
}
break;
case POTION_ICONS:
if (event instanceof RenderGameOverlayEvent.Pre)
{
TimerUtils.updatePotions(mc.player);
event.setCanceled(true);
RenderUtils.renderPotionIcons(mc,
mc.ingameGUI, event.getPartialTicks());
resetAlpha();
}
break;
case HOTBAR:
if (event instanceof RenderGameOverlayEvent.Pre)
{
event.setCanceled(true);
if (!TimerUtils.drawHotbar(event.getPartialTicks()))
{ {
RenderUtils.renderHotbar(mc, mc.ingameGUI, if (TimerUtils.drawHealth(event.getPartialTicks()))
event.getPartialTicks(), TimerUtils.hotbarTime); {
event.setCanceled(true);
}
} }
} else if (event instanceof RenderGameOverlayEvent.Post)
break; {
case HEALTH: RenderSystem.popMatrix();
if (event instanceof RenderGameOverlayEvent.Pre) resetAlpha();
{ }
if (TimerUtils.drawHealth(event.getPartialTicks())) break;
case FOOD:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawHunger(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
/*
* Reset the transparency.
*/
else if (event instanceof RenderGameOverlayEvent.Post)
{
RenderSystem.popMatrix();
resetAlpha();
}
break;
case ARMOR:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawArmor(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
/*
* Reset the transparency.
*/
else if (event instanceof RenderGameOverlayEvent.Post)
{
RenderSystem.popMatrix();
resetAlpha();
}
break;
case AIR:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawAir(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
/*
* Reset the transparency.
*/
else if (event instanceof RenderGameOverlayEvent.Post)
{
RenderSystem.popMatrix();
resetAlpha();
}
break;
case HEALTHMOUNT:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawMountHealth(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
else if (event instanceof RenderGameOverlayEvent.Post)
{
RenderSystem.popMatrix();
resetAlpha();
}
break;
case JUMPBAR:
if (event instanceof RenderGameOverlayEvent.Pre)
{ {
event.setCanceled(true); event.setCanceled(true);
if (!TimerUtils.drawJumpbar(event.getPartialTicks()))
{
RenderUtils.renderHorseJumpBar(mc,
mc.ingameGUI,
event.getPartialTicks(),
TimerUtils.jumpTime);
}
} }
} break;
else if (event instanceof RenderGameOverlayEvent.Post) case EXPERIENCE:
{ if (event instanceof RenderGameOverlayEvent.Pre)
RenderSystem.popMatrix();
resetAlpha();
}
break;
case FOOD:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawHunger(event.getPartialTicks()))
{ {
event.setCanceled(true); event.setCanceled(true);
if (!TimerUtils.drawExperience(event.getPartialTicks()))
{
RenderUtils.renderExperience(mc,
mc.ingameGUI,
event.getPartialTicks(),
TimerUtils.experienceTime);
}
} }
break;
} }
/* }
* Reset the transparency. catch (Exception e)
*/ {
else if (event instanceof RenderGameOverlayEvent.Post) LOGGER.error(
{ "Error in running markil3.immersive_hud.EventBus#onGUIDraw event",
RenderSystem.popMatrix(); e);
resetAlpha();
}
break;
case ARMOR:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawArmor(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
/*
* Reset the transparency.
*/
else if (event instanceof RenderGameOverlayEvent.Post)
{
RenderSystem.popMatrix();
resetAlpha();
}
break;
case AIR:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawAir(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
/*
* Reset the transparency.
*/
else if (event instanceof RenderGameOverlayEvent.Post)
{
RenderSystem.popMatrix();
resetAlpha();
}
break;
case HEALTHMOUNT:
if (event instanceof RenderGameOverlayEvent.Pre)
{
if (TimerUtils.drawMountHealth(event.getPartialTicks()))
{
event.setCanceled(true);
}
}
else if (event instanceof RenderGameOverlayEvent.Post)
{
RenderSystem.popMatrix();
resetAlpha();
}
break;
case JUMPBAR:
if (event instanceof RenderGameOverlayEvent.Pre)
{
event.setCanceled(true);
if (!TimerUtils.drawJumpbar(event.getPartialTicks()))
{
RenderUtils.renderHorseJumpBar(mc,
mc.ingameGUI,
event.getPartialTicks(),
TimerUtils.jumpTime);
}
}
break;
case EXPERIENCE:
if (event instanceof RenderGameOverlayEvent.Pre)
{
event.setCanceled(true);
if (!TimerUtils.drawExperience(event.getPartialTicks()))
{
RenderUtils.renderExperience(mc,
mc.ingameGUI,
event.getPartialTicks(),
TimerUtils.experienceTime);
}
}
break;
} }
} }
} }