From d5b0fdacb01c916097f0ffa9006a8a28611c1edb Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 14 Feb 2020 23:50:46 +0800 Subject: Fix config button color and favorites cheating Signed-off-by: shedaniel --- .../shedaniel/rei/gui/ContainerScreenOverlay.java | 4 +-- .../shedaniel/rei/gui/widget/EntryListWidget.java | 2 +- .../rei/gui/widget/FavoritesListWidget.java | 40 ++++++++++++++++++++-- 3 files changed, 41 insertions(+), 5 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 3c06a510b..8ad36d700 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -175,9 +175,9 @@ public class ContainerScreenOverlay extends WidgetWithBounds { Rectangle bounds = getBounds(); if (ClientHelper.getInstance().isCheating() && RoughlyEnoughItemsCore.hasOperatorPermission()) { if (RoughlyEnoughItemsCore.hasPermissionToUsePackets()) - fill(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 721354752); + fillGradient(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 721354752, 721354752); else - fill(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 1476440063); + fillGradient(bounds.x + 1, bounds.y + 1, bounds.getMaxX() - 1, bounds.getMaxY() - 1, 1476440063, 1476440063); } MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java index ae81d9a98..3b55aa0e0 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/EntryListWidget.java @@ -655,7 +655,7 @@ public class EntryListWidget extends WidgetWithBounds { List list = Lists.newArrayList(); boolean checkCraftable = ConfigManager.getInstance().isCraftableOnlyEnabled() && !ScreenHelper.inventoryStacks.isEmpty(); List workingItems = checkCraftable ? RecipeHelper.getInstance().findCraftableEntriesByItems(CollectionUtils.map(ScreenHelper.inventoryStacks, EntryStack::create)) : null; - for (EntryStack stack : ConfigManager.getInstance().getFavorites()) { + for (EntryStack stack : ConfigObject.getInstance().getFavorites()) { if (canLastSearchTermsBeAppliedTo(stack)) { if (workingItems != null && CollectionUtils.findFirstOrNullEquals(workingItems, stack) == null) continue; diff --git a/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java b/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java index 9e4965f86..c2b036172 100644 --- a/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java +++ b/src/main/java/me/shedaniel/rei/gui/widget/FavoritesListWidget.java @@ -13,14 +13,18 @@ import me.shedaniel.clothconfig2.gui.widget.DynamicNewSmoothScrollingEntryListWi import me.shedaniel.math.api.Point; import me.shedaniel.math.api.Rectangle; import me.shedaniel.math.impl.PointHelper; +import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.api.*; import me.shedaniel.rei.gui.config.ItemListOrdering; import me.shedaniel.rei.impl.ScreenHelper; import me.shedaniel.rei.utils.CollectionUtils; import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.render.BufferBuilder; import net.minecraft.client.render.Tessellator; import net.minecraft.client.render.VertexFormats; +import net.minecraft.client.resource.language.I18n; import net.minecraft.util.math.MathHelper; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; @@ -130,6 +134,8 @@ public class FavoritesListWidget extends WidgetWithBounds { updatePosition(delta); ScissorsHandler.INSTANCE.removeLastScissor(); renderScrollbar(); + if (containsMouse(mouseX, mouseY) && ClientHelper.getInstance().isCheating() && !minecraft.player.inventory.getCursorStack().isEmpty() && RoughlyEnoughItemsCore.hasPermissionToUsePackets()) + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(I18n.translate("text.rei.delete_items"))); } private int getScrollbarMinX() { @@ -233,7 +239,7 @@ public class FavoritesListWidget extends WidgetWithBounds { List list = Lists.newArrayList(); boolean checkCraftable = ConfigManager.getInstance().isCraftableOnlyEnabled() && !ScreenHelper.inventoryStacks.isEmpty(); List workingItems = checkCraftable ? RecipeHelper.getInstance().findCraftableEntriesByItems(CollectionUtils.map(ScreenHelper.inventoryStacks, EntryStack::create)) : null; - for (EntryStack stack : ConfigManager.getInstance().getFavorites()) { + for (EntryStack stack : ConfigObject.getInstance().getFavorites()) { if (listWidget.canLastSearchTermsBeAppliedTo(stack)) { if (checkCraftable && CollectionUtils.findFirstOrNullEquals(workingItems, stack) == null) continue; @@ -252,7 +258,7 @@ public class FavoritesListWidget extends WidgetWithBounds { List list = Lists.newArrayList(); boolean checkCraftable = ConfigManager.getInstance().isCraftableOnlyEnabled() && !ScreenHelper.inventoryStacks.isEmpty(); List workingItems = checkCraftable ? RecipeHelper.getInstance().findCraftableEntriesByItems(CollectionUtils.map(ScreenHelper.inventoryStacks, EntryStack::create)) : null; - for (EntryStack stack : ConfigManager.getInstance().getFavorites()) { + for (EntryStack stack : ConfigObject.getInstance().getFavorites()) { if (checkCraftable && CollectionUtils.findFirstOrNullEquals(workingItems, stack) == null) continue; list.add(stack.copy().setting(EntryStack.Settings.RENDER_COUNTS, EntryStack.Settings.FALSE).setting(EntryStack.Settings.Item.RENDER_ENCHANTMENT_GLINT, RENDER_ENCHANTMENT_GLINT)); @@ -310,6 +316,13 @@ public class FavoritesListWidget extends WidgetWithBounds { this.draggingScrollBar = false; if (containsMouse(double_1, double_2)) { + ClientPlayerEntity player = minecraft.player; + if (ClientHelper.getInstance().isCheating() && !player.inventory.getCursorStack().isEmpty() && RoughlyEnoughItemsCore.hasPermissionToUsePackets()) { + ClientHelper.getInstance().sendDeletePacket(); + return true; + } + if (!player.inventory.getCursorStack().isEmpty() && RoughlyEnoughItemsCore.hasPermissionToUsePackets()) + return false; for (Widget widget : children()) if (widget.mouseClicked(double_1, double_2, int_1)) return true; @@ -341,5 +354,28 @@ public class FavoritesListWidget extends WidgetWithBounds { protected boolean reverseFavoritesAction() { return true; } + + @Override + public void queueTooltip(int mouseX, int mouseY, float delta) { + if (!ClientHelper.getInstance().isCheating() || minecraft.player.inventory.getCursorStack().isEmpty()) { + super.queueTooltip(mouseX, mouseY, delta); + } + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + if (!interactable) + return super.mouseClicked(mouseX, mouseY, button); + if (containsMouse(mouseX, mouseY) && ClientHelper.getInstance().isCheating()) { + EntryStack entry = getCurrentEntry().copy(); + if (!entry.isEmpty()) { + if (entry.getType() == EntryStack.Type.ITEM) + entry.setAmount(button != 1 && !Screen.hasShiftDown() ? 1 : entry.getItemStack().getMaxCount()); + ClientHelper.getInstance().tryCheatingEntry(entry); + return true; + } + } + return super.mouseClicked(mouseX, mouseY, button); + } } } -- cgit