Skip to content

Commit 23e6d62

Browse files
committed
Blank strings or null will not cause a new line when using ICustomDescription#getDescription.
Added ICustomDescription#getPersistentDescription.
1 parent 408c8c3 commit 23e6d62

File tree

4 files changed

+43
-4
lines changed

4 files changed

+43
-4
lines changed

all/gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
mod_version=1.6.1
1+
mod_version=1.6.2

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,6 @@ mod_menu_version=2.0.6
1111
halplibe_version=4.0.6
1212

1313
# Mod
14-
core_mod_version=1.4.1
14+
core_mod_version=1.4.2
1515
core_mod_group=sunsetsatellite
1616
core_mod_name=catalyst-core

src/main/java/sunsetsatellite/catalyst/core/mixin/GuiTooltipMixin.java

+36-2
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,29 @@
11
package sunsetsatellite.catalyst.core.mixin;
22

3+
import com.llamalad7.mixinextras.sugar.Local;
34
import net.minecraft.client.gui.Gui;
45
import net.minecraft.client.gui.GuiTooltip;
56
import net.minecraft.core.block.Block;
67
import net.minecraft.core.item.ItemStack;
78
import net.minecraft.core.item.block.ItemBlock;
89
import net.minecraft.core.lang.I18n;
910
import net.minecraft.core.player.inventory.slot.Slot;
11+
import org.jetbrains.annotations.ApiStatus;
12+
import org.objectweb.asm.Opcodes;
13+
import org.spongepowered.asm.mixin.Debug;
1014
import org.spongepowered.asm.mixin.Mixin;
1115
import org.spongepowered.asm.mixin.injection.At;
16+
import org.spongepowered.asm.mixin.injection.Desc;
1217
import org.spongepowered.asm.mixin.injection.Inject;
1318
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
1419
import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
1520
import sunsetsatellite.catalyst.core.util.ICustomDescription;
1621

22+
import java.util.Objects;
23+
24+
@Debug(
25+
export = true
26+
)
1727
@Mixin(
1828
value = GuiTooltip.class,
1929
remap = false
@@ -28,12 +38,36 @@ public void injectCustomTooltip(ItemStack itemStack, boolean showDescription, Sl
2838
if(itemStack != null && itemStack.getItem() instanceof ItemBlock){
2939
Block block = Block.blocksList[itemStack.getItem().id];
3040
if(block instanceof ICustomDescription){
31-
text.append(((ICustomDescription) block).getDescription(itemStack)).append("\n");
41+
if(!Objects.equals(((ICustomDescription) block).getDescription(itemStack), "")){
42+
text.append(((ICustomDescription) block).getDescription(itemStack)).append("\n");
43+
}
3244
}
3345
}
3446
if(itemStack != null && itemStack.getItem() instanceof ICustomDescription){
35-
text.append(((ICustomDescription) itemStack.getItem()).getDescription(itemStack)).append("\n");
47+
if(!Objects.equals(((ICustomDescription) itemStack.getItem()).getDescription(itemStack), "")){
48+
text.append(((ICustomDescription) itemStack.getItem()).getDescription(itemStack)).append("\n");
49+
}
3650
}
3751
}
52+
53+
@Inject(
54+
method = "getTooltipText(Lnet/minecraft/core/item/ItemStack;ZLnet/minecraft/core/player/inventory/slot/Slot;)Ljava/lang/String;",
55+
at = @At(value = "JUMP",opcode = Opcodes.IFEQ,ordinal = 12)
56+
)
57+
public void injectPersistentTooltip(ItemStack itemStack, boolean showDescription, Slot slot, CallbackInfoReturnable<String> cir, @Local StringBuilder text){
58+
if(itemStack != null && itemStack.getItem() instanceof ItemBlock){
59+
Block block = Block.blocksList[itemStack.getItem().id];
60+
if(block instanceof ICustomDescription){
61+
if(!Objects.equals(((ICustomDescription) block).getPersistentDescription(itemStack), "")){
62+
text.append("\n").append(((ICustomDescription) block).getPersistentDescription(itemStack));
63+
}
64+
}
65+
}
66+
if(itemStack != null && itemStack.getItem() instanceof ICustomDescription){
67+
if(!Objects.equals(((ICustomDescription) itemStack.getItem()).getPersistentDescription(itemStack), "")){
68+
text.append("\n").append(((ICustomDescription) itemStack.getItem()).getPersistentDescription(itemStack));
69+
}
70+
}
71+
}
3872
}
3973

src/main/java/sunsetsatellite/catalyst/core/util/ICustomDescription.java

+5
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22

33

44
import net.minecraft.core.item.ItemStack;
5+
import net.minecraft.core.net.command.TextFormatting;
56

67
public interface ICustomDescription {
78

89
String getDescription(ItemStack stack);
10+
11+
default String getPersistentDescription(ItemStack stack) {
12+
return "";
13+
};
914
}

0 commit comments

Comments
 (0)