diff options
4 files changed, 26 insertions, 11 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 3047ebf82..4827faea5 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -79,6 +79,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { * * @param identifier the identifier of the plugin * @param plugin the plugin instance + * @return the plugin itself * @deprecated Check REI wiki */ @Deprecated diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java index b2c444ec1..5b41b0ea9 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java @@ -5,8 +5,10 @@ package me.shedaniel.rei; +import io.netty.buffer.Unpooled; import me.shedaniel.rei.gui.widget.ItemListOverlay; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.network.ClientSidePacketRegistry; import net.fabricmc.fabric.api.network.ServerSidePacketRegistry; import net.minecraft.ChatFormat; import net.minecraft.client.resource.language.I18n; @@ -15,11 +17,13 @@ import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.Identifier; +import net.minecraft.util.PacketByteBuf; public class RoughlyEnoughItemsNetwork implements ModInitializer { public static final Identifier DELETE_ITEMS_PACKET = new Identifier("roughlyenoughitems", "delete_item"); public static final Identifier CREATE_ITEMS_PACKET = new Identifier("roughlyenoughitems", "create_item"); + public static final Identifier CREATE_ITEMS_MESSAGE_PACKET = new Identifier("roughlyenoughitems", "create_item_message"); @Override public void onInitialize() { @@ -39,11 +43,16 @@ public class RoughlyEnoughItemsNetwork implements ModInitializer { return; } ItemStack stack = packetByteBuf.readItemStack(); - if (player.inventory.insertStack(stack.copy())) - player.addChatMessage(new TextComponent(I18n.translate("text.rei.cheat_items").replaceAll("\\{item_name}", ItemListOverlay.tryGetItemStackName(stack.copy())).replaceAll("\\{item_count}", stack.copy().getAmount() + "").replaceAll("\\{player_name}", player.getEntityName())), false); - else + if (player.inventory.insertStack(stack.copy())) { + ServerSidePacketRegistry.INSTANCE.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new PacketByteBuf(Unpooled.buffer()).writeItemStack(stack.copy()).writeString(player.getEntityName())); + } else player.addChatMessage(new TranslatableComponent("text.rei.failed_cheat_items"), false); }); + ClientSidePacketRegistry.INSTANCE.register(CREATE_ITEMS_MESSAGE_PACKET, (packetContext, packetByteBuf) -> { + ItemStack stack = packetByteBuf.readItemStack(); + String player = packetByteBuf.readString(); + packetContext.getPlayer().addChatMessage(new TextComponent(I18n.translate("text.rei.cheat_items").replaceAll("\\{item_name}", ItemListOverlay.tryGetItemStackName(stack.copy())).replaceAll("\\{item_count}", stack.copy().getAmount() + "").replaceAll("\\{player_name}", player)), false); + }); } } diff --git a/src/main/java/me/shedaniel/rei/client/ClientHelperImpl.java b/src/main/java/me/shedaniel/rei/client/ClientHelperImpl.java index 32c74344a..245ba3a72 100644 --- a/src/main/java/me/shedaniel/rei/client/ClientHelperImpl.java +++ b/src/main/java/me/shedaniel/rei/client/ClientHelperImpl.java @@ -54,6 +54,13 @@ public class ClientHelperImpl implements ClientHelper, ClientModInitializer { private final Map<String, String> modNameCache = Maps.newHashMap(); public FabricKeyBinding recipe, usage, hide, previousPage, nextPage; + public String getFormattedModNoItalicFromItem(Item item) { + String mod = getModFromItem(item); + if (mod.equalsIgnoreCase("")) + return ""; + return ChatFormat.BLUE.toString() + mod; + } + @Override public String getFormattedModFromItem(Item item) { String mod = getModFromItem(item); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java index d89cef8c4..7bcda080d 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/SlotWidget.java @@ -12,6 +12,7 @@ import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.ClientHelper; import me.shedaniel.rei.api.Renderable; import me.shedaniel.rei.api.Renderer; +import me.shedaniel.rei.client.ClientHelperImpl; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.gui.renderables.ItemStackRenderer; import net.minecraft.client.gui.Element; @@ -30,10 +31,10 @@ import java.util.stream.Collectors; public class SlotWidget extends HighlightableWidget { private static final Identifier RECIPE_GUI = new Identifier("roughlyenoughitems", "textures/gui/recipecontainer.png"); + private static final ItemStackRenderer TROPICAL_FISH_RENDERABLE = Renderable.fromItemStack(Items.TROPICAL_FISH.getDefaultStack()); private List<Renderer> renderers = new LinkedList<>(); private boolean drawBackground, showToolTips, clickToMoreRecipes, drawHighlightedBackground; private int x, y; - private static final ItemStackRenderer TROPICAL_FISH_RENDERABLE = Renderable.fromItemStack(Items.TROPICAL_FISH.getDefaultStack()); public SlotWidget(int x, int y, ItemStack itemStack, boolean drawBackground, boolean showToolTips) { this(x, y, Collections.singletonList(itemStack), drawBackground, showToolTips); @@ -132,15 +133,12 @@ public class SlotWidget extends HighlightableWidget { protected List<String> getTooltip(ItemStack itemStack) { final String modString = ClientHelper.getInstance().getFormattedModFromItem(itemStack.getItem()); List<String> toolTip = Lists.newArrayList(ItemListOverlay.tryGetItemStackToolTip(itemStack, true)); + String s1 = ClientHelperImpl.instance.getFormattedModNoItalicFromItem(itemStack.getItem()).toLowerCase(); toolTip.addAll(getExtraToolTips(itemStack)); - boolean alreadyHasMod = false; - for(String s : toolTip) - if (s.equalsIgnoreCase(modString)) { - alreadyHasMod = true; - break; - } - if (!alreadyHasMod) + if (!modString.isEmpty()) { + toolTip.removeIf(s -> s.toLowerCase().contains(s1)); toolTip.add(modString); + } return toolTip; } |
