Вопрос Что-то с стафф листом

Начинающий
Статус
Оффлайн
Регистрация
26 Янв 2023
Сообщения
44
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Чет я не могу ошибку найти. Кто знает что нетак ?
StaffList.java:
package srx.module.modules.visual;

import net.minecraft.util.text.ITextComponent;
import net.minecraft.world.GameType;
import org.lwjgl.glfw.GLFW;

import srx.event.events.PlayerEvents;
import srx.event.events.RenderEvents;
import srx.module.ModuleSetting;
import srx.module.ModuleHeader;
import srx.event.RegisterEvent;
import srx.module.Module;

import java.util.regex.Pattern;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;

@ModuleHeader(name = "StaffList", category = ModuleSetting.Category.VISUAL, priority = ModuleSetting.Priority.PLUS)
public class StaffList extends Module {

    private final Set<Staff> staffs = new HashSet<>();

    private final Pattern mamePattern = Pattern.compile("^\\w{3,16}&");
    private final Pattern prefixesDetectPattern = Pattern.compile(".[I](admin|moder|helper|yt).[/I]");

    @RegisterEvent
    private void onUpdate(PlayerEvents.Update e) {
        assert mc.world != null;
        assert mc.getConnection() != null;

        staffs.clear();
        mc.world.getScoreboard().getTeams().forEach(scorePlayerTeam -> {
            ITextComponent playerPrefix = scorePlayerTeam.getPrefix();
            String playerName = scorePlayerTeam.getName();
            mc.getConnection().getPlayerInfoMap().forEach(networkPlayerInfo -> {
                if (networkPlayerInfo.getGameProfile().getName().equals(playerName))
                    if (mamePattern.matcher(playerName).matches())
                        if (prefixesDetectPattern.matcher(playerPrefix.getString().toLowerCase(Locale.ROOT)).matches()) {
                            Staff staff = new Staff(playerPrefix, playerName);
                            staff.updateGameType();
                            staffs.add(staff);
                }
            });
        });
    }

    @RegisterEvent
    private void onRenderScreen(RenderEvents.Screen e) {

    }

    private static class Staff {

        private final ITextComponent prefix;
        private final String name;
        private boolean vanish;

        public Staff(ITextComponent prefix, String name) {
            this.prefix = prefix;
            this.name = name;
        }

        public void updateGameType() {
            assert mc.getConnection() != null;
            mc.getConnection().getPlayerInfoMap().forEach(networkPlayerInfo -> {
                if (networkPlayerInfo.getGameProfile().getName().equals(name)) {
                    assert networkPlayerInfo.getGameType() != null;
                    vanish = (networkPlayerInfo.getGameType().equals(GameType.SPECTATOR));
                }
            });
        }

        @Override
        public String toString() {
            return String.format("Staff{prefix='%s' name='%s', is_vanish=%s}", prefix.getString(),name, vanish);
        }

        public ITextComponent getPrefix() {
            return prefix;
        }

        public String getName() {
            return name;
        }

        public boolean isVanish() {
            return vanish;
        }
    }
}
 
Последнее редактирование:
Тестировщик ПО
Тестировщик ПО
Статус
Оффлайн
Регистрация
31 Июл 2022
Сообщения
141
Реакции[?]
18
Поинты[?]
13K
Возможно в mamePattern
JavaScript:
private final Pattern namePattern = Pattern.compile("^\\w{3,16}&");
1720296963362.png
 
Начинающий
Статус
Оффлайн
Регистрация
26 Янв 2023
Сообщения
44
Реакции[?]
0
Поинты[?]
0
Возможно в mamePattern
JavaScript:
private final Pattern namePattern = Pattern.compile("^\\w{3,16}&");
Посмотреть вложение 280642
Спасибо за ответ.
Как я понял я брал имя не игрока а team.
Для того чтобы получить имя игрока надо взять его из списка получаемого методом getMembershipCollection() из ScorePlayerTeam, а дальше преобразовать его в строку и очистить от лишнего при помощи .replaceAll("[\\[\\]]", "");.
 
Сверху Снизу