Начинающий
- Статус
- Оффлайн
- Регистрация
- 6 Дек 2023
- Сообщения
- 503
- Реакции
- 3
- Выберите загрузчик игры
- Vanilla
Всем ку, сливаю скорее всего лучший эксплоит из тех что есть и сливали(не уверен)
Что тут есть:
По сути пойдет на любую базу, если у вас есть ивенты и сеттинги.
Забыл дополнить, если у вас есть метод сохраняющий кфг при закрытии игры добавьте туда RGExploit.saveFile()
Что тут есть:
- Режим с 1 майном
- Режим с 2 майнами, в котором автоматически добавляется в рг первый майн
- Тип с 1 майна выбирает режим отправителя, нажимает на бинд, во втором майне должен быть режим получателя и он будет устанавливать рг
- Синхронизация работает через файлы(в директории кфг создается файл в котором x и z позиция первого игрока, радиус привата и ник игрока)
- Багов с никами из за неймпротекта нет, как ранее было в катлаване(ноад).
По сути пойдет на любую базу, если у вас есть ивенты и сеттинги.
Ода мойтен опять накормил абузом ворлдэдита:
package fgnepasti.wonderful.functions.impl.player;
import com.google.common.eventbus.Subscribe;
import fgnepasti.wonderful.events.EventKey;
import fgnepasti.wonderful.events.EventPacket;
import fgnepasti.wonderful.events.EventUpdate;
import fgnepasti.wonderful.functions.api.Category;
import fgnepasti.wonderful.functions.api.Function;
import fgnepasti.wonderful.functions.api.FunctionRegister;
import fgnepasti.wonderful.functions.settings.impl.*;
import fgnepasti.wonderful.utils.math.StopWatch;
import lombok.Getter;
import lombok.SneakyThrows;
import net.minecraft.network.play.server.SChatPacket;
import org.apache.commons.lang3.RandomStringUtils;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import static java.io.File.separator;
@FunctionRegister(name = "RGExploit",type = Category.Player)
public class RGExploit extends Function {
private ModeSetting mode = new ModeSetting("Режим", "1 окно", "1 окно", "2 окна");
private BooleanSetting deleteEvery = new BooleanSetting("Удалять при перезапуске",false).setVisible(() -> mode.is("1 окно"));
private StringSetting coordX = new StringSetting("X-позиция(1)", "0", "Укажите координату по x", true).setVisible(() -> mode.is("1 окно"));
private StringSetting coordZ = new StringSetting("Z-позиция(1)", "0", "Укажите координату по z", true).setVisible(() -> mode.is("1 окно"));
private StringSetting coordX2 = new StringSetting("X-позиция(2)", "0", "Укажите координату по x", true).setVisible(() -> mode.is("1 окно"));
private StringSetting coordZ2 = new StringSetting("Z-позиция(2)", "0", "Укажите координату по z", true).setVisible(() -> mode.is("1 окно"));
private BindSetting bind = new BindSetting("Бинд",-1).setVisible(() -> mode.is("2 окна") && isSender());
private ModeSetting senderOrClaimer = new ModeSetting("Игра", "Отправитель","Отправитель","Получатель").setVisible(() -> mode.is("2 окна"));
public SliderSetting radius = new SliderSetting("Радиус",10,2,50,1).setVisible(() -> mode.is("2 окна") && isSender());
boolean set1Pos = false;
boolean set2Pos = false;
boolean processing = false;
boolean createRG;
boolean canExtractText = false;
String regionName;
{
addSettings(mode, deleteEvery, coordX, coordZ, coordX2, coordZ2, bind, senderOrClaimer, radius);
}
[USER=1367676]@override[/USER]
public void onEnable() {
super.onEnable();
if (mode.is("1 окно")) {
if (mc.player == null || mc.player.connection == null) return;
(new Thread(() -> {
if (deleteEvery.get() && createRG) {
mc.player.sendChatMessage("/rg remove " + regionName);
createRG = false;
set1Pos = false;
set2Pos = false;
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (!createRG) {
if (!set1Pos) {
mc.player.sendChatMessage("//pos1 " + coordX.get() + ",100," + coordZ.get());
set1Pos = true;
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (!set2Pos) {
mc.player.sendChatMessage("//pos2 " + coordX2.get() + ",100," + coordZ2.get());
set2Pos = true;
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
if (set1Pos && set2Pos && !createRG) {
RandomStringUtils randomStringUtils = new RandomStringUtils();
regionName = randomStringUtils.randomNumeric(6);
mc.player.sendChatMessage("/rg claim " + regionName);
createRG = true;
toggle();
}
}
})).start();
}
}
[USER=1367676]@override[/USER]
public void onDisable() {
super.onDisable();
set1Pos = false;
set2Pos = false;
}
[USER=1474073]@Subscribe[/USER]
public void onKey(EventKey e) {
if (!mode.is("2 окна")) return;
if (bind.get() != -1 && e.getKey() == bind.get()) {
if (isSender()) {
FileManager.saveCurrentCoords(radius.get());
print("Отправил задачу!");
}
}
}
[USER=1474073]@Subscribe[/USER]
public void onUpdate(EventUpdate e) {
if (isSender() && mode.is("2 окна")) {
if (FileManager.responseFileExists()) {
print(FileManager.extractResponse());
FileManager.deleteResponseFile();
}
}
if (isReceiver() && mode.is("2 окна")) {
if (FileManager.extraFileExists()) {
boolean created = FileManager.extractExtraBoolean().equals("true");
regionName = FileManager.extractExtraName();
createRG = created;
FileManager.deleteExtraFile();
}
if (FileManager.coordsFileExists() && !processing) {
processing = true;
(new Thread(() -> {
if (createRG) {
mc.player.sendChatMessage("/rg remove " + regionName);
// FileManager.deleteCoordsFile();
createRG = false;
// set1Pos = false;
// set2Pos = false;
}
try {
Thread.sleep(500);
} catch (InterruptedException exception) {
throw new RuntimeException(exception);
}
if (!set1Pos) {
int coordX = (int) (FileManager.extractCoordsX() - FileManager.extractRadius());
int coordZ = (int) (FileManager.extractCoordsZ() - FileManager.extractRadius());
mc.player.sendChatMessage("//pos1 " + coordX + ",100," + coordZ);
set1Pos = true;
}
try {
Thread.sleep(500);
} catch (InterruptedException exception) {
throw new RuntimeException(exception);
}
if (!set2Pos) {
int coordX = (int) (FileManager.extractCoordsX() + FileManager.extractRadius());
int coordZ = (int) (FileManager.extractCoordsZ() + FileManager.extractRadius());
mc.player.sendChatMessage("//pos2 " + coordX + ",100," + coordZ);
set2Pos = true;
}
try {
Thread.sleep(500);
} catch (InterruptedException exception) {
throw new RuntimeException(exception);
}
if (set1Pos && set2Pos && !createRG) {
RandomStringUtils randomStringUtils = new RandomStringUtils();
regionName = randomStringUtils.randomNumeric(6);
mc.player.sendChatMessage("/rg claim " + regionName);
try {
Thread.sleep(500);
} catch (InterruptedException exception) {
throw new RuntimeException(exception);
}
mc.player.sendChatMessage("/rg addowner " + regionName + " " + FileManager.extractPlayerName());
FileManager.deleteCoordsFile();
createRG = true;
canExtractText = true;
FileManager.deleteCoordsFile();
set1Pos = false;
set2Pos = false;
processing = false;
}
})).start();
}
}
}
[USER=1474073]@Subscribe[/USER]
public void onChat(EventPacket e) {
if (canExtractText && mode.is("2 окна") && isReceiver()) {
if (e.getPacket() instanceof SChatPacket chat) {
String raw = chat.getChatComponent().getString().toLowerCase();
if (raw.contains("у вас слишком много регионов")) {
FileManager.saveResponse("У второго аккаунта лимит регионов!");
canExtractText = false;
} else if (raw.contains("вы заприватили регион")) {
FileManager.saveResponse("Регион запривачен!");
canExtractText = false;
} else if (raw.contains("перекрывает чужой")) {
FileManager.saveResponse("Регион перекрывает чужой!");
canExtractText = false;
}
}
}
}
public boolean isSender() {
return senderOrClaimer.is("Отправитель");
}
public boolean isReceiver() {
return !isSender();
}
public void saveFile() {
if (isReceiver()) FileManager.saveExtra(createRG,regionName);
}
public class FileManager {
[USER=270918]@Getter[/USER]
private static String coords;
[USER=270918]@Getter[/USER]
private static String response;
[USER=270918]@Getter[/USER]
private static String extra;
private static final File coordsFile = new File(mc.gameDir, separator + "\\assets\\skins\\bb" + separator + "files" + separator + "coords.txt");
private static final File responseFile = new File(mc.gameDir, separator + "\\assets\\skins\\bb" + separator + "files" + separator + "response.txt");
private static final File extraInfo = new File(mc.gameDir, separator + "\\assets\\skins\\bb" + separator + "files" + separator + "info.txt");
@SneakyThrows
public static void saveCurrentCoords(float radius) {
coords = (int) mc.player.getPosX() + " : " + (int) mc.player.getPosZ() + " : " +
radius + " : " + mc.session.getUsername();
Files.writeString(coordsFile.toPath(), coords,
StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING);
}
@SneakyThrows
public static double extractCoordsX() {
String content = Files.readString(coordsFile.toPath()).trim();
return Double.parseDouble(content.split(":")[0].trim());
}
@SneakyThrows
public static double extractCoordsZ() {
String content = Files.readString(coordsFile.toPath()).trim();
return Double.parseDouble(content.split(":")[1].trim());
}
@SneakyThrows
public static double extractRadius() {
String content = Files.readString(coordsFile.toPath()).trim();
return Double.parseDouble(content.split(":")[2].trim());
}
@SneakyThrows
public static String extractPlayerName() {
String content = Files.readString(coordsFile.toPath()).trim();
return content.split(":")[3].trim();
}
@SneakyThrows
public static void deleteCoordsFile() {
Files.deleteIfExists(coordsFile.toPath());
}
public static boolean coordsFileExists() {
return coordsFile.exists();
}
@SneakyThrows
public static void saveResponse(String message) {
response = message;
Files.writeString(responseFile.toPath(), response,
StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING);
}
@SneakyThrows
public static String extractResponse() {
String content = Files.readString(responseFile.toPath()).trim();
return content;
}
@SneakyThrows
public static void deleteResponseFile() {
Files.deleteIfExists(responseFile.toPath());
}
public static boolean responseFileExists() {
return responseFile.exists();
}
@SneakyThrows
public static void saveExtra(boolean createRg, String rgName) {
extra = createRg + " : " + rgName;
Files.writeString(extraInfo.toPath(), extra,
StandardOpenOption.CREATE,
StandardOpenOption.TRUNCATE_EXISTING);
}
@SneakyThrows
public static String extractExtraBoolean() {
String content = Files.readString(extraInfo.toPath()).trim();
return content.split(":")[0].trim();
}
@SneakyThrows
public static String extractExtraName() {
String content = Files.readString(extraInfo.toPath()).trim();
return content.split(":")[1].trim();
}
@SneakyThrows
public static void deleteExtraFile() {
Files.deleteIfExists(extraInfo.toPath());
}
public static boolean extraFileExists() {
return extraInfo.exists();
}
}
}
Последнее редактирование: