blob: fd5418516db457efcb73cf09880ec4771e92b696 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
package me.shedaniel.rei.client;
import com.google.common.collect.ImmutableList;
import me.shedaniel.rei.api.IRecipeCategory;
import me.shedaniel.rei.api.IRecipeDisplay;
import me.shedaniel.rei.gui.ContainerGuiOverlay;
import me.shedaniel.rei.gui.config.ConfigGui;
import me.shedaniel.rei.gui.widget.RecipeViewingWidgetGui;
import me.shedaniel.rei.network.CreateItemsPacket;
import me.shedaniel.rei.network.DeleteItemsPacket;
import net.minecraft.client.Minecraft;
import net.minecraft.client.MouseHelper;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.util.NonNullList;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.registry.IRegistry;
import org.dimdev.riftloader.RiftLoader;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class ClientHelper {
private static boolean cheating = false;
public static String getModFromItemStack(ItemStack stack) {
if (!stack.isEmpty()) {
ResourceLocation location = IRegistry.ITEM.getKey(stack.getItem());
assert location != null;
String modid = location.getNamespace();
if (modid.equalsIgnoreCase("minecraft"))
return "Minecraft";
return RiftLoader.instance.getMods().stream().filter(modInfo -> modInfo.id.equals(modid) || (modInfo.name != null && modInfo.name.equals(modid))).findFirst().map(modInfo -> {
if (modInfo.name != null)
return modInfo.name;
return modid;
}).orElse(modid);
}
return "";
}
public static Point getMouseLocation() {
Minecraft client = Minecraft.getInstance();
MouseHelper mouse = client.mouseHelper;
double double_1 = mouse.getMouseX() * (double) client.mainWindow.getScaledWidth() / (double) client.mainWindow.getWidth();
double double_2 = mouse.getMouseY() * (double) client.mainWindow.getScaledHeight() / (double) client.mainWindow.getHeight();
return new Point((int) double_1, (int) double_2);
}
public static boolean isCheating() {
return cheating;
}
public static void setCheating(boolean cheating) {
ClientHelper.cheating = cheating;
}
public static void sendDeletePacket() {
if (Minecraft.getInstance().playerController.isInCreativeMode()) {
Minecraft.getInstance().player.inventory.setItemStack(ItemStack.EMPTY);
return;
}
DeleteItemsPacket message = new DeleteItemsPacket();
Minecraft.getInstance().getConnection().sendPacket(message);
}
public static boolean tryCheatingStack(ItemStack cheatedStack) {
if (Minecraft.getInstance().isSingleplayer()) {
try {
CreateItemsPacket message = new CreateItemsPacket(cheatedStack.copy());
Minecraft.getInstance().getConnection().sendPacket(message);
return true;
} catch (Exception e) {
return false;
}
} else {
ResourceLocation location = IRegistry.ITEM.getKey(cheatedStack.getItem());
String tagMessage = cheatedStack.copy().getTag() != null && !cheatedStack.copy().getTag().isEmpty() ? cheatedStack.copy().getTag().toString() : "";
String madeUpCommand = ConfigHelper.getInstance().getGiveCommandPrefix() + " " + Minecraft.getInstance().player.getScoreboardName() + " " + location.toString() + tagMessage + (cheatedStack.getCount() != 1 ? " " + cheatedStack.getCount() : "");
if (madeUpCommand.length() > 256)
madeUpCommand = ConfigHelper.getInstance().getGiveCommandPrefix() + " " + Minecraft.getInstance().player.getScoreboardName() + " " + location.toString() + (cheatedStack.getCount() != 1 ? " " + cheatedStack.getCount() : "");
Minecraft.getInstance().player.sendChatMessage(madeUpCommand);
return true;
}
}
public static boolean executeRecipeKeyBind(ContainerGuiOverlay overlay, ItemStack stack) {
Map<IRecipeCategory, List<IRecipeDisplay>> map = RecipeHelper.getInstance().getRecipesFor(stack);
if (map.keySet().size() > 0)
Minecraft.getInstance().displayGuiScreen(new RecipeViewingWidgetGui(Minecraft.getInstance().mainWindow, map));
return map.keySet().size() > 0;
}
public static boolean executeUsageKeyBind(ContainerGuiOverlay overlay, ItemStack stack) {
Map<IRecipeCategory, List<IRecipeDisplay>> map = RecipeHelper.getInstance().getUsagesFor(stack);
if (map.keySet().size() > 0)
Minecraft.getInstance().displayGuiScreen(new RecipeViewingWidgetGui(Minecraft.getInstance().mainWindow, map));
return map.keySet().size() > 0;
}
public static void openConfigWindow(GuiScreen parent) {
Minecraft.getInstance().displayGuiScreen(new ConfigGui(parent));
}
public static List<ItemStack> getInventoryItemsTypes() {
List<NonNullList<ItemStack>> field_7543 = ImmutableList.of(Minecraft.getInstance().player.inventory.mainInventory, Minecraft.getInstance().player.inventory.armorInventory, Minecraft.getInstance().player.inventory.offHandInventory);
List<ItemStack> inventoryStacks = new ArrayList<>();
field_7543.forEach(itemStacks -> itemStacks.forEach(itemStack -> {
if (!itemStack.getItem().equals(Items.AIR))
inventoryStacks.add(itemStack);
}));
return inventoryStacks;
}
}
|