-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
создаем класс ParseCommand вот тута im.expensive.command.impl.feature
и вставляем этот код
дальше заходим в Expensive.java и на 242 строчке вставляем это -
Вот и все! парсер готов!
( ес че это штука собирает все ники с таба, годная хуйня )
и вставляем этот код
Java:
package im.expensive.command.impl.feature;
import im.expensive.command.Command;
import im.expensive.command.Parameters;
import im.expensive.command.Prefix;
import im.expensive.command.Logger;
import lombok.AccessLevel;
import lombok.RequiredArgsConstructor;
import lombok.experimental.FieldDefaults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.network.play.ClientPlayNetHandler;
import net.minecraft.scoreboard.ScorePlayerTeam;
import net.minecraft.util.text.TextFormatting;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
@RequiredArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
public class ParseCommand implements Command {
final Prefix prefix;
final Logger logger;
@Override
public void execute(Parameters parameters) {
savePlayerData();
}
@Override
public String name() {
return "parse";
}
@Override
public String description() {
return "Парсит игроков из таба. (В папку 'expensive/files')";
}
public List<String> adviceMessage() {
String commandPrefix = prefix.get();
return List.of(commandPrefix + name() + " - Сохранить ники игроков из таба в файл");
}
private void savePlayerData() {
File directory = new File("expensive/files");
if (!directory.exists()) {
directory.mkdirs();
}
File file = new File(directory, "players.txt");
Map<String, List<String>> prefixToPlayers = new LinkedHashMap<>();
try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
Minecraft minecraft = Minecraft.getInstance();
ClientPlayNetHandler networkHandler = minecraft.getConnection();
if (networkHandler != null) {
networkHandler.getPlayerInfoMap().forEach(playerInfo -> {
String playerName = playerInfo.getGameProfile().getName();
String playerPrefix = getPlayerPrefix(playerName);
prefixToPlayers
.computeIfAbsent(playerPrefix, k -> new ArrayList<>())
.add(playerName);
});
for (Map.Entry<String, List<String>> entry : prefixToPlayers.entrySet()) {
String prefix = entry.getKey();
List<String> players = entry.getValue();
if (!prefix.isEmpty()) {
writer.write(prefix);
writer.newLine();
}
for (String player : players) {
writer.write(" " + player);
writer.newLine();
}
writer.newLine();
}
}
String relativePath = "expensive/files/players.txt";
logger.log(TextFormatting.GREEN + "Информация о игроках успешно сохранена в " + relativePath);
} catch (IOException e) {
logger.log(TextFormatting.RED + "Ошибка при сохранении информации о игроках: " + e.getMessage());
}
}
private String getPlayerPrefix(String playerName) {
Minecraft minecraft = Minecraft.getInstance();
ClientPlayNetHandler networkHandler = minecraft.getConnection();
if (networkHandler != null) {
for (ScorePlayerTeam team : minecraft.world.getScoreboard().getTeams()) {
if (team.getMembershipCollection().contains(playerName)) {
return team.getPrefix().getString();
}
}
}
return "";
}
}
Java:
commands.add(new ParseCommand(prefix, logger));
( ес че это штука собирает все ники с таба, годная хуйня )
Последнее редактирование модератором: