blob: 12089a17ddd2c27ee4b5ac9cf12da7ccffbb354c (
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
120
121
122
|
package rosegoldaddons.features;
import com.mojang.realmsclient.gui.ChatFormatting;
import java.awt.Color;
import java.util.List;
import java.util.Locale;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiChest;
import net.minecraft.client.network.NetHandlerPlayClient;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.ContainerChest;
import net.minecraft.inventory.Slot;
import net.minecraft.network.play.server.S45PacketTitle;
import net.minecraft.potion.Potion;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.IChatComponent;
import net.minecraft.util.StringUtils;
import net.minecraftforge.client.event.ClientChatReceivedEvent;
import net.minecraftforge.client.event.GuiScreenEvent;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import rosegoldaddons.Config;
import rosegoldaddons.Main;
import rosegoldaddons.events.RenderLivingEntityEvent;
import rosegoldaddons.utils.OutlineUtils;
import net.minecraft.network.play.client.C02PacketUseEntity;
import net.minecraft.client.multiplayer.PlayerControllerMP;
import scala.collection.parallel.ParIterableLike;
public class AutoReady {
boolean startDung = false;
boolean checkingEntities = false;
String currentMenu = "";
static int windowId;
private double getDist2Entities(Entity entity1, Entity entity2) {
return Math.sqrt(Math.pow((entity1.getPosition().getX() - entity2.getPosition().getX()), 2) + Math.pow((entity1.getPosition().getY() - entity2.getPosition().getY()), 2) + Math.pow((entity1.getPosition().getZ() - entity2.getPosition().getZ()), 2));
}
private static void interactWithEntity(Entity entity) {
PlayerControllerMP playerControllerMP = Minecraft.getMinecraft().playerController;
playerControllerMP.interactWithEntitySendPacket(Minecraft.getMinecraft().thePlayer, entity);
}
@SubscribeEvent
public void renderWorld(RenderWorldLastEvent event) {
if (!Main.configFile.AutoReady || !startDung || checkingEntities) return;
new Thread(() -> {
try {
checkingEntities = true;
Thread.sleep(500);
Entity mort = null;
for (Entity entity1 : (Minecraft.getMinecraft().theWorld.loadedEntityList)) {
if (entity1.getName().contains("Mort")) {
mort = entity1;
interactWithEntity(mort);
startDung = false;
break;
}
}
checkingEntities = false;
} catch (Exception e) {}
}).start();
}
@SubscribeEvent
public void chat(ClientChatReceivedEvent event) {
if (!Main.configFile.AutoReady) return;
String message = StringUtils.stripControlCodes(event.message.getUnformattedText()).toLowerCase();
if (message.contains("active potion effects have been paused")) {
startDung = true;
}
}
@SubscribeEvent
public void guiDraw(GuiScreenEvent.BackgroundDrawnEvent event) {
if (!Main.configFile.AutoReady) return;
if (event.gui instanceof GuiChest) {
Container container = ((GuiChest) event.gui).inventorySlots;
if (container instanceof ContainerChest) {
String chestName = ((ContainerChest) container).getLowerChestInventory().getDisplayName().getUnformattedText();
List<Slot> invSlots = container.inventorySlots;
//Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(chestName));
if (chestName.contains("Start Dungeon?")) {
int i;
for(i = 0; i < invSlots.size(); i++) {
if(!invSlots.get(i).getHasStack()) continue;
String slotName = StringUtils.stripControlCodes(invSlots.get(i).getStack().getDisplayName());
if(slotName.equals("Start Dungeon?")) {
clickSlot(invSlots.get(i));
}
}
} else if (chestName.contains("Catacombs -")) {
int i;
for(i = 0; i < invSlots.size(); i++) {
if(!invSlots.get(i).getHasStack()) continue;
String slotName = StringUtils.stripControlCodes(invSlots.get(i).getStack().getDisplayName());
if(slotName.contains(Minecraft.getMinecraft().thePlayer.getName())) {
i += 9;
if(invSlots.get(i).getHasStack()) {
if (StringUtils.stripControlCodes(invSlots.get(i).getStack().getDisplayName()).equals("Not Ready")) {
clickSlot(invSlots.get(i));
}
}
}
}
}
}
}
}
private void clickSlot(Slot slot) {
windowId = Minecraft.getMinecraft().thePlayer.openContainer.windowId;
Minecraft.getMinecraft().playerController.windowClick(windowId, slot.slotNumber, 1, 0, Minecraft.getMinecraft().thePlayer);
}
}
|