-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Всем привет, сливаю вам кучу гавно года. Писал спаммер с минимальными знаний в java, предыстория зачем я его писал "Захотелось мне поднять бабок, насмотрелся в ютубе куча ролик про хайпиксель и выпрашивание доната, и подумал и купил лицензию и начал писать спаммер сообщений по типу 'Please gift me MVP' ну и так я стоял примерно со спаммером недели 2-3 и все таки получил заветный MVP++ на 90 дней, и теперь этот аккаунт сейчас в продаже.
Вот код:
И утилка для него:
Удачки сорри за гавно код
Вот код:
Spammer:
package com.example.examplemod;
import net.minecraft.client.Minecraft;
import net.minecraft.util.text.TextComponentString;
import net.minecraft.util.text.TextFormatting;
import net.minecraftforge.client.event.ClientChatEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent.RenderTickEvent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import org.apache.logging.log4j.Logger;
import java.awt.*;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@Mod(modid = ExampleMod.MODID, name = ExampleMod.NAME, version = ExampleMod.VERSION)
public class ExampleMod {
public static final String MODID = "examplemod";
public static final String NAME = "Example Mod";
public static final String VERSION = "1.0";
private static Logger logger;
private boolean enabled = false;
private double tickDelay = 15000;
private final List<String> phrases = new ArrayList<>();
private final Timer timer = new Timer();
private int lastSentIndex = -1;
private int afkCommandCooldown = 0;
private boolean isAfk = false;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
logger = event.getModLog();
MinecraftForge.EVENT_BUS.register(this);
// Создаем папку Auto в каталоге config
File configDir = new File(Minecraft.getMinecraft().mcDataDir, "config");
File autoDir = new File(configDir, "Auto");
autoDir.mkdirs();
// Загружаем фразы из файла при инициализации мода
loadPhrasesFromFile(autoDir);
}
@SubscribeEvent
public void onChat(ClientChatEvent e) {
if (e.getMessage().startsWith(".start")) {
e.setCanceled(true);
enabled = true;
sendMessageToChat("Spammer On", TextFormatting.AQUA);
}
if (e.getMessage().startsWith(".end")) {
e.setCanceled(true);
enabled = false;
sendMessageToChat("Spammer Off!", TextFormatting.AQUA);
}
if (e.getMessage().startsWith(".delay")) {
e.setCanceled(true);
String[] args = e.getMessage().split(" ");
try {
tickDelay = Double.parseDouble(args[1]);
sendMessageToChat("Postavil tikovyi delay na " + args[1], TextFormatting.AQUA);
timer.reset();
} catch (Exception ex) {
sendMessageToChat("Nepravilno ykazan argyment.", TextFormatting.AQUA);
}
}
if (e.getMessage().startsWith(".add")) {
e.setCanceled(true);
String[] args = e.getMessage().split(" ", 2);
if (args.length > 1) {
addPhrase(args[1]);
sendMessageToChat("Fraza dobavlena v spisok (Zaxar Negar): " + args[1], TextFormatting.AQUA);
} else {
sendMessageToChat("Nepravilno ykazan argyment.", TextFormatting.AQUA);
}
}
if (e.getMessage().startsWith(".list")) {
e.setCanceled(true);
sendMessageToChat("Vse frazy: " + String.join(", ", phrases), TextFormatting.AQUA);
}
if (e.getMessage().startsWith(".remove")) {
e.setCanceled(true);
String[] args = e.getMessage().split(" ", 2);
if (args.length > 1) {
removePhrase(args[1]);
sendMessageToChat("Fraza ydalena: " + args[1], TextFormatting.AQUA);
} else {
sendMessageToChat("Nepravilno ykazan argyment.", TextFormatting.AQUA);
}
}
if (e.getMessage().startsWith(".help")) {
e.setCanceled(true);
sendMessageToChat("Spisok Command: .start, .end, .delay <chislo>, .add <fraza>, .list, .remove <fraza>, .dir, .help .afk ", TextFormatting.AQUA);
}
if (e.getMessage().startsWith(".dir")) {
e.setCanceled(true);
openConfigDirectory();
}
if (e.getMessage().startsWith(".afk")) {
e.setCanceled(true);
toggleAfk();
}
}
@SubscribeEvent
public void onTick(TickEvent.ClientTickEvent e) {
if (Minecraft.getMinecraft().world == null && Minecraft.getMinecraft().player == null) return;
if (!enabled) return;
if (timer.hasPassedMs(tickDelay)) {
String phraseToSend = getNextPhraseInOrder();
if (!phraseToSend.isEmpty()) {
sendMessageToChat(phraseToSend, TextFormatting.RESET);
timer.reset();
}
}
}
@SubscribeEvent
public void onRenderTick(RenderTickEvent e) {
if (isAfk) {
if (afkCommandCooldown <= 0) {
sendRandomCommand();
afkCommandCooldown = 2000; // 25 секунд (в тиках)
} else {
afkCommandCooldown--;
}
}
}
private void sendRandomCommand() {
Random random = new Random();
int randomNumber = random.nextInt(100); // Генерация случайного числа от 0 до 99
Minecraft.getMinecraft().player.sendChatMessage("/" + randomNumber);
}
private String getNextPhraseInOrder() {
if (phrases.isEmpty()) {
return "";
}
lastSentIndex = (lastSentIndex + 1) % phrases.size();
return phrases.get(lastSentIndex);
}
private void addPhrase(String phrase) {
phrases.add(phrase);
savePhrasesToFile();
}
private void removePhrase(String phrase) {
phrases.remove(phrase);
savePhrasesToFile();
}
private void toggleAfk() {
isAfk = !isAfk;
sendMessageToChat("AFK " + (isAfk ? "AntiAFK ON." : "AntiAFK OFF"), TextFormatting.AQUA);
}
private void savePhrasesToFile() {
File configDir = new File(Minecraft.getMinecraft().mcDataDir, "config");
File autoDir = new File(configDir, "Auto");
autoDir.mkdirs();
Path filePath = Paths.get(autoDir.getPath(), "phrases.txt");
try (BufferedWriter writer = Files.newBufferedWriter(filePath, StandardCharsets.UTF_8)) {
for (String phrase : phrases) {
writer.write(phrase);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void loadPhrasesFromFile(File autoDir) {
File file = new File(autoDir, "phrases.txt");
if (file.exists()) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8))) {
String line;
while ((line = reader.readLine()) != null) {
phrases.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void openConfigDirectory() {
File configDir = new File(Minecraft.getMinecraft().mcDataDir, "config");
File autoDir = new File(configDir, "Auto");
try {
Desktop.getDesktop().open(autoDir);
} catch (IOException | UnsupportedOperationException ex) {
ex.printStackTrace();
sendMessageToChat("Hm kashetsy est oshibka napishi svoey mame: " + autoDir.getAbsolutePath(), TextFormatting.RED);
}
}
private void sendMessageToChat(String message, TextFormatting color) {
String formattedMessage = color != null ? color + message : message;
Minecraft.getMinecraft().player.sendMessage(new TextComponentString(formattedMessage));
}
}
TimerUtils:
package com.example.examplemod;
public class Timer {
private long time;
public Timer() {
time = System.currentTimeMillis();
}
public boolean hasPassedMs(double ms) {
return System.currentTimeMillis() - time >= ms;
}
public void reset() {
time = System.currentTimeMillis();
}
}