- Баллы
- 103
Я хотел оптимизировать и почистить диск C:, удалил там Windows и система не загрузилась, какая плохая Windows, лучше голый linux поставлю.я хотел оптимизировать до максимума но когда запустил то ядро просто крашился и все
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Я хотел оптимизировать и почистить диск C:, удалил там Windows и система не загрузилась, какая плохая Windows, лучше голый linux поставлю.я хотел оптимизировать до максимума но когда запустил то ядро просто крашился и все
Точно! Надо ставить линукс вместо windows!!Я хотел оптимизировать и почистить диск C:, удалил там Windows и система не загрузилась, какая плохая Windows, лучше голый linux поставлю.
Нит 😁Мне кажется, это косяк твоего авторизатора
Кстати, прикольная фишечка... Думаю даже очень... Но тут она мне пока не нужна.p.s. вместо getValue можно использовать get(TypeToken.of(UUID.class))
А вот тут у меня вопрос.Во время входа отправь игроку value
@Listener
public void test(ClientConnectionEvent.Auth event) {
GameProfile profile = event.getProfile();
UUID uuid = profile.getUniqueId();
ConfigurationNode node = config.getNode(uuid, "PASSWORD");
Object value = node.getValue();
System.out.println("ТУТ КАРОЧ ЗНАЧЕНИЕ = " + value);
System.out.println("ТУТ КАРОЧЕ ТЕСТ №1 = " + config.getNode(uuid, "PASSWORD").getValue());
System.out.println("ТУТ КАРОЧЕ ТЕСТ №2 = " + config.getNode(uuid.toString(), "PASSWORD").getValue());
auth.put(uuid, value == null ? AuthType.REGISTER : AuthType.LOGIN);
}
Потому, что это нормальный сериализатор/десериализатор, а не баккитовское дерьмо, которое всё в непонятном виде хранит. Привыкай.Нит 😁
Кстати, прикольная фишечка... Думаю даже очень... Но тут она мне пока не нужна.
А вот тут у меня вопрос.
Sponge, какого *уя?!
Моя логика такова: если метод config.getNode принимает значения Object[], то я могу ему давать значения Object[], а не String[], и он сам чето как-то кастанет к String.
Однако, видимо все-таки нет, и надо вручную все кастовать к String... WTF?!
Итак, то как я решил протестить:
И в итоге, последний вариант таки выдал мне мой пароль (PASSWORD)...Код:@Listener public void test(ClientConnectionEvent.Auth event) { GameProfile profile = event.getProfile(); UUID uuid = profile.getUniqueId(); ConfigurationNode node = config.getNode(uuid, "PASSWORD"); Object value = node.getValue(); System.out.println("ТУТ КАРОЧ ЗНАЧЕНИЕ = " + value); System.out.println("ТУТ КАРОЧЕ ТЕСТ №1 = " + config.getNode(uuid, "PASSWORD").getValue()); System.out.println("ТУТ КАРОЧЕ ТЕСТ №2 = " + config.getNode(uuid.toString(), "PASSWORD").getValue()); auth.put(uuid, value == null ? AuthType.REGISTER : AuthType.LOGIN); }
![]()
Это баг, или так и задумано? Почему тогда метод принимает Object[] а не String[]?
Так я же само UUID фактически никогда не выставляю...Потому, что это нормальный сериализатор/десериализатор, а не баккитовское дерьмо, которое всё в непонятном виде хранит. Привыкай.
Тебе надо так устанавливать значение:
.setValue(TypeToken.of(UUID.class), newUuid);
и получать его так, как я выше говорил.
Это программирование НОРМАЛЬНОГО человека.
Тогда и храни UUID.toString()Так я же само UUID фактически никогда не выставляю...
Ну как сказать...
UUID у меня как-бы только как "ПУТЬ" до нужных мне значений по заданному UUID! Типо пароль, email, раса, etc...
Но смысл плюс минус понял..
OKay, спасибо!)Тогда и храни UUID.toString()
Вообще, ему без разницы, что десериализовывать. Если какой-то свой класс - то просто регистрируешь TypeSerializer и всё.
@Override
public Text getUsage(CommandSource source) {
return Text.of("<race> <password> [email]");
}
@Override
public Text getUsage(CommandSource source) {
return Text.of("<password>");
}
https://docs.spongepowered.org/master/en/plugin/commands/creating.htmlOKay, спасибо!)
@Larin пока ты тут, скажи как делать лучше, что возвращать в методе Text getUsage (CommandCallable) если у меня в команде нету аргументов?
т.е.,
для команд регистрации и авторизации соответственно я делаю вот так:
Код:@Override public Text getUsage(CommandSource source) { return Text.of("<race> <password> [email]"); }А если нету аргументов?Код:@Override public Text getUsage(CommandSource source) { return Text.of("<password>"); }
Text.of(); ?
Text.of("")?
Или как?
Не знаю, мне кажется так красивее... Удобнее мне так в общем :Вhttps://docs.spongepowered.org/master/en/plugin/commands/creating.html
Зачем ты CommandCallable используешь?
Его нужно использовать только в том случае, когда builder'а не хватает, а так нужно использовать CommandExecutor.Не знаю, мне кажется так красивее... Удобнее мне так в общем :В
давно былКогда уже релиз sponge vanilla?!
Там только бета версии...давно был
Которые более чем играбельные, и под них даже можно писать плагины...Там только бета версии...
А*******но прям.Которые более чем играбельные, и под них даже можно писать плагины...
А чем не нравится? Губка развивается, с бакитом тоже самое было. Пока дождутся рекоммендет билда уже следующая версия выходит.А*******но прям.
Если есть методы CustomName то можноРебят, а как изменить имя игрока над головой БЕЗ ScoreBoard, Team, и прочего?
Просто поменять цвет, возможно ли?
player.setCustomName("&3"+player.getName())
plaer.setVisibleCustomName(true); //Или похожий метод
А ты мне не втираешь какую-то дичь? Это же ведрянские методы... В губке таких вроде как нету...Если есть методы CustomName то можно
P.S. И пофиг, что вопрос был поставлен 4 дня назадКод:player.setCustomName("&3"+player.getName()) plaer.setVisibleCustomName(true); //Или похожий метод
Я не проверял, может аналогичные там есть? Или такие же.. Я лишь предположилВ губке таких вроде как нету...