Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Дек 2023
- Сообщения
- 525
- Реакции
- 3
- Выберите загрузчик игры
- Vanilla
- Forge
- Fabric
- NeoForge
- OptiFine
- ForgeOptiFine
- Прочие моды
Всем ку. Сливаю автопвп под лоник
AutoPVP:
@ModuleInfo(name = "AutoPVP",description = "Помощник в подборе пвп для сервера LonyGrief",category = ModuleCategory.MISC)
public class AutoPVP extends Module {
public MultiModeSetting donateSettings;
public AutoPVP() {
String[] donateNames = new String[DonateRank.values().length];
for (int i = 0; i < DonateRank.values().length; i++) {
donateNames[i] = DonateRank.values()[i].getName();
}
donateSettings = new MultiModeSetting("С кем идти...", this, donateNames);
}
@Subscribe
public void onEvent(Event e) {
if (e instanceof EventReceivePacket p) {
if (p.getPacket() instanceof SChatPacket s) {
String raw = TextFormatting.getTextWithoutFormattingCodes(s.getChatComponent().getString());
if (raw == null) return;
if (raw.contains("ищет себе соперника!")) {
int startIndex = raw.indexOf("Игрок ") + 6;
int endIndex = raw.indexOf(" ", startIndex);
if (startIndex != -1 && endIndex != -1) {
String nickname = raw.substring(startIndex, endIndex);
for (NetworkPlayerInfo player : mc.getConnection().getPlayerInfoMap()) {
String displayName = player.getDisplayName().getString();
String cleanDisplayName = TextFormatting.getTextWithoutFormattingCodes(displayName);
if (cleanDisplayName.contains(nickname)) {
String formattedDisplayName = displayName.trim();
int firstSpace = formattedDisplayName.indexOf(' ');
if (firstSpace != -1) {
String donate = formattedDisplayName.substring(0, firstSpace);
String cleanDon = convertStyledToNormal(TextFormatting.getTextWithoutFormattingCodes(donate)).replace("+","");
DonateRank playerRank = DonateRank.fromString(cleanDon);
if (Wonderful.getInstance().getFriendManager().isFriend(nickname)) return;
if (playerRank != null) {
BooleanSetting rankSetting = donateSettings.get(playerRank.getName());
if (rankSetting != null && rankSetting.isEnabled()) {
if (mc.currentScreen != null) {
if (mc.currentScreen instanceof ContainerScreen<?> containerScreen) {
if (containerScreen.getTitle().getString().toLowerCase().contains("поиск поединка")) {
mc.player.connection.sendPacket(new CClickWindowPacket(mc.player.openContainer.windowId,
20, 0, ClickType.PICKUP, ItemStack.EMPTY, mc.player.openContainer.getNextTransactionID(mc.player.inventory)));
}
//тык на 20 слот
}
} else {
(new Thread(() -> {
mc.player.sendChatMessage("/pvp");
try {
Thread.sleep(250);
} catch (InterruptedException ignored) {
}
mc.player.connection.sendPacket(new CClickWindowPacket(mc.player.openContainer.windowId,
20, 0, ClickType.PICKUP, ItemStack.EMPTY, mc.player.openContainer.getNextTransactionID(mc.player.inventory)));
})).start();
}
} else {
// веля не летсгиря
}
} else {
// кастом ебучий
if (donateSettings.get("CUSTOM").isEnabled()) {
if (mc.currentScreen != null) {
if (mc.currentScreen instanceof ContainerScreen<?> containerScreen) {
if (containerScreen.getTitle().getString().toLowerCase().contains("поиск поединка")) {
mc.player.connection.sendPacket(new CClickWindowPacket(mc.player.openContainer.windowId,
20, 0, ClickType.PICKUP, ItemStack.EMPTY, mc.player.openContainer.getNextTransactionID(mc.player.inventory)));
}
//тык на 20 слот
}
} else {
(new Thread(() -> {
mc.player.sendChatMessage("/pvp");
try {
Thread.sleep(250);
} catch (InterruptedException ignored) {
}
mc.player.connection.sendPacket(new CClickWindowPacket(mc.player.openContainer.windowId,
20, 0, ClickType.PICKUP, ItemStack.EMPTY, mc.player.openContainer.getNextTransactionID(mc.player.inventory)));
})).start();
}
}
}
}
break;
}
}
}
}
}
}
}
private String convertStyledToNormal(String styledText) {
String styled = "ᴀʙᴄᴅᴇꜰɢʜɪᴊᴋʟᴍɴᴏᴘʀꜱᴛᴜᴠᴡʏᴢɴ";
String normal = "ABCDEFGHIJKLMNOPRSTUVWYZN";
StringBuilder result = new StringBuilder();
for (char c : styledText.toCharArray()) {
int index = styled.indexOf(c);
if (index != -1) {
result.append(normal.charAt(index));
} else {
result.append(c);
}
}
return result.toString();
}
public enum DonateRank {
CUSTOM("CUSTOM"),
D_HELPER("D.HELPER"),
FROSTINE("FROSTINE"),
SPRING("SPRING"),
AUTUMN("AUTUMN"),
GLADIATOR("GLADIATOR"),
PALADIN("PALADIN"),
LUXE("LUXE"),
STAFF("STAFF"),
SUPPORT("SUPPORT"),
ETERNITY("ETERNITY"),
OVERLORD("OVERLORD"),
D_ADMIN("D.ADMIN"),
POVELITEL("POVELITEL"),
IMPERATOR("IMPERATOR"),
LEGENDA("LEGENDA"),
PRAVITEL("PRAVITEL"),
PHOENIX("PHOENIX"),
PLAYER("PLAYER");
private final String name;
DonateRank(String name) {
this.name = name;
}
public String getName() {
return name;
}
public static DonateRank fromString(String text) {
for (DonateRank rank : DonateRank.values()) {
if (rank.name.equalsIgnoreCase(text)) {
return rank;
}
}
return null;
}
}
}