diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-10-22 01:11:04 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-10-22 01:12:32 +0800 |
| commit | 0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1 (patch) | |
| tree | f6f38140f94fa98adcad5b880fdc2aa3bd4df844 /runtime | |
| parent | bb7920e447d599d23abfac3b67d8823cf24f8150 (diff) | |
| download | RoughlyEnoughItems-0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1.tar.gz RoughlyEnoughItems-0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1.tar.bz2 RoughlyEnoughItems-0ef0f8b21df4b9a603aaa2ab4a35d395ef6437c1.zip | |
Make it not crash
Diffstat (limited to 'runtime')
7 files changed, 27 insertions, 228 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index 018cd2eeb..4010edd6a 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -47,6 +47,5 @@ public class RoughlyEnoughItemsCore { detector.detectCommonPlugins(); detector.detectServerPlugins(); } - RoughlyEnoughItemsNetwork.onInitialize(); } } diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java index e0e68828a..140b28eb6 100644 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java +++ b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCoreClient.java @@ -28,7 +28,6 @@ import com.mojang.serialization.DataResult; import dev.architectury.event.EventResult; import dev.architectury.event.events.client.ClientGuiEvent; import dev.architectury.event.events.client.ClientScreenInputEvent; -import dev.architectury.networking.NetworkManager; import dev.architectury.platform.Platform; import me.shedaniel.math.Point; import me.shedaniel.rei.api.client.REIRuntime; @@ -46,7 +45,6 @@ import me.shedaniel.rei.api.client.registry.screen.ClickArea; import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.util.CollectionUtils; -import me.shedaniel.rei.api.common.util.EntryStacks; import me.shedaniel.rei.api.common.util.ImmutableTextComponent; import me.shedaniel.rei.impl.client.ClientInternals; import me.shedaniel.rei.impl.client.REIRuntimeImpl; @@ -63,21 +61,12 @@ import net.minecraft.client.gui.components.EditBox; import net.minecraft.client.gui.components.ImageButton; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; -import net.minecraft.client.gui.screens.inventory.CraftingScreen; -import net.minecraft.client.gui.screens.recipebook.GhostRecipe; import net.minecraft.client.gui.screens.recipebook.RecipeBookComponent; -import net.minecraft.client.resources.language.I18n; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; -import net.minecraft.world.inventory.CraftingMenu; -import net.minecraft.world.inventory.Slot; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.Items; import net.minecraft.world.item.TooltipFlag; -import net.minecraft.world.item.crafting.Ingredient; import org.apache.commons.lang3.function.TriFunction; import org.jetbrains.annotations.Nullable; @@ -165,44 +154,6 @@ public class RoughlyEnoughItemsCoreClient { detector.detectClientPlugins().get().run(); } - Minecraft client = Minecraft.getInstance(); - NetworkManager.registerReceiver(NetworkManager.s2c(), RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, (buf, context) -> { - ItemStack stack = buf.readItem(); - String player = buf.readUtf(32767); - if (client.player != null) { - client.player.displayClientMessage(new TextComponent(I18n.get("text.rei.cheat_items").replaceAll("\\{item_name}", EntryStacks.of(stack.copy()).asFormattedText().getString()).replaceAll("\\{item_count}", stack.copy().getCount() + "").replaceAll("\\{player_name}", player)), false); - } - }); - NetworkManager.registerReceiver(NetworkManager.s2c(), RoughlyEnoughItemsNetwork.NOT_ENOUGH_ITEMS_PACKET, (buf, context) -> { - Screen currentScreen = Minecraft.getInstance().screen; - if (currentScreen instanceof CraftingScreen craftingScreen) { - RecipeBookComponent recipeBookGui = craftingScreen.getRecipeBookComponent(); - GhostRecipe ghostSlots = recipeBookGui.ghostRecipe; - ghostSlots.clear(); - - List<List<ItemStack>> input = Lists.newArrayList(); - int mapSize = buf.readInt(); - for (int i = 0; i < mapSize; i++) { - List<ItemStack> list = Lists.newArrayList(); - int count = buf.readInt(); - for (int j = 0; j < count; j++) { - list.add(buf.readItem()); - } - input.add(list); - } - - ghostSlots.addIngredient(Ingredient.of(Items.STONE), 381203812, 12738291); - CraftingMenu container = craftingScreen.getMenu(); - for (int i = 0; i < input.size(); i++) { - List<ItemStack> stacks = input.get(i); - if (!stacks.isEmpty()) { - Slot slot = container.getSlot(i + container.getResultSlotIndex() + 1); - ghostSlots.addIngredient(Ingredient.of(stacks.toArray(new ItemStack[0])), slot.x, slot.y); - } - } - } - }); - Platform.getMod("roughlyenoughitems").registerConfigurationScreen(ConfigManager.getInstance()::getConfigScreen); } diff --git a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java b/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java deleted file mode 100644 index 037fa0fc9..000000000 --- a/runtime/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsNetwork.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * This file is licensed under the MIT License, part of Roughly Enough Items. - * Copyright (c) 2018, 2019, 2020, 2021, 2022 shedaniel - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package me.shedaniel.rei; - -import dev.architectury.networking.NetworkManager; -import dev.architectury.networking.transformers.SplitPacketTransformer; -import io.netty.buffer.Unpooled; -import me.shedaniel.rei.impl.common.Internals; -import me.shedaniel.rei.impl.common.networking.NetworkModule; -import net.minecraft.ChatFormatting; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.chat.TranslatableComponent; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.Mth; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.item.ItemStack; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -public class RoughlyEnoughItemsNetwork { - private static final Map<Object, NetworkModule> MODULES = new HashMap<>(); - public static final ResourceLocation DELETE_ITEMS_PACKET = new ResourceLocation("roughlyenoughitems", "delete_item"); - public static final ResourceLocation CREATE_ITEMS_PACKET = new ResourceLocation("roughlyenoughitems", "create_item"); - public static final ResourceLocation CREATE_ITEMS_HOTBAR_PACKET = new ResourceLocation("roughlyenoughitems", "create_item_hotbar"); - public static final ResourceLocation CREATE_ITEMS_GRAB_PACKET = new ResourceLocation("roughlyenoughitems", "create_item_grab"); - public static final ResourceLocation CREATE_ITEMS_MESSAGE_PACKET = new ResourceLocation("roughlyenoughitems", "ci_msg"); - public static final ResourceLocation NOT_ENOUGH_ITEMS_PACKET = new ResourceLocation("roughlyenoughitems", "og_not_enough"); - - public static boolean canUse(Object key) { - return MODULES.containsKey(key) && MODULES.get(key).canUse(); - } - - public static void onInitialize() { - for (NetworkModule module : Internals.resolveServices(NetworkModule.class)) { - MODULES.put(module.getKey(), module); - } - - NetworkManager.registerReceiver(NetworkManager.c2s(), DELETE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { - ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { - player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); - return; - } - AbstractContainerMenu menu = player.containerMenu; - if (!menu.getCarried().isEmpty()) { - menu.setCarried(ItemStack.EMPTY); - menu.broadcastChanges(); - } - }); - NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { - ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { - player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); - return; - } - ItemStack stack = buf.readItem(); - if (player.getInventory().add(stack.copy())) { - NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(stack.copy()).writeUtf(player.getScoreboardName(), 32767)); - } else { - player.displayClientMessage(new TranslatableComponent("text.rei.failed_cheat_items"), false); - } - }); - NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_GRAB_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { - ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { - player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); - return; - } - - AbstractContainerMenu menu = player.containerMenu; - ItemStack itemStack = buf.readItem(); - ItemStack stack = itemStack.copy(); - if (!menu.getCarried().isEmpty() && ItemStack.isSameIgnoreDurability(menu.getCarried(), stack) && ItemStack.tagMatches(menu.getCarried(), stack)) { - stack.setCount(Mth.clamp(stack.getCount() + menu.getCarried().getCount(), 1, stack.getMaxStackSize())); - } else if (!menu.getCarried().isEmpty()) { - return; - } - menu.setCarried(stack.copy()); - menu.broadcastChanges(); - NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(itemStack.copy()).writeUtf(player.getScoreboardName(), 32767)); - }); - NetworkManager.registerReceiver(NetworkManager.c2s(), CREATE_ITEMS_HOTBAR_PACKET, Collections.singletonList(new SplitPacketTransformer()), (buf, context) -> { - ServerPlayer player = (ServerPlayer) context.getPlayer(); - if (player.getServer().getProfilePermissions(player.getGameProfile()) < player.getServer().getOperatorUserPermissionLevel()) { - player.displayClientMessage(new TranslatableComponent("text.rei.no_permission_cheat").withStyle(ChatFormatting.RED), false); - return; - } - ItemStack stack = buf.readItem(); - int hotbarSlotId = buf.readVarInt(); - if (hotbarSlotId >= 0 && hotbarSlotId < 9) { - AbstractContainerMenu menu = player.containerMenu; - player.getInventory().items.set(hotbarSlotId, stack.copy()); - menu.broadcastChanges(); - NetworkManager.sendToPlayer(player, RoughlyEnoughItemsNetwork.CREATE_ITEMS_MESSAGE_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(stack.copy()).writeUtf(player.getScoreboardName(), 32767)); - } else { - player.displayClientMessage(new TranslatableComponent("text.rei.failed_cheat_items"), false); - } - }); - } -} diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientNetworkHelperImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientNetworkHelperImpl.java index 746c29a06..e2a9e0cf3 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientNetworkHelperImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/ClientNetworkHelperImpl.java @@ -23,55 +23,27 @@ package me.shedaniel.rei.impl.client; -import dev.architectury.networking.NetworkManager; -import io.netty.buffer.Unpooled; -import me.shedaniel.rei.RoughlyEnoughItemsNetwork; import me.shedaniel.rei.api.client.ClientHelper; import me.shedaniel.rei.api.client.config.ConfigObject; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes; +import me.shedaniel.rei.api.common.networking.NetworkModule; +import me.shedaniel.rei.api.common.networking.NetworkModuleKey; +import me.shedaniel.rei.api.common.networking.NetworkingHelper; import me.shedaniel.rei.api.common.util.EntryStacks; -import me.shedaniel.rei.impl.common.networking.NetworkModule; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.gui.screens.inventory.CreativeModeInventoryScreen; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; +import net.minecraft.util.Unit; import net.minecraft.world.inventory.AbstractContainerMenu; import net.minecraft.world.item.ItemStack; +import java.util.AbstractMap; + public abstract class ClientNetworkHelperImpl implements ClientHelper { - public boolean hasPermissionToUsePackets() { - try { - Minecraft.getInstance().getConnection().getSuggestionsProvider().hasPermission(0); - return hasOperatorPermission() && canUsePackets(); - } catch (NullPointerException e) { - return true; - } - } - - public boolean hasOperatorPermission() { - try { - return Minecraft.getInstance().getConnection().getSuggestionsProvider().hasPermission(1); - } catch (NullPointerException e) { - return true; - } - } - - public boolean canUsePackets() { - return NetworkManager.canServerReceive(RoughlyEnoughItemsNetwork.CREATE_ITEMS_PACKET) && NetworkManager.canServerReceive(RoughlyEnoughItemsNetwork.CREATE_ITEMS_GRAB_PACKET) && NetworkManager.canServerReceive(RoughlyEnoughItemsNetwork.DELETE_ITEMS_PACKET); - } - - public boolean canUseHotbarPackets() { - return NetworkManager.canServerReceive(RoughlyEnoughItemsNetwork.CREATE_ITEMS_HOTBAR_PACKET); - } - - public boolean canUseDeletePackets() { - return hasPermissionToUsePackets() || Minecraft.getInstance().gameMode.hasInfiniteItems(); - } - @Override public void sendDeletePacket() { if (Minecraft.getInstance().screen instanceof CreativeModeInventoryScreen inventoryScreen) { @@ -79,7 +51,7 @@ public abstract class ClientNetworkHelperImpl implements ClientHelper { inventoryScreen.isQuickCrafting = false; return; } - NetworkManager.sendToServer(RoughlyEnoughItemsNetwork.DELETE_ITEMS_PACKET, new FriendlyByteBuf(Unpooled.buffer())); + NetworkingHelper.getInstance().sendToServer(NetworkModule.DELETE_ITEM, Unit.INSTANCE); if (Minecraft.getInstance().screen instanceof AbstractContainerScreen<?> containerScreen) { containerScreen.isQuickCrafting = false; } @@ -103,14 +75,18 @@ public abstract class ClientNetworkHelperImpl implements ClientHelper { } menu.setCarried(stack.getValue().copy()); return true; - } else if (ClientHelperImpl.getInstance().canUsePackets()) { + } else if (NetworkingHelper.getInstance().canUse(NetworkModule.CHEAT_GIVE) + || NetworkingHelper.getInstance().canUse(NetworkModule.CHEAT_GRAB)) { AbstractContainerMenu menu = Minecraft.getInstance().player.containerMenu; EntryStack<ItemStack> stack = entry.copy(); if (!menu.getCarried().isEmpty() && !EntryStacks.equalsExact(EntryStacks.of(menu.getCarried()), stack)) { return false; } try { - NetworkManager.sendToServer(ConfigObject.getInstance().isGrabbingItems() ? RoughlyEnoughItemsNetwork.CREATE_ITEMS_GRAB_PACKET : RoughlyEnoughItemsNetwork.CREATE_ITEMS_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(cheatedStack)); + NetworkModuleKey<ItemStack> key = ConfigObject.getInstance().isGrabbingItems() + && NetworkingHelper.getInstance().canUse(NetworkModule.CHEAT_GRAB) + ? NetworkModule.CHEAT_GRAB : NetworkModule.CHEAT_GIVE; + NetworkingHelper.getInstance().sendToServer(key, cheatedStack); return true; } catch (Exception exception) { return false; @@ -148,23 +124,18 @@ public abstract class ClientNetworkHelperImpl implements ClientHelper { return true; } } - if (ClientHelperImpl.getInstance().canUseHotbarPackets()) { + if (NetworkingHelper.getInstance().canUse(NetworkModule.CHEAT_HOTBAR)) { AbstractContainerMenu menu = Minecraft.getInstance().player.containerMenu; EntryStack<ItemStack> stack = entry.copy(); if (!menu.getCarried().isEmpty()) { return false; } try { - NetworkManager.sendToServer(RoughlyEnoughItemsNetwork.CREATE_ITEMS_HOTBAR_PACKET, new FriendlyByteBuf(Unpooled.buffer()).writeItem(stack.getValue().copy()).writeVarInt(hotbarSlotId)); + NetworkingHelper.getInstance().sendToServer(NetworkModule.CHEAT_HOTBAR, new AbstractMap.SimpleEntry<>(stack.getValue().copy(), hotbarSlotId)); return true; } catch (Exception exception) { return false; } } else return false; } - - @Override - public boolean canUseMovePackets() { - return RoughlyEnoughItemsNetwork.canUse(NetworkModule.TRANSFER); - } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java index 7173da20c..d577df670 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/REIRuntimeImpl.java @@ -48,6 +48,7 @@ import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; +import java.lang.reflect.InvocationTargetException; import java.util.Optional; import static me.shedaniel.rei.impl.client.util.InternalEntryBounds.entrySize; @@ -72,6 +73,11 @@ public class REIRuntimeImpl implements REIRuntime { public Optional<ScreenOverlay> getOverlay(boolean reset, boolean init) { if ((overlay == null && init) || reset) { overlay = ClientInternals.getNewOverlay(); + try { + overlay.getClass().getMethod("init").invoke(overlay); + } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) { + throw new RuntimeException(e); + } overlay.getSearchField().setFocused(false); } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/CopyRecipeIdentifierToast.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/CopyRecipeIdentifierToast.java index 4a8891696..8a7ab2163 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/CopyRecipeIdentifierToast.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/CopyRecipeIdentifierToast.java @@ -25,17 +25,15 @@ package me.shedaniel.rei.impl.client.gui.toast; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; +import me.shedaniel.rei.impl.client.gui.InternalTextures; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.toasts.Toast; import net.minecraft.client.gui.components.toasts.ToastComponent; -import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @ApiStatus.Internal public class CopyRecipeIdentifierToast implements Toast { - - protected static final ResourceLocation TEXTURE = new ResourceLocation("roughlyenoughitems", "textures/gui/toasts.png"); private String title; private String subtitle; private long startTime; @@ -51,7 +49,7 @@ public class CopyRecipeIdentifierToast implements Toast { @Override public Visibility render(PoseStack matrices, ToastComponent toastManager, long var2) { - RenderSystem.setShaderTexture(0, TEXTURE); + RenderSystem.setShaderTexture(0, InternalTextures.TOASTS); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); toastManager.blit(matrices, 0, 0, 0, 0, 160, 32); if (this.subtitle == null) { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/ExportRecipeIdentifierToast.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/ExportRecipeIdentifierToast.java index cd763c1f3..ac622e849 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/ExportRecipeIdentifierToast.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/toast/ExportRecipeIdentifierToast.java @@ -25,19 +25,17 @@ package me.shedaniel.rei.impl.client.gui.toast; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; +import me.shedaniel.rei.impl.client.gui.InternalTextures; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.toasts.Toast; import net.minecraft.client.gui.components.toasts.ToastComponent; -import net.minecraft.resources.ResourceLocation; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @ApiStatus.Internal public class ExportRecipeIdentifierToast implements Toast { - - protected static final ResourceLocation TEXTURE = new ResourceLocation("roughlyenoughitems", "textures/gui/toasts.png"); - private String title; - private String subtitle; + private final String title; + private final String subtitle; private long startTime; public ExportRecipeIdentifierToast(String title, @Nullable String subtitleNullable) { @@ -51,7 +49,7 @@ public class ExportRecipeIdentifierToast implements Toast { @Override public Visibility render(PoseStack matrices, ToastComponent toastManager, long var2) { - RenderSystem.setShaderTexture(0, TEXTURE); + RenderSystem.setShaderTexture(0, InternalTextures.TOASTS); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); toastManager.blit(matrices, 0, 0, 0, 0, 160, 32); if (this.subtitle == null) { |
