Skip to content

Commit

Permalink
Fix crash when opening inventory, closes #31
Browse files Browse the repository at this point in the history
  • Loading branch information
Pyrofab committed Aug 30, 2022
1 parent 95e8344 commit 20e2c94
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 11 deletions.
10 changes: 10 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
------------------------------------------------------
Version 1.9.1
------------------------------------------------------
- Fixed a crash when hovering over any status effect in an inventory on small screens (or with recipe book open)

------------------------------------------------------
Version 1.9.0
------------------------------------------------------
Updated to MC 1.19

------------------------------------------------------
Version 1.8.0
------------------------------------------------------
Expand Down
8 changes: 4 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,19 @@ quilted_fabric_api_version = 4.0.0-beta.1+0.58.5

# Base properties
mod_name = Creeper Spores
mod_version = 1.9.0
mod_version = 1.9.1
owners = Ladysnake
maven_group = io.github.ladysnake

#Other Dependencies
modmenu_version=4.0.0
modmenu_version=4.0.6
#Publishing
license_header = LGPL
gpl_version = 3
modrinth_id = WSdgoMoj
curseforge_id = 331636
curseforge_versions = 1.19; 1.19.1
modrinth_versions = 1.19; 1.19.1
curseforge_versions = 1.19; 1.19.1; 1.19.2
modrinth_versions = 1.19; 1.19.1; 1.19.2
release_type = release

# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,16 +41,23 @@ public abstract class AbstractInventoryScreenMixin {
private int renderedEffectsIndex;

@Inject(method = "drawStatusEffectDescriptions", at = @At("HEAD"))
private void retrieveRenderedEffects(MatrixStack matrices, int x, int width, Iterable<StatusEffectInstance> effects, CallbackInfo ci) {
private void creeperspores$retrieveRenderedEffects(MatrixStack matrices, int x, int width, Iterable<StatusEffectInstance> effects, CallbackInfo ci) {
renderedEffects = (List<StatusEffectInstance>) effects;
renderedEffectsIndex = 0;
}

@Inject(method = "drawStatusEffectDescriptions", at = @At("RETURN"))
private void creeperspores$clearRenderedEffects(MatrixStack matrices, int x, int width, Iterable<StatusEffectInstance> effects, CallbackInfo ci) {
renderedEffects = null;
}

@ModifyVariable(method = "getStatusEffectName", at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/text/Text;copy()Lnet/minecraft/text/MutableText;"), index = 2)
private MutableText updateRenderedEffectName(MutableText drawnString) {
StatusEffect renderedEffect = renderedEffects.get(renderedEffectsIndex++).getEffectType();
if (renderedEffect instanceof CreeperSporeEffect sporeEffect) {
return sporeEffect.getLocalizedName().copyContentOnly();
private MutableText creeperspores$updateRenderedEffectName(MutableText drawnString) {
if (renderedEffects != null) {
StatusEffect renderedEffect = renderedEffects.get(renderedEffectsIndex++).getEffectType();
if (renderedEffect instanceof CreeperSporeEffect sporeEffect) {
return sporeEffect.getLocalizedName().copyContentOnly();
}
}
return drawnString;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public static <E extends Entity> void register(EntityType<?> entityType, EntityR
}

@Inject(method = "register", at = @At(value = "RETURN"))
private static <E extends Entity> void onRendererRegistered(EntityType<? extends E> entityType, EntityRendererFactory<E> factory, CallbackInfo ci) {
private static <E extends Entity> void creeperspores$onRendererRegistered(EntityType<? extends E> entityType, EntityRendererFactory<E> factory, CallbackInfo ci) {
CreeperEntry creeperEntry = CreeperEntry.get(entityType);
if (creeperEntry != null) {
register(creeperEntry.creeperlingType(), (context) -> CreeperlingEntityRenderer.createRenderer(context, factory));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public abstract class StatusEffectSpriteManagerMixin {
@Shadow public abstract Sprite getSprite(StatusEffect statusEffect_1);

@Inject(method = "getSprite", at = @At("HEAD"), cancellable = true)
private void getCreeperSporesSprite(StatusEffect effect, CallbackInfoReturnable<Sprite> cir) {
private void creeperspores$getCreeperSporesSprite(StatusEffect effect, CallbackInfoReturnable<Sprite> cir) {
if (effect instanceof CreeperSporeEffect && effect != BASE_CREEPER_SPORES) {
cir.setReturnValue(getSprite(BASE_CREEPER_SPORES));
}
Expand Down

0 comments on commit 20e2c94

Please sign in to comment.