Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Sponge: Будущее Bukkit и Minecraft моддинга в целом

Тема в разделе "Sponge", создана пользователем ql_Nik_lp, 10 сен 2014.

  1. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Во время входа отправь игроку value. Мне кажется, это косяк твоего авторизатора.
    p.s. вместо getValue можно использовать get(TypeToken.of(UUID.class))
     
  2. Хостинг MineCraft
    <
  3. sanjee

    sanjee Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    sanjee
    мдее лучше дождаться релиза...
     
  4. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Что не так? Всё збс же. Даже оптимизацию сделали.
     
  5. sanjee

    sanjee Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    sanjee
    минус в том что конфиги сделаны по инопланетянски
     
  6. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    По-человечески. И не нужно считать пробелы. И человеческий десериализатор, без кастов и прочего дерьма.
     
  7. sanjee

    sanjee Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    sanjee
    я хотел оптимизировать до максимума но когда запустил то ядро просто крашился и все
     
  8. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Я хотел оптимизировать и почистить диск C:, удалил там Windows и система не загрузилась, какая плохая Windows, лучше голый linux поставлю.
     
  9. sanjee

    sanjee Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    sanjee
    Точно! Надо ставить линукс вместо windows!!
     
  10. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Нит :D
    Кстати, прикольная фишечка... Думаю даже очень... Но тут она мне пока не нужна.
    А вот тут у меня вопрос.
    Sponge, какого *уя?!
    Моя логика такова: если метод config.getNode принимает значения Object[], то я могу ему давать значения Object[], а не String[], и он сам чето как-то кастанет к String.
    Однако, видимо все-таки нет, и надо вручную все кастовать к String... WTF?!
    Итак, то как я решил протестить:
    Код:
        @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);
        }
    И в итоге, последний вариант таки выдал мне мой пароль (PASSWORD)...
    [​IMG]
    Это баг, или так и задумано? Почему тогда метод принимает Object[] а не String[]?
     
  11. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Потому, что это нормальный сериализатор/десериализатор, а не баккитовское дерьмо, которое всё в непонятном виде хранит. Привыкай.
    Тебе надо так устанавливать значение:
    .setValue(TypeToken.of(UUID.class), newUuid);
    и получать его так, как я выше говорил.
    Это программирование НОРМАЛЬНОГО человека.
     
  12. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Так я же само UUID фактически никогда не выставляю...
    Ну как сказать...
    UUID у меня как-бы только как "ПУТЬ" до нужных мне значений по заданному UUID! Типо пароль, email, раса, etc...
    Но смысл плюс минус понял..
     
  13. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Тогда и храни UUID.toString()
    Вообще, ему без разницы, что десериализовывать. Если какой-то свой класс - то просто регистрируешь TypeSerializer и всё.
     
  14. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    OKay, спасибо!)[DOUBLEPOST=1471413095,1471412359][/DOUBLEPOST]@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("")?
    Или как?
     
  15. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    https://docs.spongepowered.org/master/en/plugin/commands/creating.html

    Зачем ты CommandCallable используешь?
     
  16. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
  17. Larin

    Larin Старожил Пользователь

    Баллы:
    103
    Его нужно использовать только в том случае, когда builder'а не хватает, а так нужно использовать CommandExecutor.
     
  18. minecrafter123

    minecrafter123 Ньюби

    Баллы:
    1
    Имя в Minecraft:
    der_shlanger
    Когда уже релиз sponge vanilla?!
     
  19. minecrafter123

    minecrafter123 Ньюби

    Баллы:
    1
    Имя в Minecraft:
    der_shlanger
    Там только бета версии...
     
  20. Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Которые более чем играбельные, и под них даже можно писать плагины...
     
  21. _MediaNik_

    _MediaNik_ Активный участник Пользователь

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    А*******но прям.
     

Поделиться этой страницей