Вот вам 2 завоз ! EXP 3.1 ! ChestStiller / MystStiller

Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2023
Сообщения
133
Реакции[?]
1
Поинты[?]
1K
    1. package im.expensive.functions.impl.player;
    2. import com.google.common.eventbus.Subscribe;
    3. import im.expensive.events.EventUpdate;
    4. import im.expensive.functions.api.Category;
    5. import im.expensive.functions.api.Function;
    6. import im.expensive.functions.api.FunctionRegister;
    7. import im.expensive.functions.settings.impl.BooleanSetting;
    8. import im.expensive.functions.settings.impl.ModeListSetting;
    9. import im.expensive.functions.settings.impl.ModeSetting;
    10. import im.expensive.functions.settings.impl.SliderSetting;
    11. import im.expensive.utils.math.StopWatch;
    12. import lombok.AccessLevel;
    13. import lombok.experimental.FieldDefaults;
    14. import net.minecraft.inventory.IInventory;
    15. import net.minecraft.inventory.container.ChestContainer;
    16. import net.minecraft.inventory.container.ClickType;
    17. import net.minecraft.item.Item;
    18. import net.minecraft.item.Items;
    19. import java.util.ArrayList;
    20. import java.util.List;
    21. import java.util.Random;
    22. @FieldDefaults(level = AccessLevel.PRIVATE)
    23. @FunctionRegister(name = "ChestStealer", type = Category.Miscellaneous)
    24. public class ChestStealer extends Function {
    25. private final BooleanSetting noEntity = new BooleanSetting("NoEntity", true);
    26. private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный", "Тихий", "Полный лут");
    27. private final BooleanSetting chestClose = new BooleanSetting("Закрывать при пустом", true);
    28. private final SliderSetting minStealDelay = new SliderSetting("Мин. задержка", 100, 0, 1000, 1);
    29. private final SliderSetting maxStealDelay = new SliderSetting("Макс. задержка", 300, 0, 2000, 1);
    30. private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    31. private final ModeListSetting filterLoot = new ModeListSetting("Лут",
    32. new BooleanSetting("Руды", true),
    33. new BooleanSetting("Головы", false),
    34. new BooleanSetting("Незеритовый слиток", false),
    35. new BooleanSetting("Зачарованная книга", false),
    36. new BooleanSetting("Тотемы", false),
    37. new BooleanSetting("Зелья", false),
    38. new BooleanSetting("Еда", true)
    39. ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    40. private final SliderSetting itemLimit = new SliderSetting("Лимит кол.", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    41. private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    42. private final StopWatch timerUtil = new StopWatch();
    43. private final Random random = new Random();
    44. public ChestStealer() {
    45. addSettings(mode, chestClose, minStealDelay, maxStealDelay, filterLootToggle, filterLoot, itemLimit, missPercent, noEntity);
    46. }
    47. private boolean filterItem(Item item) {
    48. if (!filterLootToggle.get()) {
    49. return true;
    50. }
    51. boolean filterOres = filterLoot.get(0).get();
    52. boolean filterHeads = filterLoot.get(1).get();
    53. boolean filterNetherite = filterLoot.get(2).get();
    54. boolean filterBooks = filterLoot.get(3).get();
    55. boolean filterTotems = filterLoot.get(4).get();
    56. boolean filterPotions = filterLoot.get(5).get();
    57. boolean filterFood = filterLoot.get(6).get();
    58. if (filterOres && (item == Items.DIAMOND_ORE || item == Items.IRON_ORE)) return true;
    59. if (filterHeads && item == Items.PLAYER_HEAD) return true;
    60. if (filterNetherite && item == Items.NETHERITE_INGOT) return true;
    61. if (filterBooks && item == Items.ENCHANTED_BOOK) return true;
    62. if (filterTotems && item == Items.TOTEM_OF_UNDYING) return true;
    63. if (filterPotions && (item == Items.POTION || item == Items.SPLASH_POTION)) return true;
    64. if (filterFood && (item == Items.BREAD || item == Items.APPLE)) return true;
    65. return false;
    66. }
    67. @Subscribe
    68. public void onEvent(final EventUpdate event) {
    69. if (mode.is("Умный") || mode.is("Тихий") || mode.is("Полный лут")) {
    70. if (mc.player.openContainer instanceof ChestContainer) {
    71. ChestContainer container = (ChestContainer) mc.player.openContainer;
    72. IInventory inventory = container.getLowerChestInventory();
    73. if (inventory == null) return;
    74. List<Integer> validSlots = new ArrayList<>();
    75. for (int i = 0; i < inventory.getSizeInventory(); i++) {
    76. if (!inventory.getStackInSlot(i).isEmpty()
    77. && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
    78. && (mode.is("Полный лут") || filterItem(inventory.getStackInSlot(i).getItem()))) {
    79. validSlots.add(i);
    80. }
    81. }
    82. if (!validSlots.isEmpty() && timerUtil.isReached(getRandomDelay())) {
    83. int slotToSteal = validSlots.get(random.nextInt(validSlots.size()));
    84. if (random.nextInt(100) >= missPercent.get()) {
    85. mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
    86. }
    87. timerUtil.reset();
    88. }
    89. if (chestClose.get() && validSlots.isEmpty()) {
    90. mc.player.closeScreen();
    91. }
    92. }
    93. }
    94. }
    95. private long getRandomDelay() {
    96. return (long) (minStealDelay.get() + random.nextInt((int) (maxStealDelay.get() - minStealDelay.get())));
    97. }
    98. }
      Пастите
 
Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2024
Сообщения
305
Реакции[?]
1
Поинты[?]
1K
    1. package im.expensive.functions.impl.player;
    2. import com.google.common.eventbus.Subscribe;
    3. import im.expensive.events.EventUpdate;
    4. import im.expensive.functions.api.Category;
    5. import im.expensive.functions.api.Function;
    6. import im.expensive.functions.api.FunctionRegister;
    7. import im.expensive.functions.settings.impl.BooleanSetting;
    8. import im.expensive.functions.settings.impl.ModeListSetting;
    9. import im.expensive.functions.settings.impl.ModeSetting;
    10. import im.expensive.functions.settings.impl.SliderSetting;
    11. import im.expensive.utils.math.StopWatch;
    12. import lombok.AccessLevel;
    13. import lombok.experimental.FieldDefaults;
    14. import net.minecraft.inventory.IInventory;
    15. import net.minecraft.inventory.container.ChestContainer;
    16. import net.minecraft.inventory.container.ClickType;
    17. import net.minecraft.item.Item;
    18. import net.minecraft.item.Items;
    19. import java.util.ArrayList;
    20. import java.util.List;
    21. import java.util.Random;
    22. @FieldDefaults(level = AccessLevel.PRIVATE)
    23. @FunctionRegister(name = "ChestStealer", type = Category.Miscellaneous)
    24. public class ChestStealer extends Function {
    25. private final BooleanSetting noEntity = new BooleanSetting("NoEntity", true);
    26. private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный", "Тихий", "Полный лут");
    27. private final BooleanSetting chestClose = new BooleanSetting("Закрывать при пустом", true);
    28. private final SliderSetting minStealDelay = new SliderSetting("Мин. задержка", 100, 0, 1000, 1);
    29. private final SliderSetting maxStealDelay = new SliderSetting("Макс. задержка", 300, 0, 2000, 1);
    30. private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    31. private final ModeListSetting filterLoot = new ModeListSetting("Лут",
    32. new BooleanSetting("Руды", true),
    33. new BooleanSetting("Головы", false),
    34. new BooleanSetting("Незеритовый слиток", false),
    35. new BooleanSetting("Зачарованная книга", false),
    36. new BooleanSetting("Тотемы", false),
    37. new BooleanSetting("Зелья", false),
    38. new BooleanSetting("Еда", true)
    39. ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    40. private final SliderSetting itemLimit = new SliderSetting("Лимит кол.", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    41. private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    42. private final StopWatch timerUtil = new StopWatch();
    43. private final Random random = new Random();
    44. public ChestStealer() {
    45. addSettings(mode, chestClose, minStealDelay, maxStealDelay, filterLootToggle, filterLoot, itemLimit, missPercent, noEntity);
    46. }
    47. private boolean filterItem(Item item) {
    48. if (!filterLootToggle.get()) {
    49. return true;
    50. }
    51. boolean filterOres = filterLoot.get(0).get();
    52. boolean filterHeads = filterLoot.get(1).get();
    53. boolean filterNetherite = filterLoot.get(2).get();
    54. boolean filterBooks = filterLoot.get(3).get();
    55. boolean filterTotems = filterLoot.get(4).get();
    56. boolean filterPotions = filterLoot.get(5).get();
    57. boolean filterFood = filterLoot.get(6).get();
    58. if (filterOres && (item == Items.DIAMOND_ORE || item == Items.IRON_ORE)) return true;
    59. if (filterHeads && item == Items.PLAYER_HEAD) return true;
    60. if (filterNetherite && item == Items.NETHERITE_INGOT) return true;
    61. if (filterBooks && item == Items.ENCHANTED_BOOK) return true;
    62. if (filterTotems && item == Items.TOTEM_OF_UNDYING) return true;
    63. if (filterPotions && (item == Items.POTION || item == Items.SPLASH_POTION)) return true;
    64. if (filterFood && (item == Items.BREAD || item == Items.APPLE)) return true;
    65. return false;
    66. }
    67. @Subscribe
    68. public void onEvent(final EventUpdate event) {
    69. if (mode.is("Умный") || mode.is("Тихий") || mode.is("Полный лут")) {
    70. if (mc.player.openContainer instanceof ChestContainer) {
    71. ChestContainer container = (ChestContainer) mc.player.openContainer;
    72. IInventory inventory = container.getLowerChestInventory();
    73. if (inventory == null) return;
    74. List<Integer> validSlots = new ArrayList<>();
    75. for (int i = 0; i < inventory.getSizeInventory(); i++) {
    76. if (!inventory.getStackInSlot(i).isEmpty()
    77. && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
    78. && (mode.is("Полный лут") || filterItem(inventory.getStackInSlot(i).getItem()))) {
    79. validSlots.add(i);
    80. }
    81. }
    82. if (!validSlots.isEmpty() && timerUtil.isReached(getRandomDelay())) {
    83. int slotToSteal = validSlots.get(random.nextInt(validSlots.size()));
    84. if (random.nextInt(100) >= missPercent.get()) {
    85. mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
    86. }
    87. timerUtil.reset();
    88. }
    89. if (chestClose.get() && validSlots.isEmpty()) {
    90. mc.player.closeScreen();
    91. }
    92. }
    93. }
    94. }
    95. private long getRandomDelay() {
    96. return (long) (minStealDelay.get() + random.nextInt((int) (maxStealDelay.get() - minStealDelay.get())));
    97. }
    98. }
      Пастите
1734887707401.png1734887738048.png
 
Начинающий
Статус
Оффлайн
Регистрация
7 Мар 2023
Сообщения
32
Реакции[?]
0
Поинты[?]
0
    1. package im.expensive.functions.impl.player;
    2. import com.google.common.eventbus.Subscribe;
    3. import im.expensive.events.EventUpdate;
    4. import im.expensive.functions.api.Category;
    5. import im.expensive.functions.api.Function;
    6. import im.expensive.functions.api.FunctionRegister;
    7. import im.expensive.functions.settings.impl.BooleanSetting;
    8. import im.expensive.functions.settings.impl.ModeListSetting;
    9. import im.expensive.functions.settings.impl.ModeSetting;
    10. import im.expensive.functions.settings.impl.SliderSetting;
    11. import im.expensive.utils.math.StopWatch;
    12. import lombok.AccessLevel;
    13. import lombok.experimental.FieldDefaults;
    14. import net.minecraft.inventory.IInventory;
    15. import net.minecraft.inventory.container.ChestContainer;
    16. import net.minecraft.inventory.container.ClickType;
    17. import net.minecraft.item.Item;
    18. import net.minecraft.item.Items;
    19. import java.util.ArrayList;
    20. import java.util.List;
    21. import java.util.Random;
    22. @FieldDefaults(level = AccessLevel.PRIVATE)
    23. @FunctionRegister(name = "ChestStealer", type = Category.Miscellaneous)
    24. public class ChestStealer extends Function {
    25. private final BooleanSetting noEntity = new BooleanSetting("NoEntity", true);
    26. private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный", "Тихий", "Полный лут");
    27. private final BooleanSetting chestClose = new BooleanSetting("Закрывать при пустом", true);
    28. private final SliderSetting minStealDelay = new SliderSetting("Мин. задержка", 100, 0, 1000, 1);
    29. private final SliderSetting maxStealDelay = new SliderSetting("Макс. задержка", 300, 0, 2000, 1);
    30. private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    31. private final ModeListSetting filterLoot = new ModeListSetting("Лут",
    32. new BooleanSetting("Руды", true),
    33. new BooleanSetting("Головы", false),
    34. new BooleanSetting("Незеритовый слиток", false),
    35. new BooleanSetting("Зачарованная книга", false),
    36. new BooleanSetting("Тотемы", false),
    37. new BooleanSetting("Зелья", false),
    38. new BooleanSetting("Еда", true)
    39. ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    40. private final SliderSetting itemLimit = new SliderSetting("Лимит кол.", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    41. private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    42. private final StopWatch timerUtil = new StopWatch();
    43. private final Random random = new Random();
    44. public ChestStealer() {
    45. addSettings(mode, chestClose, minStealDelay, maxStealDelay, filterLootToggle, filterLoot, itemLimit, missPercent, noEntity);
    46. }
    47. private boolean filterItem(Item item) {
    48. if (!filterLootToggle.get()) {
    49. return true;
    50. }
    51. boolean filterOres = filterLoot.get(0).get();
    52. boolean filterHeads = filterLoot.get(1).get();
    53. boolean filterNetherite = filterLoot.get(2).get();
    54. boolean filterBooks = filterLoot.get(3).get();
    55. boolean filterTotems = filterLoot.get(4).get();
    56. boolean filterPotions = filterLoot.get(5).get();
    57. boolean filterFood = filterLoot.get(6).get();
    58. if (filterOres && (item == Items.DIAMOND_ORE || item == Items.IRON_ORE)) return true;
    59. if (filterHeads && item == Items.PLAYER_HEAD) return true;
    60. if (filterNetherite && item == Items.NETHERITE_INGOT) return true;
    61. if (filterBooks && item == Items.ENCHANTED_BOOK) return true;
    62. if (filterTotems && item == Items.TOTEM_OF_UNDYING) return true;
    63. if (filterPotions && (item == Items.POTION || item == Items.SPLASH_POTION)) return true;
    64. if (filterFood && (item == Items.BREAD || item == Items.APPLE)) return true;
    65. return false;
    66. }
    67. @Subscribe
    68. public void onEvent(final EventUpdate event) {
    69. if (mode.is("Умный") || mode.is("Тихий") || mode.is("Полный лут")) {
    70. if (mc.player.openContainer instanceof ChestContainer) {
    71. ChestContainer container = (ChestContainer) mc.player.openContainer;
    72. IInventory inventory = container.getLowerChestInventory();
    73. if (inventory == null) return;
    74. List<Integer> validSlots = new ArrayList<>();
    75. for (int i = 0; i < inventory.getSizeInventory(); i++) {
    76. if (!inventory.getStackInSlot(i).isEmpty()
    77. && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
    78. && (mode.is("Полный лут") || filterItem(inventory.getStackInSlot(i).getItem()))) {
    79. validSlots.add(i);
    80. }
    81. }
    82. if (!validSlots.isEmpty() && timerUtil.isReached(getRandomDelay())) {
    83. int slotToSteal = validSlots.get(random.nextInt(validSlots.size()));
    84. if (random.nextInt(100) >= missPercent.get()) {
    85. mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
    86. }
    87. timerUtil.reset();
    88. }
    89. if (chestClose.get() && validSlots.isEmpty()) {
    90. mc.player.closeScreen();
    91. }
    92. }
    93. }
    94. }
    95. private long getRandomDelay() {
    96. return (long) (minStealDelay.get() + random.nextInt((int) (maxStealDelay.get() - minStealDelay.get())));
    97. }
    98. }
      Пастите
хуета:
package im.expensive.functions.impl.player;
import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.container.ChestContainer;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Item;
import net.minecraft.item.Items;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@FieldDefaults(level = AccessLevel.PRIVATE)
@FunctionRegister(name = "ChestStealer", type = Category.Miscellaneous)
public class ChestStealer extends Function {
private final BooleanSetting noEntity = new BooleanSetting("NoEntity", true);
private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный", "Тихий", "Полный лут");
private final BooleanSetting chestClose = new BooleanSetting("Закрывать при пустом", true);
private final SliderSetting minStealDelay = new SliderSetting("Мин. задержка", 100, 0, 1000, 1);
private final SliderSetting maxStealDelay = new SliderSetting("Макс. задержка", 300, 0, 2000, 1);
private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
private final ModeListSetting filterLoot = new ModeListSetting("Лут",
new BooleanSetting("Руды", true),
new BooleanSetting("Головы", false),
new BooleanSetting("Незеритовый слиток", false),
new BooleanSetting("Зачарованная книга", false),
new BooleanSetting("Тотемы", false),
new BooleanSetting("Зелья", false),
new BooleanSetting("Еда", true)
).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
private final SliderSetting itemLimit = new SliderSetting("Лимит кол.", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
private final StopWatch timerUtil = new StopWatch();
private final Random random = new Random();
public ChestStealer() {
addSettings(mode, chestClose, minStealDelay, maxStealDelay, filterLootToggle, filterLoot, itemLimit, missPercent, noEntity);
}
private boolean filterItem(Item item) {
if (!filterLootToggle.get()) {
return true;
}
boolean filterOres = filterLoot.get(0).get();
boolean filterHeads = filterLoot.get(1).get();
boolean filterNetherite = filterLoot.get(2).get();
boolean filterBooks = filterLoot.get(3).get();
boolean filterTotems = filterLoot.get(4).get();
boolean filterPotions = filterLoot.get(5).get();
boolean filterFood = filterLoot.get(6).get();
if (filterOres && (item == Items.DIAMOND_ORE || item == Items.IRON_ORE)) return true;
if (filterHeads && item == Items.PLAYER_HEAD) return true;
if (filterNetherite && item == Items.NETHERITE_INGOT) return true;
if (filterBooks && item == Items.ENCHANTED_BOOK) return true;
if (filterTotems && item == Items.TOTEM_OF_UNDYING) return true;
if (filterPotions && (item == Items.POTION || item == Items.SPLASH_POTION)) return true;
if (filterFood && (item == Items.BREAD || item == Items.APPLE)) return true;
return false;
}
@Subscribe
public void onEvent(final EventUpdate event) {
if (mode.is("Умный") || mode.is("Тихий") || mode.is("Полный лут")) {
if (mc.player.openContainer instanceof ChestContainer) {
ChestContainer container = (ChestContainer) mc.player.openContainer;
IInventory inventory = container.getLowerChestInventory();
if (inventory == null) return;
List<Integer> validSlots = new ArrayList<>();
for (int i = 0; i < inventory.getSizeInventory(); i++) {
if (!inventory.getStackInSlot(i).isEmpty()
&& inventory.getStackInSlot(i).getCount() <= itemLimit.get()
&& (mode.is("Полный лут") || filterItem(inventory.getStackInSlot(i).getItem()))) {
validSlots.add(i);
}
}
if (!validSlots.isEmpty() && timerUtil.isReached(getRandomDelay())) {
int slotToSteal = validSlots.get(random.nextInt(validSlots.size()));
if (random.nextInt(100) >= missPercent.get()) {
mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
}
timerUtil.reset();
}
if (chestClose.get() && validSlots.isEmpty()) {
mc.player.closeScreen();
}
}
}
}
private long getRandomDelay() {
return (long) (minStealDelay.get() + random.nextInt((int) (maxStealDelay.get() - minStealDelay.get())));
}
}
научись уже блять коды вставлять
 
‮expenis paster
Пользователь
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
1,689
Реакции[?]
47
Поинты[?]
63K
    1. package im.expensive.functions.impl.player;
    2. import com.google.common.eventbus.Subscribe;
    3. import im.expensive.events.EventUpdate;
    4. import im.expensive.functions.api.Category;
    5. import im.expensive.functions.api.Function;
    6. import im.expensive.functions.api.FunctionRegister;
    7. import im.expensive.functions.settings.impl.BooleanSetting;
    8. import im.expensive.functions.settings.impl.ModeListSetting;
    9. import im.expensive.functions.settings.impl.ModeSetting;
    10. import im.expensive.functions.settings.impl.SliderSetting;
    11. import im.expensive.utils.math.StopWatch;
    12. import lombok.AccessLevel;
    13. import lombok.experimental.FieldDefaults;
    14. import net.minecraft.inventory.IInventory;
    15. import net.minecraft.inventory.container.ChestContainer;
    16. import net.minecraft.inventory.container.ClickType;
    17. import net.minecraft.item.Item;
    18. import net.minecraft.item.Items;
    19. import java.util.ArrayList;
    20. import java.util.List;
    21. import java.util.Random;
    22. @FieldDefaults(level = AccessLevel.PRIVATE)
    23. @FunctionRegister(name = "ChestStealer", type = Category.Miscellaneous)
    24. public class ChestStealer extends Function {
    25. private final BooleanSetting noEntity = new BooleanSetting("NoEntity", true);
    26. private final ModeSetting mode = new ModeSetting("Мод", "Умный", "Умный", "Тихий", "Полный лут");
    27. private final BooleanSetting chestClose = new BooleanSetting("Закрывать при пустом", true);
    28. private final SliderSetting minStealDelay = new SliderSetting("Мин. задержка", 100, 0, 1000, 1);
    29. private final SliderSetting maxStealDelay = new SliderSetting("Макс. задержка", 300, 0, 2000, 1);
    30. private final BooleanSetting filterLootToggle = new BooleanSetting("Фильтр лута", false).setVisible(() -> mode.is("Умный"));
    31. private final ModeListSetting filterLoot = new ModeListSetting("Лут",
    32. new BooleanSetting("Руды", true),
    33. new BooleanSetting("Головы", false),
    34. new BooleanSetting("Незеритовый слиток", false),
    35. new BooleanSetting("Зачарованная книга", false),
    36. new BooleanSetting("Тотемы", false),
    37. new BooleanSetting("Зелья", false),
    38. new BooleanSetting("Еда", true)
    39. ).setVisible(() -> mode.is("Умный") && filterLootToggle.get());
    40. private final SliderSetting itemLimit = new SliderSetting("Лимит кол.", 12, 1, 64, 1).setVisible(() -> mode.is("Умный"));
    41. private final SliderSetting missPercent = new SliderSetting("Миссать", 50, 0, 100, 1).setVisible(() -> mode.is("Умный"));
    42. private final StopWatch timerUtil = new StopWatch();
    43. private final Random random = new Random();
    44. public ChestStealer() {
    45. addSettings(mode, chestClose, minStealDelay, maxStealDelay, filterLootToggle, filterLoot, itemLimit, missPercent, noEntity);
    46. }
    47. private boolean filterItem(Item item) {
    48. if (!filterLootToggle.get()) {
    49. return true;
    50. }
    51. boolean filterOres = filterLoot.get(0).get();
    52. boolean filterHeads = filterLoot.get(1).get();
    53. boolean filterNetherite = filterLoot.get(2).get();
    54. boolean filterBooks = filterLoot.get(3).get();
    55. boolean filterTotems = filterLoot.get(4).get();
    56. boolean filterPotions = filterLoot.get(5).get();
    57. boolean filterFood = filterLoot.get(6).get();
    58. if (filterOres && (item == Items.DIAMOND_ORE || item == Items.IRON_ORE)) return true;
    59. if (filterHeads && item == Items.PLAYER_HEAD) return true;
    60. if (filterNetherite && item == Items.NETHERITE_INGOT) return true;
    61. if (filterBooks && item == Items.ENCHANTED_BOOK) return true;
    62. if (filterTotems && item == Items.TOTEM_OF_UNDYING) return true;
    63. if (filterPotions && (item == Items.POTION || item == Items.SPLASH_POTION)) return true;
    64. if (filterFood && (item == Items.BREAD || item == Items.APPLE)) return true;
    65. return false;
    66. }
    67. @Subscribe
    68. public void onEvent(final EventUpdate event) {
    69. if (mode.is("Умный") || mode.is("Тихий") || mode.is("Полный лут")) {
    70. if (mc.player.openContainer instanceof ChestContainer) {
    71. ChestContainer container = (ChestContainer) mc.player.openContainer;
    72. IInventory inventory = container.getLowerChestInventory();
    73. if (inventory == null) return;
    74. List<Integer> validSlots = new ArrayList<>();
    75. for (int i = 0; i < inventory.getSizeInventory(); i++) {
    76. if (!inventory.getStackInSlot(i).isEmpty()
    77. && inventory.getStackInSlot(i).getCount() <= itemLimit.get()
    78. && (mode.is("Полный лут") || filterItem(inventory.getStackInSlot(i).getItem()))) {
    79. validSlots.add(i);
    80. }
    81. }
    82. if (!validSlots.isEmpty() && timerUtil.isReached(getRandomDelay())) {
    83. int slotToSteal = validSlots.get(random.nextInt(validSlots.size()));
    84. if (random.nextInt(100) >= missPercent.get()) {
    85. mc.playerController.windowClick(container.windowId, slotToSteal, 0, ClickType.QUICK_MOVE, mc.player);
    86. }
    87. timerUtil.reset();
    88. }
    89. if (chestClose.get() && validSlots.isEmpty()) {
    90. mc.player.closeScreen();
    91. }
    92. }
    93. }
    94. }
    95. private long getRandomDelay() {
    96. return (long) (minStealDelay.get() + random.nextInt((int) (maxStealDelay.get() - minStealDelay.get())));
    97. }
    98. }
      Пастите
молодец, идеально код вставил
 
Сверху Снизу