Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 23 Фев 2025
- Сообщения
- 17
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
всем привет! Хотел бы поделится данной функцией, это есть в других срц, также хочу сказать что этот код я просто напросто спизданул, но там были ошибки над которыми я поломал голову и дали мне какие либо знания в джаве, и в майне вообще, будет классно почитать вашу критику, и сколько будет /del под этим постом XD
короче, надо потом киллку слить на спуки, а то вообще нигде нету(
код:
package im.expensive.functions.impl.misc;
import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventPacket;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.inventory.ChestScreen;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CClickWindowPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.util.Hand;
@FunctionRegister(name = "AutoJoin", type = Category.Misc)
public class AutoJoin extends Function {
private int findHotbarSlot(Item item) {
for (int i = 0; i < 9; i++) {
ItemStack stack = mc.player.inventory.mainInventory.get(i);
if (!stack.isEmpty() && stack.getItem() == item) {
return i;
}
}
return -1; //
}
private void selectCompassAndUse() {
int slot = findHotbarSlot(Items.COMPASS);
if (slot == -1) {
return;
}
mc.player.connection.sendPacket(new CHeldItemChangePacket(slot));
mc.player.inventory.currentItem = slot;
mc.playerController.processRightClick(mc.player, mc.world, Hand.MAIN_HAND);
}
@Subscribe
private void onUpdate(EventUpdate event) {
Screen screen = mc.currentScreen;
// Если открыт экран сундука (меню сервера)
if (screen instanceof ChestScreen) {
ChestContainer container = ((ChestScreen) screen).getContainer();
for (int i = 0; i < container.inventorySlots.size(); i++) {
ItemStack stack = container.getSlot(i).getStack();
if (stack.getItem() == Items.STICKY_PISTON) {
mc.player.connection.sendPacket(new CClickWindowPacket(
container.windowId, i, 0, ClickType.PICKUP, stack, container.getNextTransactionID(mc.player.inventory)
));
return;
}
}
} else {
selectCompassAndUse();
}
}
@Subscribe
private void onPacket(EventPacket event) {
String header = mc.ingameGUI.getTabList().header.getString();
if (header.contains("Приватка")) {
print("Успешно подключился на дуэли!");
toggle(); //она не отключается XDDD
}
}
}
Последнее редактирование: