• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

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

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2023
Сообщения
157
Реакции
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. }
      Пастите
 
    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.png
1734887738048.png
 
    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. }
      Пастите
хуета:
Expand Collapse Copy
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())));
}
}

научись уже блять коды вставлять
 
    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. }
      Пастите
молодец, идеально код вставил
 
Лучшее за эту неделю
 
Назад
Сверху Снизу