Bladeren bron

fixes bugs

Unknown 6 jaren geleden
bovenliggende
commit
04f9bcf8d2

+ 1 - 0
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

+ 12 - 3
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);
+        });
     }
     
 }

+ 7 - 0
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);

+ 6 - 8
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;
     }